| | |
| | | } |
| | | //查询条件过滤 |
| | | if (query != null) { |
| | | if (StringUtils.isNotBlank(query.getId())){ |
| | | queryWrapper.eq("wmo.id", query.getId()); |
| | | } |
| | | if (StringUtils.isNotBlank(query.getEquipmentId())) { |
| | | queryWrapper.eq("wmo.equipment_id", query.getEquipmentId()); |
| | | } |
| | |
| | | eamMaintenanceStandardDetailList.forEach(item -> { |
| | | EamSecondMaintenanceOrderDetail detail = new EamSecondMaintenanceOrderDetail(); |
| | | BeanUtils.copyProperties(item, detail); |
| | | detail.setId(null); |
| | | detail.setOrderId(order.getId()); |
| | | requestTableDetailList.add(detail); |
| | | }); |
| | |
| | | throw new JeecgBootException("设备不存在,添加失败!"); |
| | | } |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if(sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { |
| | | throw new JeecgBootException("不是操作工,无法领取此工单!"); |
| | | if(sysUser != null) { |
| | | if (!BusinessCodeConst.PCR0001.equals(sysUser.getPost()) && !BusinessCodeConst.PCR0002.equals(sysUser.getPost())){ |
| | | throw new JeecgBootException("不是操作工,无法领取此工单!"); |
| | | } |
| | | } |
| | | entity.setOperator(sysUser.getUsername()); |
| | | List<String> usernames = new ArrayList<>(); |
| | | if (sysUser != null) { |
| | | if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { |
| | | entity.setOperator(sysUser.getUsername()); |
| | | usernames.add(entity.getOperator()); |
| | | } |
| | | if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { |
| | | entity.setRepairman(sysUser.getUsername()); |
| | | usernames.add(entity.getRepairman()); |
| | | } |
| | | } |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); |
| | | entity.setActualStartTime(new Date()); |
| | | eamSecondMaintenanceOrderMapper.updateById(entity); |
| | | |
| | | //启动流程 |
| | | flowCommonService.initActBusiness("工单号: " + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";安装位置" + equipment.getInstallationPosition(), |
| | | entity.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null); |
| | | flowCommonService.initActBusiness("工单号: " + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + "进行设备二级保养", |
| | | entity.getId(), "IEamSecondMaintenanceOrderService", "SecondMaintenance_Process", null); |
| | | Map<String, Object> variables = new HashMap<>(); |
| | | variables.put("dataId", entity.getId()); |
| | | if (StrUtil.isEmpty(entity.getRemark())) { |
| | |
| | | variables.put("comment", entity.getRemark()); |
| | | } |
| | | variables.put("proofreading", true); |
| | | List<String> usernames = new ArrayList<>(); |
| | | usernames.add(entity.getOperator()); |
| | | variables.put("NextAssignee", usernames); |
| | | Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables); |
| | | if (sysUser != null) { |
| | | if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { |
| | | variables.put("operator_task", usernames); |
| | | List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); |
| | | if (!CollectionUtils.isEmpty(userSelectorList)) { |
| | | List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | variables.put("maintenance_task",usernameList); |
| | | } |
| | | }else if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { |
| | | variables.put("maintenance_task", usernames); |
| | | List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001); |
| | | if (!CollectionUtils.isEmpty(userSelectorList)) { |
| | | List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | variables.put("operator_task",usernameList); |
| | | } |
| | | } |
| | | } |
| | | Result result = flowDefinitionService.startProcessInstanceByKey("SecondMaintenance_Process", variables); |
| | | if (result != null) { |
| | | //更新设备保养状态 |
| | | eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name()); |
| | |
| | | } |
| | | request.setAssignee(user.getUsername()); |
| | | // 获取流程业务记录 |
| | | FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId()); |
| | | FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId()); |
| | | if (flowMyBusiness == null) { |
| | | throw new JeecgBootException("流程实例不存在,请刷新后重试!"); |
| | | } |
| | |
| | | List<UserSelector> userSelectors; |
| | | switch (status) { |
| | | case UNDER_MAINTENANCE: |
| | | //保养中 |
| | | boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId()); |
| | | //执行完成 |
| | | //设备管理员确认 |
| | | // String equipmentManager = equipment.getEquipmentManager(); |
| | | // if(StringUtils.isBlank(equipmentManager)) { |
| | | // throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!"); |
| | | // } |
| | | // userApprovalList = Collections.singletonList(equipmentManager); |
| | | values.put("dataId", entity.getId()); |
| | | values.put("organization", "二保执行结束"); |
| | | values.put("comment", "二保执行结束"); |
| | | // values.put("NextAssignee", userApprovalList); |
| | | request.setComment("二保执行结束"); |
| | | //设置entity |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name()); |
| | | entity.setActualEndTime(new Date()); |
| | | //更新设备保养状态 |
| | | eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name()); |
| | | break; |
| | | case WAIT_CONFIRM: |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003); |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0004); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!"); |
| | | throw new JeecgBootException("设备未存在管理员,无法进入下级审批!"); |
| | | }else{ |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | if (parallelCompletion) { |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_ADMIN_CONFIRM.name()); |
| | | entity.setActualEndTime(new Date()); |
| | | } |
| | | } |
| | | //班组长确认 |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | //设置entity |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name()); |
| | | entity.setConfirmTime(new Date()); |
| | | break; |
| | | case WAIT_LEADER_CONFIRM: |
| | | if (BusinessCodeConst.PCR0001.equals(user.getPost())) { |
| | | entity.setOperator(user.getUsername()); |
| | | values.put("organization", "二保操作工执行结束"); |
| | | values.put("comment", "二保操作工执行结束"); |
| | | request.setComment("二保操作工执行结束"); |
| | | //处理对应详情 |
| | | if (CollectionUtils.isNotEmpty(request.getTableDetailList())){ |
| | | //删除原有数据 |
| | | List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>(); |
| | | //先删除原有 |
| | | LambdaQueryWrapper<EamSecondMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId()); |
| | | queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.OPERATOR_MAINTENANCE.name()); |
| | | secondMaintenanceOrderDetailService.remove(queryWrapper); |
| | | request.getTableDetailList().forEach(tableDetail -> { |
| | | EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); |
| | | BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); |
| | | eamMaintenanceStandardDetail.setOrderId(entity.getId()); |
| | | addList.add(eamMaintenanceStandardDetail); |
| | | }); |
| | | secondMaintenanceOrderDetailService.saveBatch(addList); |
| | | } |
| | | }else if (BusinessCodeConst.PCR0002.equals(user.getPost())) { |
| | | entity.setRepairman(user.getUsername()); |
| | | values.put("organization", "二保维修工执行结束"); |
| | | values.put("comment", "二保维修工执行结束"); |
| | | request.setComment("二保维修工执行结束"); |
| | | //处理对应详情 |
| | | if (CollectionUtils.isNotEmpty(request.getTableDetailList())){ |
| | | //删除原有数据 |
| | | List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>(); |
| | | //先删除原有 |
| | | LambdaQueryWrapper<EamSecondMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId()); |
| | | queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.REPAIRER_MAINTENANCE.name()); |
| | | secondMaintenanceOrderDetailService.remove(queryWrapper); |
| | | request.getTableDetailList().forEach(tableDetail -> { |
| | | EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail(); |
| | | BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail); |
| | | eamMaintenanceStandardDetail.setOrderId(entity.getId()); |
| | | addList.add(eamMaintenanceStandardDetail); |
| | | }); |
| | | secondMaintenanceOrderDetailService.saveBatch(addList); |
| | | } |
| | | } |
| | | values.put("dataId", entity.getId()); |
| | | //设置entity |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); |
| | | //更新设备保养状态 |
| | | eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); |
| | | break; |
| | | case WAIT_ADMIN_CONFIRM: |
| | | //管理员确认 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0006); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未存在检查人,无法进入下级审批!"); |
| | | }else{ |
| | | userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | values.put("dataId", entity.getId()); |
| | | values.put("organization",request.getDealDescription()); |
| | | values.put("comment", request.getDealDescription()); |
| | | values.put("manageUserResult",request.getManageUserResult()); |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name()); |
| | | entity.setManageUser(user.getUsername()); |
| | | entity.setProblemDescription(request.getProblemDescription()); |
| | | entity.setManageUserResult(request.getManageUserResult()); |
| | | entity.setDealDescription(request.getDealDescription()); |
| | | entity.setConfirmTime(new Date()); |
| | | request.setComment(request.getDealDescription()); |
| | | } |
| | | break; |
| | | case WAIT_INSPECTOR_CONFIRM: |
| | | //检查人确认 |
| | | values.put("dataId", entity.getId()); |
| | | values.put("organization",request.getInspectConfirmComment()); |
| | | values.put("comment", request.getInspectConfirmComment()); |
| | | values.put("inspectorResult",request.getInspectorResult()); |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); |
| | | entity.setInspector(user.getUsername()); |
| | | entity.setInspectorResult(request.getInspectorResult()); |
| | | entity.setInspectConfirmComment(request.getInspectConfirmComment()); |
| | | entity.setInspectConfirmTime(new Date()); |
| | | request.setComment(request.getDealDescription()); |
| | | break; |
| | | default: |
| | | throw new JeecgBootException("审批失败"); |
| | | } |
| | | request.setValues(values); |
| | | |
| | | // 完成流程任务 |
| | | Result result = flowTaskService.complete(request); |
| | | if (!result.isSuccess()) { |