diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/WtglController.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/WtglController.java index 02c95ae..39ffb59 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/WtglController.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/WtglController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.home.controller.admin.wtgl; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -33,6 +34,7 @@ import cn.iocoder.yudao.module.home.service.wtgl.WtglService; @RestController @RequestMapping("/home/wtgl") @Validated +@Slf4j public class WtglController { @Resource @@ -67,16 +69,15 @@ public class WtglController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('home:wtgl:query')") public CommonResult getWtgl(@RequestParam("id") Long id) { - WtglDO wtgl = wtglService.getWtgl(id); - return success(BeanUtils.toBean(wtgl, WtglRespVO.class)); + return success(wtglService.getWtglNew(id)); } @GetMapping("/page") @Operation(summary = "获得委托分页") @PreAuthorize("@ss.hasPermission('home:wtgl:query')") - public CommonResult> getWtglPage(@Valid WtglPageReqVO pageReqVO) { + public CommonResult> getWtglPage(@Valid WtglPageReqVO pageReqVO) { PageResult pageResult = wtglService.getWtglPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, WtglRespVO.class)); + return success(BeanUtils.toBean(pageResult, WtglPageRespVO.class)); } @GetMapping("/export-excel") @@ -88,8 +89,8 @@ public class WtglController { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = wtglService.getWtglPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "委托.xls", "数据", WtglRespVO.class, - BeanUtils.toBean(list, WtglRespVO.class)); + ExcelUtils.write(response, "委托.xls", "数据", WtglPageRespVO.class, + BeanUtils.toBean(list, WtglPageRespVO.class)); } -} \ No newline at end of file +} diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglMultiItem.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglMultiItem.java new file mode 100644 index 0000000..4ac5e0c --- /dev/null +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglMultiItem.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.home.controller.admin.wtgl.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "多选数据类型") +@Data +@ExcelIgnoreUnannotated +public class WtglMultiItem { + + @Schema(description = "委托任务id") + @ExcelProperty("委托人id") + private Long id; + + @Schema(description = "委托表单名") + @ExcelProperty("委托表单名") + private String name; + + @Schema(description = "表单路径") + @ExcelProperty("表单路径") + private String createPath; +} diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageReqVO.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageReqVO.java index b452306..5de5e21 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageReqVO.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageReqVO.java @@ -54,8 +54,8 @@ public class WtglPageReqVO extends PageParam { @Schema(description = "formName") private String formName; - @Schema(description = "test2") - private String test2; + @Schema(description = "多表单数据") + private String multiData; @Schema(description = "test3") private String test3; diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageRespVO.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageRespVO.java new file mode 100644 index 0000000..d195a69 --- /dev/null +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglPageRespVO.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.home.controller.admin.wtgl.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 委托 Response VO") +@Data +@ExcelIgnoreUnannotated +public class WtglPageRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26152") + @ExcelProperty("id") + private Long id; + + @Schema(description = "委托人id", requiredMode = Schema.RequiredMode.REQUIRED, example = "14947") + @ExcelProperty("委托人id") + private Long userId; + + @Schema(description = "委托人姓名", example = "王五") + @ExcelProperty("委托人姓名") + private String userName; + + @Schema(description = "被委托人id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4045") + @ExcelProperty("被委托人id") + private Long delegateId; + + @Schema(description = "被委托人名字", example = "王五") + @ExcelProperty("被委托人名字") + private String delegateName; + + @Schema(description = "委托开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("委托开始时间") + private LocalDateTime statTime; + + @Schema(description = "委托结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("委托结束时间") + private LocalDateTime endTime; + + @Schema(description = "委托总时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("委托总时间") + private Integer date; + + @Schema(description = "创建表单") + @ExcelProperty("委托表单") + private String createPath; + + @Schema(description = "详情表单") + @ExcelProperty("委托流程") + private String detailPath; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "formName") + @ExcelProperty("formName") + private String formName; + + @Schema(description = "多表单数据") + @ExcelProperty("多表单数据") + private String multiData; + + @Schema(description = "test3") + @ExcelProperty("test3") + private String test3; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglRespVO.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglRespVO.java index 3d43a6b..8f3c42f 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglRespVO.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglRespVO.java @@ -60,9 +60,9 @@ public class WtglRespVO { @ExcelProperty("formName") private String formName; - @Schema(description = "test2") - @ExcelProperty("test2") - private String test2; + @Schema(description = "多表单数据") + @ExcelProperty("多表单数据") + private List multiData; @Schema(description = "test3") @ExcelProperty("test3") diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglSaveReqVO.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglSaveReqVO.java index c1d3945..04654ca 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglSaveReqVO.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/wtgl/vo/WtglSaveReqVO.java @@ -44,22 +44,19 @@ public class WtglSaveReqVO { private Integer date; @Schema(description = "创建表单") - @NotNull(message = "创建表单不能为空") private String createPath; @Schema(description = "详情表单") - @NotNull(message = "详情表单不能为空") private String detailPath; @Schema(description = "备注", example = "随便") private String remark; @Schema(description = "formName") - @NotNull(message = "表单名字不能为空") private String formName; - @Schema(description = "test2") - private String test2; + @Schema(description = "多表单数据") + private List multiData; @Schema(description = "test3") private String test3; diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/dataobject/wtgl/WtglDO.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/dataobject/wtgl/WtglDO.java index 23fe90b..bdc6b42 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/dataobject/wtgl/WtglDO.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/dataobject/wtgl/WtglDO.java @@ -74,9 +74,9 @@ public class WtglDO extends BaseDO { */ private String formName; /** - * test2 + * 多表单数据 */ - private String test2; + private String multiData; /** * test3 */ diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/wtgl/WtglMapper.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/wtgl/WtglMapper.java index 4455854..5158ddc 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/wtgl/WtglMapper.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/wtgl/WtglMapper.java @@ -31,7 +31,7 @@ public interface WtglMapper extends BaseMapperX { .eqIfPresent(WtglDO::getDetailPath, reqVO.getDetailPath()) .eqIfPresent(WtglDO::getRemark, reqVO.getRemark()) .eqIfPresent(WtglDO::getFormName, reqVO.getFormName()) - .eqIfPresent(WtglDO::getTest2, reqVO.getTest2()) + .eqIfPresent(WtglDO::getMultiData, reqVO.getMultiData()) .eqIfPresent(WtglDO::getTest3, reqVO.getTest3()) .betweenIfPresent(WtglDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(WtglDO::getId)); diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglService.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglService.java index f75c872..4e39b31 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglService.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglService.java @@ -52,4 +52,9 @@ public interface WtglService { */ PageResult getWtglPage(WtglPageReqVO pageReqVO); -} \ No newline at end of file + /** + * @param id + * @return 委托 + */ + WtglRespVO getWtglNew(Long id); +} diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglServiceImpl.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglServiceImpl.java index a570668..419a7c2 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglServiceImpl.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/wtgl/WtglServiceImpl.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.home.service.wtgl; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -24,15 +27,26 @@ import static cn.iocoder.yudao.module.home.enums.ErrorCodeConstants.*; */ @Service @Validated +@Slf4j public class WtglServiceImpl implements WtglService { @Resource private WtglMapper wtglMapper; + @Resource + private ObjectMapper objectMapper; + @Override public Long createWtgl(WtglSaveReqVO createReqVO) { - // 插入 WtglDO wtgl = BeanUtils.toBean(createReqVO, WtglDO.class); + // 将 List 转换为 JSON 字符串 + try { + String multiDataJson = objectMapper.writeValueAsString(createReqVO.getMultiData()); // 正确序列化为 JSON 字符串 + wtgl.setMultiData(multiDataJson); // 将 JSON 字符串赋值给 WtglDO + } catch (Exception e) { + // 错误信息 + log.error("处理异常: {}", e.getMessage()); + } wtglMapper.insert(wtgl); // 返回 return wtgl.getId(); @@ -66,9 +80,31 @@ public class WtglServiceImpl implements WtglService { return wtglMapper.selectById(id); } + @Override + public WtglRespVO getWtglNew (Long id) { + WtglDO wtgl = getWtgl(id); + // 反序列化 JSON 字符串 + try { + List formItems = objectMapper.readValue(wtgl.getMultiData(), new TypeReference>() {}); + // 创建响应对象 + WtglRespVO responseVO = new WtglRespVO(); + // 手动设置属性值 + responseVO.setId(wtgl.getId()).setUserId(wtgl.getUserId()).setUserName(wtgl.getUserName()) + .setDelegateId(wtgl.getDelegateId()).setDelegateName(wtgl.getDelegateName()) + .setStatTime(wtgl.getStatTime()).setEndTime(wtgl.getEndTime()).setRemark(wtgl.getRemark()) + .setFormName(wtgl.getFormName()).setMultiData(formItems).setCreateTime(wtgl.getCreateTime()); + return responseVO; + } catch (Exception e) { + // 错误信息 + log.error("反序列化错误: {}", e.getMessage()); + return null; + } + + } + @Override public PageResult getWtglPage(WtglPageReqVO pageReqVO) { return wtglMapper.selectPage(pageReqVO); } -} \ No newline at end of file +}