From 42130546e4f61741305dbaba02fc6f8692116a7a Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期三, 23 七月 2025 15:10:42 +0800 Subject: [PATCH] 三保变更流程审批 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 160 insertions(+), 5 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java index f70581a..ced2b3b 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java @@ -251,6 +251,8 @@ variables.put("organization", applyReasonTypeText); variables.put("comment", applyReasonTypeText); } + variables.put("proofreading", true); + variables.put("NextAssignee", userApprovalList); Result<?> result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_change", variables); if(result == null || !result.isSuccess()) { throw new JeecgBootException("鍚姩娴佺▼澶辫触锛�"); @@ -300,13 +302,13 @@ } // 璁剧疆娴佺▼鍙橀噺 - setupProcessVariables(request, order, user, equipment); + setupProcessVariables(request, entity, user, equipment); // 瀹屾垚娴佺▼浠诲姟 Result result = flowTaskService.complete(request); // 鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊宸ュ崟鐘舵�� - updateOrderStatus(result, request, order, user); + updateOrderStatus(result, request, entity, order, user); //鏇存柊宸ュ崟淇℃伅 this.getBaseMapper().updateById(entity); @@ -316,15 +318,168 @@ /** * 璁剧疆娴佺▼鍙橀噺 */ - private void setupProcessVariables(EamThirdMaintenanceChangeRequest request, EamThirdMaintenanceOrder order, LoginUser user, EamEquipment equipment) { + private void setupProcessVariables(EamThirdMaintenanceChangeRequest request, EamThirdMaintenanceChange entity, LoginUser user, EamEquipment equipment) { + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + List<String> userApprovalList; + List<UserSelector> userSelectors; + ThirdMaintenanceChangeStatusEnum status = ThirdMaintenanceChangeStatusEnum.getInstance(entity.getChangeStatus()); + switch (status) { + case EQUIPMENT_MANAGER_SIGNING: + // 浣跨敤鍗曚綅涓荤瀹ょ骇棰嗗瀹℃牳 + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getEquipmentManagerComment())) { + values.put("organization", "涓変繚宸ュ崟鍙樻洿浣跨敤鍗曚綅涓荤瀹ょ骇棰嗗"); + values.put("comment", "涓変繚宸ュ崟鍙樻洿浣跨敤鍗曚綅涓荤瀹ょ骇棰嗗"); + request.setComment("涓変繚宸ュ崟鍙樻洿閮ㄩ棬棰嗗瀹℃牳"); + } else { + values.put("organization", request.getEquipmentManagerComment()); + values.put("comment", request.getEquipmentManagerComment()); + request.setComment(request.getEquipmentManagerComment()); + } + if (BusinessCodeConst.APPROVED.equals(request.getEquipmentManagerSignatureResult())) { + values.put("confirmation", request.getEquipmentManagerSignatureResult()); + ThirdMaintenanceChangeReasonEnum applyReasonType = ThirdMaintenanceChangeReasonEnum.getInstance(request.getApplyReasonType()); + switch (applyReasonType) { + case PRODUCTION_WORK_ORDER_EXPEDITED: + //鐢熶骇浠诲姟 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0012); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐢熶骇鎸囨尌閮ㄥ绾ч瀵硷紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + break; + case EQUIPMENT_BREAKDOWN_REPAIR: + //璁惧鏁呴殰 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0013); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨鍖洪暱锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + break; + case EQUIPMENT_SCRAPPED: + //璁惧鎶ュ簾 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0014); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰璧勪骇绠$悊閮紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + break; + case EQUIPMENT_MAJOR: + //璁惧澶т慨銆侀」淇� + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0016); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰杩愮淮鍟嗗姟瀹や富浠伙紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + break; + case EQUIPMENT_RETROFITTING: + //璁惧鎼縼銆佹敼閫� + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0015); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰椤圭洰涓荤閮紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + break; + default: + throw new JeecgBootException("鍙樻洿鐢宠鍘熷洜鏃犳硶璇嗗埆锛屽鎵瑰け璐ワ紒"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + } else { + values.put("confirmation", request.getEquipmentManagerSignatureResult()); + } + break; + case DEPART_MANAGER_SIGNING: + //閮ㄩ棬棰嗗瀹℃牳 + values.put("confirmation", request.getDepartManagerSignatureResult()); + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getDepartManagerComment())) { + values.put("organization", "涓変繚宸ュ崟鍙樻洿閮ㄩ棬棰嗗瀹℃牳"); + values.put("comment", "涓変繚宸ュ崟鍙樻洿閮ㄩ棬棰嗗瀹℃牳"); + request.setComment("涓変繚宸ュ崟鍙樻洿閮ㄩ棬棰嗗瀹℃牳"); + } else { + values.put("organization", request.getDepartManagerComment()); + values.put("comment", request.getDepartManagerComment()); + request.setComment(request.getDepartManagerComment()); + } + if (BusinessCodeConst.APPROVED.equals(request.getDepartManagerSignatureResult())) { + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0017); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰杩愮淮绠$悊瀹ゅ涓讳换锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + } else { + values.put("confirmation", request.getDepartManagerSignatureResult()); + } + break; + case PRODUCTION_SUPPORT_SIGNING: + // 缁翠慨瀹や富浠荤瀛� + values.put("dataId", entity.getId()); + if(StringUtils.isBlank(request.getDepartManagerComment())) { + values.put("organization", "涓変繚宸ュ崟鍙樻洿鐢熶骇淇濋殰閮ㄥ鏍�"); + values.put("comment", "涓変繚宸ュ崟鍙樻洿鐢熶骇淇濋殰閮ㄥ鏍�"); + request.setComment("涓変繚宸ュ崟鍙樻洿鐢熶骇淇濋殰閮ㄥ鏍�"); + } else { + values.put("organization", request.getProductionSupportComment()); + values.put("comment", request.getProductionSupportComment()); + request.setComment(request.getProductionSupportComment()); + } + break; + } + request.setValues(values); } /** * 鏇存柊宸ュ崟鐘舵�� */ - private void updateOrderStatus(Result result, EamThirdMaintenanceChangeRequest request, EamThirdMaintenanceOrder order, LoginUser user) { - + private void updateOrderStatus(Result result, EamThirdMaintenanceChangeRequest request, EamThirdMaintenanceChange entity, EamThirdMaintenanceOrder order, LoginUser user) { + if (result.isSuccess()) { + ThirdMaintenanceChangeStatusEnum status = ThirdMaintenanceChangeStatusEnum.getInstance(entity.getChangeStatus()); + switch (status) { + case EQUIPMENT_MANAGER_SIGNING: + // 璁剧疆entity + entity.setEquipmentManagerSignature(user.getUsername()); + entity.setEquipmentManagerSignatureTime(new Date()); + entity.setEquipmentManagerComment(request.getEquipmentManagerComment()); + entity.setEquipmentManagerSignatureResult(request.getEquipmentManagerSignatureResult()); + if(BusinessCodeConst.APPROVED.equals(request.getEquipmentManagerSignatureResult())) { + //閫氳繃 + entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.DEPART_MANAGER_SIGNING.name()); + } else { + //椹冲洖 + entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.REJECTED.name()); + } + break; + case DEPART_MANAGER_SIGNING: + entity.setDepartManagerSignature(user.getUsername()); + entity.setDepartManagerSignatureTime(new Date()); + entity.setDepartManagerComment(request.getDepartManagerComment()); + entity.setDepartManagerSignatureResult(request.getDepartManagerSignatureResult()); + if(BusinessCodeConst.APPROVED.equals(request.getDepartManagerSignatureResult())) { + // 閫氳繃 + entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.PRODUCTION_SUPPORT_SIGNING.name()); + } else { + //椹冲洖 + entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.REJECTED.name()); + } + break; + case PRODUCTION_SUPPORT_SIGNING: + entity.setProductionSupportSignature(user.getUsername()); + entity.setProductionSupportSignatureTime(new Date()); + entity.setProductionSupportSignatureResult(request.getProductionSupportSignatureResult()); + entity.setProductionSupportComment(request.getProductionSupportComment()); + if(BusinessCodeConst.APPROVED.equals(request.getProductionSupportSignatureResult())) { + //閫氳繃 + entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.COMPLETED.name()); + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); + order.setMaintenanceDate(entity.getDeferredMaintenanceDate()); + thirdMaintenanceOrderService.updateById(order); + }else { + //椹冲洖 + entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.REJECTED.name()); + } + break; + } + } } private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { -- Gitblit v1.9.3