dengsixing před 11 měsíci
rodič
revize
110a8ba042

+ 4 - 1
src/main/java/com/fdkankan/contro/entity/SceneBuildProcessLog.java

@@ -15,7 +15,7 @@ import lombok.Setter;
  * 场景计算流程状态表
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-01-28
  */
 @Getter
@@ -77,5 +77,8 @@ public class SceneBuildProcessLog implements Serializable {
     @TableLogic(value = "A", delval = "I")
     private String recStatus;
 
+    @TableField("biz_type")
+    private String bizType;
+
 
 }

+ 10 - 10
src/main/java/com/fdkankan/contro/mq/listener/AbstrackBuildSceneListener.java

@@ -32,7 +32,7 @@ public class AbstrackBuildSceneListener implements IBuildSceneListener {
     private ICommonService commonService;
 
     @Override
-    public void preHandle(Channel channel, String queueName, Message message, IBuildSceneService buildSceneService) throws IOException {
+    public void preHandle(Channel channel, String queueName, Message message, IBuildSceneService buildSceneService, String bizType) throws IOException {
         // 添加消息幂等处理
         String messageId = message.getMessageProperties().getMessageId();
         if(!ObjectUtils.isEmpty(messageId)){
@@ -57,21 +57,21 @@ public class AbstrackBuildSceneListener implements IBuildSceneListener {
                 buildSceneMessage.getBuildContext().put("sceneNum",buildSceneMessage.getSceneNum());
             }
             //记录日志
-//            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, CommonOperStatus.WAITING.code(), null);
+            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, bizType);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, CommonOperStatus.WAITING.code(), null, bizType);
             buildSceneService.buildScenePre(buildSceneMessage);
             commonService.saveMqSendLog(num, buildSceneMessage);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, CommonOperStatus.SUCCESS.code(), null);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, CommonOperStatus.SUCCESS.code(), null, bizType);
         }catch (Exception e){
             log.error("场景计算前置处理出错,num=" + num, e);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000));
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueName, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000), bizType);
         }
         log.info("准备场景计算资源完成,队列名:{},id:{},消息体:{}", queueName, messageId, msg);
         channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
     }
 
     @Override
-    public void postHandle(Channel channel, String queueName, Message message, IBuildSceneService buildSceneService) throws Exception {
+    public void postHandle(Channel channel, String queueName, Message message, IBuildSceneService buildSceneService, String bizType) throws Exception {
         // 添加消息幂等处理
         String messageId = message.getMessageProperties().getMessageId();
         if(!ObjectUtils.isEmpty(messageId)){
@@ -89,13 +89,13 @@ public class AbstrackBuildSceneListener implements IBuildSceneListener {
         BuildSceneResultMqMessage buildSceneMessage = JSONObject.parseObject(msg, BuildSceneResultMqMessage.class);
         String num = buildSceneMessage.getBuildContext().get("sceneNum").toString();
         try {
-//            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, CommonOperStatus.WAITING.code(), null);
+            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, bizType);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, CommonOperStatus.WAITING.code(), null, bizType);
             buildSceneService.buildScenePost(buildSceneMessage);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, CommonOperStatus.SUCCESS.code(), null);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, CommonOperStatus.SUCCESS.code(), null, bizType);
         }catch (Exception e){
             log.error("场景计算结果处理出错,num=" + num, e);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000));
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000), bizType);
         }
         log.info("场景计算结果处理完成,队列名:{},id:{},消息体:{}", queueName, messageId, msg);
         channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);

+ 8 - 7
src/main/java/com/fdkankan/contro/mq/listener/BuildE57Listener.java

@@ -76,13 +76,14 @@ public class BuildE57Listener{
                 buildSceneMessage.getBuildContext().put("sceneNum",buildSceneMessage.getSceneNum());
             }
             //记录日志
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, CommonOperStatus.WAITING.code(), null);
+            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, "e57");
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, CommonOperStatus.WAITING.code(), null, "e57");
             buildSceneService.buildScenePre(buildSceneMessage);
             commonService.saveMqSendLog(num, buildSceneMessage);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, CommonOperStatus.SUCCESS.code(), null);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, CommonOperStatus.SUCCESS.code(), null,"e57");
         }catch (Exception e){
             log.error("e57计算前置处理出错,num=" + num, e);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000));
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.PRE.code(), queueModelingPre, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000), "e57");
         }
         log.info("准备e57计算资源完成,队列名:{},id:{},消息体:{}", queueModelingPre, messageId, msg);
         channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
