| | |
| | | @Service |
| | | @AllArgsConstructor |
| | | public class ReportFloodRecordServiceImpl extends BaseServiceImpl<ReportFloodRecordMapper, ReportFloodRecord> implements IReportFloodRecordService { |
| | | private final IFlowClient flowClient; |
| | | private final IAttResManagePersonService attResManagePersonService; |
| | | private final IUserClient userClient; |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean startProcess(ReportFloodRecordVO reportFloodRecord) { |
| | | String businessTable = FlowUtil.getBusinessTable(ProcessConstant.REPORT_FLOOD_KEY); |
| | | if (Func.isEmpty(reportFloodRecord.getId())) { |
| | | save(reportFloodRecord); |
| | | // 启动流程 |
| | | Kv variables = Kv.create() |
| | | .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, reportFloodRecord.getCreateUser()) |
| | | .set("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, reportFloodRecord.getTaskUser())); |
| | | R<BladeFlow> result = flowClient.startProcessInstanceById(reportFloodRecord.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(reportFloodRecord.getId())), variables); |
| | | if (result.isSuccess()) { |
| | | log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId()); |
| | | // 返回流程id写入 |
| | | reportFloodRecord.setProcessInstanceId(result.getData().getProcessInstanceId()); |
| | | updateById(reportFloodRecord); |
| | | |
| | | // //状态正常直接结束任务 |
| | | ReportFloodRecordVO reportFloodRecordVO = new ReportFloodRecordVO(); |
| | | reportFloodRecordVO.setProcessInstanceId(reportFloodRecord.getProcessInstanceId()); |
| | | //业务id |
| | | String businessId = reportFloodRecord.getId().toString(); |
| | | //当前用户id |
| | | String currentUserId = reportFloodRecord.getCreateUser().toString(); |
| | | //指定下一人 |
| | | String taskUser = reportFloodRecord.getTaskUser(); |
| | | R<BladeFlow> res = flowClient.getBladeFlow(businessId,currentUserId); |
| | | //参数设置 |
| | | if (res.isSuccess()){ |
| | | reportFloodRecordVO.setFlow(res.getData()); |
| | | if (Func.equals(reportFloodRecord.getStatus(),1)){ |
| | | //状态正常结束任务 |
| | | reportFloodRecordVO.setReport(false); |
| | | }else{ |
| | | //异常 |
| | | if (Func.equals(reportFloodRecord.getSolution(),"1")){ |
| | | //自行处理 |
| | | return true; |
| | | }else { |
| | | //上报给技术责任人 |
| | | reportFloodRecordVO.setReport(true); |
| | | } |
| | | } |
| | | } |
| | | completeTask(reportFloodRecordVO,taskUser,currentUserId); |
| | | } else { |
| | | throw new ServiceException("开启流程失败"); |
| | | } |
| | | } else { |
| | | updateById(reportFloodRecord); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public boolean completeTask(ReportFloodRecordVO reportFloodRecord, String taskUser, String currentUser) { |
| | | BladeFlow flow = reportFloodRecord.getFlow(); |
| | | String taskId = flow.getTaskId(); |
| | | String processInstanceId = reportFloodRecord.getProcessInstanceId(); |
| | | String comment = "完成"; |
| | | // 创建变量 |
| | | Map<String, Object> variables = flow.getVariables(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | //指定是否上报 |
| | | variables.put(ProcessConstant.REPORT_KEY,reportFloodRecord.isReport()); |
| | | //指定转交人 |
| | | variables.put("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser)); |
| | | // 完成任务 |
| | | flowClient.completeTask(taskId,processInstanceId,comment,variables); |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public ReportFloodRecordVO customizeGetDetail(String businessId) { |
| | | return baseMapper.customizeGetDetail(businessId); |
| | | public ReportFloodRecordVO customizeGetDetail(ReportFloodRecordVO reportFloodRecordVO) { |
| | | return baseMapper.customizeGetDetail(reportFloodRecordVO); |
| | | } |
| | | |
| | | /** |