소스 검색

BUG修复

wangliang 3 년 전
부모
커밋
cfb7a409fb

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

@@ -142,8 +142,8 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Override
     @Transactional
     public void flowEnd(String flowId) {
-        try {
-            if (redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TIME_OUT)) {
+        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());
@@ -213,18 +213,18 @@ public class ActivitiServiceImpl implements ActivitiService {
                 examTask.setStatus(ExamStatusEnum.DRAFT);
                 examTask.updateInfo(sysUser.getId());
                 examTaskService.updateById(examTask);
-            } else {
-                throw ExceptionResultEnum.ERROR.exception("正在终止中,请稍候再试!");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
+            } 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);
             }
-        } finally {
-            redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_PREFIX + flowId);
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("正在终止中,请稍候再试!");
         }
     }
 
@@ -259,13 +259,13 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Transactional
     public Map<String, Object> taskApprove(Map<String, Object> map) {
         String flowTaskId = null;
-        try {
-            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);
-            if (redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId, SystemConstant.REDIS_LOCK_FLOW_TASK_TIME_OUT)) {
+        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);
+        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("流程任务为空");
@@ -393,19 +393,19 @@ public class ActivitiServiceImpl implements ActivitiService {
                 objectMap.putIfAbsent("examTask", examTask);
                 objectMap.putIfAbsent("sysUser", sysUser);
                 return objectMap;
-            } else {
-                throw ExceptionResultEnum.ERROR.exception("正在审批中,请稍候再试!");
-            }
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            e.printStackTrace();
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
+            } 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);
             }
-        } finally {
-            redisUtil.releaseLock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowTaskId);
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("正在审批中,请稍候再试!");
         }
         return null;
     }

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

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