提交 8382df91 authored 作者: 李瑞鑫's avatar 李瑞鑫

违约结算单数据同步货主客户端

上级 c4d35c24
......@@ -97,4 +97,7 @@ public class RabbitKeyConstants {
public static final String OWNER_REPAYMENT_QUEUE ="clx-performance.owner.repayment.queue";
public static final String OWNER_REPAYMENT_ROUTE_KEY ="clx-performance.owner.repayment.route.key";
//承运违约结算单同步货主客户端 需要手动创建对列交换机
public static final String CLX_PERFORMANCE_BREAK_CONTRACT_OWNER_RECORD_QUEUE = "clx_performance.break_contract_owner_record_queue";
}
package com.clx.performance.listener.breakcontract;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.BreakContractOwnerRecordMessage;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.service.LastTruckService;
import com.msl.common.result.Result;
import com.msl.common.utils.DtsMapConvertUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Slf4j
@Component
@AllArgsConstructor
public class BreakContractOwnerRecordDtsListener {
private final OrderFeign orderFeign;
private final LastTruckService lastTruckService;
private final DriverService driverService;
private final ApplicationEventPublisher applicationEventPublisher;
private final ThirdAppConfig thirdAppConfig;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_BREAK_CONTRACT_OWNER_RECORD_QUEUE)
public void onMessage(Message message) {
try {
String msg = new String(message.getBody());
log.info("DTS消息同步开始, database:clx_performance.break_contract_owner_record, msg:{}", msg);
DataTransportDTO dataTransportDTO = JSON.parseObject(msg, DataTransportDTO.class);
log.info("DTS消息同步开始, database:clx_performance.break_contract_owner_record, 实体:{}", dataTransportDTO);
log.info("操作类型:{}",dataTransportDTO.getOperationType().getCode());
BreakContractOwnerRecordMessage before = DtsMapConvertUtil.convert(dataTransportDTO.getBeforeMap(), new BreakContractOwnerRecordMessage());
BreakContractOwnerRecordMessage after = DtsMapConvertUtil.convert(dataTransportDTO.getAfterMap(), new BreakContractOwnerRecordMessage());
if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){
//数据删除
log.info("删除:{}",before);
return;
}
//违约结算单数据同步
thirdpartySync(after);
} catch (Exception e) {
log.info("DTS消息同步失败, database:clx_performance.break_contract_owner_record, error:{}", e.getMessage());
}
}
/**
* 第三方同步
*/
public void thirdpartySync(BreakContractOwnerRecordMessage message){
// 同步货主客户端的违约结算单
if(!Objects.equals(message.getOrderSource(), SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode())){
return;
}
try{
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
log.info("违约结算单同步:{}", message.getId());
Result<?> result = openCallBackClient.encryptPost(JSON.toJSONString(message), message.topic());
if (result.succeed()) {
log.info("违约结算单同步成功:{}", message.getId());
}else{
log.info("违约结算单同步失败:{}", message.getId());
}
}catch (Exception e){
}
}
}
......@@ -27,6 +27,10 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("order_source")
@ApiModelProperty(value = "订单来源")
private Integer orderSource;
@TableField("trigger_type")
@ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType;
......
......@@ -82,6 +82,7 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
OwnerInfoFeignVO ownerInfo = ownerInfoService.getOwnerInfo(orderInfo.getOwnerUserNo());
BreakContractOwnerRecord record = new BreakContractOwnerRecord();
record.setOrderSource(orderInfo.getOrderSource());
record.setBreakNo(breakNo);
record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode());
if (Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode())) {
......@@ -164,6 +165,7 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
BreakContractOwnerRecord record = new BreakContractOwnerRecord();
record.setBreakNo(breakNo);
record.setOrderSource(orderInfo.getOrderSource());
record.setTriggerType(BreakContractRecordEnum.TriggerType.SYSTEM.getCode());
record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论