|
@@ -13,6 +13,7 @@ import com.fdkankan.modeling.service.IBuildLogService;
|
|
|
import com.fdkankan.modeling.service.IReverseE57Service;
|
|
|
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 lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -123,6 +124,7 @@ public class ReverseE57ServiceImpl implements IReverseE57Service {
|
|
|
} catch (Exception e) {
|
|
|
log.error("计算后业务处理出错!", e);
|
|
|
}finally {
|
|
|
+ this.sendCallResult(message, buildSceneResult);
|
|
|
buildSceneResult.setDuration(buildLog.getDuration());
|
|
|
rabbitMqProducer.sendByWorkQueue(queueModelingProcessLog,
|
|
|
BuildSceneProcessLogMessage.builder().num(message.getSceneNum()).buildStatus(buildStatus.code()).queueName(queueModelingCall).build());
|
|
@@ -130,6 +132,27 @@ public class ReverseE57ServiceImpl implements IReverseE57Service {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 发送计算结果
|
|
|
+ * @param message
|
|
|
+ * @param buildSceneResult
|
|
|
+ */
|
|
|
+ private void sendCallResult(BuildSceneCallMessage message, BuildSceneResultBean buildSceneResult){
|
|
|
+ ModelingBuildStatus buildStatus = buildSceneResult.getBuildStatus();
|
|
|
+ //重复计算不需要发送mq做后置处理
|
|
|
+ if(buildStatus.equals(ModelingBuildStatus.REPEAT)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ BuildSceneResultMqMessage buildResult = BuildSceneResultMqMessage.builder()
|
|
|
+ .buildSuccess(buildStatus.equals(ModelingBuildStatus.SUCCESS))
|
|
|
+ .computeTime(buildSceneResult.getDuration())
|
|
|
+ .path(buildSceneResult.getPath())
|
|
|
+ .hostName(SysConstants.hostName)
|
|
|
+ .build();
|
|
|
+ buildResult.setBuildContext(message.getBuildContext());
|
|
|
+ rabbitMqProducer.sendByWorkQueue(buildSceneResult.getResultQueueName(),buildResult);
|
|
|
+ }
|
|
|
+
|
|
|
private ModelingBuildStatus buildScene(Map<String,Object> buildContext,BuildSceneCallMessage message, BuildSceneResultBean buildSceneResult,BuildLog logRecord) throws Exception{
|
|
|
//如果mq生产者在消息体中设置了结算结果mq队列名,就发到这个队列,否则就发送到默认队列
|
|
|
String path = message.getPath();
|