提交 6f261b97 authored 作者: 马路路's avatar 马路路

Merge branch 'v29.3_carrier_messsage_20241016' into 33.6_app_carrier_messsage_20241106

# Conflicts: # clx-performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
......@@ -353,10 +353,12 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>com.msl.message</groupId>
<artifactId>message-sdk</artifactId>
</dependency>
</dependencies>
......
......@@ -13,5 +13,6 @@ public class ConfiguredOpenProperties {
private String gatewayUrl;
private String appId;
private String appKey;
private String accessKey;
private String smsAccessKey;
private String carrierInternalMessageAccessKey;
}
......@@ -406,5 +406,32 @@ public class RabbitBeanConfig {
}
/**
* 发送承运站内信
*/
@Bean
public Queue sendCarrierInternalMessageQueue() {
return new Queue(RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_QUEUE,
true, false, false);
}
/**
* 发送承运站内信
**/
@Bean
public DirectExchange sendCarrierInternalMessageExchange() {
return new DirectExchange(RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_EXCHANGE);
}
/**
*发送承运站内信
*/
@Bean
public Binding sendCarrierInternalMessageBind() {
return BindingBuilder.bind(sendCarrierInternalMessageQueue()).to(sendCarrierInternalMessageExchange())
.with(RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_ROUTING_KEY);
}
}
......@@ -199,5 +199,14 @@ public class RabbitKeyConstants {
public static final String SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_ROUTING_KEY = "clx_performance.sync.pending.freight.for.order.child.routing.key";
//发送承运端站内信queue
public static final String SEND_CARRIER_INTERNAL_MESSAGE_QUEUE = "clx_performance.send.carrier.internal.message.queue";
//发送承运端站内信exchange
public static final String SEND_CARRIER_INTERNAL_MESSAGE_EXCHANGE = "clx_performance.send.carrier.internal.message.exchange";
//发送承运端站内信routing_key
public static final String SEND_CARRIER_INTERNAL_MESSAGE_ROUTING_KEY = "clx_performance.send.carrier.internal.message..routing.key";
}
package com.clx.performance.listener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.param.mq.InternalMessageParam;
import com.clx.performance.service.SendInternalMessageService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* 处理货单取消吨数回填
*/
@Slf4j
@Component
@AllArgsConstructor
public class SendCarrierInternalMessageListener {
private final SendInternalMessageService sendInternalMessageService;
@RabbitListener(queues = RabbitKeyConstants.SEND_CARRIER_INTERNAL_MESSAGE_QUEUE)
public void onMessage(Message message) {
try{
log.info("监听到承运发送站内信开始,消息内容{}", new String(message.getBody()));
InternalMessageParam data = JSON.parseObject(new String(message.getBody()),
new TypeReference<MqWrapper<InternalMessageParam>>() {
}).getData();
sendInternalMessageService.sendCarrierInternalMessage(data);
}catch (Exception e){
log.info("监听到承运发送站内信发生异常,异常原因:{}", ExceptionUtils.getStackTrace(e));
}
}
}
......@@ -108,7 +108,7 @@ public class SendOrderStatusNoticeSmsListener {
smsMessage.setRecipient(smsMessageRecipient);
//从消息中心注册获取的通道key
smsMessage.setAccessKey(properties.getAccessKey());
smsMessage.setAccessKey(properties.getSmsAccessKey());
//向消息中心发送消息
......
package com.clx.performance.service;
import com.clx.performance.param.mq.InternalMessageParam;
import java.util.List;
public interface SendInternalMessageService {
//发送站内信的业务Code
void sendInternalMessageMq(String productCode,String businessType, Integer typeCode, List<String> variableList, Long userNo);
//发送承运站内信
void sendCarrierInternalMessage(InternalMessageParam internalMessageDTO);
}
......@@ -7,6 +7,7 @@ import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.dao.breakcontract.BreakContractDriverRuleDao;
import com.clx.performance.enums.BreakContractRecordEnum;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.model.OrderChild;
......@@ -17,6 +18,7 @@ import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriver
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractDriverRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.breakcontract.BreakContractMqService;
import com.clx.performance.service.impl.UniqueOrderNumService;
......@@ -34,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.Objects;
/**
......@@ -61,6 +64,8 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
private UniqueOrderNumService uniqueOrderNumService;
@Autowired
private IntegralRecordService integralRecordService;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -110,6 +115,12 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
integralRecordService.addPlatformCompensationRecord(record.getTruckNo());
}
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, Collections.singletonList(breakNo),null);
}
@Override
......@@ -170,6 +181,11 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
// 发送mq (违约记录新增)
breakContractMqService.driverRecordAdd(record.getId());
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, Collections.singletonList(record.getBreakNo()),null);
}
@Override
......@@ -211,6 +227,12 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
// 发送mq (违约记录新增)
breakContractMqService.driverRecordAdd(record.getId());
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, Collections.singletonList(record.getBreakNo()),null);
}
@Override
......@@ -249,6 +271,11 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
// 发送mq (违约记录新增)
breakContractMqService.driverRecordAdd(record.getId());
//司机违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_DRIVER_TRIGGER_BREAK_CONTRACT_CODE, Collections.singletonList(record.getBreakNo()),null);
}
@Override
......
......@@ -17,6 +17,7 @@ import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerReco
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.owner.OwnerConfirmBreakContractSettlementParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.service.breakcontract.BreakContractSettlementLogService;
import com.clx.performance.service.impl.UniqueOrderNumService;
......@@ -36,6 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
......@@ -70,6 +72,8 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
private final BreakContractSettlementLogService breakContractSettlementLogService;
private final SendInternalMessageService sendInternalMessageService;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveRecord(BreakContractOwnerRecordAddParam param) {
......@@ -119,6 +123,11 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
generateBreakContractSettlement(record.getId());
}
//货主违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_OWNER_TRIGGER_BREAK_CONTRACT_CODE, Collections.singletonList(breakNo),null);
}
@Override
......@@ -187,6 +196,11 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
//保存违约记录
breakContractOwnerRecordDao.saveEntity(record);
//货主违约通知 站内信
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.WAIT_APPROVED_ITEM.getCode(),
InternalMessageTemplateEnum.CUSTOM_OWNER_TRIGGER_BREAK_CONTRACT_CODE, Collections.singletonList(breakNo),null);
}
......
......@@ -14,6 +14,7 @@ import com.clx.performance.dao.linewarn.LineWarnInfoDao;
import com.clx.performance.dao.linewarn.LineWarnOrderGoodsDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.linewarn.LineWarnCommonInfoDTO;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.linewarn.LineWarnOrderGoodsEnum;
......@@ -26,6 +27,7 @@ import com.clx.performance.param.mq.linewarn.LineWarnLineWarnMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnNoticeMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderChildWarnMqParam;
import com.clx.performance.param.mq.linewarn.LineWarnOrderGoodsAddMqParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.linewarn.*;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.utils.gd.GdUtils;
......@@ -37,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
......@@ -83,6 +86,8 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
private VehicleWarnUserDao vehicleWarnUserDao;
@Autowired
private ClxMessageOpenapiFeign clxMessageOpenapiFeign;
@Autowired
SendInternalMessageService sendInternalMessageService;
@Transactional(rollbackFor = Exception.class)
......@@ -212,6 +217,14 @@ public class LineWarnMqHandlerServiceImpl implements LineWarnMqHandlerService {
}
}
//发送站内信mq
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.LINE_WARN.getCode(),
vehicleWarnInfo.getWarnType(), Collections.singletonList(vehicleWarnInfo.getOrderGoodsNo()),null);
if (mobileList.isEmpty()) {return;}
log.info("线路预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList));
......
......@@ -13,6 +13,7 @@ import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.dto.vehiclewarn.VehicleWarnCommonInfoDTO;
import com.clx.performance.enums.InternalMessageTemplateEnum;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.ResultEnum;
......@@ -27,6 +28,7 @@ import com.clx.performance.param.mq.trace.TruckTraceSyncMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnNoticeMqParam;
import com.clx.performance.service.SendInternalMessageService;
import com.clx.performance.service.linewarn.LineWarnMqService;
import com.clx.performance.service.trace.TruckTraceMqHandlerService;
import com.clx.performance.service.vehiclewarn.*;
......@@ -38,9 +40,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
@Slf4j
@Service
......@@ -82,6 +82,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
private TruckTraceMqHandlerService truckTraceMqHandlerService;
@Autowired
private LineWarnMqService lineWarnMqService;
@Autowired
private SendInternalMessageService sendInternalMessageService;
@Override
public void orderChildAdd(VehicleWarnChildAddMqParam mq) {
......@@ -330,6 +332,7 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
}
@Override
public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
......@@ -338,6 +341,12 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
// 发送mq(运单异常)
lineWarnMqService.orderChildWarn(vehicleWarnInfo.getOrderGoodsNo(), vehicleWarnInfo.getChildNo());
//发送站内信mq
sendInternalMessageService.sendInternalMessageMq(InternalMessageTemplateEnum.PlatformType.CARRIER.getCode(),
InternalMessageTemplateEnum.BusinessType.CHILD_WARN.getCode(),
vehicleWarnInfo.getWarnType(), Collections.singletonList(vehicleWarnInfo.getChildNo()),null);
List<String> mobileList = new ArrayList<>();
// 过滤需要通知的人员
......
package com.clx.performance.param.mq;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @ClassName InternalMessageDTO
* @Description
* @Author kavin
* @Date 2024/10/16 15:17
* @Version 1.0
*/
@Getter
@Setter
public class InternalMessageParam {
//站内信大类业务code
private String businessType;
//站内信模版业务详情自定义Code (业务原始Code或自定义code)
private Integer typeCode;
//内容参数
List<String> variableList;
//站内信点对点的用户
private Long userNo;
private String productCode;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论