From d6e770ad32d8df432848d1c5fbdc6358068ca30c Mon Sep 17 00:00:00 2001 From: yanhuiqing Date: Sun, 21 Dec 2025 18:13:08 +0800 Subject: [PATCH] AOP 拦截 业务 和工作流 解耦 --- urbanops-module-api/urbanops-module-garden-api/src/main/java/com/zteits/urbanops/module/garden/dto/road/RoadStreetRespDTO.java | 6 ++++++ urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/AppGardenWorkOrderReqVO.java | 12 ++---------- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/annotation/AutoUpdateWorkerOrderBuzStatus.java | 16 ++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java | 13 ++++++------- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ApproveGroup.java | 15 +++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/AssignGroup.java | 15 +++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/DefaultGroup.java | 15 +++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ImplementGroup.java | 15 +++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/RelaunchGroup.java | 15 +++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ReturnGroup.java | 15 +++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java | 2 ++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java | 12 +++++++++++- urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java | 115 +++++++++++++++++++++++++------------------------------------------------------------------------------------------ 15 files changed, 394 insertions(+), 119 deletions(-) create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/annotation/AutoUpdateWorkerOrderBuzStatus.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ApproveGroup.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/AssignGroup.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/DefaultGroup.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ImplementGroup.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/RelaunchGroup.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ReturnGroup.java diff --git a/urbanops-module-api/urbanops-module-garden-api/src/main/java/com/zteits/urbanops/module/garden/dto/road/RoadStreetRespDTO.java b/urbanops-module-api/urbanops-module-garden-api/src/main/java/com/zteits/urbanops/module/garden/dto/road/RoadStreetRespDTO.java index 0a2ed50..582b58d 100644 --- a/urbanops-module-api/urbanops-module-garden-api/src/main/java/com/zteits/urbanops/module/garden/dto/road/RoadStreetRespDTO.java +++ b/urbanops-module-api/urbanops-module-garden-api/src/main/java/com/zteits/urbanops/module/garden/dto/road/RoadStreetRespDTO.java @@ -1,5 +1,6 @@ package com.zteits.urbanops.module.garden.dto.road; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -20,4 +21,9 @@ public class RoadStreetRespDTO { private String streetName; private String busiLine; + + /** + * 养护级别: 10:特级;11:一级:12:二级;13:三级 + */ + private Integer levelId; } diff --git a/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/AppGardenWorkOrderReqVO.java b/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/AppGardenWorkOrderReqVO.java index 9678d52..0d842d4 100644 --- a/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/AppGardenWorkOrderReqVO.java +++ b/urbanops-module-api/urbanops-module-workorder-api/src/main/java/com/zteits/urbanops/module/workorder/dto/AppGardenWorkOrderReqVO.java @@ -31,9 +31,6 @@ public class AppGardenWorkOrderReqVO { @Schema(description = "问题图片", example = "9184") private List imgs; - @Schema(description = "处理完成照片", example = "9184") - private List longRangeImgList; - @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") @NotEmpty(message = "工单描述不能为空") @Length(max = 500) @@ -59,8 +56,8 @@ public class AppGardenWorkOrderReqVO { @NotEmpty(message = "经纬度地址不能为空") private String lonLatAddress; - @Schema(description = " 养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - @NotNull(message = "养护级别: 10:特级;11:一级:12:二级;13:三级") + @Schema(description = " 紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "紧急程度:1:特急;2:紧急;3:一般") private Integer pressingType; @Schema(description = "工单名称", example = "绿地卫生") @@ -84,11 +81,6 @@ public class AppGardenWorkOrderReqVO { @Schema(description = "工单业务线", example = "yl") private String busiLine; - /* @Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}") - private Map> startUserSelectAssignees; - - @Schema(description = "是否需要养护人员修复,'0' 是,'1' 否") - private String isYesOrNo;*/ } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/annotation/AutoUpdateWorkerOrderBuzStatus.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/annotation/AutoUpdateWorkerOrderBuzStatus.java new file mode 100644 index 0000000..c8487fc --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/annotation/AutoUpdateWorkerOrderBuzStatus.java @@ -0,0 +1,16 @@ +package com.zteits.urbanops.module.workorder.annotation; + +import java.lang.annotation.*; + +/** + * 创 建 人:yanhuiqing + * 创建时间:2025/12/21 14:50 + * 类描述:自动更新工单表业务状态 + * + * @author yanhuiqing + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface AutoUpdateWorkerOrderBuzStatus { +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java index cb481c9..6514b01 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java @@ -9,6 +9,7 @@ import com.zteits.urbanops.module.garden.api.road.RoadApi; import com.zteits.urbanops.module.garden.dto.road.RoadReqDTO; import com.zteits.urbanops.module.garden.dto.road.RoadRespDTO; import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; +import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderBuzStatus; import com.zteits.urbanops.module.workorder.controller.app.garden.vo.*; import com.zteits.urbanops.module.workorder.controller.app.garden.vo.common.AppUniversalApprovalReqVO; import com.zteits.urbanops.module.workorder.controller.app.garden.vo.common.UserInfoPageReqVO; @@ -248,6 +249,7 @@ public class AppGardenWorkOrderController { @Operation(summary = "app-统一审批入口") @PostMapping("/universalApproval") + @AutoUpdateWorkerOrderBuzStatus //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") public CommonResult universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { @@ -268,7 +270,7 @@ public class AppGardenWorkOrderController { this.returnPreviousNode(retReqVO); log.info("当前操作:"+OperateTypeEnum.YL_WORKER_RETURN.getDesc()+"<--结束"); return success(true); - case YL_WORKER_IMPLEMENT://养护员实施 + case YL_WORKER_IMPLEMENT://养护员实施 需修改更新工单数据 见切面 log.info("当前操作:"+OperateTypeEnum.YL_WORKER_IMPLEMENT.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); AppGardenTaskWorkerExcuteReqVO workerExcuteReqVO = new AppGardenTaskWorkerExcuteReqVO(); workerExcuteReqVO.setWorkerDataId(reqVO.getWorkerDataId()); @@ -292,18 +294,17 @@ public class AppGardenWorkOrderController { this.approveTask(approveReqVO); log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_PASS.getDesc()+"<--结束"); return success(true); - case YL_TEAM_LEADER_CONFIRM_REJECT://养护组长验收不通过 + case YL_TEAM_LEADER_CONFIRM_REJECT://养护组长验收不通过 需修改更新工单数据 见切面 log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); AppGardenTaskReturnExtReqVO rejReqVO = new AppGardenTaskReturnExtReqVO(); rejReqVO.setId(reqVO.getTaskId()); rejReqVO.setCurTaskKey(reqVO.getTaskKey()); rejReqVO.setReason(reqVO.getReason()); rejReqVO.setWorkerDataId(reqVO.getWorkerDataId()); - rejReqVO.setReturnImgs(reqVO.getReturnImgs()); this.returnPreviousNode(rejReqVO); log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getDesc()+"<--结束"); return success(true); - case YL_TEAM_LEADER_ASSIGN: //养护组长分配 + case YL_TEAM_LEADER_ASSIGN: //养护组长分配 需修改更新工单数据 见切面 log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_ASSIGN.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); AppGardenTaskTeamLeaderAssignReqVO assignReqVO = new AppGardenTaskTeamLeaderAssignReqVO(); assignReqVO.setId(reqVO.getTaskId()); @@ -318,7 +319,6 @@ public class AppGardenWorkOrderController { throw exception(APP_AGREE_CHOOSE); } assignReqVO.setAgree(status); - // TODO 需修改更新工单数据 this.ylTeamLeaderAssignWOrder(assignReqVO); log.info("当前操作:"+OperateTypeEnum.YL_TEAM_LEADER_ASSIGN.getDesc()+"<--结束"); return success(true); @@ -349,9 +349,8 @@ public class AppGardenWorkOrderController { this.approveTask(inspectStartReqVO); log.info("当前操作:"+OperateTypeEnum.YL_INSPECTOR_START_FINISH.getDesc()+"<--结束"); return success(true); - case YL_INSPECTOR_START_RELAUNCH : //巡查员重新发起 + case YL_INSPECTOR_START_RELAUNCH : //巡查员重新发起 需修改更新工单数据 见切面 log.info("当前操作:"+OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getDesc()+"开始,操作类型:"+OperateTypeEnum.YL_WORKER_RETURN.getCode()+"-->"); - // TODO 需修改更新工单数据 AppGardenTaskApproveReqVO reStartReqVO = new AppGardenTaskApproveReqVO(); Integer reStatus = reqVO.getAgree(); if (reStatus == null || (reStatus != 0 && reStatus != 1)) { diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java new file mode 100644 index 0000000..9591b1b --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/aop/BuzStatusUpdateAspect.java @@ -0,0 +1,165 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.aop; + +import com.zteits.urbanops.framework.common.biz.system.dict.DictDataCommonApi; +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; +import com.zteits.urbanops.module.garden.api.road.RoadApi; +import com.zteits.urbanops.module.garden.dto.road.RoadStreetRespDTO; +import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoSaveReqVO; +import com.zteits.urbanops.module.workorder.controller.app.garden.vo.common.AppUniversalApprovalReqVO; +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; +import com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper; +import com.zteits.urbanops.module.workorder.enums.OperateTypeEnum; +import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; +import com.zteits.urbanops.module.workorder.service.maininfo.MainInfoService; +import jakarta.annotation.Resource; +import lombok.RequiredArgsConstructor; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.List; + +import static com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant.CONSERVE_LEVEL; +import static com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant.ORDER_STATUS_INIT; + +/** + * 类描述:切面更新工单表业务状态 + * 创建人:yanhuiqing + * 创建时间:2025/12/21 14:53 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 14:53 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +@Aspect +@Component +@RequiredArgsConstructor +public class BuzStatusUpdateAspect { + + @Resource + private MainInfoMapper mainInfoMapper; + + @Resource + private final RoadApi roadApi; + + @Resource + private BpmGardenService gardenService; + + @Resource + private final DictDataCommonApi dictDataCommonApi; + + // 切点:标注了@AutoUpdateBuzStatus的方法 + @Pointcut("@annotation(com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderBuzStatus)") + public void buzStatusUpdatePointcut() {} + + @Around("buzStatusUpdatePointcut()") + public Object around(ProceedingJoinPoint joinPoint) throws Throwable { + // 1. 获取方法参数(AppUniversalApprovalReqVO) + Object[] args = joinPoint.getArgs(); + AppUniversalApprovalReqVO reqVO = null; + for (Object arg : args) { + if (arg instanceof AppUniversalApprovalReqVO) { + reqVO = (AppUniversalApprovalReqVO) arg; + break; + } + } + if (reqVO == null) { + throw new IllegalArgumentException("方法参数中未找到AppUniversalApprovalReqVO"); + } + + // 2. 解析操作类型 + OperateTypeEnum operateType = OperateTypeEnum.getByCode(reqVO.getOperateType()); + Long workerDataId = reqVO.getWorkerDataId(); + Integer buzStatus = operateType.getCode(); + + // 3. 执行原有方法 + Object result = joinPoint.proceed(); + MainInfoDO dbData = mainInfoMapper.selectById(workerDataId); + MainInfoDO targeVO = new MainInfoDO(); + targeVO.setId(workerDataId); + targeVO.setOrderNo(dbData.getOrderNo()); + targeVO.setBusiLine(dbData.getBusiLine()); + //重新发起需更新表单数据 + if(OperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getCode().equals(operateType.getCode())){ + RoadStreetRespDTO roadStreetRespDTO = roadApi.getRoadInfoById(reqVO.getRoadId()); + + targeVO.setStreetId(roadStreetRespDTO.getStreetId()); + targeVO.setStreetName(roadStreetRespDTO.getStreetName()); + DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, reqVO.getPressingType().toString()); + targeVO.setCuringLevelId(Integer.valueOf(dictData.getValue())); + targeVO.setCuringLevelName(dictData.getLabel()); + targeVO.setCommitDate(LocalDateTime.now()); + targeVO.setCompanyId(SecurityFrameworkUtils.getCompanyId()); + targeVO.setBusiLine(SecurityFrameworkUtils.getBusiLine()); + targeVO.setUserId(SecurityFrameworkUtils.getLoginUserId()); + targeVO.setUserName(SecurityFrameworkUtils.getLoginUserNickname()); + List problemsImgs = reqVO.getProblemsImgs(); + if(ObjectUtils.isNotAllEmpty(problemsImgs) && problemsImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(problemsImgs,BpmCommonConstant.PROBLEM_IMG_GROUP,targeVO); + } + } + //养护组长分配需更新表单数据 + if(OperateTypeEnum.YL_TEAM_LEADER_ASSIGN.getCode().equals(operateType.getCode())){ + targeVO.setWorkerId(reqVO.getNextAssignee()); + } + //养护组长验收不通过 需更新表单数据 + if(OperateTypeEnum.YL_TEAM_LEADER_CONFIRM_REJECT.getCode().equals(operateType.getCode())){ + List returnImgs = reqVO.getReturnImgs(); + if(ObjectUtils.isNotAllEmpty(returnImgs) && returnImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(returnImgs,BpmCommonConstant.GARDEN_TEAMLEADER_RETURN_IMG,targeVO); + } + } + //养护员实施 需更新表单数据 + if(OperateTypeEnum.YL_WORKER_IMPLEMENT.getCode().equals(operateType.getCode())){ + //实施 审批已经执行 此处就无需执行 + /* + List problemsImgs = reqVO.getProblemsImgs(); + List startImgs = reqVO.getStartImgs(); + List processingImgs = reqVO.getProcessingImgs(); + List endImgs = reqVO.getEndImgs(); + List personImgs = reqVO.getPersonImgs(); + List materialImgs = reqVO.getMaterialImgs(); + + targeVO.setHandleResult(reqVO.getHandleResult()); + targeVO.setCoHandlers(reqVO.getCoHandlers()); + targeVO.setWorkerId(SecurityFrameworkUtils.getLoginUserId()); + targeVO.setWorkerName(SecurityFrameworkUtils.getLoginUserNickname()); + targeVO.setWorkerCompanyId(SecurityFrameworkUtils.getCompanyId()); + mainInfoMapper.updateById(targeVO); + + if(ObjectUtils.isNotAllEmpty(problemsImgs) && problemsImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(problemsImgs,BpmCommonConstant.PROBLEM_IMG_GROUP,targeVO); + } + if(ObjectUtils.isNotAllEmpty(startImgs) && startImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(startImgs,BpmCommonConstant.START_IMG_GROUP,targeVO); + } + if(ObjectUtils.isNotAllEmpty(processingImgs) && processingImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(processingImgs,BpmCommonConstant.PROCESS_IMG_GROUP,targeVO); + } + + if(ObjectUtils.isNotAllEmpty(endImgs) && endImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(endImgs,BpmCommonConstant.END_IMG_GROUP,targeVO); + } + if(ObjectUtils.isNotAllEmpty(personImgs) && personImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(personImgs,BpmCommonConstant.PERSON_IMG_GROUP,targeVO); + } + if(ObjectUtils.isNotAllEmpty(materialImgs) && materialImgs.size()>0){ + gardenService.attachmentInsertOrUpdate(materialImgs,BpmCommonConstant.MATERIAL_IMG_GROUP,targeVO); + }*/ + } + // 4. 自动更新buz_status + targeVO.setBuzStatus(buzStatus.toString()); + mainInfoMapper.updateById(targeVO); + + return result; + } +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ApproveGroup.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ApproveGroup.java new file mode 100644 index 0000000..e16d0e2 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ApproveGroup.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.group; + +/** + * 类描述:校验分组:审批/验收操作(组长验收、巡查员验收、巡查员结束工单) + * 创建人:yanhuiqing + * 创建时间:2025/12/21 16:02 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 16:02 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +public interface ApproveGroup { +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/AssignGroup.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/AssignGroup.java new file mode 100644 index 0000000..0ac38c1 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/AssignGroup.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.group; + +/** + * 类描述:校验分组:养护组长分配(YL_TEAM_LEADER_ASSIGN) + * 创建人:yanhuiqing + * 创建时间:2025/12/21 16:00 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 16:00 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +public interface AssignGroup { +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/DefaultGroup.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/DefaultGroup.java new file mode 100644 index 0000000..24848d4 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/DefaultGroup.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.group; + +/** + * 类描述:默认分组(所有操作都需要校验的字段,如taskId、operateType) + * 创建人:yanhuiqing + * 创建时间:2025/12/21 16:04 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 16:04 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +public interface DefaultGroup { +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ImplementGroup.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ImplementGroup.java new file mode 100644 index 0000000..8b7f208 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ImplementGroup.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.group; + +/** + * 类描述:校验分组:养护员实施(YL_WORKER_IMPLEMENT) + * 创建人:yanhuiqing + * 创建时间:2025/12/21 16:01 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 16:01 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +public interface ImplementGroup { +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/RelaunchGroup.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/RelaunchGroup.java new file mode 100644 index 0000000..ddb2ca3 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/RelaunchGroup.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.group; + +/** + * 类描述:校验分组:巡查员重新发起(YL_INSPECTOR_START_RELAUNCH) + * 创建人:yanhuiqing + * 创建时间:2025/12/21 16:03 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 16:03 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +public interface RelaunchGroup { +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ReturnGroup.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ReturnGroup.java new file mode 100644 index 0000000..273b86b --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/group/ReturnGroup.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.app.garden.group; + +/** + * 类描述:校验分组:退回操作(YL_WORKER_RETURN、YL_TEAM_LEADER_RETURN) + * 创建人:yanhuiqing + * 创建时间:2025/12/21 16:02 + * 修改人:yanhuiqing + * 修改时间:2025/12/21 16:02 + * 修改备注: + * + * @author yanhuiqing + * @version 1.0 + */ +public interface ReturnGroup { +} \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java index aeb16e7..65ad06a 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/common/AppUniversalApprovalReqVO.java @@ -1,9 +1,15 @@ package com.zteits.urbanops.module.workorder.controller.app.garden.vo.common; +import com.zteits.urbanops.module.workorder.controller.app.garden.group.DefaultGroup; +import com.zteits.urbanops.module.workorder.controller.app.garden.group.RelaunchGroup; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.List; import java.util.Set; @@ -23,28 +29,28 @@ import java.util.Set; public class AppUniversalApprovalReqVO { // -------------------------- 基础通用参数(所有操作必填) -------------------------- @Schema(description = "当前任务的taskKey", requiredMode = Schema.RequiredMode.REQUIRED, example = "ylTeamLeader") - @NotEmpty(message = "当前任务的taskKey不能为空") + @NotEmpty(message = "当前任务的taskKey不能为空",groups = DefaultGroup.class) private String taskKey; @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1234567890") - @NotEmpty(message = "任务编号不能为空") + @NotEmpty(message = "任务编号不能为空",groups = DefaultGroup.class) private String taskId; @Schema(description = "操作类型(210:养护组长退回,110:养护组长分配,200:巡查员结束工单,100:巡查员重新发起,220:养护员退回,120:养护员实施,130:养护组长验收通过,230:养护组长验收不通过,140:巡查员验收通过,240:巡查员验收不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @NotNull(message = "操作类型不能为空") + @NotNull(message = "操作类型不能为空",groups = DefaultGroup.class) private Integer operateType; // 原String改为Integer,适配数字类型 + @Schema(description = "工单的数据id", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "工单的数据id不能为空") + private Long workerDataId; + @Schema(description = "同意选择类型:0 同意,1 不同意", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") - //@NotNull(message = "同意选择类型不能为空") private Integer agree; @Schema(description = "操作理由(审批/退回理由)", requiredMode = Schema.RequiredMode.REQUIRED, example = "同意该工单处理结果") //@NotEmpty(message = "操作理由不能为空") private String reason; - @Schema(description = "工单的数据id", requiredMode = Schema.RequiredMode.REQUIRED) - //@NotEmpty(message = "工单的数据id不能为空") - private Long workerDataId; @Schema(description = "退回时的拍照图片") private List returnImgs; @@ -60,12 +66,9 @@ public class AppUniversalApprovalReqVO { private Set coHandlers; @Schema(description = "处理意见(养护员实施操作必填)", example = "已完成绿植修剪,效果符合要求") - //@NotEmpty(message = "处理意见不能为空", groups = MaintainerImplementGroup.class) + //@NotEmpty(message = "处理意见不能为空", groups = RelaunchGroup.class) private String handleResult; - @Schema(description = "开始的问题拍照图片") - private List problemsImgs; - @Schema(description = "实施开始的拍照图片") private List startImgs; @@ -80,4 +83,61 @@ public class AppUniversalApprovalReqVO { @Schema(description = "实施耗材的拍照图片") private List materialImgs; + + //-------------------------重新发起需提交表单数据------------------------ + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128") + @NotNull(message = "道路ID不能为空", groups = RelaunchGroup.class) + private Long roadId; + + @Schema(description = "道路名称", example = "测试道路") + private String roadName; + + @Schema(description = "开始的问题拍照图片") + private List problemsImgs; + + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @NotEmpty(message = "工单描述不能为空", groups = RelaunchGroup.class) + @Length(max = 500) + private String remark; + + + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2") + private Integer latLonType; + + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "经度不能为空", groups = RelaunchGroup.class) + private BigDecimal lat; + + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "维度不能为空", groups = RelaunchGroup.class) + private BigDecimal lon; + + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "经纬度地址不能为空", groups = RelaunchGroup.class) + private String lonLatAddress; + + @Schema(description = " 养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "养护级别: 10:特级;11:一级:12:二级;13:三级", groups = RelaunchGroup.class) + private Integer pressingType; + + @Schema(description = "工单名称", example = "绿地卫生") + private String orderName; + + @Schema(description = "来源ID 工单来源 1、巡查,2、游客居民,3、12345,4、网格", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + //@NotNull(message = "来源ID不能为空") + private Integer sourceId; + + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "园林") + //@NotEmpty(message = "来源名称不能为空") + private String sourceName; + + @Schema(description = "三方工单ID") + private String thirdWorkNo; + + @Schema(description = "完成时间") + private LocalDateTime finishDate; + + @Schema(description = "工单业务线", example = "yl") + private String busiLine; + //-------------------------重新发起需提交表单数据------------------------ } \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java index 59cd218..19710da 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java @@ -26,4 +26,6 @@ public interface ErrorCodeConstants { ErrorCode APP_WORKER_NOT_EXISTS = new ErrorCode(1-900-001-006, "养护员必须指派,不能为空!"); ErrorCode APP_WORKER_ID_NOT_EMPTY = new ErrorCode(1-900-001-007, "WorkerDataId不能为空!"); + + ErrorCode APP_WORKER_LEVEL_ID_NOT_EXISTS = new ErrorCode(1-900-001-007, "养护级别编码错误,不存在!"); } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java index 48c09c7..9613977 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java @@ -14,9 +14,13 @@ import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.App import com.zteits.urbanops.module.workorder.controller.app.garden.vo.process.AppGardenApprovalDetailRespVO; import com.zteits.urbanops.module.workorder.controller.app.garden.vo.task.*; import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; import com.zteits.urbanops.module.workorder.dto.AppGardenWorkOrderReqVO; import com.zteits.urbanops.module.workorder.dto.AppGardenWorkOrderRespVO; import jakarta.validation.Valid; + +import java.util.List; + /** * @author yanhuiqing * @version 1.0 @@ -206,6 +210,12 @@ public interface BpmGardenService { */ public PageResult getUserByRoadIdAndRoleCode(PageParam param,Long roadId,String roleCode,String busiLine); - + /** + * 附件更新通用方法 + * @param imgList + * @param type + * @param workOrder + */ + public void attachmentInsertOrUpdate(List imgList, String type, MainInfoDO workOrder); } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java index 64eeeef..3f043d6 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java @@ -70,8 +70,7 @@ import static com.zteits.urbanops.framework.common.exception.util.ServiceExcepti import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertSet; import static com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant.*; -import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.MAIN_INFO_NOT_EXISTS; -import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.TEAM_LEADER_YL_NOT_EXISTS; +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.*; /** * @author yanhuiqing @@ -125,9 +124,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ public Long createWorkOrderQuick(AppGardenWorkOrderReqVO createRequestVo) { List imgList = createRequestVo.getImgs(); - //List streetImgList = createRequestVo.getStreetImgList(); - //List longRangeImgList = createRequestVo.getLongRangeImgList(); - // 插入 工单 + MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); @@ -136,7 +133,10 @@ public class BpmGardenServiceImpl implements BpmGardenService{ workOrder.setStreetName(roadStreetRespDTO.getStreetName()); workOrder.setBuzStatus(ORDER_STATUS_INIT);//工单业务初始化状态 后续操作状态 见 OperateTypeEnum workOrder.setOrderType(BpmCommonConstant.ORDER_TYPE_Q); - DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, createRequestVo.getPressingType().toString()); + DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, roadStreetRespDTO.getLevelId().toString()); + if(null == dictData){ + throw exception(APP_WORKER_LEVEL_ID_NOT_EXISTS); + } workOrder.setCuringLevelId(Integer.valueOf(dictData.getValue())); workOrder.setCuringLevelName(dictData.getLabel()); workOrder.setCompanyId(SecurityFrameworkUtils.getCompanyId()); @@ -150,8 +150,9 @@ public class BpmGardenServiceImpl implements BpmGardenService{ workOrder.setOrderNo(workOrderNum); workOrderMapper.insert(workOrder); - //附件插入 - attachmentApend(imgList,null,null,workOrder); + if(ObjectUtils.isNotAllEmpty(imgList) && imgList.size()>0){ + attachmentInsertOrUpdate(imgList,BpmCommonConstant.PROBLEM_IMG_GROUP,workOrder); + } // 发起 BPM 流程 Map processInstanceVariables = new HashMap<>(); processInstanceVariables.put(COMMON_QUICK_PROCESS_INITIATOR, SecurityFrameworkUtils.getLoginUserId()); @@ -244,6 +245,9 @@ public class BpmGardenServiceImpl implements BpmGardenService{ MainInfoDO workerOrder = workOrderMapper.selectById(id); workerOrder.setHandleResult(reqVO.getHandleResult()); workerOrder.setCoHandlers(reqVO.getCoHandlers()); + workerOrder.setWorkerId(SecurityFrameworkUtils.getLoginUserId()); + workerOrder.setWorkerName(SecurityFrameworkUtils.getLoginUserNickname()); + workerOrder.setWorkerCompanyId(SecurityFrameworkUtils.getCompanyId()); workOrderMapper.updateById(workerOrder); if(ObjectUtils.isNotAllEmpty(id) && ObjectUtils.isNotAllEmpty(problemsImgs) && problemsImgs.size()>0){ @@ -286,23 +290,6 @@ public class BpmGardenServiceImpl implements BpmGardenService{ Long userId = SecurityFrameworkUtils.getLoginUserId(); taskService.returnTask(userId, targetVO); - /*if(TaskNodeEnum.YL_TEAM_LEADER.getNodeName().equals(currentTaskey)){ - Task task = taskService.getTask(reqVO.getId()); - String processInstanceId = task.getProcessInstanceId(); - - Map variables = new HashMap<>(); - variables.put("isReturnedToFirstApproval", true); - variables.put("isFirstEnterFirstApproval", false); - // 更新流程实例级别变量 - runtimeService.setVariables(processInstanceId, variables); - }*/ - Long id = reqVO.getWorkerDataId(); - List returnImgs = reqVO.getReturnImgs(); - if(ObjectUtils.isNotAllEmpty(id) && ObjectUtils.isNotAllEmpty(returnImgs) && returnImgs.size()>0){ - MainInfoDO workerOrder = workOrderMapper.selectById(id); - attachmentInsertOrUpdate(returnImgs,BpmCommonConstant.GARDEN_TEAMLEADER_RETURN_IMG,workerOrder); - } - } @Override @@ -529,7 +516,6 @@ public class BpmGardenServiceImpl implements BpmGardenService{ return newRespVO; } - /** * app端创建工单 * @param createRequestVo @@ -539,8 +525,6 @@ public class BpmGardenServiceImpl implements BpmGardenService{ @Transactional(rollbackFor = Exception.class) public Long createWorkOrder(AppGardenWorkOrderReqVO createRequestVo) { List imgList = createRequestVo.getImgs(); - //List streetImgList = createRequestVo.getStreetImgList(); - //List longRangeImgList = createRequestVo.getLongRangeImgList(); MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); @@ -550,7 +534,10 @@ public class BpmGardenServiceImpl implements BpmGardenService{ workOrder.setStreetName(roadStreetRespDTO.getStreetName()); workOrder.setBuzStatus(ORDER_STATUS_INIT);//工单业务初始化状态 后续操作状态 见 OperateTypeEnum workOrder.setOrderType(BpmCommonConstant.ORDER_TYPE_Q); - DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, createRequestVo.getPressingType().toString()); + DictDataRespDTO dictData = dictDataCommonApi.getDictData(CONSERVE_LEVEL, roadStreetRespDTO.getLevelId().toString()); + if(null == dictData){ + throw exception(APP_WORKER_LEVEL_ID_NOT_EXISTS); + } workOrder.setCuringLevelId(Integer.valueOf(dictData.getValue())); workOrder.setCuringLevelName(dictData.getLabel()); workOrder.setCommitDate(LocalDateTime.now()); @@ -558,12 +545,13 @@ public class BpmGardenServiceImpl implements BpmGardenService{ workOrder.setBusiLine(SecurityFrameworkUtils.getBusiLine()); workOrder.setUserId(SecurityFrameworkUtils.getLoginUserId()); workOrder.setUserName(SecurityFrameworkUtils.getLoginUserNickname()); - workOrder.setCommitDate(LocalDateTime.now()); + //workOrder.setFinishDate(LocalDateTime.now()); String workOrderNum = workOrderApi.generateWONum(BpmCommonConstant.WORK_ORDER_PREFFIX_GARDEN); workOrder.setOrderNo(workOrderNum); workOrderMapper.insert(workOrder); - //附件插入 - attachmentApend(imgList,null,null,workOrder); + if(ObjectUtils.isNotAllEmpty(imgList) && imgList.size()>0){ + attachmentInsertOrUpdate(imgList,BpmCommonConstant.PROBLEM_IMG_GROUP,workOrder); + } // 发起 BPM 流程 Long userId = SecurityFrameworkUtils.getLoginUserId(); Map processInstanceVariables = new HashMap<>(); @@ -598,7 +586,8 @@ public class BpmGardenServiceImpl implements BpmGardenService{ * @param type * @param workOrder */ - private void attachmentInsertOrUpdate(List imgList,String type,MainInfoDO workOrder){ + @Override + public void attachmentInsertOrUpdate(List imgList,String type,MainInfoDO workOrder){ if(ObjectUtils.isNotAllEmpty(imgList)){ AttachmentDO saveDO = new AttachmentDO(); saveDO.setBusiLine(workOrder.getBusiLine()); @@ -615,67 +604,12 @@ public class BpmGardenServiceImpl implements BpmGardenService{ } } - /** - * 附件插入 - * @param imgList 问题照片 P1 - * @param streetImgList 街道照片 P2 - * @param longRangeImgList 远景照片 P3 - * @param workOrder - */ - private void attachmentApend(List imgList, List streetImgList, List longRangeImgList, MainInfoDO workOrder) { - //问题图片 - if(ObjectUtils.isNotAllEmpty(imgList)){ - AttachmentDO saveDO = new AttachmentDO(); - saveDO.setBusiLine(workOrder.getBusiLine()); - saveDO.setBusiType(BpmCommonConstant.PROBLEM_IMG_GROUP); - saveDO.setOrderNo(workOrder.getOrderNo()); - String filePaths = String.join(",",imgList); - saveDO.setFileNames(filePaths); - LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() - .eq(AttachmentDO::getBusiLine, workOrder.getBusiLine()) - .eq(AttachmentDO::getBusiType, BpmCommonConstant.PROBLEM_IMG_GROUP) - .eq(AttachmentDO::getOrderNo, workOrder.getOrderNo()); - attachmentMapper.delete(deleteWrapper); - attachmentMapper.insert(saveDO); - } - //街道图片 - if(ObjectUtils.isNotAllEmpty(streetImgList)){ - AttachmentDO saveDO = new AttachmentDO(); - saveDO.setBusiLine(workOrder.getBusiLine()); - saveDO.setBusiType(BpmCommonConstant.START_IMG_GROUP); - saveDO.setOrderNo(workOrder.getOrderNo()); - String filePaths = String.join(",",streetImgList); - saveDO.setFileNames(filePaths); - LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() - .eq(AttachmentDO::getBusiLine, workOrder.getBusiLine()) - .eq(AttachmentDO::getBusiType, BpmCommonConstant.START_IMG_GROUP) - .eq(AttachmentDO::getOrderNo, workOrder.getOrderNo()); - attachmentMapper.delete(deleteWrapper); - attachmentMapper.insert(saveDO); - } - - if(ObjectUtils.isNotAllEmpty(longRangeImgList)){ - AttachmentDO saveDO = new AttachmentDO(); - saveDO.setBusiLine(workOrder.getBusiLine()); - saveDO.setBusiType(BpmCommonConstant.PROCESS_IMG_GROUP); - saveDO.setOrderNo(workOrder.getOrderNo()); - String filePaths = String.join(",",longRangeImgList); - saveDO.setFileNames(filePaths); - LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() - .eq(AttachmentDO::getBusiLine, workOrder.getBusiLine()) - .eq(AttachmentDO::getBusiType, BpmCommonConstant.PROCESS_IMG_GROUP) - .eq(AttachmentDO::getOrderNo, workOrder.getOrderNo()); - attachmentMapper.delete(deleteWrapper); - attachmentMapper.insert(saveDO); - } - - - } @Override public void updateWorkOrderStatus(Long id, Integer status) { validateExists(id); - workOrderMapper.updateById(new MainInfoDO().setId(id).setStatus(status)); + MainInfoDO mainInfoDO = new MainInfoDO().setId(id).setStatus(status).setFinishDate(LocalDateTime.now()); + workOrderMapper.updateById(mainInfoDO); } private void validateExists(Long id) { if (workOrderMapper.selectById(id) == null) { @@ -723,6 +657,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ mainInfoPageReqVo.setOrderName(content); } } + mainInfoPageReqVo.setOrderType(ORDER_TYPE_Q);//快速工单只能查询 Q的数据 PageResult pageList = workOrderMapper.selectPage(loginUserId, mainInfoPageReqVo); return BpmGardenWorkOrderConverter.INSTANCE.convertPage(pageList, attachmentMapper); } -- libgit2 0.21.4