|
@@ -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 {
|
|
|
|
|
|
// 初始化日志参数
|