From 4545af9041b432cbe79214d52be599e4ce8659aa Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期四, 14 八月 2025 15:55:39 +0800 Subject: [PATCH] 二保结构树代码 维修工单添加 领取按钮 领取后 生成维修开始时间 提交后 生成维修结束时间 计算 维修时长 故障时长 添加导出 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java | 378 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 332 insertions(+), 46 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..2b9c57c 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 @@ -9,11 +9,11 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import liquibase.pro.packaged.Q; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.flowable.engine.TaskService; import org.flowable.task.api.Task; -import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; @@ -23,10 +23,14 @@ import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.*; +import org.jeecg.modules.eam.mapper.EamEquipmentMapper; +import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper; import org.jeecg.modules.eam.mapper.EamSecondMaintenanceOrderMapper; import org.jeecg.modules.eam.request.EamSecondMaintenanceQuery; import org.jeecg.modules.eam.request.EamSecondMaintenanceRequest; import org.jeecg.modules.eam.service.*; +import org.jeecg.modules.eam.tree.FindsEquipmentEamCenterUtil; +import org.jeecg.modules.eam.vo.EamEquipmentTree; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; @@ -35,6 +39,7 @@ import org.jeecg.modules.flowable.service.IFlowTaskService; import org.jeecg.modules.system.entity.BaseFactory; import org.jeecg.modules.system.entity.BaseFactoryUser; +import org.jeecg.modules.system.mapper.BaseFactoryMapper; import org.jeecg.modules.system.service.IBaseFactoryService; import org.jeecg.modules.system.service.IBaseFactoryUserService; import org.jeecg.modules.system.service.ISysUserService; @@ -46,6 +51,7 @@ import javax.annotation.Resource; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -80,17 +86,20 @@ @Autowired private IEamEquipmentService eamEquipmentService; @Autowired - private IEamReportRepairService eamReportRepairService; - @Autowired private IEamEquipmentExtendService eamEquipmentExtendService; @Autowired private IEamBaseHFCodeService hfCodeService; @Autowired private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; + @Autowired + private EamMaintenanceStandardMapper eamMaintenanceStandardMapper; + @Resource + private BaseFactoryMapper baseFactoryMapper; @Override public IPage<EamSecondMaintenanceOrder> queryPageList(Page<EamSecondMaintenanceOrder> page, EamSecondMaintenanceQuery query) { QueryWrapper<EamSecondMaintenanceOrder> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString()); //鐢ㄦ埛鏁版嵁鏉冮檺 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { @@ -114,6 +123,9 @@ } //鏌ヨ鏉′欢杩囨护 if (query != null) { + if (StringUtils.isNotBlank(query.getId())){ + queryWrapper.eq("wmo.id", query.getId()); + } if (StringUtils.isNotBlank(query.getEquipmentId())) { queryWrapper.eq("wmo.equipment_id", query.getEquipmentId()); } @@ -145,6 +157,146 @@ } return eamSecondMaintenanceOrderMapper.queryPageList(page, queryWrapper); + } + + /** + * 鎵归噺鏂板鏍戠粨鏋� + */ + @Override + public List<EamEquipmentTree> getTree(){ + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) return Collections.emptyList(); + + // 鏋勫缓閫氱敤鏌ヨ鏉′欢 + QueryWrapper<EamMaintenanceStandard> baseQuery = new QueryWrapper<EamMaintenanceStandard>() + .eq("ems.maintenance_category", "SECOND_MAINTENANCE") + .eq("ems.standard_status", MaintenanceStandardStatusEnum.START.name()) + .eq("ems.del_flag", CommonConstant.DEL_FLAG_0.toString()); + + // 搴旂敤鏁版嵁鏉冮檺杩囨护 + applyDataPermissionFilter(sysUser, baseQuery); + + // 鍗曟鏌ヨ璁惧鍒楄〃 + List<EamEquipment> equipmentList = eamMaintenanceStandardMapper.queryList(baseQuery); + if (CollectionUtils.isEmpty(equipmentList)) { + return Collections.emptyList(); + } + + // 鑾峰彇鍏宠仈鐨勫伐鍘備唬鐮� + Set<String> factoryOrgCodes = equipmentList.stream() + .map(EamEquipment::getFactoryOrgCode) + .collect(Collectors.toSet()); + + // 鍗曟鏌ヨ鎵�鏈夊伐鍘傛暟鎹紙鍖呭惈瀹屾暣鏍戠粨鏋勶級 + List<BaseFactory> allFactories = baseFactoryService.list( + new LambdaQueryWrapper<BaseFactory>() + .eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()) + .orderByAsc(BaseFactory::getSorter)); + + // 鎻愬彇鏉冮檺鍏宠仈鐨勫伐鍘傝妭鐐笽D锛堝寘鍚墍鏈夌埗鑺傜偣锛� + Set<String> authorizedFactoryIds = extractAuthorizedFactoryIds( + allFactories, factoryOrgCodes); + + // 杩囨护鍑烘湁鏁堝伐鍘傜粨鏋� + List<BaseFactory> validFactories = allFactories.stream() + .filter(f -> authorizedFactoryIds.contains(f.getId())) + .collect(Collectors.toList()); + + // ===鏋勫缓璁惧鏍� === + Map<String, List<EamEquipment>> equipmentMap = equipmentList.stream() + .collect(Collectors.groupingBy(EamEquipment::getFactoryOrgCode)); + + // 鏋勫缓鍩虹鏍� + List<EamEquipmentTree> treeList = FindsEquipmentEamCenterUtil.wrapEquipmentBaseFactoryTreeList(validFactories); + + // 濉厖璁惧鏁版嵁 + populateEquipmentNodes(treeList, equipmentMap); + return treeList; + } + + // 搴旂敤鏁版嵁鏉冮檺鏉′欢锛堝叡鐢ㄦ柟娉曪級 + private void applyDataPermissionFilter(LoginUser user, QueryWrapper<EamMaintenanceStandard> query) { + if (StringUtils.isNotBlank(user.getEamEquipmentIds())) { + List<String> equipmentIds = Arrays.asList(user.getEamEquipmentIds().split(",")); + query.in("e.equipment_code", equipmentIds); + } else { + List<BaseFactoryUser> factoryUsers = baseFactoryUserService.list( + new LambdaQueryWrapper<BaseFactoryUser>() + .eq(BaseFactoryUser::getUserId, user.getId())); + + if (CollectionUtils.isNotEmpty(factoryUsers)) { + Set<String> factoryIds = factoryUsers.stream() + .map(BaseFactoryUser::getFactoryId) + .collect(Collectors.toSet()); + + Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream() + .map(BaseFactory::getOrgCode) + .collect(Collectors.toSet()); + + query.in("e.factory_org_code", factoryCodes); + } + } + } + + // 鎻愬彇鎺堟潈宸ュ巶ID + private Set<String> extractAuthorizedFactoryIds(List<BaseFactory> allFactories, Set<String> authOrgCodes) { + Set<String> result = new HashSet<>(); + // 鏋勫缓ID->宸ュ巶鐨勬槧灏� + Map<String, BaseFactory> factoryMap = allFactories.stream() + .collect(Collectors.toMap(BaseFactory::getId, Function.identity())); + + // 閫嗗悜鏌ユ壘鐖惰妭鐐归摼 + for (BaseFactory factory : allFactories) { + if (authOrgCodes.contains(factory.getOrgCode())) { + collectParentIds(factoryMap, factory.getId(), result); + } + } + return result; + } + + // 閫掑綊鏀堕泦鐖惰妭鐐笽D + private void collectParentIds(Map<String, BaseFactory> factoryMap, String currentId, Set<String> idSet) { + if (StringUtils.isEmpty(currentId) || idSet.contains(currentId)) return; + + idSet.add(currentId); + BaseFactory factory = factoryMap.get(currentId); + if (factory != null && StringUtils.isNotBlank(factory.getParentId())) { + collectParentIds(factoryMap, factory.getParentId(), idSet); + } + } + + // 濉厖璁惧鑺傜偣锛堥潪閫掑綊锛� + private void populateEquipmentNodes(List<EamEquipmentTree> treeList, + Map<String, List<EamEquipment>> equipmentMap) { + for (EamEquipmentTree node : treeList) { + + String orgCode = resolveOrgCodeFromTree(node); // 闇�瀹炵幇璇ラ�昏緫 + + // 鍏宠仈璁惧鏁版嵁 + List<EamEquipment> devices = equipmentMap.getOrDefault(orgCode, Collections.emptyList()); + if (!CollectionUtils.isEmpty(devices)) { + for (EamEquipment device : devices) { + EamEquipmentTree deviceNode = new EamEquipmentTree().convert(device); + deviceNode.setParentId(node.getKey()); + deviceNode.setType(2); + deviceNode.setLeaf(true); // 鏄庣‘鏍囪涓哄彾瀛愯妭鐐� + node.getChildren().add(deviceNode); + } + // 鍙湁褰撳瓨鍦ㄨ澶囨椂鎵嶆爣璁颁负闈炲彾瀛� + node.setLeaf(false); + } + + // 缁х画澶勭悊瀛愯妭鐐癸紙宸ュ巶灞傜骇锛� + if (!CollectionUtils.isEmpty(node.getChildren())) { + populateEquipmentNodes(node.getChildren(), equipmentMap); + } + } + } + + // 瑙f瀽鏂规硶 + private String resolveOrgCodeFromTree(EamEquipmentTree node) { + BaseFactory factory =baseFactoryMapper.selectById(node.getKey()); + return factory != null ? factory.getOrgCode() : null; } @Override @@ -180,6 +332,7 @@ eamMaintenanceStandardDetailList.forEach(item -> { EamSecondMaintenanceOrderDetail detail = new EamSecondMaintenanceOrderDetail(); BeanUtils.copyProperties(item, detail); + detail.setId(null); detail.setOrderId(order.getId()); requestTableDetailList.add(detail); }); @@ -254,17 +407,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 +439,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 +480,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,50 +509,158 @@ 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", "浜屼繚鎿嶄綔宸ユ墽琛岀粨鏉�"); + request.setComment("浜屼繚鎿嶄綔宸ユ墽琛岀粨鏉�"); + //澶勭悊瀵瑰簲璇︽儏 + if (CollectionUtils.isNotEmpty(request.getTableDetailList())){ + //鍒犻櫎鍘熸湁鏁版嵁 + 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.getTableDetailList().forEach(tableDetail -> { + EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); + BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); + eamMaintenanceStandardDetail.setOrderId(entity.getId()); + eamMaintenanceStandardDetail.setCreateBy(user.getUsername()); + addList.add(eamMaintenanceStandardDetail); + }); + secondMaintenanceOrderDetailService.saveBatch(addList); + } + }else if (BusinessCodeConst.PCR0002.equals(user.getPost())) { + entity.setRepairman(user.getUsername()); + values.put("organization", "浜屼繚缁翠慨宸ユ墽琛岀粨鏉�"); + values.put("comment", "浜屼繚缁翠慨宸ユ墽琛岀粨鏉�"); + request.setComment("浜屼繚缁翠慨宸ユ墽琛岀粨鏉�"); + //澶勭悊瀵瑰簲璇︽儏 + if (CollectionUtils.isNotEmpty(request.getTableDetailList())){ + //鍒犻櫎鍘熸湁鏁版嵁 + 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.getTableDetailList().forEach(tableDetail -> { + EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); + BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); + eamMaintenanceStandardDetail.setOrderId(entity.getId()); + eamMaintenanceStandardDetail.setCreateBy(user.getUsername()); + 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.PCR0006); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈瓨鍦ㄦ鏌ヤ汉锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + }else{ + userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + if (StrUtil.isEmpty(request.getDealDescription())){ + request.setDealDescription(""); + } + values.put("organization",request.getDealDescription()); + values.put("comment", request.getDealDescription()); + values.put("manageUserResult",request.getManageUserResult()); + request.setComment(request.getDealDescription()); + if (request.getManageUserResult().equals("2")){ + 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.getInspectConfirmComment())){ + request.setInspectConfirmComment(""); + } + values.put("dataId", entity.getId()); + values.put("organization",request.getInspectConfirmComment()); + values.put("comment", request.getInspectConfirmComment()); + values.put("inspectorResult",request.getInspectorResult()); + request.setComment(request.getInspectConfirmComment()); + if (request.getInspectorResult().equals("2")){ + 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: + throw new JeecgBootException("瀹℃壒澶辫触"); } request.setValues(values); - // 瀹屾垚娴佺▼浠诲姟 Result result = flowTaskService.complete(request); 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; -- Gitblit v1.9.3