From 8918b2f8444db69be6887c9a0959d13e164bbddb Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期三, 27 八月 2025 14:29:32 +0800 Subject: [PATCH] 设备二保定时服务开发,填充车间二保计划数据,三不放过批量导出接口 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java | 321 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 298 insertions(+), 23 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 8faaf0a..423acba 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,24 +9,30 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; 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; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.*; +import org.jeecg.modules.eam.dto.EamSecondMaintenanceOrderExport; 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 +41,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; @@ -45,7 +52,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -55,12 +64,12 @@ * @Version: V1.0 */ @Service("IEamSecondMaintenanceOrderService") +@Slf4j public class EamSecondMaintenanceOrderServiceImpl extends ServiceImpl<EamSecondMaintenanceOrderMapper, EamSecondMaintenanceOrder> implements IEamSecondMaintenanceOrderService, FlowCallBackServiceI { @Resource private EamSecondMaintenanceOrderMapper eamSecondMaintenanceOrderMapper; @Autowired private IEamSecondMaintenanceOrderDetailService secondMaintenanceOrderDetailService; - @Autowired private FlowCommonService flowCommonService; @Autowired @@ -80,17 +89,26 @@ @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; + @Autowired + private IEamSecondMaintenanceOrderDetailService eamSecondMaintenanceOrderDetailService; + @Autowired + private EamSecondMaintenanceOrderAsyncService eamSecondMaintenanceOrderAsyncService; + @Autowired + private IEamFactorySecondMaintPlanService factorySecondMaintPlanService; @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) { @@ -150,6 +168,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 @Transactional(rollbackFor = Exception.class) public boolean addMaintenance(EamSecondMaintenanceRequest request) { @@ -189,6 +347,11 @@ }); secondMaintenanceOrderDetailService.saveBatch(requestTableDetailList); } + // 鎻掑叆棣栭〉浜屼繚鍏昏鍒� + // 浣跨敤 SimpleDateFormat 鐩存帴鏍煎紡鍖栦负鈥測yyy骞碝M鏈堚�濇牸寮� + SimpleDateFormat sdf = new SimpleDateFormat("yyyy骞碝M鏈�"); + String formattedDate = sdf.format(order.getMaintenanceDate()); + factorySecondMaintPlanService.add(order.getEquipmentId(), formattedDate); return true; } @@ -206,9 +369,14 @@ if (!SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�"); } + // 缂栬緫棣栭〉浜屼繚鍏昏鍒� + // 浣跨敤 SimpleDateFormat 鐩存帴鏍煎紡鍖栦负鈥測yyy骞碝M鏈堚�濇牸寮� + SimpleDateFormat sdf = new SimpleDateFormat("yyyy骞碝M鏈�"); + String oldFormattedDate = sdf.format(entity.getMaintenanceDate()); + String newFormattedDate = sdf.format(request.getMaintenanceDate()); + factorySecondMaintPlanService.dateChange(entity.getEquipmentId(), oldFormattedDate,newFormattedDate); entity.setMaintenanceDate(request.getMaintenanceDate()); entity.setRemark(request.getRemark()); - eamSecondMaintenanceOrderMapper.updateById(entity); //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� if (StringUtils.isNotBlank(entity.getOperator())) { @@ -238,7 +406,6 @@ eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name()); return result.isSuccess(); } - } return true; } @@ -392,6 +559,7 @@ EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); eamMaintenanceStandardDetail.setOrderId(entity.getId()); + eamMaintenanceStandardDetail.setCreateBy(user.getUsername()); addList.add(eamMaintenanceStandardDetail); }); secondMaintenanceOrderDetailService.saveBatch(addList); @@ -414,6 +582,7 @@ EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); eamMaintenanceStandardDetail.setOrderId(entity.getId()); + eamMaintenanceStandardDetail.setCreateBy(user.getUsername()); addList.add(eamMaintenanceStandardDetail); }); secondMaintenanceOrderDetailService.saveBatch(addList); @@ -428,7 +597,6 @@ throw new JeecgBootException("璁惧鏈瓨鍦ㄦ鏌ヤ汉锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); }else{ userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); - values.put("NextAssignee", userApprovalList); values.put("dataId", entity.getId()); if (StrUtil.isEmpty(request.getDealDescription())){ request.setDealDescription(""); @@ -436,35 +604,45 @@ values.put("organization",request.getDealDescription()); values.put("comment", request.getDealDescription()); 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.getDealDescription()); - entity.setConfirmTime(new Date()); request.setComment(request.getDealDescription()); if (request.getManageUserResult().equals("2")){ - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name()); + 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.getDealDescription())){ - request.setDealDescription(""); + 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()); - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); - entity.setInspector(user.getUsername()); - entity.setInspectorResult(request.getInspectorResult()); - entity.setInspectConfirmComment(request.getInspectConfirmComment()); - entity.setInspectConfirmTime(new Date()); - request.setComment(request.getDealDescription()); + request.setComment(request.getInspectConfirmComment()); if (request.getInspectorResult().equals("2")){ - entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name()); + 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: @@ -476,11 +654,108 @@ 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); + //寮傛鐢熸垚涓嬫浜屼繚宸ュ崟 + if (SecondMaintenanceStatusEnum.COMPLETE.name().equals(entity.getMaintenanceStatus())) { + try { + eamSecondMaintenanceOrderAsyncService.asyncGenerateNextMaintenanceOrder(entity.getId()); + } catch (Exception e) { + log.error("瑙﹀彂寮傛鐢熸垚涓嬫宸ュ崟澶辫触锛屽伐鍗旾D: {}", entity.getId(), e); + } + } + return entity; } + /** + * 鎵归噺鎵撳嵃浜屼繚宸ュ崟 + * @param ids + * @return + */ + @Override + public List<EamSecondMaintenanceOrderExport> export(String ids){ + QueryWrapper<EamSecondMaintenanceOrderExport> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString()); + queryWrapper.eq("wmo.maintenance_status",SecondMaintenanceStatusEnum.COMPLETE.name()); + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + return new ArrayList<>(); + } + if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { + //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 + List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); + queryWrapper.in("e.equipment_code", equipArr); + } else { + //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� + List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. + list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); + if(!CollectionUtils.isEmpty(baseFactoryUserList)){ + 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 { + return new ArrayList<>(); + } + } + //鏌ヨ鏉′欢杩囨护 + if (StrUtil.isNotEmpty(ids)) { + List<String> idList = Arrays.asList(ids.split(",")); + queryWrapper.in("wmo.id", idList); + } else { + queryWrapper.orderByDesc("wmo.create_time"); + } + List<EamSecondMaintenanceOrderExport> eamSecondMaintenanceOrderExports=eamSecondMaintenanceOrderMapper.queryList(queryWrapper); + //濉厖瀵瑰簲浜屼繚鏄庣粏 + if (!eamSecondMaintenanceOrderExports.isEmpty()){ + eamSecondMaintenanceOrderExports.forEach(item->{ + //缁翠慨浜哄憳淇濆吇鍐呭 + List<EamSecondMaintenanceOrderDetail> maintenanceOrderDetails=eamSecondMaintenanceOrderDetailService. + list(new QueryWrapper<EamSecondMaintenanceOrderDetail>().eq("order_id",item.getId()). + eq("item_category",EamMaintenanceStandardDetailCategory.REPAIRER_MAINTENANCE.name()) + .orderByAsc("item_code")); + if (!maintenanceOrderDetails.isEmpty()){ + item.setMaintenanceOrderDetails(maintenanceOrderDetails); + } + //鎿嶄綔浜哄憳淇濆吇鍐呭 + List<EamSecondMaintenanceOrderDetail> operationOrderDetails=eamSecondMaintenanceOrderDetailService. + list(new QueryWrapper<EamSecondMaintenanceOrderDetail>().eq("order_id",item.getId()). + eq("item_category",EamMaintenanceStandardDetailCategory.OPERATOR_MAINTENANCE.name()) + .orderByAsc("item_code")); + if (!operationOrderDetails.isEmpty()) { + item.setOperationOrderDetails(operationOrderDetails); + } + }); + } + return eamSecondMaintenanceOrderExports; + } + private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); return todoUsers != null && todoUsers.contains(user.getUsername()); -- Gitblit v1.9.3