Browse Source

BUG修复

wangliang 3 years ago
parent
commit
4481f44dc7

+ 211 - 211
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -142,89 +142,89 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Override
     @Transactional
     public void flowEnd(String flowId) {
-        if (redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TIME_OUT)) {
-            try {
-                Task task = taskService.createTaskQuery().processInstanceId(flowId).singleResult();
-                SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-                runtimeService.deleteProcessInstance(flowId, FlowGdykdxApproveSetupEnum.END.getTitle());
-                //流程审批
-                QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
-                tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(flowId));
-                TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
-                if (Objects.isNull(tfFlowApprove)) {
-                    tfFlowApprove = new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), sysUser.getId(), FlowStatusEnum.END, sysUser.getId());
-                } else {
-                    tfFlowApprove.setStatus(FlowStatusEnum.END);
-                    tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
-                    tfFlowApprove.updateInfo(sysUser.getId());
-                }
-                tfFlowApproveService.saveOrUpdate(tfFlowApprove);
-
-                //流程流水日志
-                QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
-                examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(flowId));
-                ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
-                TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId(), FlowGdykdxApproveSetupEnum.END.getTitle());
-                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.END);
-                tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
-                tfFlowLogService.save(tfFlowLog);
+        boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TIME_OUT);
+        if (!lock) {
+            throw ExceptionResultEnum.ERROR.exception("正在终止中,请稍候再试!");
+        }
+        try {
+            Task task = taskService.createTaskQuery().processInstanceId(flowId).singleResult();
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            runtimeService.deleteProcessInstance(flowId, FlowGdykdxApproveSetupEnum.END.getTitle());
+            //流程审批
+            QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
+            tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(flowId));
+            TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
+            if (Objects.isNull(tfFlowApprove)) {
+                tfFlowApprove = new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), sysUser.getId(), FlowStatusEnum.END, sysUser.getId());
+            } else {
+                tfFlowApprove.setStatus(FlowStatusEnum.END);
+                tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
+                tfFlowApprove.updateInfo(sysUser.getId());
+            }
+            tfFlowApproveService.saveOrUpdate(tfFlowApprove);
 
-                if (Objects.nonNull(task)) {
-                    String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(flowId).singleResult().getProcessDefinitionId();
-                    ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
-                    //获取当前流程节点
-                    String currActivityId = task.getTaskDefinitionKey();
-                    BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
-                    FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
-                    if (currFlow instanceof UserTask) {
-                        UserTask userTask = (UserTask) currFlow;
-                        //广东医科大学流程
-                        if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
-                            //流程审批记录
-                            QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
-                            tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(flowId))
-                                    .eq(TFFlowApproveLog::getTaskId, examTask.getId());
-                            TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
-                            if (Objects.isNull(tfFlowApproveLog)) {
-                                tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId());
-                            }
+            //流程流水日志
+            QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
+            examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(flowId));
+            ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
+            TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId(), FlowGdykdxApproveSetupEnum.END.getTitle());
+            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.END);
+            tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.END.getSetup());
+            tfFlowLogService.save(tfFlowLog);
 
-                            FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
-                            if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题
-                                tfFlowApproveLog.setStartId(sysUser.getId());
-                                tfFlowApproveLog.setRemark(FlowGdykdxApproveSetupEnum.SUBMIT.getTitle() + FlowApproveOperationEnum.END.getTitle());
-                            } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任
-                                tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
-                                tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.END);
-                                tfFlowApproveLog.setPrimaryApproveRemark(FlowApproveOperationEnum.END.getTitle());
-                            } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长
-                                tfFlowApproveLog.setSecondApproveId(sysUser.getId());
-                                tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.END);
-                                tfFlowApproveLog.setSecondApproveRemark(FlowApproveOperationEnum.END.getTitle());
-                            }
-                            tfFlowApproveLog.updateInfo(sysUser.getId());
-                            tfFlowApproveLogService.saveOrUpdate(tfFlowApproveLog);
+            if (Objects.nonNull(task)) {
+                String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(flowId).singleResult().getProcessDefinitionId();
+                ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
+                //获取当前流程节点
+                String currActivityId = task.getTaskDefinitionKey();
+                BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
+                FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
+                if (currFlow instanceof UserTask) {
+                    UserTask userTask = (UserTask) currFlow;
+                    //广东医科大学流程
+                    if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
+                        //流程审批记录
+                        QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
+                        tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(flowId))
+                                .eq(TFFlowApproveLog::getTaskId, examTask.getId());
+                        TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
+                        if (Objects.isNull(tfFlowApproveLog)) {
+                            tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId());
+                        }
+
+                        FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
+                        if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题
+                            tfFlowApproveLog.setStartId(sysUser.getId());
+                            tfFlowApproveLog.setRemark(FlowGdykdxApproveSetupEnum.SUBMIT.getTitle() + FlowApproveOperationEnum.END.getTitle());
+                        } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任
+                            tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
+                            tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.END);
+                            tfFlowApproveLog.setPrimaryApproveRemark(FlowApproveOperationEnum.END.getTitle());
+                        } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长
+                            tfFlowApproveLog.setSecondApproveId(sysUser.getId());
+                            tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.END);
+                            tfFlowApproveLog.setSecondApproveRemark(FlowApproveOperationEnum.END.getTitle());
                         }
