Browse Source

Merge branch 'dev_v2.2.0' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev_v2.2.0

xiaof 3 years ago
parent
commit
ef57d56eed

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

@@ -142,80 +142,80 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Override
     @Transactional
     public void flowEnd(String flowId) {
+        boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TIME_OUT);
+        if (!lock) {
+            throw ExceptionResultEnum.ERROR.exception("正在终止中,请稍候再试!");
+        }
         try {
-            if (redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TIME_OUT)) {
-                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);
+            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);
-            } else {
-                throw ExceptionResultEnum.ERROR.exception("正在终止中,请稍候再试!");
             }
+
+            //命题任务修改
+            examTask.setFlowId(null);
+            examTask.setStatus(ExamStatusEnum.DRAFT);
+            examTask.updateInfo(sysUser.getId());
+            examTaskService.updateById(examTask);
         } catch (Exception e) {
             e.printStackTrace();
             if (e instanceof ApiException) {
@@ -259,143 +259,143 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Transactional
     public Map<String, Object> taskApprove(Map<String, Object> map) {
         String flowTaskId = null;
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        if (Objects.isNull(map.get(SystemConstant.FLOW_TASK_ID))) {
+            throw ExceptionResultEnum.ERROR.exception("流程任务id不能为空");
+        }
+        flowTaskId = (String) map.get(SystemConstant.FLOW_TASK_ID);
+        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 {
-            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-            if (Objects.isNull(map.get(SystemConstant.FLOW_TASK_ID))) {
-                throw ExceptionResultEnum.ERROR.exception("流程任务id不能为空");
+            Task task = taskService.createTaskQuery().taskId(flowTaskId).singleResult();
+            if (Objects.isNull(task)) {
+                throw ExceptionResultEnum.ERROR.exception("流程任务为空");
             }
-            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)) {
-                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);
+            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;
-            } 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();
@@ -407,7 +407,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         } finally {
             redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId);
         }
