فهرست منبع

增加场景计算流程日志记录

dsx 2 سال پیش
والد
کامیت
92f8ddb459
1فایلهای تغییر یافته به همراه16 افزوده شده و 25 حذف شده
  1. 16 25
      src/main/java/com/fdkankan/modeling/receiver/RabbitMqListener.java

+ 16 - 25
src/main/java/com/fdkankan/modeling/receiver/RabbitMqListener.java

@@ -14,6 +14,7 @@ import com.fdkankan.modeling.handler.LaserSceneObjGenerateHandler;
 import com.fdkankan.modeling.service.IBuildLogService;
 import com.fdkankan.modeling.service.ISceneBuildProcessLogService;
 import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
+import com.fdkankan.rabbitmq.bean.BuildSceneProcessLogMessage;
 import com.fdkankan.rabbitmq.bean.BuildSceneResultMqMessage;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.redis.util.RedisLockUtil;
@@ -56,6 +57,8 @@ public class RabbitMqListener {
     private String queueModelingCall;
     @Value("${queue.modeling.modeling-post}")
     private String queueModelingPost;
+    @Value("${ueue.modeling.modeling-process-log}")
+    private String queueModelingProcessLog;
 
     @Autowired
     private RedisUtil redisUtil;
@@ -130,9 +133,8 @@ public class RabbitMqListener {
 
         String num = message.getSceneNum();
 
-        //记录流程日志
-        sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(), queueModelingCall);
-        sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(), queueModelingCall, CommonOperStatus.WAITING.code(), null);
+        //发送记录计算状态为计算中
+        this.sendCallBuildProcessLog(message, ModelingBuildStatus.CALCULATING);
 
         final BuildSceneResultBean buildSceneResult = new BuildSceneResultBean();
         String resultQueueName = StrUtil.isNotBlank(message.getResultReceiverMqName()) ?
@@ -269,37 +271,26 @@ public class RabbitMqListener {
             buildLog.setUpdateTime(new Date());
             buildLog.setResultQuequeName(buildSceneResult.getResultQueueName());
             buildLogService.updateById(buildLog);
-
-            String reason = null;
-            Integer status = CommonOperStatus.SUCCESS.code();
-            switch (buildStatus){
-                case OVERTIME:
-                    reason = ModelingBuildStatus.OVERTIME.message();
-                    status = CommonOperStatus.FAILD.code();
-                    break;
-                case FAILED:
-                    reason = ModelingBuildStatus.FAILED.message();
-                    status = CommonOperStatus.FAILD.code();
-                    break;
-                case REPEAT:
-                    reason = ModelingBuildStatus.REPEAT.message();
-                    status = CommonOperStatus.FAILD.code();
-                    break;
-                case OTHER:
-                    reason = ModelingBuildStatus.OTHER.message();
-                    status = CommonOperStatus.FAILD.code();
-            }
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(message.getSceneNum(), SceneBuildProcessType.CALL.code(), queueModelingCall, status, reason);
-
         } catch (Exception e) {
             log.error("计算后业务处理出错!", e);
         }finally {
             //发送计算结果mq
             buildSceneResult.setDuration(buildLog.getDuration());
             this.sendCallResult(message, buildSceneResult);
+            this.sendCallBuildProcessLog(message, buildStatus);
         }
     }
 
+    /**
+     * 发送计算流程状态日志mq
+     * @param message
+     * @param buildStatus
+     */
+    private void sendCallBuildProcessLog(BuildSceneCallMessage message, ModelingBuildStatus buildStatus){
+        rabbitMqProducer.sendByWorkQueue(queueModelingProcessLog,
+                BuildSceneProcessLogMessage.builder().num(message.getSceneNum()).buildStatus(buildStatus.code()).build());
+    }
+
     private void preBuild(Map<String,Object> buildContext,BuildSceneCallMessage message, BuildLog buildLog) throws BuildException {
 
         // 初始化日志参数