| | |
| | | throw new JeecgBootException("设备不存在,添加失败!"); |
| | | } |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if(sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { |
| | | if(sysUser != null) { |
| | | if (!BusinessCodeConst.PCR0001.equals(sysUser.getPost()) && !BusinessCodeConst.PCR0002.equals(sysUser.getPost())){ |
| | | throw new JeecgBootException("不是操作工,无法领取此工单!"); |
| | | } |
| | | } |
| | | if (sysUser != null) { |
| | | entity.setOperator(sysUser.getUsername()); |
| | | } |
| | | if (BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { |
| | | entity.setOperator(sysUser.getUsername()); |
| | | }else if (BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { |
| | | entity.setRepairman(sysUser.getUsername()); |
| | | } |
| | | 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("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()); |
| | | //设置entity |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name()); |
| | | entity.setConfirmTime(new Date()); |
| | | break; |
| | | case WAIT_LEADER_CONFIRM: |
| | | if (parallelCompletion) { |
| | | values.put("NextAssignee", userApprovalList); |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_ADMIN_CONFIRM.name()); |
| | | entity.setActualEndTime(new Date()); |
| | | } |
| | | } |
| | | if (BusinessCodeConst.PCR0001.equals(user.getPost())) { |
| | | entity.setOperator(user.getUsername()); |
| | | //处理对应详情 |
| | | }else if (BusinessCodeConst.PCR0002.equals(user.getPost())) { |
| | | entity.setRepairman(user.getUsername()); |
| | | //处理对应详情 |
| | | } |
| | | values.put("dataId", entity.getId()); |
| | | //设置entity |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); |
| | | //更新设备保养状态 |
| | | eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); |
| | | values.put("organization", "三保执行结束"); |
| | | values.put("comment", "三保执行结束"); |
| | | break; |
| | | case WAIT_ADMIN_CONFIRM: |
| | | //管理员确认 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003); |
| | | 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.getComment()); |
| | | values.put("comment", request.getComment()); |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name()); |
| | | entity.setManageUser(user.getUsername()); |
| | | entity.setProblemDescription(request.getProblemDescription()); |
| | | entity.setDealDescription(request.getComment()); |
| | | entity.setConfirmTime(new Date()); |
| | | } |
| | | break; |
| | | case WAIT_INSPECTOR_CONFIRM: |
| | | //检查人确认 |
| | | values.put("dataId", entity.getId()); |
| | | values.put("organization",request.getComment()); |
| | | values.put("comment", request.getComment()); |
| | | entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); |
| | | entity.setInspector(user.getUsername()); |
| | | entity.setInspectConfirmComment(request.getInspectConfirmComment()); |
| | | entity.setInspectConfirmTime(new Date()); |
| | | break; |
| | | default: |
| | | throw new JeecgBootException("审批失败"); |
| | | } |
| | | request.setValues(values); |
| | | |
| | | // 完成流程任务 |
| | | Result result = flowTaskService.complete(request); |
| | | if (!result.isSuccess()) { |