From 0a19d4923b0a048aee0cda91c37f25bc6e140d54 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期三, 16 七月 2025 21:01:24 +0800 Subject: [PATCH] 修改接收字段 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java | 470 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 318 insertions(+), 152 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java index 4d4acbe..f7f3eaf 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java @@ -18,6 +18,7 @@ import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.StrUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.*; @@ -26,6 +27,7 @@ import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder; import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail; import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper; +import org.jeecg.modules.eam.request.EamInspectionOrderRequest; import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery; import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest; import org.jeecg.modules.eam.service.*; @@ -40,6 +42,8 @@ import org.jeecg.modules.system.service.IBaseFactoryService; import org.jeecg.modules.system.service.IBaseFactoryUserService; import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.vo.UserSelector; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -76,8 +80,6 @@ @Autowired private IEamEquipmentService eamEquipmentService; @Autowired - private IEamReportRepairService eamReportRepairService; - @Autowired private IEamEquipmentExtendService eamEquipmentExtendService; @Resource @@ -87,6 +89,8 @@ @Resource private IEamBaseHFCodeService eamBaseHFCodeService; + @Resource + private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService; @Override public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) { @@ -108,7 +112,7 @@ Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); - }else { + } else { return page; } } @@ -254,24 +258,19 @@ if (equipment == null) { throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); } -// if (StringUtils.isBlank(equipment.getEquipmentManager())) { -// throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); -// } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if (sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { - throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + if (sysUser == null || !BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { + throw new JeecgBootException("涓嶆槸缁翠慨宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); } entity.setRepairman(sysUser.getUsername()); - entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CHECK.name()); entity.setActualStartTime(new Date()); eamThirdMaintenanceOrderMapper.updateById(entity); //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(), + flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + (equipment.getInstallationPosition() == null ? "" : ";瀹夎浣嶇疆: " + equipment.getInstallationPosition()), entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null); Map<String, Object> variables = new HashMap<>(); -// boolean equipmentPrecisionFlag = precisionCheckDetailService.hasPrecisionCheckDetail(entity.getId()); -// variables.put("equipmentPrecisionFlag", equipmentPrecisionFlag); variables.put("dataId", entity.getId()); if (StrUtil.isEmpty(entity.getRemark())) { variables.put("organization", "鏂板涓変繚宸ュ崟榛樿鍚姩娴佺▼"); @@ -281,9 +280,10 @@ variables.put("comment", entity.getRemark()); } variables.put("proofreading", true); - //骞惰浠诲姟浼氱 - variables.put("maintenance_execution", Collections.singletonList(sysUser.getUsername())); -// variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager())); + // 璁剧疆涓嬩竴姝ュ鐞嗕汉 + List<String> usernames = new ArrayList<>(); + usernames.add(entity.getRepairman()); + variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables); if (result != null) { //鏇存柊璁惧淇濆吇鐘舵�� @@ -296,144 +296,310 @@ @Override @Transactional(rollbackFor = Exception.class) @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.THIRD_MAINTENANCE, businessTable = "eam_third_maintenance_order") - public EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest request) { - EamThirdMaintenanceOrder entity = eamThirdMaintenanceOrderMapper.selectById(request.getId()); - if (entity == null) { - throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + public EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest eamThirdMaintenanceRequest) { + EamThirdMaintenanceOrder eamThirdMaintenanceOrder = eamThirdMaintenanceOrderMapper.selectById(eamThirdMaintenanceRequest.getId()); + if (eamThirdMaintenanceOrder == null) { + throw new JeecgBootException("寰呭鐞嗙殑鏁版嵁宸插垹闄わ紝璇峰埛鏂伴噸璇曪紒"); } -// // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 -// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); -// if (user == null || StrUtil.isBlank(user.getId())) { -// throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒"); -// } -// request.setAssignee(user.getUsername()); -// // 鑾峰彇娴佺▼涓氬姟璁板綍 -// FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId()); -// if (flowMyBusiness == null) { -// throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�"); -// } -// -// boolean userAuthorized = isUserAuthorized(flowMyBusiness, user); -// if (!userAuthorized) { -// throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�"); -// } -// // 璁ら浠诲姟 -// if (!claimTask(flowMyBusiness.getTaskId(), user)) { -// throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒"); -// } -// -// EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); -// if (equipment == null) { -// throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); -// } -// -// ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus()); -// if (status == null) { -// return null; -// } -// //娴佺▼鍙橀噺 -// Map<String, Object> values = new HashMap<>(); -// List<String> userApprovalList; -// List<UserSelector> userSelectors; -// switch (status) { -// case UNDER_MAINTENANCE: -// boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); -// //鎵ц瀹屾垚 -// userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006); -// if (CollectionUtil.isEmpty(userSelectors)) { -// throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); -// } -// userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); -// values.put("dataId", entity.getId()); -// values.put("organization", "涓変繚鎵ц缁撴潫"); -// values.put("comment", "涓変繚鎵ц缁撴潫"); -// if (parallelCompletion) { -// values.put("NextAssignee", userApprovalList); -// } -// request.setComment("涓変繚鎵ц缁撴潫"); -// //璁剧疆entity -// if (parallelCompletion) { -// entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CONFIRM.name()); -// entity.setActualEndTime(new Date()); -// } -// if ("maintenance_execution".equals(flowMyBusiness.getTaskNameId())) { -// //鎵ц淇濆吇 -// //澶勭悊闄勪欢 -// if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { -// List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); -// ObjectMapper mapper = new ObjectMapper(); -// try { -// String referenceFile = mapper.writeValueAsString(fileUploadResultList); -// entity.setImageFiles(referenceFile); -// } catch (JsonProcessingException e) { -// log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); -// } -// } -// //澶勭悊璇︽儏 -// if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { -// thirdMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList()); -// } -// } else if ("precision_check".equals(flowMyBusiness.getTaskNameId())) { -// entity.setPrecisionChecker(user.getUsername()); -// entity.setPrecisionCheckTime(new Date()); -// //澶勭悊绮惧害妫�楠� -// if (CollectionUtil.isNotEmpty(request.getPrecisionDetailList())) { -// precisionCheckDetailService.updateBatchById(request.getPrecisionDetailList()); -// } -// } -// if (parallelCompletion) { -// //鏇存柊璁惧淇濆吇鐘舵�� -// eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name()); -// } -// break; -// case WAIT_CONFIRM: -// userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003); -// if (CollectionUtil.isEmpty(userSelectors)) { -// throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); -// } -// //鐝粍闀跨‘璁� -// userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); -// values.put("dataId", entity.getId()); -// values.put("organization", request.getConfirmComment()); -// values.put("comment", request.getConfirmComment()); -// values.put("NextAssignee", userApprovalList); -// values.put("confirmation", request.getConfirmDealType()); -// request.setComment(request.getConfirmComment()); -// //璁剧疆entity -// entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name()); -// entity.setConfirmUser(user.getUsername()); -// entity.setConfirmComment(request.getConfirmComment()); -// entity.setConfirmTime(new Date()); -// //澶勭悊鎶ヤ慨 -// List<EamThirdMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList()); -// if (CollectionUtil.isNotEmpty(collect)) { -// eamReportRepairService.reportRepairFromThirdMaintenance(equipment.getId(), entity.getOperator(), collect); -// } -// break; -// case WAIT_LEADER_CONFIRM: -// values.put("dataId", entity.getId()); -// values.put("organization", request.getLeaderConfirmComment()); -// values.put("comment", request.getLeaderConfirmComment()); -// request.setComment(request.getLeaderConfirmComment()); -// //璁剧疆entity -// entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name()); -// entity.setConfirmLeader(user.getUsername()); -// entity.setLeaderConfirmComment(request.getLeaderConfirmComment()); -// entity.setLeaderConfirmTime(new Date()); -// //鏇存柊璁惧淇濆吇鐘舵�� -// eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); -// break; -// } -// request.setValues(values); -// -// // 瀹屾垚娴佺▼浠诲姟 -// Result result = flowTaskService.complete(request); -// if (!result.isSuccess()) { -// throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�"); -// } -// //淇濆瓨宸ュ崟 -// eamThirdMaintenanceOrderMapper.updateById(entity); - return entity; + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒"); + } + eamThirdMaintenanceRequest.setAssignee(user.getUsername()); + // 鑾峰彇娴佺▼涓氬姟璁板綍 + FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(eamThirdMaintenanceRequest.getInstanceId(), eamThirdMaintenanceRequest.getTaskId()); + if (flowMyBusiness == null) { + throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + + if (!isUserAuthorized(flowMyBusiness, user)) { + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + // 璁ら浠诲姟 + if (!claimTask(flowMyBusiness.getTaskId(), user)) { + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒"); + } + + EamEquipment equipment = eamEquipmentService.getById(eamThirdMaintenanceOrder.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); + } + + // 璁剧疆娴佺▼鍙橀噺 + setupProcessVariables(eamThirdMaintenanceRequest, eamThirdMaintenanceOrder, user, equipment); + + // 瀹屾垚娴佺▼浠诲姟 + Result result = flowTaskService.complete(eamThirdMaintenanceRequest); + + // 鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊宸ュ崟鐘舵�� + updateOrderStatus(result, eamThirdMaintenanceRequest, eamThirdMaintenanceOrder, user); + + //鏇存柊宸ュ崟淇℃伅 + eamThirdMaintenanceOrderMapper.updateById(eamThirdMaintenanceOrder); + return eamThirdMaintenanceOrder; + } + + /** + * 鏌ヨ涓変繚宸ュ崟鍩烘湰淇℃伅 + * @param id + * @return + */ + @Override + public Result<?> selectVoById(String id) { + List<EamThirdMaintenanceOrder> eamThirdMaintenanceOrders = this.list(new QueryWrapper<EamThirdMaintenanceOrder>().eq("id", id)); + List<EamThirdMaintenanceRequest> eamThirdMaintenanceRequestList = new ArrayList<>(); + eamThirdMaintenanceOrders.forEach(eamThirdMaintenanceOrder -> { + EamThirdMaintenanceRequest eamThirdMaintenanceRequest = new EamThirdMaintenanceRequest(); + BeanUtils.copyProperties(eamThirdMaintenanceOrder, eamThirdMaintenanceRequest); + List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceOrderDetails = eamThirdMaintenanceOrderDetailService + .list(new QueryWrapper<EamThirdMaintenanceOrderDetail>().eq("order_id", eamThirdMaintenanceOrder.getId())); + eamThirdMaintenanceRequest.setTableDetailList(eamThirdMaintenanceOrderDetails); + eamThirdMaintenanceRequestList.add(eamThirdMaintenanceRequest); + }); + return Result.ok(eamThirdMaintenanceRequestList); + } + + /** + * 璁剧疆娴佺▼鍙橀噺 + */ + private void setupProcessVariables(EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user, EamEquipment equipment) { + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + List<String> userApprovalList; + List<UserSelector> userSelectors; + ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(order.getMaintenanceStatus()); + switch (status) { + case WAIT_CHECK: + // 鎶�鏈姸鎬侀壌瀹氱粨鏉� + values.put("dataId", order.getId()); + values.put("organization", "鎶�鏈姸鎬侀壌瀹氱粨鏉�"); + values.put("comment", "鎶�鏈姸鎬侀壌瀹氱粨鏉�"); + if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) { + values.put("confirmation", "1"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name()); + } else { + values.put("confirmation", "2"); + } + request.setComment("妫�鏌ヤ汉妫�鏌ョ粨鏉�"); + break; + case UNDER_MAINTENANCE: + // 淇濆吇缁撴潫 + values.put("dataId", order.getId()); + values.put("organization", "淇濆吇浜轰繚鍏荤粨鏉�"); + values.put("comment", "淇濆吇浜轰繚鍏荤粨鏉�"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + request.setComment("淇濆吇浜轰繚鍏荤粨鏉�"); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name()); + break; + case UNDER_FIRST_ACCEPTANCE: + // 绗竴娆¢獙鏀剁粨鏉� + values.put("dataId", order.getId()); + values.put("organization", "绗竴娆¢獙鏀剁粨鏉�"); + values.put("comment", "绗竴娆¢獙鏀剁粨鏉�"); + boolean flag = false; + if (!CollectionUtil.isEmpty(request.getTableDetailList())) { + for (EamThirdMaintenanceOrderDetail eamThirdMaintenanceOrderDetail : request.getTableDetailList()) { + if ("2".equals(eamThirdMaintenanceOrderDetail.getFirstInspectResult())) { + flag = true; + break; + } + } + } + if (flag) { + // 寮�鍚浜屾楠屾敹 + values.put("confirmation", "2"); + List<String> usernames = new ArrayList<>(); + usernames.add(user.getUsername()); + values.put("NextAssignee", usernames); + } else { + // 娴佺▼娴佽浆鍒版搷浣滀汉绛惧瓧 + values.put("confirmation", "1"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鎿嶄綔宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + } + request.setComment("绗竴娆¢獙鏀剁粨鏉�"); + break; + case UNDER_SECOND_ACCEPTANCE: + // 绗簩娆¢獙鏀剁粨鏉� + values.put("dataId", order.getId()); + values.put("organization", "绗簩娆¢獙鏀剁粨鏉�"); + values.put("comment", "绗簩娆¢獙鏀剁粨鏉�"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鎿嶄綔宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + request.setComment("绗簩娆¢獙鏀剁粨鏉�"); + break; + case OPERATOR_SIGNATURE: + // 鎿嶄綔浜虹瀛楃粨鏉� + values.put("dataId", order.getId()); + values.put("organization", "鎿嶄綔浜虹瀛楃粨鏉�"); + values.put("comment", "鎿嶄綔浜虹瀛楃粨鏉�"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + request.setComment("鎿嶄綔浜虹瀛楃粨鏉�"); + break; + case REPAIRMAN_SIGNATURE: + // 缁翠慨浜虹瀛楃粨鏉� + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨浜虹瀛楃粨鏉�"); + values.put("comment", "缁翠慨浜虹瀛楃粨鏉�"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨瀹や富浠伙紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + request.setComment("缁翠慨浜虹瀛楃粨鏉�"); + break; + case REPAIR_MANAGER_SIGNATURE: + // 缁翠慨瀹や富浠荤瀛楃粨鏉� + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨瀹や富浠荤瀛楃粨鏉�"); + values.put("comment", "缁翠慨瀹や富浠荤瀛楃粨鏉�"); + // 鑾峰彇涓嬩竴姝ユ墽琛屼汉 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰璁惧妫�楠屽憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + request.setComment("缁翠慨瀹や富浠荤瀛楃粨鏉�"); + break; + case INSPECTOR_SIGNATURE: + // 璁惧妫�鏌ヤ汉绛惧瓧缁撴潫 + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨瀹や富浠荤瀛楃粨鏉�"); + values.put("comment", "缁翠慨瀹や富浠荤瀛楃粨鏉�"); + request.setComment("缁翠慨瀹や富浠荤瀛楃粨鏉�"); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); + break; + } + request.setValues(values); + } + + /** + * 鏇存柊宸ュ崟鐘舵�� + */ + private void updateOrderStatus(Result result, EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user) { + if (result.isSuccess()) { + ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(order.getMaintenanceStatus()); + switch (status) { + case WAIT_CHECK: + // 鎶�鏈姸鎬侀壌瀹氱粨鏉� + order.setInspector(user.getUsername()); + order.setFullyFunctional(request.getFullyFunctional()); + order.setRunningNormally(request.getRunningNormally()); + order.setInspectTime(new Date()); + if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) { + // 閴村畾閫氳繃 + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + } else { + // 閴村畾鏈�氳繃 + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.CANCEL.name()); + order.setProblemDescription(request.getProblemDescription()); + order.setActualEndTime(new Date()); + } + break; + case UNDER_MAINTENANCE: + // 淇濆吇缁撴潫 + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name()); + order.setRepairman(user.getUsername()); + order.setActualEndTime(new Date()); + // 涓変繚鏄庣粏澶勭悊 + eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId())); + eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); + break; + case UNDER_FIRST_ACCEPTANCE: + // 绗竴娆¢獙鏀剁粨鏉� + boolean flag = false; + if (!CollectionUtil.isEmpty(request.getTableDetailList())) { + for (EamThirdMaintenanceOrderDetail eamThirdMaintenanceOrderDetail : request.getTableDetailList()) { + if ("2".equals(eamThirdMaintenanceOrderDetail.getFirstInspectResult())) { + flag = true; + break; + } + } + } + if (flag) { + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name()); + } else { + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name()); + } + // 涓変繚鏄庣粏澶勭悊 + eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId())); + eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); + break; + case UNDER_SECOND_ACCEPTANCE: + // 绗簩娆¢獙鏀剁粨鏉� + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name()); + // 涓変繚鏄庣粏澶勭悊 + eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId())); + eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); + break; + case OPERATOR_SIGNATURE: + // 鎿嶄綔浜虹瀛楃粨鏉� + if (!StrUtils.isEmpty(request.getAssistantOperator())) { + order.setAssistantOperator(request.getAssistantOperator()); + } + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name()); + order.setOperatorSignature(user.getUsername()); + order.setOperatorSignatureTime(new Date()); + break; + case REPAIRMAN_SIGNATURE: + // 缁翠慨浜虹瀛楃粨鏉� + if (!StrUtils.isEmpty(request.getAssistantRepairman())) { + order.setAssistantRepairman(request.getAssistantRepairman()); + } + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name()); + order.setRepairmanSignature(user.getUsername()); + order.setRepairmanSignatureTime(new Date()); + break; + case REPAIR_MANAGER_SIGNATURE: + // 缁翠慨瀹や富浠荤瀛楃粨鏉� + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name()); + order.setRepairManagerSignature(user.getUsername()); + order.setRepairManagerSignatureTime(new Date()); + break; + case INSPECTOR_SIGNATURE: + // 璁惧妫�鏌ヤ汉绛惧瓧缁撴潫 + order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name()); + order.setInspectorSignature(user.getUsername()); + order.setInspectorSignatureTime(new Date()); + break; + } + } } private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { -- Gitblit v1.9.3