| | |
| | | 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; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private ISysUserService sysUserService; |
| | | @Autowired |
| | | private IEamEquipmentExtendService equipmentExtendService; |
| | | @Autowired |
| | | private IEamTechnicalStatusEvaluationOrderDetailService eamTechnicalStatusEvaluationOrderDetailService; |
| | | |
| | | @Override |
| | | public IPage<EamTechnicalStatusEvaluationOrder> queryPageList(Page<EamTechnicalStatusEvaluationOrder> page, EamTechnicalStatusEvaluationOrderQuery query) { |
| | |
| | | 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()); |
| | | //删除标记 |
| | |
| | | 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()); |
| | |
| | | List<UserSelector> userSelectors; |
| | | switch (status) { |
| | | case UNDER_EVALUATION: |
| | | if (CollectionUtil.isEmpty(request.getTableDetailList())) { |
| | | throw new JeecgBootException("检查明细信息为空!"); |
| | | } |
| | | boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); |
| | | //执行完成 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008); |
| | |
| | | values.put("comment", "技术状态鉴定执行结束"); |
| | | request.setComment("技术状态鉴定执行结束"); |
| | | //设置entity |
| | | if (parallelCompletion) { |
| | | if (CommonConstant.STATUS_1.equals(entity.getSafetyCheckCompleted()) |
| | | && CommonConstant.STATUS_1.equals(entity.getPrecisionCheckCompleted()) |
| | | && CommonConstant.STATUS_1.equals(entity.getOtherCheckCompleted()) |
| | | && parallelCompletion) { |
| | | //多个任务都已完成且维修室主任都已审批通过,会签完成,进行维修工签字 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | |
| | | entity.setOtherCheckCompleted(CommonConstant.STATUS_1); |
| | | } else if ("other_check_confirm".equals(flowMyBusiness.getTaskNameId()) && CommonConstant.STATUS_1.equals(entity.getOtherCheckCompleted())) { |
| | | values.put("otherCheckFlag", request.getOtherCheckConfirmResult()); |
| | | entity.setOtherCheckResult(request.getOtherCheckConfirmResult()); |
| | | entity.setOtherCheckConfirmResult(request.getOtherCheckConfirmResult()); |
| | | entity.setOtherCheckConfirm(user.getUsername()); |
| | | entity.setOtherCheckConfirmTime(new Date()); |
| | | entity.setOtherCheckConfirmComment(request.getOtherCheckConfirmComment()); |
| | |
| | | entity.setRepairManagerSignature(user.getUsername()); |
| | | entity.setRepairManagerSignatureTime(new Date()); |
| | | entity.setRepairManagerComment(request.getRepairManagerComment()); |
| | | entity.setRepairManagerSignatureResult(request.getRepairManagerSignatureResult()); |
| | | //设置entity |
| | | if (BusinessCodeConst.APPROVED.equals(request.getRepairManagerSignatureResult())) { |
| | | values.put("NextAssignee", userApprovalList); |
| | |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name()); |
| | | } |
| | | // //更新设备保养状态 |
| | | // eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); |
| | | break; |
| | | case PROCESS_TECHNICIAN_SIGNING: |
| | | //工艺员签字 |
| | |
| | | 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: |
| | |
| | | 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); |
| | |
| | | @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) { |