From 7d5d6d104b0ad994b62b53683d752b4fec61b8c1 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 15 七月 2025 21:13:29 +0800 Subject: [PATCH] art: 技术状态鉴定工单-字段转译 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 124 insertions(+), 43 deletions(-) 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 b26bfbe..e59f21d 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 @@ -254,17 +254,28 @@ throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { - throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + if(sysUser != null) { + if (!BusinessCodeConst.PCR0001.equals(sysUser.getPost()) && !BusinessCodeConst.PCR0002.equals(sysUser.getPost())){ + throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + } } - entity.setOperator(sysUser.getUsername()); + List<String> usernames = new ArrayList<>(); + if (sysUser != null) { + if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { + entity.setOperator(sysUser.getUsername()); + usernames.add(entity.getOperator()); + } + if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { + entity.setRepairman(sysUser.getUsername()); + usernames.add(entity.getRepairman()); + } + } entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); entity.setActualStartTime(new Date()); eamSecondMaintenanceOrderMapper.updateById(entity); - //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(), - entity.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null); + flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + "杩涜璁惧浜岀骇淇濆吇", + entity.getId(), "IEamSecondMaintenanceOrderService", "SecondMaintenance_Process", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); if (StrUtil.isEmpty(entity.getRemark())) { @@ -275,10 +286,24 @@ variables.put("comment", entity.getRemark()); } variables.put("proofreading", true); - List<String> usernames = new ArrayList<>(); - usernames.add(entity.getOperator()); - variables.put("NextAssignee", usernames); - Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables); + if (sysUser != null) { + if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { + variables.put("operator_task", usernames); + 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()); + variables.put("maintenance_task",usernameList); + } + }else if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { + variables.put("maintenance_task", usernames); + 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()); + variables.put("operator_task",usernameList); + } + } + } + Result result = flowDefinitionService.startProcessInstanceByKey("SecondMaintenance_Process", variables); if (result != null) { //鏇存柊璁惧淇濆吇鐘舵�� eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name()); @@ -302,7 +327,7 @@ } request.setAssignee(user.getUsername()); // 鑾峰彇娴佺▼涓氬姟璁板綍 - FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId()); + FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId()); if (flowMyBusiness == null) { throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�"); } @@ -331,45 +356,101 @@ List<UserSelector> userSelectors; switch (status) { case UNDER_MAINTENANCE: + //淇濆吇涓� + boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); //鎵ц瀹屾垚 - //璁惧绠$悊鍛樼‘璁� -// String equipmentManager = equipment.getEquipmentManager(); -// if(StringUtils.isBlank(equipmentManager)) { -// throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); -// } -// userApprovalList = Collections.singletonList(equipmentManager); - values.put("dataId", entity.getId()); - values.put("organization", "浜屼繚鎵ц缁撴潫"); - values.put("comment", "浜屼繚鎵ц缁撴潫"); -// values.put("NextAssignee", userApprovalList); - request.setComment("浜屼繚鎵ц缁撴潫"); - //璁剧疆entity - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name()); - entity.setActualEndTime(new Date()); - //鏇存柊璁惧淇濆吇鐘舵�� - eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name()); - break; - case WAIT_CONFIRM: - userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003); + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0004); if (CollectionUtil.isEmpty(userSelectors)) { - throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + throw new JeecgBootException("璁惧鏈瓨鍦ㄧ鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + }else{ + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + if (parallelCompletion) { + values.put("NextAssignee", userApprovalList); + entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_ADMIN_CONFIRM.name()); + entity.setActualEndTime(new Date()); + } } - //鐝粍闀跨‘璁� - userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); - //璁剧疆entity - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name()); - entity.setConfirmTime(new Date()); - break; - case WAIT_LEADER_CONFIRM: + if (BusinessCodeConst.PCR0001.equals(user.getPost())) { + entity.setOperator(user.getUsername()); + values.put("organization", "浜屼繚鎿嶄綔宸ユ墽琛岀粨鏉�"); + values.put("comment", "浜屼繚鎿嶄綔宸ユ墽琛岀粨鏉�"); + //澶勭悊瀵瑰簲璇︽儏 + if (CollectionUtils.isNotEmpty(request.getOperatorDetailList())){ + //鍒犻櫎鍘熸湁鏁版嵁 + List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>(); + //鍏堝垹闄ゅ師鏈� + LambdaQueryWrapper<EamSecondMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId()); + queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.OPERATOR_MAINTENANCE.name()); + secondMaintenanceOrderDetailService.remove(queryWrapper); + request.getOperatorDetailList().forEach(tableDetail -> { + EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); + BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); + eamMaintenanceStandardDetail.setOrderId(entity.getId()); + addList.add(eamMaintenanceStandardDetail); + }); + secondMaintenanceOrderDetailService.saveBatch(addList); + } + }else if (BusinessCodeConst.PCR0002.equals(user.getPost())) { + entity.setRepairman(user.getUsername()); + values.put("organization", "浜屼繚缁翠慨宸ユ墽琛岀粨鏉�"); + values.put("comment", "浜屼繚缁翠慨宸ユ墽琛岀粨鏉�"); + //澶勭悊瀵瑰簲璇︽儏 + if (CollectionUtils.isNotEmpty(request.getRepairmanDetailList())){ + //鍒犻櫎鍘熸湁鏁版嵁 + List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>(); + //鍏堝垹闄ゅ師鏈� + LambdaQueryWrapper<EamSecondMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId()); + queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.REPAIRER_MAINTENANCE.name()); + secondMaintenanceOrderDetailService.remove(queryWrapper); + request.getRepairmanDetailList().forEach(tableDetail -> { + EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); + BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); + eamMaintenanceStandardDetail.setOrderId(entity.getId()); + addList.add(eamMaintenanceStandardDetail); + }); + secondMaintenanceOrderDetailService.saveBatch(addList); + } + } values.put("dataId", entity.getId()); - //璁剧疆entity - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); - //鏇存柊璁惧淇濆吇鐘舵�� - eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); break; + case WAIT_ADMIN_CONFIRM: + //绠$悊鍛樼‘璁� + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈瓨鍦ㄦ鏌ヤ汉锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + }else{ + userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + values.put("dataId", entity.getId()); + values.put("organization",request.getComment()); + values.put("comment", request.getComment()); + 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.getComment()); + entity.setConfirmTime(new Date()); + } + break; + case WAIT_INSPECTOR_CONFIRM: + //妫�鏌ヤ汉纭 + values.put("dataId", entity.getId()); + values.put("organization",request.getComment()); + values.put("comment", request.getComment()); + 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()); + break; + default: + throw new JeecgBootException("瀹℃壒澶辫触"); } request.setValues(values); - // 瀹屾垚娴佺▼浠诲姟 Result result = flowTaskService.complete(request); if (!result.isSuccess()) { -- Gitblit v1.9.3