+                        tfFlowApproveLog.updateInfo(sysUser.getId());
+                        tfFlowApproveLogService.saveOrUpdate(tfFlowApproveLog);
                     }
                 }
+            }
 
-                //命题任务修改
-                examTask.setFlowId(null);
-                examTask.setStatus(ExamStatusEnum.DRAFT);
-                examTask.updateInfo(sysUser.getId());
-                examTaskService.updateById(examTask);
-            } catch (Exception e) {
-                e.printStackTrace();
-                if (e instanceof ApiException) {
-                    ResultUtil.error((ApiException) e, e.getMessage());
-                } else {
-                    ResultUtil.error(e.getMessage());
-                }
-            } finally {
-                redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId);
+            //命题任务修改
+            examTask.setFlowId(null);
+            examTask.setStatus(ExamStatusEnum.DRAFT);
+            examTask.updateInfo(sysUser.getId());
+            examTaskService.updateById(examTask);
+        } catch (Exception e) {
+            e.printStackTrace();
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
             }
-        } else {
-            throw ExceptionResultEnum.ERROR.exception("正在终止中,请稍候再试!");
+        } finally {
+            redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId);
         }
     }
 
@@ -264,150 +264,150 @@ public class ActivitiServiceImpl implements ActivitiService {
             throw ExceptionResultEnum.ERROR.exception("流程任务id不能为空");
         }
         flowTaskId = (String) map.get(SystemConstant.FLOW_TASK_ID);
-        if (redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId, SystemConstant.REDIS_LOCK_FLOW_TASK_TIME_OUT)) {
-            try {
-                Task task = taskService.createTaskQuery().taskId(flowTaskId).singleResult();
-                if (Objects.isNull(task)) {
-                    throw ExceptionResultEnum.ERROR.exception("流程任务为空");
-                }
-                String processInstanceId = task.getProcessInstanceId();
-                QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
-                examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(processInstanceId));
-                ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
-
-                String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
-                ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
-                //获取当前流程节点
-                String currActivityId = task.getTaskDefinitionKey();
-                BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
-                FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
-
-                //流程审批
-                QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
-                tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(processInstanceId));
-                TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
-
-                //流程审批记录
-                QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
-                tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(processInstanceId))
-                        .eq(TFFlowApproveLog::getTaskId, examTask.getId());
-                TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
+        boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId, SystemConstant.REDIS_LOCK_FLOW_TASK_TIME_OUT);
+        if (!lock) {
+            throw ExceptionResultEnum.ERROR.exception("正在审批中,请稍候再试!");
+        }
+        try {
+            Task task = taskService.createTaskQuery().taskId(flowTaskId).singleResult();
+            if (Objects.isNull(task)) {
+                throw ExceptionResultEnum.ERROR.exception("流程任务为空");
+            }
+            String processInstanceId = task.getProcessInstanceId();
+            QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
+            examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, Long.parseLong(processInstanceId));
+            ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
 
