| | |
| | | import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum; |
| | | import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; |
| | | import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum; |
| | | import org.jeecg.modules.eam.entity.EamBaseHFCode; |
| | | import org.jeecg.modules.eam.entity.EamEquipment; |
| | | import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder; |
| | | import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard; |
| | | 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; |
| | |
| | | } else { |
| | | queryWrapper.orderByDesc("ems.create_time"); |
| | | } |
| | | queryWrapper.orderByDesc("ems.create_time"); |
| | | return this.getBaseMapper().queryPageList(page, queryWrapper); |
| | | } |
| | | |
| | |
| | | order.setEvaluationDate(request.getEvaluationDate()); |
| | | order.setRemark(request.getRemark()); |
| | | String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CODE_RULE); |
| | | request.setOrderNum(codeSeq); |
| | | request.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); |
| | | order.setOrderNum(codeSeq); |
| | | order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); |
| | | //ç¶æåå§å |
| | | order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name()); |
| | | order.setCreationMethod(request.getCreationMethod()); |
| | | //å 餿 è®° |
| | | order.setDelFlag(CommonConstant.DEL_FLAG_0); |
| | | //ææ¯ç¶æé´å®è¡¨ |
| | |
| | | if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { |
| | | request.getTableDetailList().forEach(tableDetail -> { |
| | | tableDetail.setId(null); |
| | | tableDetail.setCreateBy(null); |
| | | tableDetail.setCreateTime(null); |
| | | tableDetail.setUpdateBy(null); |
| | | tableDetail.setUpdateTime(null); |
| | | tableDetail.setOrderId(order.getId()); |
| | | }); |
| | | orderDetailService.saveBatch(request.getTableDetailList()); |
| | |
| | | throw new JeecgBootException("è®¾å¤æªåé
ç»ç»´ä¿®å·¥ï¼æ æ³é¢åï¼"); |
| | | } |
| | | List<String> userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | if (!userApprovalList.contains(sysUser.getUsername())) { |
| | | throw new JeecgBootException("æ¨æ²¡æé¢åæ¤å·¥åçæéï¼"); |
| | | } |
| | | entity.setEvaluator(sysUser.getUsername()); |
| | | entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name()); |
| | | entity.setActualStartTime(new Date()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public EamTechnicalStatusEvaluationOrder approval(EamTechnicalStatusEvaluationOrderRequest request) { |
| | | EamTechnicalStatusEvaluationOrder entity = this.getBaseMapper().selectById(request.getId()); |
| | | if (entity == null) { |
| | | throw new JeecgBootException("审æ¹çæ°æ®å·²å é¤ï¼è¯·å·æ°éè¯ï¼"); |
| | | } |
| | | // è·åå½åç»å½ç¨æ· |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (user == null || StrUtil.isBlank(user.getId())) { |
| | | throw new JeecgBootException("æªè·åå°ç»å½ç¨æ·ï¼è¯·éæ°ç»å½ååè¯ï¼"); |
| | | } |
| | | request.setAssignee(user.getUsername()); |
| | | // è·åæµç¨ä¸å¡è®°å½ |
| | | FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId()); |
| | | if (flowMyBusiness == null) { |
| | | throw new JeecgBootException("æµç¨å®ä¾ä¸åå¨ï¼è¯·å·æ°åéè¯ï¼"); |
| | | } |
| | | |
| | | boolean userAuthorized = flowMyBusinessService.isUserAuthorized(flowMyBusiness, user); |
| | | if (!userAuthorized) { |
| | | throw new JeecgBootException("ç¨æ·æ ææä½æ¤ä»»å¡ï¼è¯·å·æ°åéè¯ï¼"); |
| | | } |
| | | // 认é¢ä»»å¡ |
| | | if (!flowMyBusinessService.claimTask(flowMyBusiness.getTaskId(), user)) { |
| | | throw new JeecgBootException("ä»»å¡ä¸åå¨ã已宿æå·²è¢«ä»äººè®¤é¢ï¼"); |
| | | } |
| | | |
| | | EamEquipment equipment = equipmentService.getById(entity.getEquipmentId()); |
| | | if (equipment == null) { |
| | | throw new JeecgBootException("设å¤ä¸åå¨ï¼è¯·æ£æ¥ï¼"); |
| | | } |
| | | |
| | | TechnicalStatusEvaluationOrderStatusEnum status = TechnicalStatusEvaluationOrderStatusEnum.getInstance(entity.getEvaluationStatus()); |
| | | if (status == null) { |
| | | return null; |
| | | } |
| | | //æµç¨åé |
| | | Map<String, Object> values = new HashMap<>(); |
| | | List<String> userApprovalList; |
| | | List<UserSelector> userSelectors; |
| | | switch (status) { |
| | | case UNDER_EVALUATION: |
| | | boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); |
| | | //æ§è¡å®æ |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("è®¾å¤æªåé
ç»ç»´ä¿®å®¤ä¸»ä»»ï¼æ æ³è¿å
¥ä¸çº§å®¡æ¹ï¼"); |
| | | } |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("dataId", entity.getId()); |
| | | values.put("organization", "ææ¯ç¶æé´å®æ§è¡ç»æ"); |
| | | values.put("comment", "ææ¯ç¶æé´å®æ§è¡ç»æ"); |
| | | request.setComment("ææ¯ç¶æé´å®æ§è¡ç»æ"); |
| | | //设置entity |
| | | if (parallelCompletion) { |
| | | //å¤ä¸ªä»»å¡é½å·²å®æä¸ç»´ä¿®å®¤ä¸»ä»»é½å·²å®¡æ¹éè¿,ä¼ç¾å®æï¼è¿è¡ç»´ä¿®å·¥ç¾å |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name()); |
| | | entity.setActualEndTime(new Date()); |
| | | } |
| | | if ("safety_equipment_check".equals(flowMyBusiness.getTaskNameId())) { |
| | | //æ§è¡å®å
¨æ£æ¥ |
| | | if(CommonConstant.STATUS_1.equals(entity.getSafetyCheckCompleted())) { |
| | | values.put("safetyEquipmentCheckFlag", request.getSafetyCheckConfirmResult()); |
| | | entity.setSafetyCheckConfirmResult(request.getSafetyCheckConfirmResult()); |
| | | entity.setSafetyCheckConfirm(user.getUsername()); |
| | | entity.setSafetyCheckConfirmTime(new Date()); |
| | | entity.setSafetyCheckConfirmComment(request.getSafetyCheckConfirmComment()); |
| | | //ç»´ä¿®å®¤ä¸»ä»»å®¡æ¹ |
| | | if(!CommonConstant.STATUS_1.equals(request.getSafetyCheckConfirmResult())) { |
| | | //驳å ç»çå¯äºº |
| | | userApprovalList = Collections.singletonList(request.getTableDetailList().get(0).getRepairmanSignature()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setSafetyCheckCompleted(CommonConstant.STATUS_0); |
| | | } |
| | | }else { |
| | | //å®å
¨è£
ç½®æ£æ¥ç»æå¡«æ¥ |
| | | if(CollectionUtil.isNotEmpty(request.getTableDetailList())) { |
| | | for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) { |
| | | detail.setRepairmanSignature(user.getUsername()); |
| | | detail.setRepairmanSignatureTime(new Date()); |
| | | } |
| | | orderDetailService.updateBatchById(request.getTableDetailList()); |
| | | } |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setSafetyCheckCompleted(CommonConstant.STATUS_1); |
| | | } |
| | | } else if ("equipment_precision_check".equals(flowMyBusiness.getTaskNameId())) { |
| | | //å¤ç精度æ£éª |
| | | if(CommonConstant.STATUS_1.equals(entity.getPrecisionCheckCompleted())) { |
| | | values.put("precisionCheckFlag", request.getPrecisionCheckConfirmResult()); |
| | | entity.setPrecisionCheckConfirmResult(request.getPrecisionCheckConfirmResult()); |
| | | entity.setPrecisionCheckConfirm(user.getUsername()); |
| | | entity.setPrecisionCheckConfirmTime(new Date()); |
| | | entity.setPrecisionCheckConfirmComment(request.getPrecisionCheckConfirmComment()); |
| | | //ç»´ä¿®å®¤ä¸»ä»»å®¡æ¹ |
| | | if(!CommonConstant.STATUS_1.equals(request.getPrecisionCheckConfirmResult())) { |
| | | //驳å ç»çå¯äºº |
| | | userApprovalList = Collections.singletonList(request.getTableDetailList().get(0).getRepairmanSignature()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setPrecisionCheckCompleted(CommonConstant.STATUS_0); |
| | | } |
| | | }else { |
| | | //设å¤ç²¾åº¦æ£æ¥ç»æå¡«æ¥ |
| | | if(CollectionUtil.isNotEmpty(request.getTableDetailList())) { |
| | | for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) { |
| | | detail.setRepairmanSignature(user.getUsername()); |
| | | detail.setRepairmanSignatureTime(new Date()); |
| | | } |
| | | orderDetailService.updateBatchById(request.getTableDetailList()); |
| | | } |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setPrecisionCheckCompleted(CommonConstant.STATUS_1); |
| | | } |
| | | |
| | | } else if("other_check".equals(flowMyBusiness.getTaskNameId())) { |
| | | //å¤çå
¶ä»æ£æ¥ |
| | | if(CommonConstant.STATUS_1.equals(entity.getOtherCheckCompleted())) { |
| | | values.put("otherCheckFlag", request.getOtherCheckResult()); |
| | | entity.setOtherCheckResult(request.getOtherCheckConfirmResult()); |
| | | entity.setOtherCheckConfirm(user.getUsername()); |
| | | entity.setOtherCheckConfirmTime(new Date()); |
| | | entity.setOtherCheckConfirmComment(request.getOtherCheckConfirmComment()); |
| | | //ç»´ä¿®å®¤ä¸»ä»»å®¡æ¹ |
| | | if(!CommonConstant.STATUS_1.equals(request.getOtherCheckConfirmResult())) { |
| | | //驳å ç»çå¯äºº |
| | | userApprovalList = Collections.singletonList(request.getTableDetailList().get(0).getRepairmanSignature()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setOtherCheckCompleted(CommonConstant.STATUS_0); |
| | | } |
| | | }else { |
| | | //å
¶ä»æ£æ¥ç»æå¡«æ¥ |
| | | if(CollectionUtil.isNotEmpty(request.getTableDetailList())) { |
| | | for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) { |
| | | detail.setRepairmanSignature(user.getUsername()); |
| | | detail.setRepairmanSignatureTime(new Date()); |
| | | } |
| | | orderDetailService.updateBatchById(request.getTableDetailList()); |
| | | } |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setOtherCheckCompleted(CommonConstant.STATUS_1); |
| | | } |
| | | } |
| | | break; |
| | | case REPAIRER_SIGNING: |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("è®¾å¤æªåé
ç»ç»´ä¿®å®¤ä¸»ä»»ï¼æ æ³è¿å
¥ä¸çº§å®¡æ¹ï¼"); |
| | | } |
| | | //维修工ç¾å |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("dataId", entity.getId()); |
| | | values.put("organization", "维修工ç¾å宿"); |
| | | values.put("comment", "维修工ç¾å宿"); |
| | | values.put("NextAssignee", userApprovalList); |
| | | request.setComment("维修工ç¾å宿"); |
| | | //设置entity |
| | | entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name()); |
| | | entity.setRepairerSignature(user.getUsername()); |
| | | entity.setRepairerSignatureTime(new Date()); |
| | | entity.setSafetyEquipmentCheckResult(request.getSafetyEquipmentCheckResult()); |
| | | entity.setPrecisionCheckResult(request.getPrecisionCheckResult()); |
| | | entity.setFunctionalCheckResult(request.getFunctionalCheckResult()); |
| | | entity.setOtherCheckResult(request.getOtherCheckResult()); |
| | | break; |
| | | case REPAIR_MANAGER_SIGNING: |
| | | // values.put("dataId", entity.getId()); |
| | | // values.put("organization", request.getLeaderConfirmComment()); |
| | | // values.put("comment", request.getLeaderConfirmComment()); |
| | | // request.setComment(request.getLeaderConfirmComment()); |
| | | // //设置entity |
| | | // entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name()); |
| | | // entity.setConfirmLeader(user.getUsername()); |
| | | // entity.setLeaderConfirmComment(request.getLeaderConfirmComment()); |
| | | // entity.setLeaderConfirmTime(new Date()); |
| | | // //æ´æ°è®¾å¤ä¿å
»ç¶æ |
| | | // eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); |
| | | break; |
| | | case PROCESS_TECHNICIAN_SIGNING: |
| | | break; |
| | | case DEPART_TECHNICAL_LEADER_SIGNING: |
| | | break; |
| | | case INSPECTOR_SIGNING: |
| | | break; |
| | | } |
| | | request.setValues(values); |
| | | |
| | | // 宿æµç¨ä»»å¡ |
| | | Result<?> result = flowTaskService.complete(request); |
| | | if (!result.isSuccess()) { |
| | | throw new JeecgBootException("审æ¹å¤±è´¥ï¼è¯·å·æ°æ¥çï¼"); |
| | | } |
| | | //ä¿åå·¥å |
| | | this.getBaseMapper().updateById(entity); |
| | | return entity; |
| | | } |
| | | |
| | | @Override |
| | | public void afterFlowHandle(FlowMyBusiness business) { |
| | | business.getTaskNameId();//æ¥ä¸æ¥å®¡æ¹çèç¹ |
| | | business.getValues();//åç«¯ä¼ è¿æ¥çåæ° |