@@ -105,13 +106,13 @@ public class BuildE57Listener{
         BuildSceneResultMqMessage buildSceneMessage = JSONObject.parseObject(msg, BuildSceneResultMqMessage.class);
         String num = buildSceneMessage.getBuildContext().get("sceneNum").toString();
         try {
-//            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueName);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, CommonOperStatus.WAITING.code(), null);
+            sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, "e57");
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, CommonOperStatus.WAITING.code(), null, "e57");
             buildSceneService.buildScenePost(buildSceneMessage);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, CommonOperStatus.SUCCESS.code(), null);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, CommonOperStatus.SUCCESS.code(), null, "e57");
         }catch (Exception e){
             log.error("场景计算结果处理出错,num=" + num, e);
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000));
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.POST.code(), queueModelingPost, CommonOperStatus.FAILD.code(), ExceptionUtil.stacktraceToString(e, 3000), "e57");
         }
         log.info("场景计算结果处理完成,队列名:{},id:{},消息体:{}", queueModelingPost, messageId, msg);
         channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);

+ 2 - 2
src/main/java/com/fdkankan/contro/mq/listener/BuildIntermitSceneListener.java

@@ -34,7 +34,7 @@ public class BuildIntermitSceneListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-pre}"
     )
     public void buildScenePreHandler(Channel channel, Message message) throws Exception {
-        preHandle(channel,queueModelingPre,message,buildSceneService);
+        preHandle(channel,queueModelingPre,message,buildSceneService, "intermit");
     }
 
     /**
@@ -48,7 +48,7 @@ public class BuildIntermitSceneListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-post}"
     )
     public void buildScenePostHandler(Channel channel, Message message) throws Exception {
-        postHandle(channel,queueModelingPost,message,buildSceneService);
+        postHandle(channel,queueModelingPost,message,buildSceneService, "intermit");
 
     }
 }

+ 2 - 2
src/main/java/com/fdkankan/contro/mq/listener/BuildObjListener.java

@@ -44,7 +44,7 @@ public class BuildObjListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-pre}"
     )
     public void buildObjScenePreHandler(Channel channel, Message message) throws Exception {
-        preHandle(channel, queueObjModelingPre, message, buildObjService);
+        preHandle(channel, queueObjModelingPre, message, buildObjService,"obj");
     }
 
 
@@ -60,7 +60,7 @@ public class BuildObjListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-post}"
     )
     public void buildObjScenePostHandler(Channel channel, Message message) throws Exception {
-        postHandle(channel, queueObjModelingPost, message, buildObjService);
+        postHandle(channel, queueObjModelingPost, message, buildObjService, "obj");
 
     }
 }

+ 2 - 2
src/main/java/com/fdkankan/contro/mq/listener/BuildSceneListener.java

@@ -33,7 +33,7 @@ public class BuildSceneListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-pre}"
     )
     public void buildScenePreHandler(Channel channel, Message message) throws Exception {
-        preHandle(channel,queueModelingPre,message,buildSceneService);
+        preHandle(channel,queueModelingPre,message,buildSceneService, "standard");
     }
 
     /**
@@ -47,7 +47,7 @@ public class BuildSceneListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-post}"
     )
     public void buildScenePostHandler(Channel channel, Message message) throws Exception {
-        postHandle(channel,queueModelingPost,message,buildSceneService);
+        postHandle(channel,queueModelingPost,message,buildSceneService, "standard");
 
     }
 }

+ 2 - 2
src/main/java/com/fdkankan/contro/mq/listener/BuildSceneProcessLogListener.java

@@ -48,7 +48,7 @@ public class BuildSceneProcessLogListener{
             int buildStatus = buildSceneMessage.getBuildStatus();
             //新的计算开始,需要将之前的记录置为失效
             if(buildStatus == ModelingBuildStatus.CALCULATING.code()){
-//                sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(),queueModelingCall);
+                sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(),queueModelingCall, buildSceneMessage.getBizType());
                 status = CommonOperStatus.WAITING.code();
             }else{
                 if(buildStatus != ModelingBuildStatus.SUCCESS.code()){
@@ -56,7 +56,7 @@ public class BuildSceneProcessLogListener{
                     reason = ModelingBuildStatus.get(buildStatus).message();
                 }
             }
-            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(), queueModelingCall, status, reason);
+            sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(), queueModelingCall, status, reason, buildSceneMessage.getBizType());
         }catch (Exception e){
             log.error("场景计算流程状态日志记录出错, num="+num, e);
         }finally {

+ 2 - 2
src/main/java/com/fdkankan/contro/mq/listener/BuildV3SceneListener.java

@@ -33,7 +33,7 @@ public class BuildV3SceneListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-pre}"
     )
     public void buildScenePreHandler(Channel channel, Message message) throws Exception {
-        preHandle(channel,queueModelingPre,message,buildSceneService);
+        preHandle(channel,queueModelingPre,message,buildSceneService, "standard");
     }
 
     /**
@@ -47,7 +47,7 @@ public class BuildV3SceneListener extends AbstrackBuildSceneListener {
             concurrency = "${maxThread.modeling.modeling-post}"
     )
     public void buildScenePostHandler(Channel channel, Message message) throws Exception {
-        postHandle(channel,queueModelingPost,message,buildSceneService);
+        postHandle(channel,queueModelingPost,message,buildSceneService, "standard");
 
     }
 }

+ 2 - 2
src/main/java/com/fdkankan/contro/mq/listener/IBuildSceneListener.java

@@ -7,6 +7,6 @@ import org.springframework.amqp.core.Message;
 import java.io.IOException;
 
 public interface IBuildSceneListener {
-    void preHandle(Channel channel,String queueName, Message message, IBuildSceneService buildSceneService) throws IOException;
-    void postHandle(Channel channel,String queueName, Message message,IBuildSceneService buildSceneService) throws Exception;
+    void preHandle(Channel channel,String queueName, Message message, IBuildSceneService buildSceneService, String bizType) throws IOException;
+    void postHandle(Channel channel,String queueName, Message message,IBuildSceneService buildSceneService, String bizType) throws Exception;
 }

+ 2 - 1
src/main/java/com/fdkankan/contro/mq/service/impl/BuildE57SceneServiceImpl.java

@@ -89,6 +89,7 @@ public class BuildE57SceneServiceImpl implements IBuildSceneService {
             //发送mq,就进行计算
             message.setPath(path);
             message.setResultReceiverMqName(queueModelingPost);
+            message.setBizType("e57");
 
             log.info("e57计算资源准备结束,场景码:{}", message.getSceneNum());
 
@@ -161,7 +162,7 @@ public class BuildE57SceneServiceImpl implements IBuildSceneService {
             String zipPath = path + "/results/laserData/laser-e57.zip";
             String ossKey = String.format(ossKeyFormat, num, num);
             ZipUtil.zip(localPath, zipPath);
-            fYunFileService.uploadFile(bucket, zipPath, ossKey);
+            fYunFileService.uploadFileByCommand(zipPath, ossKey);
 
             //发送mq通知激光系统
             laserMqContent.put("status", CommonSuccessStatus.SUCCESS.code());

+ 1 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildIntermitSceneServiceImpl.java

@@ -111,6 +111,7 @@ public class BuildIntermitSceneServiceImpl implements IBuildSceneService {
 
             //发送mq,就进行计算
             message.setResultReceiverMqName(queueModelingPost);
+            message.setBizType("intermit");
 
             log.info("场景计算资源准备结束,场景码:{}", message.getSceneNum());
 

+ 1 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildObjServiceImpl.java

@@ -144,6 +144,7 @@ public class BuildObjServiceImpl implements IBuildSceneService {
             message.setResolution(jsonObject.getString("resolution"));
             message.setPath(laserObjFilePath);
             message.setResultReceiverMqName(queueObjModelingPost);
+            message.setBizType("obj");
 
             success = true;
 

+ 2 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -211,6 +211,8 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
                 ext.put("128G", 1);
             }
 
+            message.setBizType("standard");
+
             log.info("场景计算资源准备结束,场景码:{}", message.getSceneNum());
 
         }catch (Exception e){

+ 2 - 0
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -160,6 +160,8 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
 
             message.setResultReceiverMqName(queueV3ModelingPost);
 
+            message.setBizType("standard");
+
             log.info("场景计算资源准备结束,场景码:{}", message.getSceneNum());
 
         }catch (Exception e){

+ 3 - 3
src/main/java/com/fdkankan/contro/service/ISceneBuildProcessLogService.java

@@ -8,13 +8,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * 场景计算流程状态表 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-01-28
  */
 public interface ISceneBuildProcessLogService extends IService<SceneBuildProcessLog> {
 
-    public void clearSceneBuildProcessLog(String num, String process, String queueName);
+    public void clearSceneBuildProcessLog(String num, String process, String queueName, String bizType);
 
-    public void saveSceneBuildProcessLog(String num, String process, String queueName, int status, String reason);
+    public void saveSceneBuildProcessLog(String num, String process, String queueName, int status, String reason, String bizType);
 
 }