-                TFFlowLog tfFlowLog = null;
-                if (currFlow instanceof UserTask) {
-                    UserTask userTask = (UserTask) currFlow;
-                    //广东医科大学流程
-                    if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
-                        String remark = Objects.nonNull(map.get(SystemConstant.APPROVE_REMARK)) ? map.get(SystemConstant.APPROVE_REMARK).toString() : null;
-                        //流程流水日志
-                        tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId(), remark);
-                        FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
-                        if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题提交
-                            flowSubmitVaild(task, sysUser.getId());
-                            if (Objects.isNull(tfFlowApproveLog)) {
-                                tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId());
-                            }
-                            tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
-                            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.SUBMIT);
+            String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
+            ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
+            //获取当前流程节点
+            String currActivityId = task.getTaskDefinitionKey();
+            BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
+            FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
+
+            //流程审批
+            QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
+            tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, Long.parseLong(processInstanceId));
+            TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
+
+            //流程审批记录
+            QueryWrapper<TFFlowApproveLog> tfFlowApproveLogQueryWrapper = new QueryWrapper<>();
+            tfFlowApproveLogQueryWrapper.lambda().eq(TFFlowApproveLog::getFlowId, Long.parseLong(processInstanceId))
+                    .eq(TFFlowApproveLog::getTaskId, examTask.getId());
+            TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.getOne(tfFlowApproveLogQueryWrapper);
+
+            TFFlowLog tfFlowLog = null;
+            if (currFlow instanceof UserTask) {
+                UserTask userTask = (UserTask) currFlow;
+                //广东医科大学流程
+                if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
+                    String remark = Objects.nonNull(map.get(SystemConstant.APPROVE_REMARK)) ? map.get(SystemConstant.APPROVE_REMARK).toString() : null;
+                    //流程流水日志
+                    tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId(), remark);
+                    FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
+                    if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题提交
+                        flowSubmitVaild(task, sysUser.getId());
+                        if (Objects.isNull(tfFlowApproveLog)) {
+                            tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId());
+                        }
+                        tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
+                        tfFlowLog.setApproveOperation(FlowApproveOperationEnum.SUBMIT);
+                        tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
+                        tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
+                    } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任提交
+                        flowApproveVaild(task, sysUser.getId(), map);
+                        FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
+                        FlowApproveVariableEnum approve = approvePass == FlowApprovePassEnum.PASS ? FlowApproveVariableEnum.PRIMARY_APPROVE : FlowApproveVariableEnum.PRIMARY_REJECT;
+                        tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
+                        tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
+                        tfFlowApproveLog.setPrimaryApproveRemark(remark);
+                        if (approve == FlowApproveVariableEnum.PRIMARY_REJECT) {//驳回命题
+                            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
+                            tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.REJECT);
+                            tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
+                            tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
+                        } else if (approve == FlowApproveVariableEnum.PRIMARY_APPROVE) {//提交
+                            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
+                            tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.APPROVE);
                             tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
