diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java index 27cc191..a4402d9 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java @@ -234,6 +234,7 @@ public class AppGardenWorkOrderAIController { reStartReqVO.setReason(reqVO.getReason()); reStartReqVO.setId(reqVO.getTaskId()); reStartReqVO.setRoadId(reqVO.getRoadId()); + reStartReqVO.setBusiLine(reqVO.getBusiLine()); aiService.approveTask(reStartReqVO); log.info("当前操作:"+AIOperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getDesc()+"<--结束"); return success(true); diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java index 2f6a565..6d2dcdd 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java @@ -235,6 +235,7 @@ public class AppGardenWorkOrderInspectorController { reStartReqVO.setReason(reqVO.getReason()); reStartReqVO.setId(reqVO.getTaskId()); reStartReqVO.setRoadId(reqVO.getRoadId()); + reStartReqVO.setBusiLine(reqVO.getBusiLine()); inspectorService.approveTask(reStartReqVO); log.info("当前操作:"+InspectorOperateTypeEnum.YL_INSPECTOR_START_RELAUNCH.getDesc()+"<--结束"); return success(true); diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskInspectorApproveReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskInspectorApproveReqVO.java index d8febb2..3c88e5a 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskInspectorApproveReqVO.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/vo/task/AppGardenTaskInspectorApproveReqVO.java @@ -48,4 +48,7 @@ public class AppGardenTaskInspectorApproveReqVO { @Schema(description = "退回时的拍照图片") private List returnImgs; + @Schema(description = "业务线") + private String busiLine; + } \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmAIServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmAIServiceImpl.java index b2a02b4..2f9fade 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmAIServiceImpl.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmAIServiceImpl.java @@ -295,6 +295,31 @@ public class BpmAIServiceImpl implements BpmAIService{ //重新发起判断 三海区域 boolean isSanhai = isSanhaiByRoadId(reqVO.getRoadId()); variables.put(BPM_COMMON_PROD_ISSANHAI,isSanhai); + if(!isSanhai){//非三海的到养护组长 + String instanceId = taskService.getTask(reqVO.getId()).getProcessInstanceId(); + ProcessInstance processInstance = processInstanceService.getProcessInstance(instanceId); + Map processInstanceVariables = processInstance.getProcessVariables(); + String busiLine = reqVO.getBusiLine(); + String roadId = reqVO.getRoadId(); + String roleCode = BusiLineTeamLeaderRoleCodeEnum.getByCode(busiLine).getRoleCode(); + + if(StringUtil.isEmpty(roleCode)){// 找不到 默认为园林组长的角色 + roleCode = BpmCommonConstant.TEAM_LEADER_YL; + } + List userList = workOrderExtMapper.getUserByRoadIdAndRoleCode(roadId,roleCode,busiLine); + if(org.springframework.util.ObjectUtils.isEmpty(userList)){ + throw exception(TEAM_LEADER_YL_NOT_EXISTS); + } + // 提取id到List + List idList = userList.stream() + // 映射:将AdminUserRespDTO对象转为其id属性 + .map(AdminUserRespDTO::getId) + // 收集结果到List + .collect(Collectors.toList()); + processInstanceVariables.put(BPM_COMMON_PROD_LEADERID, idList.get(0));//养护组长分配 + //流程变量重新赋值 + runtimeService.setVariables(instanceId,processInstanceVariables); + } } //TODO 重新发起需更新工单数据库 diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java index 937e544..49c8020 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmInspectorServiceImpl.java @@ -287,9 +287,32 @@ public class BpmInspectorServiceImpl implements BpmInspectorService{ //重新发起判断 三海区域 boolean isSanhai = isSanhaiByRoadId(reqVO.getRoadId()); variables.put(BPM_COMMON_PROD_ISSANHAI,isSanhai); - } - //TODO 重新发起需更新工单数据库 + if(!isSanhai){//非三海的到养护组长 + String instanceId = taskService.getTask(reqVO.getId()).getProcessInstanceId(); + ProcessInstance processInstance = processInstanceService.getProcessInstance(instanceId); + Map processInstanceVariables = processInstance.getProcessVariables(); + String busiLine = reqVO.getBusiLine(); + String roadId = reqVO.getRoadId(); + String roleCode = BusiLineTeamLeaderRoleCodeEnum.getByCode(busiLine).getRoleCode(); + if(StringUtil.isEmpty(roleCode)){// 找不到 默认为园林组长的角色 + roleCode = BpmCommonConstant.TEAM_LEADER_YL; + } + List userList = workOrderExtMapper.getUserByRoadIdAndRoleCode(roadId,roleCode,busiLine); + if(org.springframework.util.ObjectUtils.isEmpty(userList)){ + throw exception(TEAM_LEADER_YL_NOT_EXISTS); + } + // 提取id到List + List idList = userList.stream() + // 映射:将AdminUserRespDTO对象转为其id属性 + .map(AdminUserRespDTO::getId) + // 收集结果到List + .collect(Collectors.toList()); + processInstanceVariables.put(BPM_COMMON_PROD_LEADERID, idList.get(0));//养护组长分配 + //流程变量重新赋值 + runtimeService.setVariables(instanceId,processInstanceVariables); + } + } targetVO.setVariables(variables); //TODO 审批候选人需要赋值 Map> nextAssignees = new HashMap<>();