|
@@ -2,6 +2,7 @@ package com.fdkankan.modeling.receiver;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.fdkankan.common.constant.CommonOperStatus;
|
|
|
import com.fdkankan.common.constant.ModelingBuildStatus;
|
|
|
import com.fdkankan.common.util.FileUtils;
|
|
|
import com.fdkankan.model.utils.ComputerUtil;
|
|
@@ -11,12 +12,14 @@ import com.fdkankan.modeling.entity.BuildLog;
|
|
|
import com.fdkankan.modeling.exception.BuildException;
|
|
|
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.BuildSceneResultMqMessage;
|
|
|
import com.fdkankan.rabbitmq.util.RabbitMqProducer;
|
|
|
import com.fdkankan.redis.util.RedisLockUtil;
|
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
|
import com.rabbitmq.client.Channel;
|
|
|
+import com.fdkankan.model.constants.SceneBuildProcessType;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.time.StopWatch;
|
|
|
import org.springframework.amqp.core.Message;
|
|
@@ -68,6 +71,8 @@ public class RabbitMqListener {
|
|
|
|
|
|
@Autowired
|
|
|
private LaserSceneObjGenerateHandler laserSceneObjGenerateHandler;
|
|
|
+ @Autowired
|
|
|
+ private ISceneBuildProcessLogService sceneBuildProcessLogService;
|
|
|
|
|
|
/**
|
|
|
* 场景计算
|
|
@@ -122,6 +127,13 @@ public class RabbitMqListener {
|
|
|
//开始计时
|
|
|
StopWatch watch = new StopWatch();
|
|
|
watch.start();
|
|
|
+
|
|
|
+ String num = message.getSceneNum();
|
|
|
+
|
|
|
+ //记录流程日志
|
|
|
+ sceneBuildProcessLogService.clearSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(), queueModelingCall);
|
|
|
+ sceneBuildProcessLogService.saveSceneBuildProcessLog(num, SceneBuildProcessType.CALL.code(), queueModelingCall, CommonOperStatus.WAITING.code(), null);
|
|
|
+
|
|
|
final BuildSceneResultBean buildSceneResult = new BuildSceneResultBean();
|
|
|
String resultQueueName = StrUtil.isNotBlank(message.getResultReceiverMqName()) ?
|
|
|
message.getResultReceiverMqName() : queueModelingPost;
|
|
@@ -141,6 +153,7 @@ public class RabbitMqListener {
|
|
|
}
|
|
|
});
|
|
|
status = future.get(SysConstants.modelTimeOut, TimeUnit.HOURS);
|
|
|
+
|
|
|
//结束计时
|
|
|
watch.stop();
|
|
|
buildLog.setDuration(watch.getTime(TimeUnit.SECONDS));
|
|
@@ -256,6 +269,28 @@ 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 {
|