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 977c4695e..43c66481b 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 @@ -183,9 +183,6 @@ public interface RabbitConstant { /****************库内入库推送商家数据start *************************/ - String IN_WAREHOUSE_TO_BUSINESS_DATA_QUEUE = "in_warehouse_to_business_data_queue" + ModuleNameConstant.DEVAUTH; - String IN_WAREHOUSE_TO_BUSINESS_DATA_EXCHANGE = "in_warehouse_to_business_data_exchange" + ModuleNameConstant.DEVAUTH; - String IN_WAREHOUSE_TO_BUSINESS_DATA_ROUTING = "in_warehouse_to_business_data_routing" + ModuleNameConstant.DEVAUTH; /****************库内入库推送商家数据end *************************/ diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/config/RabbitMqConfiguration.java b/blade-service/logpm-business/src/main/java/com/logpm/business/config/RabbitMqConfiguration.java index 3150f558e..3696eec9c 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/config/RabbitMqConfiguration.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/config/RabbitMqConfiguration.java @@ -173,23 +173,6 @@ public class RabbitMqConfiguration { - - - @Bean - public Queue businessInConversionQueue() { - return new Queue(RabbitConstant.BUSINESS_IN_CONVERSION_DATA_QUEUE, true); - } - @Bean - public CustomExchange businessInConversionExchange() { - Map args = Maps.newHashMap(); - args.put("x-delayed-type", "direct"); - return new CustomExchange(RabbitConstant.BUSINESS_IN_CONVERSION_DATA_EXCHANGE, "x-delayed-message", true, false, args); - } - @Bean - public Binding businessInConversionBinding(Queue businessInConversionQueue, CustomExchange businessInConversionExchange) { - return BindingBuilder.bind(businessInConversionQueue).to(businessInConversionExchange).with(RabbitConstant.BUSINESS_IN_CONVERSION_DATA_ROUTING).noargs(); - } - @Bean public Queue selfPickupScanQueue() { return new Queue(RabbitConstant.SELF_PICKUP_SCAN_QUEUE, true); diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/BusinessInOrderDataQueueHandler.java b/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/BusinessInOrderDataQueueHandler.java index b731ef5c4..fe7b021cc 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/BusinessInOrderDataQueueHandler.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/BusinessInOrderDataQueueHandler.java @@ -1,5 +1,7 @@ package com.logpm.business.receiver; +import com.alibaba.fastjson.JSONObject; +import com.logpm.business.service.IBusinessPreOrderService; import com.rabbitmq.client.Channel; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,7 +14,7 @@ import org.springframework.stereotype.Component; import java.util.Map; /** - * 商家完结订单 + * 送货师傅签收完结商家端数据 */ @Slf4j @RabbitListener(queues = RabbitConstant.BUSINESS_IN_CONVERSION_DATA_QUEUE) @@ -20,11 +22,46 @@ import java.util.Map; @AllArgsConstructor public class BusinessInOrderDataQueueHandler { + private final IBusinessPreOrderService businessPreOrderService; + @RabbitHandler public void businessInOrderDataHandler(Map map, Message message, Channel channel) { + // 获取 + JSONObject o = (JSONObject) map.get("messageData"); + String orderPackageCode = o.getString("orderPackageCode"); + String reservationCode = o.getString("reservationCode"); + String distrCarNumber = o.getString("distrCarNumber"); + String vehicleName = o.getString("vehicleName"); + String driverName = o.getString("driverName"); + String userName = o.getString("userName"); + Long warehouseId = o.getLong("warehouseId"); + String tenantId = o.getString("tenantId"); + //验证参数是否为null或者空串 + if (orderPackageCode == null || orderPackageCode.equals("")) { + log.error("orderPackageCode is null"); + return; + } + if (reservationCode == null || reservationCode.equals("")) { + log.error("reservationCode is null"); + return; + } + if (distrCarNumber == null || distrCarNumber.equals("")) { + log.error("distrCarNumber is null"); + return; + } + if (vehicleName == null || vehicleName.equals("")) { + log.error("vehicleName is null"); + return; + } + if (driverName == null || driverName.equals("")) { + log.error("driverName is null"); + return; + } + // 如果师傅签收 以师傅签收的车次为准 + businessPreOrderService.scanOrderPackageCodeByMaster(orderPackageCode, reservationCode, distrCarNumber, vehicleName, driverName, userName, warehouseId, tenantId); } diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/InWarehourseToBusinessHandler.java b/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/InWarehourseToBusinessHandler.java deleted file mode 100644 index 82c380df1..000000000 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/receiver/InWarehourseToBusinessHandler.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.logpm.business.receiver; - -import com.alibaba.fastjson.JSONObject; -import com.logpm.business.service.IBusinessPreOrderService; -import com.rabbitmq.client.Channel; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springblade.common.constant.RabbitConstant; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.messaging.Message; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 码半 - * 入库扫描 - * 触发商家的入库数据 - */ - -@Slf4j -@AllArgsConstructor -@Component -@RabbitListener(queues = RabbitConstant.IN_WAREHOUSE_TO_BUSINESS_DATA_QUEUE) -public class InWarehourseToBusinessHandler { - - private final IBusinessPreOrderService businessPreOrderService; - @RabbitHandler - public void inWarehourseToBusinessDataHandler(Map map, Message message, Channel channel) { - - extracted(map); - - - } - - private void extracted(Map map) { - log.info("入库扫描-触发商家的入库数据-入参:{}", map); - - JSONObject o = (JSONObject) map.get("messageData"); - - String orderPackageCode = o.getString("orderPackageCode"); - String carNum = o.getString("carNum"); - if(carNum==null){ - carNum=""; - } - - Integer i = businessPreOrderService.inOrderByOrderPackageCode(orderPackageCode, carNum); - log.info(">>>>>>>>>>>>>>>>>> 入库操作 执行 {}",i); - - } - -} diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/service/IBusinessPreOrderService.java b/blade-service/logpm-business/src/main/java/com/logpm/business/service/IBusinessPreOrderService.java index ccc14e05c..2c314b7dd 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/service/IBusinessPreOrderService.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/service/IBusinessPreOrderService.java @@ -77,4 +77,29 @@ public interface IBusinessPreOrderService extends BaseService queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BusinessPreOrderEntity::getOrderPackageCode, orderPackageCode); + queryWrapper1.eq(BusinessPreOrderEntity::getIsDeleted, 0); + List list1 = baseMapper.selectList(queryWrapper1); + BusinessPreOrderEntity data =null; + if (list1.isEmpty()) { + // 新增改车次的预入库信息 + DistributionParcelListEntity byPacketBarCodeAndWarehouseId = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId); + data = BeanUtil.copy(byPacketBarCodeAndWarehouseId, BusinessPreOrderEntity.class); + data.setDriverName(driverName); + data.setVehicleName(vehicleName); + data.setDistrCarNumber(distrCarNumber); + data.setFromTenantId(tenantId); + data.setOperationStatus(0); + data.setInWarehouse(1); + data.setId(null); + data.setTenantId(null); + data.setReservationCode(reservationCode); + baseMapper.insert(data); + } else { + // 判断当前的包条码是否和当前作业的预约单号相同 + for (int i = 0; i < list1.size(); i++) { + if(list1.get(i).getDistrCarNumber().equals(distrCarNumber)){ + data=list1.get(i); + data.setInWarehouse(1); + } + } + if(data==null){ + // 如果没有找到 则标识当前的车次和作业车次不一致 + data=list1.get(0); + data.setDistrCarNumber(distrCarNumber); + } + baseMapper.updateById(data); + + } + + BusinessSanDTO businessSanDTO = new BusinessSanDTO(); + businessSanDTO.setOrderPackageCode(data.getOrderPackageCode()); + R r = inOrderWarehourse(businessSanDTO); + + return r; } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java index a5b203311..f69f45af9 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java @@ -119,20 +119,7 @@ public class RabbitMqConfiguration { return BindingBuilder.bind(openWaybillToBusinessQueue).to(openWaybillToBusinessExchange).with(RabbitConstant.OPEN_WAYBILL_TO_BUSINESS_DATA_ROUTING).noargs(); } - @Bean - public Queue inWarehouseToBusinessQueue() { - return new Queue(RabbitConstant.IN_WAREHOUSE_TO_BUSINESS_DATA_QUEUE, true); - } - @Bean - public CustomExchange inWarehouseToBusinessExchange() { - Map args = Maps.newHashMap(); - args.put("x-delayed-type", "direct"); - return new CustomExchange(RabbitConstant.IN_WAREHOUSE_TO_BUSINESS_DATA_EXCHANGE, "x-delayed-message", true, false, args); - } - @Bean - public Binding inWarehouseToBusinessBinding(Queue inWarehouseToBusinessQueue, CustomExchange inWarehouseToBusinessExchange) { - return BindingBuilder.bind(inWarehouseToBusinessQueue).to(inWarehouseToBusinessExchange).with(RabbitConstant.IN_WAREHOUSE_TO_BUSINESS_DATA_ROUTING).noargs(); - } +