提交 cf189f28 authored 作者: 艾庆国's avatar 艾庆国

预警配置

上级 461a168b
......@@ -16,6 +16,7 @@ import lombok.ToString;
@ToString
@NoArgsConstructor
public class TruckTraceSyncMqParam {
private String childNo; //运单编号
private String truckNo; //车牌号
private String beginTime; //开始时间
private String endTime; //结束时间
......
package com.clx.performance.param.mq.vehiclewarn;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 新增
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class VehicleWarnChildAddMqParam {
private String childNo; //运单编号
}
package com.clx.performance.param.mq.vehiclewarn;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 新增
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class VehicleWarnTruckWarnMqParam {
private String childNo; //运单编号
}
package com.clx.performance.config;
import com.clx.performance.constant.RabbitKeyVehicleWarnConstants;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: aiqingguo
* @Description: 货款往来明细 MQ
* @Date: 2023-10-12 16:27:30
* @Version: 1.0
*/
@Configuration
public class RabbitVehicleWarnConfig {
@Bean
public DirectExchange vehicleWarnDefaultExchange() {
return new DirectExchange(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE);
}
@Bean
public Queue vehicleWarnDefaultDelayQueue() {
Map<String, Object> params = new HashMap<>(8);
params.put("x-message-ttl", 15 * 60 * 1000);
params.put("x-max-length", 5000000);
params.put("x-dead-letter-exchange", RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_ROUTING_KEY);
return new Queue(RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_QUEUE, true, false, false, params);
}
@Bean
public Binding vehicleWarnDefaultDelayQueueBinding() {
return BindingBuilder.bind(vehicleWarnDefaultDelayQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY);
}
@Bean
public Queue vehicleWarnDefaultDeadQueue() {
return new Queue(RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_QUEUE);
}
@Bean
public Binding vehicleWarnDefaultDeadQueueBinding() {
return BindingBuilder.bind(vehicleWarnDefaultDeadQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.DEFAULT_DEAD_ROUTING_KEY);
}
/**
* 新增
*/
@Bean
public Queue vehicleWarnChildAddQueue() {
return new Queue(RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_QUEUE);
}
@Bean
public Binding vehicleWarnChildAddQueueBinding() {
return BindingBuilder.bind(vehicleWarnChildAddQueue()).to(vehicleWarnDefaultExchange()).with(RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY);
}
}
package com.clx.performance.constant;
/**
* @Author: aiqingguo
* @Description: 车辆预警-mq
* @Date: 2023-10-19 15:10:10
* @Version: 1.0
*/
public class RabbitKeyVehicleWarnConstants {
private static final String PREFIX = "clx-performance.vehicleWarn.";
private static final String EXCHANGE = ".exchange";
private static final String QUEUE = ".queue";
private static final String QUEUE_ROUTING_KEY = ".routing.key";
private static final String DELAY_QUEUE = ".delay.queue";
private static final String DELAY_ROUTING_KEY = ".delay.routing.key";
private static final String DEAD_QUEUE = ".dead.queue";
private static final String DEAD_ROUTING_KEY = ".dead.routing.key";
private RabbitKeyVehicleWarnConstants() {
}
/**
* 缺省交换机
*/
public static final String DEFAULT_EXCHANGE = PREFIX +"default"+EXCHANGE;
/**
* 缺省延迟队列
*/
public static final String DEFAULT_DELAY_QUEUE = PREFIX +"default"+DELAY_QUEUE;
public static final String DEFAULT_DELAY_ROUTING_KEY = PREFIX +"default"+DELAY_ROUTING_KEY;
public static final String DEFAULT_DEAD_QUEUE = PREFIX +"default"+DEAD_QUEUE;
public static final String DEFAULT_DEAD_ROUTING_KEY = PREFIX +"default"+DEAD_ROUTING_KEY;
/**
* 新增
*/
public static final String ORDER_CHILD_ADD_QUEUE = PREFIX +"orderChild.add"+QUEUE;
public static final String ORDER_CHILD_ADD_ROUTING_KEY = PREFIX +"orderChild.add"+QUEUE_ROUTING_KEY;
/**
* 车辆预警
*/
public static final String TRUCK_WARN_QUEUE = PREFIX +"truck.warn"+QUEUE;
public static final String TRUCK_WARN_ROUTING_KEY = PREFIX +"truck.warn"+QUEUE_ROUTING_KEY;
}
......@@ -4,6 +4,7 @@ import com.clx.performance.model.OrderChild;
public interface OrderChildPostService {
void orderChildAdd(String childNo);
void orderChildArriveReceiveAddress(OrderChild orderChild);
void orderChildDriverConfirm(OrderChild orderChild);
......
......@@ -421,8 +421,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.CREATED.getCode(),
OrderChildLogEnum.Type.CREATED.getMsg(), loginUserInfo.getUserNo(), loginUserInfo.getUserName());
// 发送mq 新增运单
orderChildMqService.orderChildAdd(orderChild.getChildNo());
// 司机接单后置逻辑
orderChildPostService.orderChildAdd(orderChild.getChildNo());
SaveOrderChildVO result = new SaveOrderChildVO();
result.setChildNo(childNo);
......
......@@ -9,6 +9,7 @@ import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderChildMqService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.child.OrderChildPostService;
import com.clx.performance.service.vehiclewarn.VehicleWarnMqService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -26,6 +27,18 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
@Autowired
private BreakContractDriverRecordService breakContractDriverRecordService;
@Autowired
private VehicleWarnMqService vehicleWarnMqService;
@Override
public void orderChildAdd(String childNo) {
// 发送mq 新增运单
orderChildMqService.orderChildAdd(childNo);
// 发送mq (运单新增)
vehicleWarnMqService.orderChildAdd(childNo);
}
@Override
public void orderChildArriveReceiveAddress(OrderChild orderChild) {
// 保存违约记录
......
......@@ -21,8 +21,9 @@ public class TruckTraceMqServiceImpl implements TruckTraceMqService {
private RabbitTemplate rabbitTemplate;
@Override
public void truckTracSync(String truckNo, String beginTime, String endTime) {
public void truckTracSync(String childNo, String truckNo, String beginTime, String endTime) {
TruckTraceSyncMqParam mq = new TruckTraceSyncMqParam();
mq.setChildNo(childNo);
mq.setTruckNo(truckNo);
mq.setBeginTime(beginTime);
mq.setEndTime(endTime);
......
package com.clx.performance.service.impl.vehiclewarn;
import com.alibaba.fastjson.JSON;
import com.clx.performance.common.MqDelay;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyVehicleWarnConstants;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnChildAddMqParam;
import com.clx.performance.param.mq.vehiclewarn.VehicleWarnTruckWarnMqParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnMqService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public void orderChildAdd(String childNo) {
VehicleWarnChildAddMqParam mq = new VehicleWarnChildAddMqParam();
mq.setChildNo(childNo);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void truckWarn(String childNo) {
VehicleWarnTruckWarnMqParam mq = new VehicleWarnTruckWarnMqParam();
mq.setChildNo(childNo);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
}
......@@ -2,7 +2,7 @@ package com.clx.performance.service.trace;
public interface TruckTraceMqService {
void truckTracSync(String truckNo, String beginTime, String endTime);
void truckTracSync(String childNo, String truckNo, String beginTime, String endTime);
}
package com.clx.performance.service.vehiclewarn;
public interface VehicleWarnMqService {
void orderChildAdd(String childNo);
void truckWarn(String childNo);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论