From 1ea90de6b403a4142ba1565a801615e65f0e0c41 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Mon, 25 Sep 2023 19:12:11 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=BA=93=E5=86=85=E4=BD=9C=E4=B8=9A=EF=BC=8C?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=89=98=E7=9B=98=E6=9F=A5=E8=AF=A2=E8=B4=A7?= =?UTF-8?q?=E7=89=A9=E8=BF=94=E5=9B=9E=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/RabbitConstant.java | 4 ++ .../feign/IWarehouseTrayTypeClient.java | 4 +- .../controller/FactoryCommonController.java | 40 +++++++++-- .../logpm/factory/comfac/dto/MessageDTO.java | 12 ++++ .../factory/config/RabbitMqConfiguration.java | 17 +++++ .../factory/receiver/SyncOldDataHandler.java | 69 +++++++++++++++++++ .../controller/OldSystemPushController.java | 1 - .../feign/WarehouseTrayTypeClient.java | 4 +- .../service/IWarehouseTrayTypeService.java | 2 +- .../impl/WarehouseTrayTypeServiceImpl.java | 4 +- 10 files changed, 145 insertions(+), 12 deletions(-) create mode 100644 blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/MessageDTO.java create mode 100644 blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/SyncOldDataHandler.java diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java index 554222324..d147e98f7 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java @@ -60,6 +60,10 @@ public interface RabbitConstant { String OUPAI_SIGN_EXCHANGE = "oupai_sign_exchange"; String OUPAI_SIGN_ROUTING = "oupai_sign_routing"; + String SYNC_OLD_DATA_QUEUE = "sync_old_data_queue"; + String SYNC_OLD_DATA_EXCHANGE = "sync_old_data_exchange"; + String SYNC_OLD_DATA_ROUTING = "sync_old_data_routing"; + //----------------------distribution--------------------- //备货消费失败队列 String DISTRIBUTION_ERROR_QUEUE = "distribution_error_queue"; diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java index 334043acd..b56b03b1b 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java @@ -17,8 +17,8 @@ package com.logpm.warehouse.feign; +import com.logpm.warehouse.vo.TrayTypeDataVO; import org.springblade.common.constant.ModuleNameConstant; -import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -46,6 +46,6 @@ public interface IWarehouseTrayTypeClient { Boolean removeByMasterId(@RequestParam Long id); @PostMapping(API_PREFIX+"/selectListByTrayCode") - R selectListByTrayCode(@RequestParam String trayCode); + TrayTypeDataVO selectListByTrayCode(@RequestParam String trayCode); } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java index 72df19907..d082b4e2f 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java @@ -2,10 +2,7 @@ package com.logpm.factory.comfac.controller; import com.alibaba.fastjson.JSONObject; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.logpm.factory.comfac.dto.OrderInfoDTO; -import com.logpm.factory.comfac.dto.OrderStatusDTO; -import com.logpm.factory.comfac.dto.ReceiveInfoDTO; -import com.logpm.factory.comfac.dto.UnloadCarDTO; +import com.logpm.factory.comfac.dto.*; import com.logpm.factory.comfac.service.IFactoryCommonService; import com.logpm.factory.comfac.service.IOrderStatusLogService; import com.logpm.factory.snm.entity.OrderStatusLog; @@ -189,4 +186,39 @@ public class FactoryCommonController { } } + + @ResponseBody + @PostMapping("/handleDataAllocationTray") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "处理对应仓库的上架打托数据", notes = "传入waybillDTO") + public R handleDataAllocationTray(@Validated @RequestBody MessageDTO messageDTO) { + log.info("############handleDataAllocationTray: 请求参数{}",messageDTO); + try{ + + //先保存原始请求数据 + OrderStatusLog orderStatusLog = new OrderStatusLog(); + orderStatusLog.setArgs(JSONObject.toJSONString(messageDTO)); + orderStatusLog.setStatus(1); + orderStatusLog.setType(100); + orderStatusLogService.save(orderStatusLog); + + Map map = new HashMap<>(); + map.put("messageId", CommonUtil.getUUID()); + map.put("logId", orderStatusLog.getId()); + map.put("messageData", messageDTO); + map.put("createTime", new Date().getTime()); + //将消息携带绑定键值 + rabbitTemplate.convertAndSend(RabbitConstant.SYNC_OLD_DATA_EXCHANGE, RabbitConstant.SYNC_OLD_DATA_ROUTING, map); + + return R.success("调用成功"); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error("############sendOrders: 系统异常",e); + return R.fail(500,"############sendOrders: 系统异常"); + } + } + + } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/MessageDTO.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/MessageDTO.java new file mode 100644 index 000000000..56ee36687 --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/MessageDTO.java @@ -0,0 +1,12 @@ +package com.logpm.factory.comfac.dto; + +import lombok.Data; + +@Data +public class MessageDTO { + + private Integer inventoryId; + + private Integer warehouseId; + +} diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java index 941315bd0..cf270a020 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java @@ -248,6 +248,23 @@ public class RabbitMqConfiguration { } + @Bean + public Queue syncOldDataQueue() { + return new Queue(RabbitConstant.SYNC_OLD_DATA_QUEUE, true); + } + + @Bean + public CustomExchange syncOldDataExchange() { + Map args = Maps.newHashMap(); + args.put("x-delayed-type", "direct"); + return new CustomExchange(RabbitConstant.SYNC_OLD_DATA_EXCHANGE, "x-delayed-message", true, false, args); + } + + @Bean + public Binding syncOldDataBinding(Queue syncOldDataQueue, CustomExchange syncOldDataExchange) { + return BindingBuilder.bind(syncOldDataQueue).to(syncOldDataExchange).with(RabbitConstant.SYNC_OLD_DATA_ROUTING).noargs(); + } + } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/SyncOldDataHandler.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/SyncOldDataHandler.java new file mode 100644 index 000000000..8146c550b --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/SyncOldDataHandler.java @@ -0,0 +1,69 @@ +package com.logpm.factory.receiver; + +import com.logpm.factory.comfac.dto.MessageDTO; +import com.rabbitmq.client.Channel; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.RabbitConstant; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + + +/** + * 直接队列1 处理器 + * + * @author yangkai.shen + */ +@Slf4j +@RabbitListener(queues = RabbitConstant.SYNC_OLD_DATA_QUEUE) +@Component +public class SyncOldDataHandler { + + @RabbitHandler + public void receiveInfoHandler(Map map, Message message, Channel channel) throws IOException, NoSuchAlgorithmException { + // 如果手动ACK,消息会被监听消费,但是消息在队列中依旧存在,如果 未配置 acknowledge-mode 默认是会在消费完毕后自动ACK掉 + log.info("##################receiveInfoHandler:处理签收信息数据"); + MessageDTO messageDTO = (MessageDTO) map.get("messageData"); + Integer oldWarehouseId = messageDTO.getWarehouseId();//老系统仓库id + + //通过订单自编号去查询该条订单是属于哪个工厂 +// AdvanceEntity advanceEntity = advanceClient.getQueryDataOne(orderSelfNum); +// if(Objects.isNull(advanceEntity)){ +// log.info("##################receiveInfoHandler: 未找到对应订单 orderSelfNum={}",orderSelfNum); +//// channel.basicAck(deliveryTag,true); +// return; +// } +// String type = advanceEntity.getType();//品牌 +// +// R r = null; +// switch (type){ +//// case FactoryConstant.PIANO: +//// r = panFactoryDataService.handleData(orderInfoDTO); +//// break; +// case FactoryConstant.MENGT: +// try{ +// r = mtFactoryDataService.sendReceiveInfo(receiveInfoDTO); +// +// }catch (Exception e){ +// e.printStackTrace(); +// } +// int code = r.getCode(); +// if(code == 400 || code == 200){ +// log.info("##################receiveInfoHandler: 该条数据不用处理 orderNo={}",orderSelfNum); +//// channel.basicAck(deliveryTag,true); +// }else{ +// throw new CustomerException(code,r.getMsg()); +// } +// break; +// default: +// log.info("##################receiveInfoHandler: 未知品牌 type={}",type); +//// channel.basicAck(deliveryTag,true); +// } + + } +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/OldSystemPushController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/OldSystemPushController.java index 99c7052e1..0199afb54 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/OldSystemPushController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/OldSystemPushController.java @@ -77,7 +77,6 @@ public class OldSystemPushController { } } - // @PostMapping("/splitOrder") // @ResponseBody // @ApiOperationSupport(order = 8) diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java index 93d8acf1c..b8704d4af 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java @@ -1,8 +1,8 @@ package com.logpm.warehouse.feign; import com.logpm.warehouse.service.IWarehouseTrayTypeService; +import com.logpm.warehouse.vo.TrayTypeDataVO; import lombok.AllArgsConstructor; -import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -21,7 +21,7 @@ public class WarehouseTrayTypeClient implements IWarehouseTrayTypeClient { } @Override - public R selectListByTrayCode(String trayCode) { + public TrayTypeDataVO selectListByTrayCode(String trayCode) { return warehouseTrayTypeService.selectListByTrayCode(trayCode); } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java index 974ef1048..f9f242b17 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java @@ -85,6 +85,6 @@ public interface IWarehouseTrayTypeService extends BaseService