Browse Source

1.增加师傅签收 完结商家数据

dist.1.3.0
pref_mail@163.com 8 months ago
parent
commit
84b3a3363a
  1. 3
      blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java
  2. 17
      blade-service/logpm-business/src/main/java/com/logpm/business/config/RabbitMqConfiguration.java
  3. 39
      blade-service/logpm-business/src/main/java/com/logpm/business/receiver/BusinessInOrderDataQueueHandler.java
  4. 53
      blade-service/logpm-business/src/main/java/com/logpm/business/receiver/InWarehourseToBusinessHandler.java
  5. 25
      blade-service/logpm-business/src/main/java/com/logpm/business/service/IBusinessPreOrderService.java
  6. 67
      blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java
  7. 15
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java

3
blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java

@ -183,9 +183,6 @@ public interface RabbitConstant {
/****************库内入库推送商家数据start *************************/ /****************库内入库推送商家数据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 *************************/ /****************库内入库推送商家数据end *************************/

17
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<String, Object> 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 @Bean
public Queue selfPickupScanQueue() { public Queue selfPickupScanQueue() {
return new Queue(RabbitConstant.SELF_PICKUP_SCAN_QUEUE, true); return new Queue(RabbitConstant.SELF_PICKUP_SCAN_QUEUE, true);

39
blade-service/logpm-business/src/main/java/com/logpm/business/receiver/BusinessInOrderDataQueueHandler.java

@ -1,5 +1,7 @@
package com.logpm.business.receiver; package com.logpm.business.receiver;
import com.alibaba.fastjson.JSONObject;
import com.logpm.business.service.IBusinessPreOrderService;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -12,7 +14,7 @@ import org.springframework.stereotype.Component;
import java.util.Map; import java.util.Map;
/** /**
* 商家完结订单 * 送货师傅签收完结商家端数据
*/ */
@Slf4j @Slf4j
@RabbitListener(queues = RabbitConstant.BUSINESS_IN_CONVERSION_DATA_QUEUE) @RabbitListener(queues = RabbitConstant.BUSINESS_IN_CONVERSION_DATA_QUEUE)
@ -20,11 +22,46 @@ import java.util.Map;
@AllArgsConstructor @AllArgsConstructor
public class BusinessInOrderDataQueueHandler { public class BusinessInOrderDataQueueHandler {
private final IBusinessPreOrderService businessPreOrderService;
@RabbitHandler @RabbitHandler
public void businessInOrderDataHandler(Map map, Message message, Channel channel) { 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);
} }

53
blade-service/logpm-business/src/main/java/com/logpm/business/receiver/InWarehourseToBusinessHandler.java

@ -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);
}
}

25
blade-service/logpm-business/src/main/java/com/logpm/business/service/IBusinessPreOrderService.java

@ -77,4 +77,29 @@ public interface IBusinessPreOrderService extends BaseService<BusinessPreOrderEn
* @return * @return
*/ */
R incomingPackage(InComingDTO inComingDTO); R incomingPackage(InComingDTO inComingDTO);
/**
* 师傅的签收扫描作业
*
* @param reservationCode 预约单
* @param orderPackageCode 包条码
* @param distrCarNumber 配送车次号
* @param driverName 司机名称
* @param vehicleName 车牌号码
* @param warehouseId 当前作业仓库ID
* @param tenantId 当前作业的租户
* @param userName 作业用户
* @return
*/
R scanOrderPackageCodeByMaster(String orderPackageCode,
String reservationCode,
String distrCarNumber,
String vehicleName,
String driverName,
String userName,
Long warehouseId,
String tenantId
);
} }

67
blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java

@ -15,6 +15,8 @@ import com.logpm.business.entity.BusinessPreOrderEntity;
import com.logpm.business.mapper.BusinessPreOrderMapper; import com.logpm.business.mapper.BusinessPreOrderMapper;
import com.logpm.business.service.IBusinessPreOrderService; import com.logpm.business.service.IBusinessPreOrderService;
import com.logpm.business.vo.*; import com.logpm.business.vo.*;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.dto.InComingDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.feign.IInComingClient; import com.logpm.trunkline.feign.IInComingClient;
@ -34,6 +36,7 @@ import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -45,6 +48,7 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
private final IInComingClient inComingClient; private final IInComingClient inComingClient;
private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient; private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient;
private final BladeRedis bladeRedis; private final BladeRedis bladeRedis;
private final IDistributionParcelListClient distributionParcelListClient;
@ -446,12 +450,6 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
// 调用feign 进行托盘半固定入库 // 调用feign 进行托盘半固定入库
R r = inComingClient.incomingPackageByTaryCode(inComingDTO); R r = inComingClient.incomingPackageByTaryCode(inComingDTO);
@ -464,6 +462,61 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl<BusinessPreOrde
return null; return r;
}
@Override
public R scanOrderPackageCodeByMaster(String orderPackageCode,
String reservationCode,
String distrCarNumber,
String vehicleName,
String driverName,
String userName,
Long warehouseId,
String tenantId) {
// 判断当前的包条码是否和当前作业的车次相同
LambdaQueryWrapper<BusinessPreOrderEntity> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusinessPreOrderEntity::getOrderPackageCode, orderPackageCode);
queryWrapper1.eq(BusinessPreOrderEntity::getIsDeleted, 0);
List<BusinessPreOrderEntity> 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;
} }
} }

15
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(); 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<String, Object> 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();
}

Loading…
Cancel
Save