新增webcad生产单导入:1、cad拆单同步新结构优化适配;2、cad拆单支持基于配置限制板件数量和是否异步拆单,新增异步拆单;

This commit is contained in:
gaoqr
2025-05-13 17:32:39 +08:00
parent b9e7481bdf
commit 341fd485b3
31 changed files with 3485 additions and 1393 deletions
@@ -1,20 +1,12 @@
package com.cf.imes.framework.mq.rabbitmq.config;
import com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.*;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import java.util.HashMap;
import java.util.Map;
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.*;
/**
* RabbitMQ 消息队列配置类
*
@@ -31,137 +23,4 @@ public class ChenfengRabbitMQAutoConfiguration {
public MessageConverter createMessageConverter() {
return new Jackson2JsonMessageConverter();
}
/**
* 生产单excel导入交换机、队列、绑定声明
*
* @return
*/
@Bean
public FanoutExchange orderImportDefaultExcelFanoutExchange() {
return new FanoutExchange(RabbitMqConstants.ORDER_IMPORT_DEFAULT_EXCEL_EXCHANGE);
}
/**
* 生产单excel导入队列声明
*
* @return
*/
@Bean
public Queue orderImportDefaultExcelQueue() {
Map<String, Object> args = new HashMap<>(1);
// x-dead-letter-exchange 这里声明当前队列绑定的死信交换机
args.put("x-dead-letter-exchange", ORDER_IMPORT_DEAD_LETTER_EXCHANGE);
// 设置死信路由键
args.put("x-dead-letter-routing-key", ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY);
return QueueBuilder.durable(RabbitMqConstants.ORDER_IMPORT_DEFAULT_EXCEL_QUEUE).withArguments(args).build();
}
/**
* 生产单excel导入交换机声明
*
* @return
*/
@Bean
public Binding orderImportDefaultExcelBinding() {
return BindingBuilder.bind(orderImportDefaultExcelQueue()).to(orderImportDefaultExcelFanoutExchange());
}
/**
* 生产单xml导入交换机、队列、绑定声明
*
* @return
*/
@Bean
public FanoutExchange orderImportDefaultXmlFanoutExchange() {
return new FanoutExchange(RabbitMqConstants.ORDER_IMPORT_DEFAULT_XML_EXCHANGE);
}
/**
* 生产单xml导入队列声明
*
* @return
*/
@Bean
public Queue orderImportDefaultXmlQueue() {
Map<String, Object> args = new HashMap<>(1);
// x-dead-letter-exchange 这里声明当前队列绑定的死信交换机
args.put("x-dead-letter-exchange", ORDER_IMPORT_DEAD_LETTER_EXCHANGE);
// 设置死信路由键
args.put("x-dead-letter-routing-key", ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY);
return QueueBuilder.durable(RabbitMqConstants.ORDER_IMPORT_DEFAULT_XML_QUEUE).withArguments(args).build();
}
/**
* 生产单xml导入交换机声明
*
* @return
*/
@Bean
public Binding orderImportDefaultXmlBinding() {
return BindingBuilder.bind(orderImportDefaultXmlQueue()).to(orderImportDefaultXmlFanoutExchange());
}
/**
* 生产单导入死信交换机声明
*
* @return
*/
@Bean
public DirectExchange orderImportDeadLetterExchange() {
return new DirectExchange(ORDER_IMPORT_DEAD_LETTER_EXCHANGE);
}
/**
* 生产单导入死信队列声明
*
* @return
*/
@Bean
public Queue orderImportDeadLetterQueue() {
return new Queue(ORDER_IMPORT_DEAD_LETTER_QUEUE);
}
/**
* 生产单导入死信队列、交换机、绑定声明
*
* @return
*/
@Bean
public Binding deadLetterBindingA() {
return BindingBuilder.bind(orderImportDeadLetterQueue()).to(orderImportDeadLetterExchange()).with(ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY);
}
/**
* 广告状态修改 延迟队列
*/
@Bean
public Queue advertisementUpdateDelayedQueue(){
return QueueBuilder.durable(SYSTEM_ADVERTISEMENT_UPDATE_DELAYED_QUEUE).build();
}
/**
* 广告状态修改 定义延迟交换机
*/
@Bean
public CustomExchange advertisementUpdateDelayExchange() {
Map<String, Object> args = new HashMap<>();
args.put("x-delayed-type", "direct");
return new CustomExchange(SYSTEM_ADVERTISEMENT_UPDATE_DELAYED_EXCHANGE, "x-delayed-message", true, false, args);
}
/**
* 广告状态修改 队列与交换机绑定
*/
@Bean
public Binding advertisementUpdateQueueABindingX(@Qualifier("advertisementUpdateDelayedQueue") Queue queue,
@Qualifier("advertisementUpdateDelayExchange") CustomExchange delayedExchange){
return BindingBuilder.bind(queue)
.to(delayedExchange)
.with(SYSTEM_ADVERTISEMENT_UPDATE_DELAYED_ROUTING_KEY)
.noargs();
}
}
@@ -27,6 +27,17 @@ public class RabbitMqConstants {
*/
public static final String ORDER_IMPORT_DEFAULT_XML_QUEUE = "order_import_default_xml_queue";
/**
* webcad拆单交换机
*/
public static final String ORDER_IMPORT_WEBCAD_EXCHANGE = "order_import_webcad_exchange";
/**
* webcad拆单队列
*/
public static final String ORDER_IMPORT_WEBCAD_QUEUE = "order_import_webcad_queue_%s";
/**
* 生产单导入死信交换机
*/