From 548de3053898bc6571c90d014a40050c39a7d195 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期六, 02 八月 2025 15:33:07 +0800 Subject: [PATCH] 二保添加流转节点 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java | 76 +++++++++++++++++++++++++++----------- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java | 4 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml | 3 + lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml | 2 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml | 21 ++++------ 5 files changed, 70 insertions(+), 36 deletions(-) diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java index 9624cd6..4a52c29 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java @@ -183,4 +183,8 @@ //鍨嬪彿 @TableField(exist = false) private String equipmentModel; + + //娴佽浆鑺傜偣浣跨敤鏌ヨ + @TableField(exist = false) + private String procInstId; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml index 5034d04..d0e591c 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml @@ -3,10 +3,11 @@ <mapper namespace="org.jeecg.modules.eam.mapper.EamSecondMaintenanceOrderMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder"> - select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model + select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model,f.process_instance_id as 'procInstId' from eam_second_maintenance_order wmo inner join eam_equipment e on wmo.equipment_id = e.id + left join flow_my_business f on f.data_id=wmo.id ${ew.customSqlSegment} </select> </mapper> diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java index a24b234..97aaf33 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java @@ -80,8 +80,6 @@ @Autowired private IEamEquipmentService eamEquipmentService; @Autowired - private IEamReportRepairService eamReportRepairService; - @Autowired private IEamEquipmentExtendService eamEquipmentExtendService; @Autowired private IEamBaseHFCodeService hfCodeService; @@ -430,43 +428,52 @@ throw new JeecgBootException("璁惧鏈瓨鍦ㄦ鏌ヤ汉锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); }else{ userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); - values.put("NextAssignee", userApprovalList); values.put("dataId", entity.getId()); - if (StrUtil.isEmpty(request.getDealDescription())){ - request.setDealDescription(""); + if (StrUtil.isEmpty(request.getManageUserResult())){ + request.setManageUserResult(""); } values.put("organization",request.getDealDescription()); - values.put("comment", request.getDealDescription()); + values.put("comment", request.getManageUserResult()); values.put("manageUserResult",request.getManageUserResult()); - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name()); - entity.setManageUser(user.getUsername()); - entity.setProblemDescription(request.getProblemDescription()); - entity.setManageUserResult(request.getManageUserResult()); - entity.setDealDescription(request.getDealDescription()); - entity.setConfirmTime(new Date()); request.setComment(request.getDealDescription()); if (request.getManageUserResult().equals("2")){ - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name()); + entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + }else { + values.put("NextAssignee", userApprovalList); + entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name()); + entity.setConfirmTime(new Date()); + entity.setManageUser(user.getUsername()); + entity.setProblemDescription(request.getProblemDescription()); + entity.setManageUserResult(request.getManageUserResult()); + entity.setDealDescription(request.getDealDescription()); } } break; case WAIT_INSPECTOR_CONFIRM: //妫�鏌ヤ汉纭 - if (StrUtil.isEmpty(request.getDealDescription())){ - request.setDealDescription(""); + if (StrUtil.isEmpty(request.getInspectConfirmComment())){ + request.setInspectConfirmComment(""); } values.put("dataId", entity.getId()); values.put("organization",request.getInspectConfirmComment()); values.put("comment", request.getInspectConfirmComment()); values.put("inspectorResult",request.getInspectorResult()); - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); - entity.setInspector(user.getUsername()); - entity.setInspectorResult(request.getInspectorResult()); - entity.setInspectConfirmComment(request.getInspectConfirmComment()); - entity.setInspectConfirmTime(new Date()); - request.setComment(request.getDealDescription()); + request.setComment(request.getInspectConfirmComment()); if (request.getInspectorResult().equals("2")){ - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name()); + entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_ADMIN_CONFIRM.name()); + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0004); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈瓨鍦ㄧ鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + }else{ + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + } + }else { + entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); + entity.setInspector(user.getUsername()); + entity.setInspectorResult(request.getInspectorResult()); + entity.setInspectConfirmComment(request.getInspectConfirmComment()); + entity.setInspectConfirmTime(new Date()); } break; default: @@ -478,6 +485,31 @@ if (!result.isSuccess()) { throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�"); } + if (user.getPost().equals(BusinessCodeConst.PCR0004)&&request.getManageUserResult().equals("2")){ + //绠$悊鍛樻嫆缁濓紝浼氱鑺傜偣淇敼瀵瑰簲鍏崇郴 + List<FlowMyBusiness> list = flowMyBusinessService.list(new LambdaQueryWrapper<FlowMyBusiness>().eq(FlowMyBusiness::getProcessInstanceId, request.getInstanceId())); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(item -> { + if (item.getTaskNameId().equals("maintenance_task")) { + //鑾峰彇缁翠慨宸ュ矖浣嶇敤鎴� + List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); + if (!CollectionUtils.isEmpty(userSelectorList)) { + List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + item.setTodoUsers(JSON.toJSONString(usernameList)); + } + } + if (item.getTaskNameId().equals("operator_task")) { + //鑾峰彇鎿嶄綔浜哄矖浣嶇敤鎴� + List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001); + if (!CollectionUtils.isEmpty(userSelectorList)) { + List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + item.setTodoUsers(JSON.toJSONString(usernameList)); + } + } + }); + flowMyBusinessService.updateBatchById(list); + } + } //淇濆瓨宸ュ崟 eamSecondMaintenanceOrderMapper.updateById(entity); return entity; diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml index 24e3fe8..5fdbd45 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml @@ -47,7 +47,7 @@ <select id="ListMyBusiness" resultType="org.jeecg.modules.flowable.domain.dto.FlowTaskDto"> SELECT latest_task.ID_ AS 'taskId', - latest_task.PROC_DEF_ID_ AS 'procInstId', + latest_task.PROC_INST_ID_ AS 'procInstId', latest_task.PROC_DEF_ID_ AS 'processInstanceId', ACT_RE_PROCDEF.CATEGORY_ AS 'category', ACT_RE_PROCDEF.NAME_ AS 'procDefName', diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml index edb48a8..a824ccb 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml @@ -28,8 +28,7 @@ SELECT p.PROC_INST_ID_ AS procInstId, p.BUSINESS_KEY_ AS businessKey, - p.START_TIME_ AS procStartTime, - p.END_TIME_ AS procEndTime, + a.EXECUTION_ID_ AS executionId, a.ACT_ID_, COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) AS actName, a.ACT_TYPE_ AS actType, @@ -38,10 +37,12 @@ c.NAME_ AS taskName, c.ASSIGNEE_ AS assignee, c.DESCRIPTION_ AS description, --- 浣跨敤 LEAD 鑾峰彇涓嬩竴涓椿鍔ㄤ俊鎭� - LEAD ( COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActName, - LEAD ( a.ACT_TYPE_ ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActType, - LEAD ( a.START_TIME_ ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActStartTime + LEAD ( COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) ) OVER ( PARTITION BY p.PROC_INST_ID_, a.EXECUTION_ID_ + ORDER BY a.START_TIME_ ) AS nextActName, + LEAD ( a.ACT_TYPE_ ) OVER ( PARTITION BY p.PROC_INST_ID_, a.EXECUTION_ID_ + ORDER BY a.START_TIME_ ) AS nextActType, + LEAD ( a.START_TIME_ ) OVER ( PARTITION BY p.PROC_INST_ID_, a.EXECUTION_ID_ + ORDER BY a.START_TIME_ ) AS nextActStartTime FROM act_hi_procinst p LEFT JOIN act_hi_actinst a ON p.PROC_INST_ID_ = a.PROC_INST_ID_ @@ -52,23 +53,19 @@ ) SELECT procInstId, businessKey, --- 褰撳墠娲诲姩锛坲serTask锛変俊鎭� actName AS userTaskName, taskName, assignee, actStartTime, actEndTime, description, --- 涓嬩竴涓椿鍔紙sequenceFlow锛変俊鎭� nextActName AS sequenceFlowName, nextActStartTime AS sequenceFlowStartTime FROM ActivitySequence WHERE - actType = 'userTask' -- 绛涢�夊綋鍓嶆椿鍔ㄤ负 userTask - - AND nextActType = 'sequenceFlow' -- 涓斾笅涓�涓椿鍔ㄤ负 sequenceFlow - + actType = 'userTask' + AND nextActType = 'sequenceFlow' ORDER BY actStartTime; </select> -- Gitblit v1.9.3