-                            tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
-                        } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任提交
-                            flowApproveVaild(task, sysUser.getId(), map);
-                            FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
-                            FlowApproveVariableEnum approve = approvePass == FlowApprovePassEnum.PASS ? FlowApproveVariableEnum.PRIMARY_APPROVE : FlowApproveVariableEnum.PRIMARY_REJECT;
-                            tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
-                            tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
-                            tfFlowApproveLog.setPrimaryApproveRemark(remark);
-                            if (approve == FlowApproveVariableEnum.PRIMARY_REJECT) {//驳回命题
-                                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
-                                tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.REJECT);
-                                tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
-                                tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
-                            } else if (approve == FlowApproveVariableEnum.PRIMARY_APPROVE) {//提交
-                                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
-                                tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.APPROVE);
-                                tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
-                                tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
-                            } else {
-                                throw ExceptionResultEnum.ERROR.exception("流程变量值错误");
-                            }
-                            map.computeIfAbsent(SystemConstant.APPROVE, v -> approve.getId());
-                        } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长提交
-                            flowApproveVaild(task, sysUser.getId(), map);
-                            FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
-                            FlowApproveVariableEnum approve = null;
-                            tfFlowApproveLog.setSecondApproveId(sysUser.getId());
-                            tfFlowApproveLog.setSecondApproveRemark(remark);
-                            if (approvePass == FlowApprovePassEnum.PASS) {
-                                approve = FlowApproveVariableEnum.SECOND_APPROVE;
-                            } else {
-                                if (Objects.isNull(map.get(SystemConstant.APPROVE_SETUP))) {
-                                    throw ExceptionResultEnum.ERROR.exception("流程驳回节点不能为空");
-                                }
-                                Integer setup = Integer.parseInt(map.get(SystemConstant.APPROVE_SETUP).toString());
-                                if (setup.intValue() < FlowGdykdxApproveSetupEnum.SUBMIT.getSetup() || setup.intValue() >= FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup()) {
-                                    throw ExceptionResultEnum.ERROR.exception("流程驳回节点有误");
-                                }
-                                approve = setup.intValue() == 1 ? FlowApproveVariableEnum.SECOND_REJECT_ONE : FlowApproveVariableEnum.SECOND_REJECT_TWO;
+                            tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
+                        } else {
+                            throw ExceptionResultEnum.ERROR.exception("流程变量值错误");
+                        }
+                        map.computeIfAbsent(SystemConstant.APPROVE, v -> approve.getId());
+                    } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长提交
+                        flowApproveVaild(task, sysUser.getId(), map);
+                        FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
+                        FlowApproveVariableEnum approve = null;
+                        tfFlowApproveLog.setSecondApproveId(sysUser.getId());
+                        tfFlowApproveLog.setSecondApproveRemark(remark);
+                        if (approvePass == FlowApprovePassEnum.PASS) {
+                            approve = FlowApproveVariableEnum.SECOND_APPROVE;
+                        } else {
+                            if (Objects.isNull(map.get(SystemConstant.APPROVE_SETUP))) {
+                                throw ExceptionResultEnum.ERROR.exception("流程驳回节点不能为空");
                             }
-                            tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
-                            if (approve == FlowApproveVariableEnum.SECOND_REJECT_ONE) {//驳回命题
-                                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
-                                tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.REJECT);
-                                tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
-                                tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
-                            } else if (approve == FlowApproveVariableEnum.SECOND_REJECT_TWO) {//驳回主任
-                                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
-                                tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.REJECT);
-                                tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
-                                tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
-                            } else if (approve == FlowApproveVariableEnum.SECOND_APPROVE) {//提交
-                                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
-                                tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.APPROVE);
-                                tfFlowApprove.setStatus(FlowStatusEnum.FINISH);
-                                tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.FINISH.getSetup());
-                            } else {
-                                throw ExceptionResultEnum.ERROR.exception("流程变量值错误");
+                            Integer setup = Integer.parseInt(map.get(SystemConstant.APPROVE_SETUP).toString());
+                            if (setup.intValue() < FlowGdykdxApproveSetupEnum.SUBMIT.getSetup() || setup.intValue() >= FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup()) {
+                                throw ExceptionResultEnum.ERROR.exception("流程驳回节点有误");
                             }
-                            FlowApproveVariableEnum finalApprove = approve;
-                            map.computeIfAbsent(SystemConstant.APPROVE, v -> finalApprove.getId());
+                            approve = setup.intValue() == 1 ? FlowApproveVariableEnum.SECOND_REJECT_ONE : FlowApproveVariableEnum.SECOND_REJECT_TWO;
                         }
-                        tfFlowApprove.updateInfo(sysUser.getId());
-                        tfFlowApproveLog.updateInfo(sysUser.getId());
+                        tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup());
+                        if (approve == FlowApproveVariableEnum.SECOND_REJECT_ONE) {//驳回命题
+                            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
+                            tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.REJECT);
+                            tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
+                            tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup());
+                        } else if (approve == FlowApproveVariableEnum.SECOND_REJECT_TWO) {//驳回主任
+                            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
+                            tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.REJECT);
+                            tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
+                            tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
+                        } else if (approve == FlowApproveVariableEnum.SECOND_APPROVE) {//提交
+                            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.APPROVE);
+                            tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.APPROVE);
+                            tfFlowApprove.setStatus(FlowStatusEnum.FINISH);
+                            tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.FINISH.getSetup());
+                        } else {
+                            throw ExceptionResultEnum.ERROR.exception("流程变量值错误");
+                        }
+                        FlowApproveVariableEnum finalApprove = approve;
+                        map.computeIfAbsent(SystemConstant.APPROVE, v -> finalApprove.getId());
                     }
+                    tfFlowApprove.updateInfo(sysUser.getId());
+                    tfFlowApproveLog.updateInfo(sysUser.getId());
                 }
