From 5f0bc1e4ad0c51a8bf1382dc3f98e282c1393c3b Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期四, 11 九月 2025 17:48:55 +0800 Subject: [PATCH] 真空热处理炉批量打印接口 三保 加工设备保养计划变更申请单批量打印接口 设备精度检查单批量打印接口开发 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java | 145 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 135 insertions(+), 10 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java index 118e202..5fd573e 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java @@ -17,12 +17,14 @@ 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.constant.*; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationOrderMapper; import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery; import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderRequest; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderResult; import org.jeecg.modules.eam.service.*; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; @@ -41,6 +43,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -84,6 +87,8 @@ private ISysUserService sysUserService; @Autowired private IEamEquipmentExtendService equipmentExtendService; + @Autowired + private IEamTechnicalStatusEvaluationOrderDetailService eamTechnicalStatusEvaluationOrderDetailService; @Override public IPage<EamTechnicalStatusEvaluationOrder> queryPageList(Page<EamTechnicalStatusEvaluationOrder> page, EamTechnicalStatusEvaluationOrderQuery query) { @@ -165,15 +170,20 @@ if (CollectionUtil.isEmpty(standardDetailList)) { throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩鏌ラ」涓虹┖锛屾坊鍔犲け璐ワ紒"); } + EamTechnicalStatusEvaluationOrder unCompleted = checkDuplicate(request.getEquipmentId()); + if(unCompleted != null) { + throw new JeecgBootException("璁惧宸插瓨鍦ㄦ湭瀹屾垚鐨勬妧鏈姸鎬侀壌瀹氬伐鍗曪紝鏃犳硶鍐嶆鏂板锛�"); + } EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder(); - order.setOrderNum(request.getOrderNum()); order.setEquipmentId(request.getEquipmentId()); order.setStandardId(request.getStandardId()); order.setEvaluationDate(request.getEvaluationDate()); + order.setFreezeOrderDate(request.getFreezeOrderDate()); + order.setOrderExpirationDate(request.getOrderExpirationDate()); order.setRemark(request.getRemark()); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CODE_RULE); order.setOrderNum(codeSeq); - order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); + order.setCreationMethod(request.getCreationMethod()); //鐘舵�佸垵濮嬪寲 order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); //鍒犻櫎鏍囪 @@ -245,7 +255,7 @@ this.getBaseMapper().updateById(entity); //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(), + flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode(), entity.getId(), "IEamTechnicalStatusEvaluationOrderService", "technical_status_evaluation_process", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); @@ -331,7 +341,7 @@ List<UserSelector> userSelectors; switch (status) { case UNDER_EVALUATION: - if(CollectionUtil.isEmpty(request.getTableDetailList())) { + if (CollectionUtil.isEmpty(request.getTableDetailList())) { throw new JeecgBootException("妫�鏌ユ槑缁嗕俊鎭负绌猴紒"); } boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); @@ -495,8 +505,6 @@ values.put("NextAssignee", userApprovalList); entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name()); } -// //鏇存柊璁惧淇濆吇鐘舵�� -// eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); break; case PROCESS_TECHNICIAN_SIGNING: //宸ヨ壓鍛樼瀛� @@ -532,14 +540,15 @@ entity.setDepartTechnicalLeaderSignature(user.getUsername()); entity.setDepartTechnicalLeaderSignatureTime(new Date()); entity.setDepartTechnicalLeaderComment(request.getDepartTechnicalLeaderComment()); + entity.setDepartTechnicalLeaderSignatureResult(request.getDepartTechnicalLeaderSignatureResult()); //璁剧疆entity if (BusinessCodeConst.APPROVED.equals(request.getDepartTechnicalLeaderSignatureResult())) { values.put("NextAssignee", userApprovalList); - entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name()); + entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name()); } else { userApprovalList = Collections.singletonList(entity.getProcessTechnicianSignature()); values.put("NextAssignee", userApprovalList); - entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name()); + entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name()); } break; case INSPECTOR_SIGNING: @@ -555,6 +564,11 @@ entity.setInspectorComment(request.getInspectorComment()); entity.setEvaluationResult(request.getEvaluationResult()); entity.setEvaluationReason(request.getEvaluationReason()); + //鏇存柊璁惧鎶�鏈姸鎬� + // 鎸夌収濉姤瀹屾垚鏃ユ湡璁$畻鏈涓変繚鏃ユ湡锛屽幓闄ゆ椂鍒嗙 + Date evaluationDate = DateUtils.localDateToDate(DateUtils.dateToLocalDate(entity.getActualEndTime())); + equipmentExtendService.updateTechnologyParam(equipment.getId(), entity.getEvaluationResult(), + evaluationDate, CommonConstant.STATUS_0); break; } request.setValues(values); @@ -573,14 +587,125 @@ @Transactional(rollbackFor = Exception.class) public boolean updateEvaluationStatus(String orderId, String evaluationStatus) { UpdateWrapper<EamTechnicalStatusEvaluationOrder> updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("order_id", orderId); + updateWrapper.eq("id", orderId); updateWrapper.set("evaluation_status", evaluationStatus); updateWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); - updateWrapper.eq("evaluation_status", TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); + updateWrapper.in("evaluation_status", Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name())); int update = this.getBaseMapper().update(null, updateWrapper); return update > 0; } + @Override + public List<EamTechnicalStatusEvaluationOrder> selectWaitEvaluationOrderList() { + LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); + queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + LocalDate localDate = LocalDate.now(); + queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate, localDate.toString()); + return this.getBaseMapper().selectList(queryWrapper); + } + + @Override + public List<EamTechnicalStatusEvaluationOrder> selectUncompletedEvaluationOrderList() { + LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>(); + List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name() + ); + queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList); + queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + LocalDate localDate = LocalDate.now(); + queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate, localDate.toString()); + return this.getBaseMapper().selectList(queryWrapper); + } + + /** + * 鎶�鏈壌瀹氳〃鎵归噺鎵撳嵃鎺ュ彛 + * @param ids + * @param type + * @return + */ + @Override + public List<EamTechnicalStatusEvaluationOrderResult> batchPrint(String ids, String type){ + QueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ems.del_flag",CommonConstant.DEL_FLAG_0.toString()); + queryWrapper.eq("ems.evaluation_status",TechnicalStatusEvaluationOrderStatusEnum.COMPLETED.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("ems.id", idList); + } else { + queryWrapper.orderByDesc("ems.create_time"); + } + List<EamTechnicalStatusEvaluationOrderResult> list = this.baseMapper.queryList(queryWrapper); + list.forEach(item->{ + if (TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK.name().equals(type)){ + List<EamTechnicalStatusEvaluationOrderDetail> evaluationStandardDetails= + eamTechnicalStatusEvaluationOrderDetailService.queryList(item.getId(),TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK.name()); + item.setTableSafetyDetailList(evaluationStandardDetails); + }else if (TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK.name().equals(type)){ + List<EamTechnicalStatusEvaluationOrderDetail> evaluationOrderDetails= + eamTechnicalStatusEvaluationOrderDetailService.queryList(item.getId(),TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK.name()); + item.setTablePrecisionDetailList(evaluationOrderDetails); + }else if (TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK.name().equals(type)){ + List<EamTechnicalStatusEvaluationOrderDetail> evaluationOrderDetails= + eamTechnicalStatusEvaluationOrderDetailService.queryList(item.getId(),TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK.name()); + item.setTableOtherDetailList(evaluationOrderDetails); + } + }); + return list; + } + + private EamTechnicalStatusEvaluationOrder checkDuplicate(String equipmentId) { + LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>(); + List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(), + TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name(), + TechnicalStatusEvaluationOrderStatusEnum.CHANGING.name() + ); + queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0); + queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEquipmentId, equipmentId); + List<EamTechnicalStatusEvaluationOrder> list = this.getBaseMapper().selectList(queryWrapper); + if (CollectionUtil.isEmpty(list)) { + return null; + } + return list.get(0); + } + private void checkDetailResult(List<EamTechnicalStatusEvaluationOrderDetail> detailList, TechnicalStatusEvaluationCheckCategoryEnum checkCategory) { boolean b; switch (checkCategory) { -- Gitblit v1.9.3