From 6e006cb835fce4720139de0cc2ec3be734295ed9 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期六, 12 七月 2025 14:18:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java | 150 ++++++++++++++------------------------------------ 1 files changed, 42 insertions(+), 108 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 d19d873..b26bfbe 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 @@ -3,12 +3,12 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.flowable.engine.TaskService; @@ -33,8 +33,13 @@ 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.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.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; @@ -66,7 +71,10 @@ private TaskService taskService; @Autowired private IFlowTaskService flowTaskService; - + @Autowired + private IBaseFactoryUserService baseFactoryUserService; + @Autowired + private IBaseFactoryService baseFactoryService; @Autowired private ISysUserService sysUserService; @Autowired @@ -75,6 +83,10 @@ private IEamReportRepairService eamReportRepairService; @Autowired private IEamEquipmentExtendService eamEquipmentExtendService; + @Autowired + private IEamBaseHFCodeService hfCodeService; + @Autowired + private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; @Override public IPage<EamSecondMaintenanceOrder> queryPageList(Page<EamSecondMaintenanceOrder> page, EamSecondMaintenanceQuery query) { @@ -84,13 +96,21 @@ if (sysUser == null) { return page; } - if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { + if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 - List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); + List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { - //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� - queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); + //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� + 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 (query != null) { @@ -140,6 +160,12 @@ order.setStandardId(request.getStandardId()); order.setMaintenanceDate(request.getMaintenanceDate()); order.setOperator(request.getOperator()); + //鎶�鏈姸鎬侀壌瀹氳〃 + EamBaseHFCode eamBaseHFCode = hfCodeService.selectByCategory(HfTemplateCategoryEnum.SECOND_MAINTENANCE.name()); + if(eamBaseHFCode == null) { + throw new JeecgBootException("鏈厤缃妧鏈姸鎬侀壌瀹氳〃鐨凥F缂栫爜锛屾坊鍔犲け璐ワ紒"); + } + order.setHfCode(eamBaseHFCode.getHfCode()); order.setRemark(request.getRemark()); //鐘舵�佸垵濮嬪寲 order.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); @@ -148,43 +174,17 @@ order.setDelFlag(CommonConstant.DEL_FLAG_0); eamSecondMaintenanceOrderMapper.insert(order); //澶勭悊鏄庣粏鏁版嵁 - if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { - request.getTableDetailList().forEach(tableDetail -> { - tableDetail.setId(null); - tableDetail.setOrderId(order.getId()); + List<EamMaintenanceStandardDetail> eamMaintenanceStandardDetailList= eamMaintenanceStandardDetailService.selectByStandardId(order.getStandardId()); + List<EamSecondMaintenanceOrderDetail> requestTableDetailList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(eamMaintenanceStandardDetailList)) { + eamMaintenanceStandardDetailList.forEach(item -> { + EamSecondMaintenanceOrderDetail detail = new EamSecondMaintenanceOrderDetail(); + BeanUtils.copyProperties(item, detail); + detail.setOrderId(order.getId()); + requestTableDetailList.add(detail); }); - secondMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); + secondMaintenanceOrderDetailService.saveBatch(requestTableDetailList); } - //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� - if (StringUtils.isNotBlank(order.getOperator())) { - //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�: " + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(), - order.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null); - Map<String, Object> variables = new HashMap<>(); - variables.put("dataId", order.getId()); - if (StrUtil.isEmpty(order.getRemark())) { - variables.put("organization", "鏂板浜屼繚宸ュ崟榛樿鍚姩娴佺▼"); - variables.put("comment", "鏂板浜屼繚宸ュ崟榛樿鍚姩娴佺▼"); - } else { - variables.put("organization", order.getRemark()); - variables.put("comment", order.getRemark()); - } - variables.put("proofreading", true); - List<String> usernames = new ArrayList<>(); - usernames.add(order.getOperator()); - variables.put("NextAssignee", usernames); - Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables); - if (result != null) { - //鏇存柊鍛ㄤ繚鐘舵�� - order.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); - order.setActualStartTime(new Date()); - eamSecondMaintenanceOrderMapper.updateById(order); - //鏇存柊璁惧淇濆吇鐘舵�� - eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name()); - return result.isSuccess(); - } - } - return true; } @@ -203,33 +203,9 @@ throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�"); } entity.setMaintenanceDate(request.getMaintenanceDate()); - entity.setOperator(request.getOperator()); entity.setRemark(request.getRemark()); eamSecondMaintenanceOrderMapper.updateById(entity); - //澶勭悊璇︽儏 - if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { - List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>(); - List<EamSecondMaintenanceOrderDetail> updateList = new ArrayList<>(); - request.getTableDetailList().forEach(tableDetail -> { - tableDetail.setOrderId(entity.getId()); - if (tableDetail.getId() == null) { - addList.add(tableDetail); - } else { - updateList.add(tableDetail); - } - }); - if (CollectionUtil.isNotEmpty(addList)) { - secondMaintenanceOrderDetailService.saveBatch(addList); - } - if (CollectionUtil.isNotEmpty(updateList)) { - secondMaintenanceOrderDetailService.updateBatchById(updateList); - } - } - if (CollectionUtil.isNotEmpty(request.getRemoveDetailList())) { - List<String> ids = request.getRemoveDetailList().stream().map(EamSecondMaintenanceOrderDetail::getId).collect(Collectors.toList()); - secondMaintenanceOrderDetailService.removeBatchByIds(ids); - } //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� if (StringUtils.isNotBlank(entity.getOperator())) { //鍚姩娴佺▼ @@ -370,21 +346,6 @@ //璁剧疆entity entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name()); entity.setActualEndTime(new Date()); - //澶勭悊闄勪欢 - 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())) { - secondMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList()); - } //鏇存柊璁惧淇濆吇鐘舵�� eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name()); break; @@ -395,41 +356,14 @@ } //鐝粍闀跨‘璁� 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(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name()); - entity.setConfirmUser(user.getUsername()); - entity.setConfirmComment(request.getConfirmComment()); entity.setConfirmTime(new Date()); - entity.setConfirmDealType(request.getConfirmDealType()); - if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) { - //椹冲洖 - userApprovalList = new ArrayList<>(); - userApprovalList.add(entity.getOperator()); - values.put("NextAssignee", userApprovalList); - entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); - } - //澶勭悊鎶ヤ慨 - List<EamSecondMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(collect)) { - eamReportRepairService.reportRepairFromSecondMaintenance(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(SecondMaintenanceStatusEnum.COMPLETE.name()); - entity.setConfirmLeader(user.getUsername()); - entity.setLeaderConfirmComment(request.getLeaderConfirmComment()); - entity.setLeaderConfirmTime(new Date()); //鏇存柊璁惧淇濆吇鐘舵�� eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); break; -- Gitblit v1.9.3