-                tfFlowApprove.setApproveId(sysUser.getId());
-                //当前实例的执行到哪个节点
-                taskService.complete(String.valueOf(flowTaskId), map);
-                tfFlowApproveService.saveOrUpdate(tfFlowApprove);
-                if (Objects.nonNull(tfFlowLog)) {
-                    tfFlowLogService.save(tfFlowLog);
-                }
-                if (Objects.nonNull(tfFlowApproveLog)) {
-                    tfFlowApproveLogService.saveOrUpdate(tfFlowApproveLog);
-                }
-                examTask.updateInfo(sysUser.getId());
-                examTaskService.updateById(examTask);
-                Map<String, Object> objectMap = new HashMap<>();
-                objectMap.putIfAbsent("tfFlowApprove", tfFlowApprove);
-                objectMap.putIfAbsent("examTask", examTask);
-                objectMap.putIfAbsent("sysUser", sysUser);
-                return objectMap;
-            } catch (Exception e) {
-                log.error("请求出错", e);
-                e.printStackTrace();
-                if (e instanceof ApiException) {
-                    ResultUtil.error((ApiException) e, e.getMessage());
-                } else {
-                    ResultUtil.error(e.getMessage());
-                }
-            } finally {
-                redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId);
             }
-        } else {
-            throw ExceptionResultEnum.ERROR.exception("正在审批中,请稍候再试!");
+            tfFlowApprove.setApproveId(sysUser.getId());
+            //当前实例的执行到哪个节点
+            taskService.complete(String.valueOf(flowTaskId), map);
+            tfFlowApproveService.saveOrUpdate(tfFlowApprove);
+            if (Objects.nonNull(tfFlowLog)) {
+                tfFlowLogService.save(tfFlowLog);
+            }
+            if (Objects.nonNull(tfFlowApproveLog)) {
+                tfFlowApproveLogService.saveOrUpdate(tfFlowApproveLog);
+            }
+            examTask.updateInfo(sysUser.getId());
+            examTaskService.updateById(examTask);
+            Map<String, Object> objectMap = new HashMap<>();
+            objectMap.putIfAbsent("tfFlowApprove", tfFlowApprove);
+            objectMap.putIfAbsent("examTask", examTask);
+            objectMap.putIfAbsent("sysUser", sysUser);
+            return objectMap;
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            e.printStackTrace();
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        } finally {
+            redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId);
         }
-        return null;
+        return map;
     }
 
     /**

+ 14 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java

@@ -224,23 +224,22 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
         List<TCStatistics> tcStatisticsList = tcStatisticsService.list(tcStatisticsQueryWrapper);
         if (Objects.nonNull(tcStatisticsList) && tcStatisticsList.size() > 0) {
             Set<String> batchNoSet = tcStatisticsList.stream().map(s -> s.getBatchNo()).collect(Collectors.toSet());
-            if (redisUtil.lock(SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs(batchNoSet.toString().hashCode()),
-                    SystemConstant.REDIS_LOCK_BATCH_NO_TIME_OUT)) {
-                try {
-                    tcStatisticsService.freshenJoinData(sysUser, batchNoSet);
-                } catch (Exception e) {
-                    log.error("请求出错", e);
-                    if (e instanceof ApiException) {
-                        return ResultUtil.error((ApiException) e, e.getMessage());
-                    } else {
-                        return ResultUtil.error(e.getMessage());
-                    }
-                } finally {
-                    redisUtil.releaseLock(SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs(batchNoSet.toString().hashCode()));
-                }
-            } else {
+            boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs(batchNoSet.toString().hashCode()), SystemConstant.REDIS_LOCK_BATCH_NO_TIME_OUT);
+            if (!lock) {
                 throw ExceptionResultEnum.ERROR.exception("正在刷新数据,请稍候再试!");
             }
+            try {
+                tcStatisticsService.freshenJoinData(sysUser, batchNoSet);
+            } catch (Exception e) {
+                log.error("请求出错", e);
+                if (e instanceof ApiException) {
+                    return ResultUtil.error((ApiException) e, e.getMessage());
+                } else {
+                    return ResultUtil.error(e.getMessage());
+                }
+            } finally {
+                redisUtil.releaseLock(SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs(batchNoSet.toString().hashCode()));
+            }
         }
         return ResultUtil.ok(true);
     }