+ 41 - 21
src/main/java/com/fdkankan/contro/service/impl/SceneBuildProcessLogServiceImpl.java

@@ -1,10 +1,12 @@
 package com.fdkankan.contro.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.contro.entity.SceneBuildProcessLog;
 import com.fdkankan.contro.mapper.ISceneBuildProcessLogMapper;
 import com.fdkankan.contro.service.ISceneBuildProcessLogService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
@@ -18,35 +20,53 @@ import java.util.Objects;
  * @author
  * @since 2023-01-28
  */
+@Slf4j
 @Service
 public class SceneBuildProcessLogServiceImpl extends ServiceImpl<ISceneBuildProcessLogMapper, SceneBuildProcessLog> implements ISceneBuildProcessLogService {
 
 
     @Override
-    public void clearSceneBuildProcessLog(String num, String process, String queueName) {
-        this.remove(new LambdaQueryWrapper<SceneBuildProcessLog>()
-                .eq(SceneBuildProcessLog::getNum, num)
-                .eq(SceneBuildProcessLog::getProcess, process));
-//                .eq(SceneBuildProcessLog::getQueueName, queueName));
+    public void clearSceneBuildProcessLog(String num, String process, String queueName, String bizType) {
+        try {
+            LambdaQueryWrapper<SceneBuildProcessLog> wrapper = new LambdaQueryWrapper<SceneBuildProcessLog>()
+                    .eq(SceneBuildProcessLog::getNum, num)
+                    .eq(SceneBuildProcessLog::getProcess, process);
+            if(StrUtil.isNotEmpty(bizType)){
+                wrapper.eq(SceneBuildProcessLog::getBizType, bizType);
+            }
+            this.remove(wrapper);
+        }catch (Exception e){
+            log.error("清楚计算流程日志报错", e);
+        }
     }
 
     @Override
-    public void saveSceneBuildProcessLog(String num, String process, String queueName, int status, String reason) {
-
-        SceneBuildProcessLog log = this.getOne(new LambdaQueryWrapper<SceneBuildProcessLog>()
-                .eq(SceneBuildProcessLog::getNum, num)
-                .eq(SceneBuildProcessLog::getProcess,process)
-                .eq(SceneBuildProcessLog::getQueueName, queueName));
-        if(Objects.isNull(log)){
-            log = new SceneBuildProcessLog();
+    public void saveSceneBuildProcessLog(String num, String process, String queueName, int status, String reason, String bizType) {
+        try {
+            LambdaQueryWrapper<SceneBuildProcessLog> wrapper = new LambdaQueryWrapper<SceneBuildProcessLog>()
+                    .eq(SceneBuildProcessLog::getNum, num)
+                    .eq(SceneBuildProcessLog::getProcess, process)
+                    .eq(SceneBuildProcessLog::getQueueName, queueName);
+            if(StrUtil.isNotEmpty(bizType)){
+                wrapper.eq(SceneBuildProcessLog::getBizType, bizType);
+            }
+
+            SceneBuildProcessLog log = this.getOne(wrapper);
+            if(Objects.isNull(log)){
+                log = new SceneBuildProcessLog();
+            }
+            log.setNum(num);
+            log.setProcess(process);
+            log.setProcess(process);
+            log.setQueueName(queueName);
+            log.setState(status);
+            log.setReason(reason);
+            log.setUpdateTime(new Date());
+            log.setBizType(bizType);
+            this.saveOrUpdate(log);
+        }catch (Exception e){
+            log.error("保存计算流程日志报错", e);
         }
-        log.setNum(num);
-        log.setProcess(process);
-        log.setProcess(process);
-        log.setQueueName(queueName);
-        log.setState(status);
-        log.setReason(reason);
-        log.setUpdateTime(new Date());
-        this.saveOrUpdate(log);
+
     }
 }