From ee5211989fa79ca0fce1eb3e1f9b686a301f270c Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 11 七月 2025 10:49:23 +0800 Subject: [PATCH] 修改 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java | 336 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 168 insertions(+), 168 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java index 06054ef..356394f 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java @@ -20,10 +20,6 @@ import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.modules.system.entity.BaseFactory; -import org.jeecg.modules.system.entity.BaseFactoryUser; -import org.jeecg.modules.system.service.IBaseFactoryService; -import org.jeecg.modules.system.service.IBaseFactoryUserService; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EamMaintenanceStandardDetailCategory; import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; @@ -38,15 +34,17 @@ import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; -import org.jeecg.modules.eam.vo.*; +import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo; 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; import org.jeecg.modules.flowable.apithird.service.FlowCommonService; import org.jeecg.modules.flowable.service.IFlowDefinitionService; import org.jeecg.modules.flowable.service.IFlowTaskService; -import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; -import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.entity.BaseFactory; +import org.jeecg.modules.system.entity.BaseFactoryUser; +import org.jeecg.modules.system.entity.SysParams; +import org.jeecg.modules.system.service.*; import org.jeecg.modules.system.vo.UserSelector; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -65,11 +63,11 @@ /** * @Description: 淇濆吇鏍囧噯 * @Author: jeecg-boot - * @Date: 2025-03-26 + * @Date: 2025-03-26 * @Version: V1.0 */ @Service("IEamMaintenanceStandardService") -public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService , FlowCallBackServiceI { +public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService, FlowCallBackServiceI { @Resource private EamMaintenanceStandardMapper eamMaintenanceStandardMapper; @@ -97,6 +95,8 @@ private IEamEquipmentExtendService eamEquipmentExtendService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ISysParamsService sysParamsService; // 甯搁噺瀹氫箟 private static final String REPAIR_TITLE = "缁翠慨浜哄憳淇濆吇鍐呭"; @@ -124,43 +124,45 @@ queryWrapper.in("e.equipment_code", equipArr); } else { //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� - List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. - list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); - if(!CollectionUtils.isEmpty(baseFactoryUserList)){ - List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList()); - List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList()); + 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 page; } } - if(eamMaintenanceStandard != null) { + if (eamMaintenanceStandard != null) { //缂栫爜 妯$硦鏌ヨ - if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) { queryWrapper.like("ems.standard_code", eamMaintenanceStandard.getStandardCode()); } //鍚嶇О 妯$硦鏌ヨ - if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) { queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName()); } //璁惧 - if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) { queryWrapper.eq("ems.equipment_id", eamMaintenanceStandard.getEquipmentId()); } //淇濆吇鍒嗙被 - if(StringUtils.isNotBlank(eamMaintenanceStandard.getMaintenanceCategory())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getMaintenanceCategory())) { queryWrapper.eq("ems.maintenance_category", eamMaintenanceStandard.getMaintenanceCategory()); } //淇濆吇鍒嗙被 - if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardStatus())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getStandardStatus())) { queryWrapper.eq("ems.standard_status", eamMaintenanceStandard.getStandardStatus()); } //璁惧缂栫爜 - if(StringUtils.isNotBlank(eamMaintenanceStandard.getKeyword())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getKeyword())) { queryWrapper.and(wrapper -> wrapper.like("e.equipment_name", eamMaintenanceStandard.getKeyword()) .or() .like("e.equipment_code", eamMaintenanceStandard.getKeyword())); } //id - if(StringUtils.isNotBlank(eamMaintenanceStandard.getId())) { + if (StringUtils.isNotBlank(eamMaintenanceStandard.getId())) { queryWrapper.eq("ems.id", eamMaintenanceStandard.getId()); } } @@ -175,19 +177,19 @@ BeanUtils.copyProperties(standardRequest, entity); entity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); //鐗堟湰閫掑 - entity.setStandardVersion("v"+CommonConstant.OPERATE_TYPE_1); + entity.setStandardVersion("v" + CommonConstant.OPERATE_TYPE_1); //璁惧澶勭悊 entity.setEquipmentId(standardRequest.getEquipmentId()); //鍒犻櫎鏍囪 entity.setDelFlag(CommonConstant.DEL_FLAG_0); //閲嶅鎬ф牎楠� - EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory()); - if(exist != null){ + EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + if (exist != null) { throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); } eamMaintenanceStandardMapper.insert(entity); //澶勭悊鏄庣粏鏁版嵁 - if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { + if (CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { standardRequest.getTableDetailList().forEach(tableDetail -> { tableDetail.setStandardId(entity.getId()); }); @@ -200,7 +202,7 @@ @Transactional(rollbackFor = Exception.class) public boolean editMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { EamMaintenanceStandard entity = eamMaintenanceStandardMapper.selectById(standardRequest.getId()); - if(entity == null){ + if (entity == null) { throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); } entity.setStandardName(standardRequest.getStandardName()); @@ -209,25 +211,17 @@ //澶勭悊璇︽儏 if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { List<EamMaintenanceStandardDetail> addList = new ArrayList<>(); - List<EamMaintenanceStandardDetail> updateList = new ArrayList<>(); + //鍏堝垹闄ゅ師鏈� + LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardRequest.getId()); + eamMaintenanceStandardDetailService.remove(queryWrapper); standardRequest.getTableDetailList().forEach(tableDetail -> { - tableDetail.setStandardId(entity.getId()); - if(tableDetail.getId() == null){ - addList.add(tableDetail); - }else { - updateList.add(tableDetail); - } + EamMaintenanceStandardDetail eamMaintenanceStandardDetail=new EamMaintenanceStandardDetail(); + BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); + eamMaintenanceStandardDetail.setStandardId(entity.getId()); + addList.add(eamMaintenanceStandardDetail); }); - if(CollectionUtil.isNotEmpty(addList)){ - eamMaintenanceStandardDetailService.saveBatch(addList); - } - if(CollectionUtil.isNotEmpty(updateList)){ - eamMaintenanceStandardDetailService.updateBatchById(updateList); - } - } - if(CollectionUtil.isNotEmpty(standardRequest.getRemoveDetailList())) { - List<String> ids = standardRequest.getRemoveDetailList().stream().map(EamMaintenanceStandardDetail::getId).collect(Collectors.toList()); - eamMaintenanceStandardDetailService.removeBatchByIds(ids); + eamMaintenanceStandardDetailService.saveBatch(addList); } return true; } @@ -236,7 +230,7 @@ @Transactional(rollbackFor = Exception.class) public boolean upgradeMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { EamMaintenanceStandard entity = eamMaintenanceStandardMapper.selectById(standardRequest.getId()); - if(entity == null){ + if (entity == null) { throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); } @@ -256,7 +250,7 @@ if (matcher.find()) { try { int mainVersion = Integer.parseInt(matcher.group(1)); - newEntity.setStandardVersion("v"+(mainVersion+1)); + newEntity.setStandardVersion("v" + (mainVersion + 1)); } catch (NumberFormatException ignored) { } } @@ -265,13 +259,13 @@ //鍒犻櫎鏍囪 newEntity.setDelFlag(CommonConstant.DEL_FLAG_0); //閲嶅鎬ф牎楠� - EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory()); - if(exist != null){ + EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + if (exist != null) { throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); } eamMaintenanceStandardMapper.insert(newEntity); //澶勭悊鏄庣粏鏁版嵁 - if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { + if (CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { standardRequest.getTableDetailList().forEach(tableDetail -> { tableDetail.setId(null); tableDetail.setCreateBy(null); @@ -286,16 +280,16 @@ } @Override - public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory) { + public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory, String standardStatus) { LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId); queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory); queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); - queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, standardStatus); queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion); List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); - if(CollectionUtil.isEmpty(list)) { + if (CollectionUtil.isEmpty(list)) { return null; } return list.get(0); @@ -303,12 +297,13 @@ /** * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 - * @param keyword 璁惧缂栧彿 + * + * @param keyword 璁惧缂栧彿 * @param maintenanceCategory 淇濆吇绫诲瀷 * @return */ @Override - public List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory){ + public List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory) { Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(1, pageSize); EamMaintenanceStandard query = new EamMaintenanceStandard(); query.setEquipmentId(equipmentId); @@ -333,28 +328,29 @@ /** * 娴佺▼鍚姩,淇濆瓨瀵瑰簲鐨勬暟鎹� + * * @param id * @return */ @Override - public Result<?> saveEamMaintenanceStandardProcess(String id){ + public Result<?> saveEamMaintenanceStandardProcess(String id) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - EamMaintenanceStandard maintenanceStandard=this.getById(id); - if (maintenanceStandard==null){ + EamMaintenanceStandard maintenanceStandard = this.getById(id); + if (maintenanceStandard == null) { return Result.error("鏈壘鍒板搴斾繚鍏绘爣鍑�"); } System.out.println("淇濆吇瑙勮寖娴佺▼锛�" + maintenanceStandard.getId()); - flowCommonService.initActBusiness(maintenanceStandard.getStandardName()+"瑙勮寖杩涜娴佺▼瀹℃牳", + flowCommonService.initActBusiness(maintenanceStandard.getStandardName() + "瑙勮寖杩涜娴佺▼瀹℃牳", maintenanceStandard.getId(), "IEamMaintenanceStandardService", "eam_maintenance_standard", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", maintenanceStandard.getId()); variables.put("organization", "淇濆吇瑙勮寖鍚姩娴佺▼"); variables.put("comment", "淇濆吇瑙勮寖鍚姩娴佺▼"); - variables.put("proofreading",true); - Result result= flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables); + variables.put("proofreading", true); + Result result = flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables); if (!result.isSuccess()) { super.removeById(maintenanceStandard.getId()); - }else { + } else { maintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name()); maintenanceStandard.setDesigner(user.getUsername()); maintenanceStandard.setDesignTime(new Date()); @@ -368,11 +364,10 @@ return Result.error("娴佺▼璁板綍涓嶅瓨鍦�"); } FlowMyBusiness flowMyBusiness = businessList.get(0); - EamEquipment eamEquipment=eamEquipmentService.getById(maintenanceStandard.getEquipmentId()); - BaseFactory baseFactory=baseFactoryService.getOne(new QueryWrapper<BaseFactory>().eq("org_code", eamEquipment.getFactoryOrgCode())); - List<UserSelector> userSelectorList=sysUserService.selectOperatorFactoryList(eamEquipment.getEquipmentCode(),baseFactory.getId(), BusinessCodeConst.PCR0008); + EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId()); + List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008); if (!CollectionUtils.isEmpty(userSelectorList)) { - List<String> usernameList=userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); flowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList)); flowMyBusinessService.updateById(flowMyBusiness); } @@ -382,11 +377,12 @@ /** * 瀹℃壒鎿嶄綔 + * * @param eamMaintenanceStandardVo * @return */ @Override - public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){ + public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo) { try { // 鍙傛暟鏍¢獙 if (StrUtil.isEmpty(eamMaintenanceStandardVo.getTaskId()) || StrUtil.isEmpty(eamMaintenanceStandardVo.getDataId())) { @@ -440,23 +436,22 @@ Result result = flowTaskService.complete(eamMaintenanceStandardVo); if (result.isSuccess()) { if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) { - if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")){ + if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")) { List<FlowMyBusiness> newbusinessList = flowMyBusinessService.list( new QueryWrapper<FlowMyBusiness>() .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId())); FlowMyBusiness newflowMyBusiness = newbusinessList.get(0); eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name()); //鑾峰彇flow鐨勬祦绋嬪疄渚媔d,璁剧疆涓嬩竴姝ョ殑澶勭悊浜哄憳 - EamMaintenanceStandard maintenanceStandard=this.getById(eamMaintenanceStandardVo.getDataId()); - EamEquipment eamEquipment=eamEquipmentService.getById(maintenanceStandard.getEquipmentId()); - BaseFactory baseFactory=baseFactoryService.getOne(new QueryWrapper<BaseFactory>().eq("org_code", eamEquipment.getFactoryOrgCode())); - List<UserSelector> userSelectorList=sysUserService.selectOperatorFactoryList(eamEquipment.getEquipmentCode(),baseFactory.getId(), BusinessCodeConst.PCR0009); + EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); + EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId()); + List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0009); if (!CollectionUtils.isEmpty(userSelectorList)) { - List<String> usernameList=userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); newflowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList)); flowMyBusinessService.updateById(newflowMyBusiness); } - }else { + } else { eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); } eamMaintenanceStandard.setRepairManager(user.getUsername()); @@ -465,15 +460,15 @@ eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment()); } if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) { - if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")){ + if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")) { eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name()); //鍒ゆ柇鏄惁杩涜鍗囩増锛岄�氳繃璁惧缂栧彿銆佷繚鍏诲垎绫汇�佺姸鎬佽繘琛岀瓫閫� - EamMaintenanceStandard maintenanceStandard=this.getById(eamMaintenanceStandardVo.getDataId()); - QueryWrapper<EamMaintenanceStandard> queryWrapper=new QueryWrapper<>(); + EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId()); + QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("equipment_id", maintenanceStandard.getEquipmentId()); queryWrapper.eq("maintenance_category", maintenanceStandard.getMaintenanceCategory()); queryWrapper.eq("standard_status", MaintenanceStandardStatusEnum.START.name()); - List<EamMaintenanceStandard> list=eamMaintenanceStandardMapper.selectList(queryWrapper); + List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); if (!CollectionUtils.isEmpty(list)) { //浣滃簾鍘熸湁 for (EamMaintenanceStandard eamMaintenanceStandard1 : list) { @@ -481,7 +476,7 @@ this.updateById(eamMaintenanceStandard1); } } - }else { + } else { eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); } eamMaintenanceStandard.setTechnicalManager(user.getUsername()); @@ -544,9 +539,10 @@ /*瀵煎叆鐐规鏂囦欢Excel--------------------------寮�濮�*/ + /** - * 鐐规琛ㄥ鍏ュ叆鍙� - */ + * 鐐规琛ㄥ鍏ュ叆鍙� + */ @Override @Transactional(rollbackFor = Exception.class) public Result<?> importPointInspectionExcel(MultipartFile file) { @@ -560,24 +556,30 @@ EamMaintenanceStandard eamMaintenanceStandard = extractDeviceInfo(sheet); if (eamMaintenanceStandard == null) { return Result.error("璁惧淇℃伅鎻愬彇澶辫触"); - }else { + } else { if (eamMaintenanceStandard.getEquipmentId() == null) { return Result.error("璁惧淇℃伅鎻愬彇澶辫触"); } } eamMaintenanceStandard.setStandardName(name); + + EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(), eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name()); + if (exist != null) { + return Result.error(name + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞"); + } + eamMaintenanceStandardMapper.insert(eamMaintenanceStandard); // 2. 鎻愬彇姣忔棩鐐规椤圭洰 List<EamMaintenanceStandardDetail> dailyDetails = extractDailyItems(sheet, eamMaintenanceStandard); - if(dailyDetails.isEmpty()){ + if (dailyDetails.isEmpty()) { return Result.error("鏈壘鍒版瘡鏃ョ偣妫�椤圭洰"); } // 3. 鎻愬彇鍛ㄤ繚鍏婚」鐩� List<EamMaintenanceStandardDetail> weeklyDetails = extractWeeklyItems(sheet, eamMaintenanceStandard); - if(weeklyDetails.isEmpty()){ + if (weeklyDetails.isEmpty()) { return Result.error("鏈壘鍒板懆淇濆吇椤圭洰"); } @@ -590,6 +592,18 @@ eamMaintenanceStandardDetailService.saveBatch(allDetails); } + SysParams sysParams = sysParamsService.getSysPramBySettingKey("maintenance_import_type"); + + if (sysParams != null) { + if (sysParams.getSettingValue().equals("1")) { + //瑙﹀彂淇濆吇娴佺▼ + eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + eamMaintenanceStandardMapper.updateById(eamMaintenanceStandard); + } + } else { + return Result.error("鏈壘鍒颁繚鍏绘祦绋嬪鍏ョ浉鍏抽厤缃�,璇疯仈绯荤鐞嗗憳"); + } + return Result.OK("鐐规琛ㄥ鍏ユ垚鍔�"); } catch (Exception e) { @@ -598,8 +612,8 @@ } /** - * 鎻愬彇鐐规琛ㄦ爣棰� - */ + * 鎻愬彇鐐规琛ㄦ爣棰� + */ private String extractInspectionTitle(MultipartFile file) { try (Workbook workbook = WorkbookFactory.create(file.getInputStream())) { Sheet sheet = workbook.getSheetAt(0); @@ -623,7 +637,7 @@ } /** - * 鎻愬彇鐐规琛ㄤ箣鍓嶇殑鏂囧瓧 + * 鎻愬彇鐐规琛ㄤ箣鍓嶇殑鏂囧瓧 */ private String extractTextBeforeInspection(String title) { if (StringUtils.isBlank(title)) { @@ -635,8 +649,8 @@ } /** - * 鎻愬彇璁惧淇℃伅 - */ + * 鎻愬彇璁惧淇℃伅 + */ private EamMaintenanceStandard extractDeviceInfo(Sheet sheet) { Row headerRow = sheet.getRow(0); if (headerRow == null) { @@ -671,7 +685,7 @@ EamEquipment equipments = eamEquipmentService.selectByEquipmentCode(standard.getEquipmentCode()); if (equipments == null) { return null; - }else { + } else { standard.setEquipmentId(equipments.getId()); } } @@ -688,7 +702,7 @@ } /** - * 瑙f瀽鏃ユ湡瀛楃涓� + * 瑙f瀽鏃ユ湡瀛楃涓� */ private Date parseDate(String dateStr) throws ParseException { // 灏濊瘯澶氱鏃ユ湡鏍煎紡 @@ -714,22 +728,22 @@ } /** - * 鎻愬彇姣忔棩鐐规椤圭洰 - */ + * 鎻愬彇姣忔棩鐐规椤圭洰 + */ private List<EamMaintenanceStandardDetail> extractDailyItems(Sheet sheet, EamMaintenanceStandard standard) { return extractItems(sheet, standard, "鐐规椤圭洰", "瀹屾垚鏁版嵁/瑕佹眰", "DAY_INSPECTION"); } /** - * 鎻愬彇鍛ㄤ繚鍏婚」鐩� - */ + * 鎻愬彇鍛ㄤ繚鍏婚」鐩� + */ private List<EamMaintenanceStandardDetail> extractWeeklyItems(Sheet sheet, EamMaintenanceStandard standard) { return extractItems(sheet, standard, "鍛ㄤ繚鍏婚」鐩�", "妫�鏌ユ爣鍑�", "WEEK_INSPECTION"); } /** - * 閫氱敤椤圭洰鎻愬彇鏂规硶 - */ + * 閫氱敤椤圭洰鎻愬彇鏂规硶 + */ private List<EamMaintenanceStandardDetail> extractItems(Sheet sheet, EamMaintenanceStandard standard, String primaryHeader, String secondaryHeader, String itemCategory) { @@ -754,6 +768,7 @@ // 鍒涘缓椤圭洰璇︽儏 EamMaintenanceStandardDetail detail = new EamMaintenanceStandardDetail(); detail.setStandardId(standard.getId()); + detail.setItemCode(Integer.parseInt(getCellStringValue(row.getCell(0)))); detail.setItemName(getCellStringValue(row.getCell(1))); detail.setItemCategory(itemCategory); @@ -771,7 +786,7 @@ } /** - * 鏌ユ壘琛ㄦ牸鍖哄煙 + * 鏌ユ壘琛ㄦ牸鍖哄煙 */ private int[] findTableSection(Sheet sheet, String primaryHeader, String secondaryHeader) { for (int rowIdx = 0; rowIdx <= sheet.getLastRowNum(); rowIdx++) { @@ -788,8 +803,8 @@ } /** - * 妫�鏌ユ槸鍚︿负琛ㄥご琛� - */ + * 妫�鏌ユ槸鍚︿负琛ㄥご琛� + */ private boolean isHeaderRow(Row row, String header1, String header2) { boolean foundHeader1 = false; boolean foundHeader2 = false; @@ -807,7 +822,7 @@ } /** - * 鏌ユ壘鏁版嵁缁撴潫浣嶇疆 + * 鏌ユ壘鏁版嵁缁撴潫浣嶇疆 */ private int findDataEnd(Sheet sheet, int startRow) { for (int rowIdx = startRow; rowIdx <= sheet.getLastRowNum(); rowIdx++) { @@ -828,8 +843,8 @@ } /** - * 璇嗗埆绛惧瓧琛岀壒寰� - */ + * 璇嗗埆绛惧瓧琛岀壒寰� + */ private boolean isSignatureRow(Row row) { for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) { Cell cell = row.getCell(colIdx); @@ -846,7 +861,7 @@ /** * 璇嗗埆鏂拌〃澶村紑濮� - */ + */ private boolean isNewHeaderStart(Row row) { for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) { Cell cell = row.getCell(colIdx); @@ -861,8 +876,8 @@ } /** - * 妫�鏌ヨ鏄惁涓虹┖ - */ + * 妫�鏌ヨ鏄惁涓虹┖ + */ private boolean isEmptyRow(Row row) { if (row == null) return true; for (int colIdx = 0; colIdx < row.getLastCellNum(); colIdx++) { @@ -878,8 +893,8 @@ } /** - * 浣跨敤姝e垯鎻愬彇瀛楁 - */ + * 浣跨敤姝e垯鎻愬彇瀛楁 + */ private String extractField(String text, String regex) { if (StringUtils.isBlank(text)) return ""; Pattern pattern = Pattern.compile(regex); @@ -888,8 +903,8 @@ } /** - * 鑾峰彇鍗曞厓鏍煎瓧绗︿覆鍊� - */ + * 鑾峰彇鍗曞厓鏍煎瓧绗︿覆鍊� + */ private String getCellStringValue(Cell cell) { if (cell == null) return ""; switch (cell.getCellType()) { @@ -910,8 +925,8 @@ } /** - * 澶勭悊鍏紡鍗曞厓鏍� - */ + * 澶勭悊鍏紡鍗曞厓鏍� + */ private String handleFormulaCell(Cell cell) { try { FormulaEvaluator evaluator = cell.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator(); @@ -920,10 +935,14 @@ if (cellValue == null) return ""; switch (cellValue.getCellType()) { - case STRING: return cellValue.getStringValue(); - case NUMERIC: return String.valueOf((int) cellValue.getNumberValue()); - case BOOLEAN: return String.valueOf(cellValue.getBooleanValue()); - default: return ""; + case STRING: + return cellValue.getStringValue(); + case NUMERIC: + return String.valueOf((int) cellValue.getNumberValue()); + case BOOLEAN: + return String.valueOf(cellValue.getBooleanValue()); + default: + return ""; } } catch (Exception e) { return ""; @@ -932,8 +951,10 @@ /*瀵煎叆鐐规鏂囦欢Excel--------------------------缁撴潫*/ /*瀵煎叆浜屼繚涓変繚鏂囦欢Excel--------------------------寮�濮�*/ + /** * 缁熶竴淇濆吇瑙勮寖瀵煎叆鍏ュ彛 + * * @param file 涓婁紶鏂囦欢 * @param type 淇濆吇绫诲瀷 (SECOND/THIRD) * @return 瀵煎叆缁撴灉锛堝寘鍚垚鍔�/澶辫触淇℃伅锛� @@ -951,7 +972,6 @@ List<XWPFTable> tables = doc.getTables(); EamMaintenanceStandard standard = null; - boolean firstTableProcessed = false; List<EamMaintenanceStandardDetail> items = new ArrayList<>(); String standardId = null; @@ -967,13 +987,17 @@ } // 鎻愬彇璁惧淇℃伅 - standard = extractDeviceInfo(table); + standard = extractDeviceInfo(table, type); if (standard == null) { return Result.error(fileName + ": 璁惧淇℃伅鎻愬彇澶辫触"); } // 閰嶇疆绫诲瀷鐩稿叧鍙傛暟 configureStandard(standard, type, file); + EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name()); + if (exist != null) { + return Result.error(fileName + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞"); + } eamMaintenanceStandardMapper.insert(standard); standardId = standard.getId(); @@ -984,8 +1008,7 @@ items.addAll(extractThirdMaintenanceItems(table, standardId, true)); } - firstTableProcessed = true; - } else if (firstTableProcessed) { // 鍚庣画椤甸潰 + } else { // 鍚庣画椤甸潰 // 鎻愬彇鍚庣画椤甸潰鐨勪繚鍏婚」鐩� if ("SECOND".equals(type)) { items.addAll(extractSecondMaintenanceItems(table, standardId, false)); @@ -1011,6 +1034,18 @@ // 4. 淇濆瓨椤圭洰 eamMaintenanceStandardDetailService.saveBatch(items); + + SysParams sysParams = sysParamsService.getSysPramBySettingKey("maintenance_import_type"); + + if (sysParams != null) { + if (sysParams.getSettingValue().equals("1")) { + standard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name()); + eamMaintenanceStandardMapper.updateById(standard); + } + } else { + return Result.error("鏈壘鍒颁繚鍏绘祦绋嬪鍏ョ浉鍏抽厤缃�,璇疯仈绯荤鐞嗗憳"); + } + return Result.ok(fileName + ": 瀵煎叆鎴愬姛, 椤圭洰鏁�: " + items.size()); } catch (ImportException e) { @@ -1022,7 +1057,7 @@ /** * 鍚庡鐞嗘柟娉曪細鏍规嵁涓嶅悓绫诲瀷杩涜澶勭悊 - */ + */ private void processItemsAfterExtraction(List<EamMaintenanceStandardDetail> items, String type) { if ("SECOND".equals(type)) { // 浜岀骇淇濆吇: 鍒犻櫎娌℃湁搴忓彿鐨勬暟鎹� @@ -1033,18 +1068,21 @@ if (!items.isEmpty()) { items.remove(0); } - // 2. 涓虹己澶遍儴浣嶇殑鏁版嵁濉厖鍓嶄竴鏉$殑淇濆吇閮ㄤ綅 String lastPart = ""; + int i = 1; for (EamMaintenanceStandardDetail item : items) { + item.setItemCode(i); if (item.getItemPart() != null && !item.getItemPart().isEmpty()) { lastPart = item.getItemPart(); } else if (!lastPart.isEmpty()) { item.setItemPart(lastPart); } + i++; } } } + /** * 鎻愬彇浜岀骇淇濆吇椤圭洰锛堝尯鍒嗙涓�椤靛拰鍚庣画椤甸潰锛� */ @@ -1083,7 +1121,7 @@ if (row.getTableCells().size() > 1) { String seqText = getCellText(row.getCell(1)); try { - if (!seqText.equals("搴忓彿")){ + if (!seqText.equals("搴忓彿")) { item.setItemCode(Integer.parseInt(seqText.trim())); } } catch (NumberFormatException e) { @@ -1130,7 +1168,6 @@ // 鍒涘缓淇濆吇椤圭洰 EamMaintenanceStandardDetail item = new EamMaintenanceStandardDetail(); - item.setItemCategory("THIRD_MAINTENANCE"); item.setStandardId(standardId); int colCount = row.getTableCells().size(); @@ -1173,7 +1210,7 @@ } else if (cellContents.size() == 1) { // 鍗曞垪妯″紡锛氳涓哄唴瀹� item.setItemName(cellContents.get(0)); - } else if (cellContents.isEmpty() && !isRowEmpty(row)) { + } else if (!isRowEmpty(row)) { // 鐗规畩澶勭悊锛氳闈炵┖浣嗘病鏈夋彁鍙栧埌鍐呭锛堝彲鑳芥槸澶嶆潅鍚堝苟鍗曞厓鏍硷級 // 灏濊瘯鎻愬彇鏁磋鏂囨湰浣滀负鍐呭 StringBuilder content = new StringBuilder(); @@ -1210,7 +1247,7 @@ /** * 鏂囨。绫诲瀷鏍¢獙 - 闃叉浜屼繚浼犲叆涓変繚鎴栧弽涔� - */ + */ private boolean isWrongDocumentType(XWPFTable table, String requestedType) { boolean hasRepairTitle = false; boolean hasOperatorTitle = false; @@ -1257,7 +1294,7 @@ /** * 鎻愬彇璁惧鍩烘湰淇℃伅 */ - private EamMaintenanceStandard extractDeviceInfo(XWPFTable table) { + private EamMaintenanceStandard extractDeviceInfo(XWPFTable table, String type) { if (table.getNumberOfRows() < 2) return null; // 鎻愬彇鍓嶄袱琛屾暟鎹� @@ -1276,18 +1313,18 @@ EamEquipment equipments = eamEquipmentService.selectByEquipmentCode(standard.getEquipmentCode()); if (equipments == null) { return null; - }else { + } else { standard.setEquipmentId(equipments.getId()); + } + if (type.equals("THIRD")) { + EamEquipmentExtend eamEquipmentExtend = eamEquipmentExtendService.getById(standard.getEquipmentId()); + standard.setMaintenancePeriod(eamEquipmentExtend.getThirdMaintenancePeriod()); } } return standard; } - // 绠�鏄撶増瀛楃涓查潪绌哄垽鏂� - private boolean isNotBlank(String str) { - return str != null && !str.trim().isEmpty(); - } /** * 琛ㄦ牸琛屾暟鎹В鏋� @@ -1371,21 +1408,6 @@ } /** - * 鍒涘缓淇濆吇椤圭洰 - */ - private EamMaintenanceStandardDetail createItem( - EamMaintenanceStandardDetailCategory category, - String content, - String standardId) { - - EamMaintenanceStandardDetail item = new EamMaintenanceStandardDetail(); - item.setItemCategory(category.name()); - item.setStandardId(standardId); - item.setItemName(cleanContent(content)); - return item; - } - - /** * 鍏煎鐗堝崟鍏冩牸鏂囨湰鎻愬彇 */ private String getCellText(XWPFTableCell cell) { @@ -1405,28 +1427,6 @@ } } return text.toString(); - } - - /** - * 鍐呭娓呯悊 - */ - private String cleanContent(String text) { - if (text == null) return ""; - - // 鏇挎崲鐗规畩绌烘牸鍜屽悎骞惰繛缁┖鏍� - text = text.replace('\u00A0', ' ') - .replace('\u2007', ' ') - .replace('\u202F', ' ') - .replaceAll("\\s+", " "); - - // 瑙勮寖鏍囩偣绗﹀彿 - return text.replace(',', '銆�') - .replace('锛�', '銆�') - .replace(';', '锛�') - .replace('锛�', '锛�') - .replace(':', '锛�') - .replace('锛�', '锛�') - .trim(); } /** -- Gitblit v1.9.3