-        return null;
+        return map;
     }
 
     /**

+ 5 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java

@@ -224,13 +224,12 @@ 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());
+            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 {
-                if (redisUtil.lock(SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs(batchNoSet.toString().hashCode()),
-                        SystemConstant.REDIS_LOCK_BATCH_NO_TIME_OUT)) {
-                    tcStatisticsService.freshenJoinData(sysUser, batchNoSet);
-                } else {
-                    throw ExceptionResultEnum.ERROR.exception("正在刷新数据,请稍候再试!");
-                }
+                tcStatisticsService.freshenJoinData(sysUser, batchNoSet);
             } catch (Exception e) {
                 log.error("请求出错", e);
                 if (e instanceof ApiException) {

+ 2 - 2
distributed-print/src/main/resources/application-test.properties

@@ -56,9 +56,9 @@ aliyun.oss.bucket=teachcloud-test
 aliyun.oss.url=http://${aliyun.oss.bucket}.${aliyun.oss.name}
 
 com.qmth.fss.public.config=oss://key:secret@teachcloud-dps-dev-public.oss-api.qmth.com.cn
-com.qmth.fss.public.server=http://oss-file.qmth.com.cn/teachcloud-dps-dev-public
+com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-dps-dev-public
 com.qmth.fss.private.config=oss://key:secret@teachcloud-dps-dev-private.oss-api.qmth.com.cn
-com.qmth.fss.private.server=http://oss-file.qmth.com.cn/teachcloud-dps-dev-private
+com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-dps-dev-private
 
 #\u7CFB\u7EDF\u914D\u7F6E
 sys.config.oss=true

+ 24 - 22
teachcloud-task/src/main/java/com/qmth/teachcloud/task/config/RedisMessageListener.java

@@ -73,25 +73,31 @@ public class RedisMessageListener implements MessageListener {
                             && Objects.nonNull(redisUtil.get(SystemConstant.MQ_TOPIC_BUFFER_LIST, mqDto.getId()))
                             && redisUtil.lock(SystemConstant.REDIS_LOCK_MQ_PREFIX + mqDto.getId(),
                             SystemConstant.REDIS_LOCK_MQ_TIME_OUT)) {
-                        //通道
-                        String topic = new String(message.getChannel(), SystemConstant.CHARSET_NAME);
-                        mqDto.setAck(SystemConstant.STANDARD_ACK_TYPE);
-                        log.info("mqDto:{},topic:{}", JacksonUtil.parseJson(mqDto), JacksonUtil.parseJson(topic));
-                        Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
-                        Map<String, Object> finalMap = new HashMap<>();
-                        map.forEach((k, v) -> {
-                            if (Objects.equals(k, SystemConstant.TASK)) {
-                                v = JSONObject.parseObject(JSON.toJSONString(v), TBTask.class);
-                            } else if (Objects.equals(k, SystemConstant.USER)) {
-                                v = JSONObject.parseObject(JSON.toJSONString(v), SysUser.class);
+                        try {
+                            //通道
+                            String topic = new String(message.getChannel(), SystemConstant.CHARSET_NAME);
+                            log.info("mqDto:{},topic:{}", JacksonUtil.parseJson(mqDto), JacksonUtil.parseJson(topic));
+                            Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
+                            Map<String, Object> finalMap = new HashMap<>();
+                            map.forEach((k, v) -> {
+                                if (Objects.equals(k, SystemConstant.TASK)) {
+                                    v = JSONObject.parseObject(JSON.toJSONString(v), TBTask.class);
+                                } else if (Objects.equals(k, SystemConstant.USER)) {
+                                    v = JSONObject.parseObject(JSON.toJSONString(v), SysUser.class);
+                                }
+                                Object finalV = v;
+                                finalMap.computeIfAbsent(k, v1 -> finalV);
+                            });
+                            asyncCreatePdfTempleteService.createPdf(finalMap, null);
+                            redisUtil.set(SystemConstant.CURRENT_TASK_MACHINE_ID, redisMachineService.getMachineId());
+                            redisUtil.delete(SystemConstant.MQ_TOPIC_BUFFER_LIST, mqDto.getId());
+                            mqDto.setAck(SystemConstant.STANDARD_ACK_TYPE);
+                            break;
+                        } finally {
+                            if (Objects.nonNull(mqDto)) {
+                                redisUtil.releaseLock(SystemConstant.REDIS_LOCK_MQ_PREFIX + mqDto.getId());
                             }
-                            Object finalV = v;
-                            finalMap.computeIfAbsent(k, v1 -> finalV);
-                        });
-                        asyncCreatePdfTempleteService.createPdf(finalMap, null);
-                        redisUtil.set(SystemConstant.CURRENT_TASK_MACHINE_ID, redisMachineService.getMachineId());
-                        redisUtil.delete(SystemConstant.MQ_TOPIC_BUFFER_LIST, mqDto.getId());
-                        break;
+                        }
                     } else {
                         if (Objects.isNull(redisUtil.get(SystemConstant.MQ_TOPIC_BUFFER_LIST, mqDto.getId()))) {
                             break;
@@ -110,10 +116,6 @@ public class RedisMessageListener implements MessageListener {
                 TMMqMessage tmMqMessage = gson.fromJson(gson.toJson(mqDto), TMMqMessage.class);
                 tmMqMessage.setBody(JacksonUtil.parseJson(tmMqMessage.getBody()));
                 tmMqMessageService.saveOrUpdate(tmMqMessage);
-            }
-        } finally {
-            if (Objects.nonNull(mqDto) && (mqDto.getAck().intValue() == SystemConstant.STANDARD_ACK_TYPE
-                    || mqDto.getAck().intValue() == SystemConstant.POSION_ACK_TYPE)) {
                 redisUtil.releaseLock(SystemConstant.REDIS_LOCK_MQ_PREFIX + mqDto.getId());
             }
         }