From 95c90e04b516325648e8a3d69e726555d1f7d05e Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期三, 10 九月 2025 14:51:07 +0800 Subject: [PATCH] 设备借用、归还流程审批调整 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java | 78 ++++++++++++++++++++++++--------------- 1 files changed, 48 insertions(+), 30 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java index cf33510..dcca6a6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java @@ -194,7 +194,7 @@ throw new JeecgBootException("瑕佹彁浜ょ殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); } if (!EquipmentLeanOutStatusEnum.WAIT_SUBMIT.name().equals(entity.getLeanStatus())) { - throw new JeecgBootException("褰撳墠鏁版嵁鐘舵�佷笉鍏佽缂栬緫锛�"); + throw new JeecgBootException("璇ュ伐鍗曞凡杩涜杩囨彁浜わ紒"); } //妫�鏌ヨ澶� EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); @@ -204,9 +204,15 @@ if (!AssetStatusEnum.NORMAL.name().equals(equipment.getAssetStatus())) { throw new JeecgBootException("姝よ澶囧綋鍓嶈祫浜х姸鎬佷笉鍏佽鍊熷嚭锛�"); } + // 鍒嗛厤缁欎娇鐢ㄥ崟浣嶉瀵� + List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0008); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鍗曚綅棰嗗锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if (sysUser == null) { - throw new JeecgBootException("褰撳墠鐢ㄦ埛鏃犳硶缂栬緫鍊熺敤璁板綍锛�"); + if (sysUser == null || !BusinessCodeConst.PCR0004.equals(sysUser.getPost())) { + throw new JeecgBootException("涓嶆槸璁惧绠$悊鍛橈紝鏃犳硶鎻愪氦姝ゅ伐鍗曪紒"); } UpdateWrapper<EamEquipmentLeanOut> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("lean_status", EquipmentLeanOutStatusEnum.WAIT_APPROVAL_OUT.name()); @@ -230,8 +236,6 @@ variables.put("comment", entity.getLeanReason()); } variables.put("proofreading", true); - List<String> usernames = new ArrayList<>(); - usernames.add(equipment.getEquipmentManager()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("equipment_lean_out", variables); if (result != null) { @@ -259,9 +263,14 @@ if (equipment == null) { throw new JeecgBootException("璁惧涓嶅瓨鍦紒"); } + // 鍒嗛厤缁欏�熺敤鍗曚綅棰嗗 + List<UserSelector> userSelectors = sysUserService.selectOperatorList(entity.getLeanDepartId(), BusinessCodeConst.PCR0008); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鍗曚綅棰嗗锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if (sysUser == null) { - throw new JeecgBootException("褰撳墠鐢ㄦ埛鏃犳硶缂栬緫灏佸瓨璁板綍锛�"); + if (sysUser == null || !BusinessCodeConst.PCR0004.equals(sysUser.getPost())) { + throw new JeecgBootException("涓嶆槸璁惧绠$悊鍛橈紝鏃犳硶鎻愪氦姝ゅ伐鍗曪紒"); } //鍚姩瀹℃壒娴佺▼ flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getCode() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧褰掕繕", @@ -271,11 +280,7 @@ variables.put("organization", "鏂板褰掕繕榛樿褰掕繕娴佺▼"); variables.put("comment", "鏂板褰掕繕榛樿褰掕繕娴佺▼"); variables.put("proofreading", true); - // 鍒嗛厤缁欒澶囩鐞嗗憳 - List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004); - if (CollectionUtil.isEmpty(userSelectors)) { - throw new JeecgBootException("璁惧鏈垎閰嶇粰璁惧绠$悊鍛橈紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); - } + List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("equipment_return", variables); @@ -361,10 +366,7 @@ entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_APPROVAL_IN.name()); } else { entity.setLeanStatus(EquipmentLeanOutStatusEnum.REJECT.name()); - equipment.setAssetStatus(AssetStatusEnum.LEAN_OUT.name()); - eamEquipmentService.updateById(equipment); } - request.setComment("浣跨敤鍗曚綅鍑哄巶瀹℃壒缁撴潫"); break; case WAIT_APPROVAL_IN: entity.setLeanOutApprovalUser(user.getUsername()); @@ -375,26 +377,31 @@ entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_RETURN.name()); } else { entity.setLeanStatus(EquipmentLeanOutStatusEnum.REJECT.name()); - equipment.setAssetStatus(AssetStatusEnum.LEAN_OUT.name()); - eamEquipmentService.updateById(equipment); } - request.setComment("鍊熺敤鍗曚綅鍏ュ巶瀹℃壒缁撴潫"); break; case WAIT_CONFIRM_RETURN: entity.setLeanOutConfirmUser(user.getUsername()); entity.setLeanOutConfirmComment(request.getLeanOutConfirmComment()); entity.setLeanOutConfirmTime(new Date()); - entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM_BORROW.name()); - request.setComment("鍊熺敤鍗曚綅褰掕繕瀹℃壒缁撴潫"); + entity.setLeanOutConfirmDealType(request.getLeanOutConfirmDealType()); + if (CommonConstant.APPROVED.equals(request.getLeanOutConfirmDealType())) { + entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM_BORROW.name()); + } else { + entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_RETURN.name()); + } break; case WAIT_CONFIRM_BORROW: entity.setUseConfirmUser(user.getUsername()); entity.setUseConfirmComment(request.getUseConfirmComment()); entity.setUseConfirmTime(new Date()); - entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name()); - equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); - eamEquipmentService.updateById(equipment); - request.setComment("浣跨敤鍗曚綅褰掕繕纭缁撴潫"); + entity.setUseConfirmDealType(request.getUseConfirmDealType()); + if (CommonConstant.APPROVED.equals(request.getUseConfirmDealType())) { + entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name()); + equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); + eamEquipmentService.updateById(equipment); + } else { + entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_RETURN.name()); + } break; } } @@ -433,31 +440,42 @@ // 椹冲洖 values.put("approvalDealType", request.getUseApprovalDealType()); } + request.setComment("浣跨敤鍗曚綅鍑哄巶瀹℃壒瀹屾垚"); break; case WAIT_APPROVAL_IN: // 鍊熺敤鍗曚綅鍏ュ巶瀹℃壒瀹屾垚 values.put("dataId", entity.getId()); values.put("organization", request.getLeanOutApprovalComment()); values.put("comment", request.getLeanOutApprovalComment()); + request.setComment("鍊熺敤鍗曚綅鍏ュ巶瀹℃壒瀹屾垚"); break; case WAIT_CONFIRM_RETURN: // 褰掕繕鍗曚綅纭瀹屾垚 values.put("dataId", entity.getId()); values.put("organization", request.getLeanOutConfirmComment()); values.put("comment", request.getLeanOutConfirmComment()); - // 鑾峰彇涓嬩竴姝ュ鎵逛汉 - userSelectors = sysUserService.selectOperatorList(equipment.getOrgId(), BusinessCodeConst.PCR0008); - if (CollectionUtil.isEmpty(userSelectors)) { - throw new JeecgBootException("鏈垎閰嶄娇鐢ㄨ溅闂村崟浣嶉瀵硷紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + if (CommonConstant.APPROVED.equals(request.getLeanOutConfirmDealType())) { + // 閫氳繃 + values.put("approvalDealType", request.getLeanOutConfirmDealType()); + // 鑾峰彇涓嬩竴姝ュ鎵逛汉 + userSelectors = sysUserService.selectOperatorList(equipment.getOrgId(), BusinessCodeConst.PCR0008); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("鏈垎閰嶄娇鐢ㄨ溅闂村崟浣嶉瀵硷紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + } else { + // 椹冲洖 + values.put("approvalDealType", request.getLeanOutConfirmDealType()); } - userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); - values.put("NextAssignee", userApprovalList); + request.setComment("鍊熺敤鍗曚綅棰嗗纭瀹屾垚"); break; case WAIT_CONFIRM_BORROW: // 鍊熷嚭鏂圭‘璁ゅ畬鎴� values.put("dataId", entity.getId()); values.put("organization", request.getUseConfirmComment()); values.put("comment", request.getUseConfirmComment()); + request.setComment("浣跨敤鍗曚綅棰嗗纭瀹屾垚"); break; } request.setValues(values); -- Gitblit v1.9.3