Browse Source

1.修复bug

fix-sign
zhenghaoyu 3 months ago
parent
commit
c285b4aa76
  1. 25
      blade-biz-common/src/main/java/org/springblade/common/constant/trayallocation/TrayAllocationConstants.java
  2. 63
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/warehouse/AllocationInfoListener.java
  3. 63
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/warehouse/TrayInfoListener.java
  4. 36
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  5. 24
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml
  6. 13
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

25
blade-biz-common/src/main/java/org/springblade/common/constant/trayallocation/TrayAllocationConstants.java

@ -0,0 +1,25 @@
package org.springblade.common.constant.trayallocation;
import org.springblade.common.constant.ModuleNameConstant;
public class TrayAllocationConstants {
/**
* 清除包件上的托盘信息
*/
public static final String WAREHOUSE_PRACL_CLEAR_TRAY_EXCHANGE = "warehouse.pracl.clear.tray.exchange" + ModuleNameConstant.DEVAUTH;
public static final String WAREHOUSE_PRACL_CLEAR_TRAY_QUEUE = "warehouse.pracl.clear.tray.queue" + ModuleNameConstant.DEVAUTH;
public static final String WAREHOUSE_PRACL_CLEAR_TRAY_ROUTINGKEY = "warehouse.pracl.clear.tray.key" + ModuleNameConstant.DEVAUTH;
/**
* 清除包件上的库位信息
*/
public static final String WAREHOUSE_PRACL_CLEAR_ALLOCATION_EXCHANGE = "warehouse.pracl.clear.allocation.exchange" + ModuleNameConstant.DEVAUTH;
public static final String WAREHOUSE_PRACL_CLEAR_ALLOCATION_QUEUE = "warehouse.pracl.clear.allocation.queue" + ModuleNameConstant.DEVAUTH;
public static final String WAREHOUSE_PRACL_CLEAR_ALLOCATION_ROUTINGKEY = "warehouse.pracl.clear.allocation.key" + ModuleNameConstant.DEVAUTH;
}

63
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/warehouse/AllocationInfoListener.java

@ -0,0 +1,63 @@
package com.logpm.distribution.receiver.warehouse;
import cn.hutool.json.JSONUtil;
import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.rabbitmq.client.Channel;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springblade.common.constant.trayallocation.TrayAllocationConstants;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Component
@AllArgsConstructor
public class AllocationInfoListener {
private final DistributionParcelListMapper distributionParcelListMapper;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_ALLOCATION_QUEUE, durable = "true"),
exchange = @Exchange(name = TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_ALLOCATION_EXCHANGE, type = ExchangeTypes.FANOUT)
), ackMode = "MANUAL")
public void clearPraclAllocation(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) {
if(StringUtils.isNotBlank(msg)){
List<Long> ids = JSONUtil.toList(msg, Long.class);
//把ids每200个分组
List<List<Long>> partitions = new ArrayList<>();
for (int i = 0; i < ids.size(); i += 200) {
partitions.add(ids.subList(i, Math.min(i + 200, ids.size())));
}
partitions.forEach(clearTrayList -> {
log.info("############clearPraclAllocation: 当前处理的ids {}",clearTrayList);
distributionParcelListMapper.clearAllocationByIds(clearTrayList);
});
}else{
log.warn("#########clearPraclAllocation: 消息数据为空 msg={}",msg);
}
try {
channel.basicAck(tag, false);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

63
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/warehouse/TrayInfoListener.java

@ -0,0 +1,63 @@
package com.logpm.distribution.receiver.warehouse;
import cn.hutool.json.JSONUtil;
import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.rabbitmq.client.Channel;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springblade.common.constant.trayallocation.TrayAllocationConstants;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Component
@AllArgsConstructor
public class TrayInfoListener {
private final DistributionParcelListMapper distributionParcelListMapper;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_TRAY_QUEUE, durable = "true"),
exchange = @Exchange(name = TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_TRAY_EXCHANGE, type = ExchangeTypes.FANOUT)
), ackMode = "MANUAL")
public void clearPraclTray(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) {
if(StringUtils.isNotBlank(msg)){
List<Long> ids = JSONUtil.toList(msg, Long.class);
//把ids每200个分组
List<List<Long>> partitions = new ArrayList<>();
for (int i = 0; i < ids.size(); i += 200) {
partitions.add(ids.subList(i, Math.min(i + 200, ids.size())));
}
partitions.forEach(clearTrayList -> {
log.info("############clearPraclTray: 当前处理的ids {}",clearTrayList);
distributionParcelListMapper.clearPalletByIds(clearTrayList);
});
}else{
log.warn("#########clearPraclTray: 消息数据为空 msg={}",msg);
}
try {
channel.basicAck(tag, false);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

36
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -17,6 +17,7 @@
package com.logpm.distribution.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -40,6 +41,8 @@ import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.logpm.distribution.mapper.DistributionStockArticleMapper;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
import com.logpm.factorydata.feign.IFactoryDataClient;
import com.logpm.factorydata.vo.SendMsg;
import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient;
import com.logpm.trunkline.feign.ITrunklinePackageTrackLogClient;
import com.logpm.warehouse.entity.WarehouseConfigEntity;
@ -55,6 +58,7 @@ import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusCon
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.common.constant.trayallocation.TrayAllocationConstants;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.node.PackageNode;
import org.springblade.common.utils.CommonUtil;
@ -78,6 +82,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@ -145,6 +150,9 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
@Autowired
private IBasicdataGoodsAllocationClient allocationClient;
// private final IDistributionStockArticleService distributionStockArticleService;
@Resource
private IFactoryDataClient factoryDataClient;
@Override
public IPage<DistributionParcelListVO> selectDistributionParcelListPage(IPage<DistributionParcelListVO> page, DistributionParcelListVO distributionParcelList) {
@ -1332,7 +1340,18 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
@Override
public void clearPalletByIds(List<Long> clearTrayList) {
baseMapper.clearPalletByIds(clearTrayList);
try{
baseMapper.clearPalletByIds(clearTrayList);
}catch (Exception e){
log.error("清空包件托盘异常",e);
factoryDataClient.sendMessage(SendMsg.builder()
.exchange(TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_TRAY_EXCHANGE)
.routingKey(TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_TRAY_ROUTINGKEY)
.message(JSONUtil.toJsonStr(clearTrayList))
.delay(10000)
.build());
}
}
@Override
@ -1342,7 +1361,20 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
@Override
public void clearAllocationByIds(List<Long> clearTrayList) {
baseMapper.clearAllocationByIds(clearTrayList);
try{
baseMapper.clearAllocationByIds(clearTrayList);
}catch (Exception e){
log.error("清空包件托盘异常",e);
factoryDataClient.sendMessage(SendMsg.builder()
.exchange(TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_ALLOCATION_EXCHANGE)
.routingKey(TrayAllocationConstants.WAREHOUSE_PRACL_CLEAR_ALLOCATION_ROUTINGKEY)
.message(JSONUtil.toJsonStr(clearTrayList))
.delay(10000)
.build());
}
}
@Override

24
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml

@ -1356,7 +1356,8 @@
lww.departure_warehouse_name departureWarehouseName,
lww.destination_warehouse_name destinationWarehouseName,
GROUP_CONCAT(DISTINCT ltad.train_number) trainNumber,
GROUP_CONCAT(DISTINCT IFNULL(ltcls.load_code,ltclsm.load_code)) loadCode,
GROUP_CONCAT(DISTINCT ltcls.load_code) loadingLoadCode,
GROUP_CONCAT(DISTINCT ltclsm.load_code) unloadLoadCode,
count(ltad.id) totalNum,
min(ltad.create_time) createTime,
min(ldpls.create_time) startIncomingTime,
@ -1387,7 +1388,7 @@
left join logpm_trunkline_cars_load_scan ltclsm on ltclsm.scan_code = ldplm.order_package_code and ltclsm.unload_node_id = ldplm.warehouse_id
left join logpm_trunkline_cars_load_line ltcllm on ltcllm.load_id = ltclsm.load_id and ltcllm.node_id = ltclsm.unload_node_id
left join logpm_quality_deliver lqd on lqd.order_package_code = ltad.order_package_code and lqd.retention_time is null
left join logpm_reportconfig_order_all oat on oat.departure_warehouse_id = lww.departure_warehouse_id and oat.destination_warehouse_id = lww.destination_warehouse_id and oat.brand = lww.brand
left join logpm_reportconfig_order_all oat on oat.departure_warehouse_id = lww.departure_warehouse_id and oat.destination_warehouse_id = lww.destination_warehouse_id
where ltad.waybill_id is not null
and ltad.create_time > '2024-10-22 00:00:00'
and lww.departure_warehouse_id != lww.destination_warehouse_id
@ -1454,8 +1455,11 @@
<if test="param.trainNumber != null and param.trainNumber !='' ">
and GROUP_CONCAT(DISTINCT ltad.train_number) like concat('%',#{param.trainNumber},'%')
</if>
<if test="param.loadCode != null and param.loadCode !='' ">
and GROUP_CONCAT(DISTINCT IFNULL(ltcls.load_code,ltclsm.load_code)) like concat('%',#{param.loadCode},'%')
<if test="param.loadingLoadCode != null and param.loadingLoadCode !='' ">
and GROUP_CONCAT(DISTINCT ltcls.load_code) like concat('%',#{param.loadingLoadCode},'%')
</if>
<if test="param.unloadLoadCode != null and param.unloadLoadCode !='' ">
and GROUP_CONCAT(DISTINCT ltclsm.load_code) like concat('%',#{param.unloadLoadCode},'%')
</if>
</trim>
</select>
@ -1470,7 +1474,8 @@
lww.departure_warehouse_name departureWarehouseName,
lww.destination_warehouse_name destinationWarehouseName,
GROUP_CONCAT(DISTINCT ltad.train_number) trainNumber,
GROUP_CONCAT(DISTINCT IFNULL(ltcls.load_code,ltclsm.load_code)) loadCode,
GROUP_CONCAT(DISTINCT ltcls.load_code) loadingLoadCode,
GROUP_CONCAT(DISTINCT ltclsm.load_code) unloadLoadCode,
count(ltad.id) totalNum,
min(ltad.create_time) createTime,
min(ldpls.create_time) startIncomingTime,
@ -1501,7 +1506,7 @@
left join logpm_trunkline_cars_load_scan ltclsm on ltclsm.scan_code = ldplm.order_package_code and ltclsm.unload_node_id = ldplm.warehouse_id
left join logpm_trunkline_cars_load_line ltcllm on ltcllm.load_id = ltclsm.load_id and ltcllm.node_id = ltclsm.unload_node_id
left join logpm_quality_deliver lqd on lqd.order_package_code = ltad.order_package_code and lqd.retention_time is null
left join logpm_reportconfig_order_all oat on oat.departure_warehouse_id = lww.departure_warehouse_id and oat.destination_warehouse_id = lww.destination_warehouse_id and oat.brand = lww.brand
left join logpm_reportconfig_order_all oat on oat.departure_warehouse_id = lww.departure_warehouse_id and oat.destination_warehouse_id = lww.destination_warehouse_id
where ltad.waybill_id is not null
and ltad.create_time > '2024-10-22 00:00:00'
and lww.departure_warehouse_id != lww.destination_warehouse_id
@ -1568,8 +1573,11 @@
<if test="param.trainNumber != null and param.trainNumber !='' ">
and GROUP_CONCAT(DISTINCT ltad.train_number) like concat('%',#{param.trainNumber},'%')
</if>
<if test="param.loadCode != null and param.loadCode !='' ">
and GROUP_CONCAT(DISTINCT IFNULL(ltcls.load_code,ltclsm.load_code)) like concat('%',#{param.loadCode},'%')
<if test="param.loadingLoadCode != null and param.loadingLoadCode !='' ">
and GROUP_CONCAT(DISTINCT ltcls.load_code) like concat('%',#{param.loadingLoadCode},'%')
</if>
<if test="param.unloadLoadCode != null and param.unloadLoadCode !='' ">
and GROUP_CONCAT(DISTINCT ltclsm.load_code) like concat('%',#{param.unloadLoadCode},'%')
</if>
</trim>
</select>

13
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -11707,14 +11707,17 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//已入库
Long nowWarehouseId = advanceDetailEntity.getNowWarehouseId();
String nowWarehouseName = advanceDetailEntity.getNowWarehouseName();
String oc = advanceDetailEntity.getOrderCode();
String wn = advanceDetailEntity.getWaybillNo();
Long wi = advanceDetailEntity.getWaybillId();
//需要补装车扫记录
TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity = new TrunklineCarsLoadScanEntity();
// trunklineCarsLoadScanEntity.setWarehouseId(warehouseId);
// trunklineCarsLoadScanEntity.setWarehouseName(warehouseName);
trunklineCarsLoadScanEntity.setOrderCode(advanceDetailEntity.getOrderCode());
trunklineCarsLoadScanEntity.setWaybillId(advanceDetailEntity.getWaybillId());
trunklineCarsLoadScanEntity.setWaybillNo(advanceDetailEntity.getWaybillNo());
trunklineCarsLoadScanEntity.setOrderCode(oc);
trunklineCarsLoadScanEntity.setWaybillId(wi);
trunklineCarsLoadScanEntity.setWaybillNo(wn);
trunklineCarsLoadScanEntity.setLoadId(loadId);
trunklineCarsLoadScanEntity.setLoadCode(loadCode);
trunklineCarsLoadScanEntity.setScanCode(orderPackageCode);
@ -11746,10 +11749,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadScanService.save(trunklineCarsLoadScanEntity);
loadScanId = trunklineCarsLoadScanEntity.getId();
carsLoadAsyncService.saveLoadingLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1,
carsLoadAsyncService.saveLoadingLog(warehouseId, warehouseName, loadId, loadCode, wi, wn, oc, orderPackageCode, 1,
1, 1, 1, trayId, trayCode, trayName, null, loadScanId, "有数据,无计划,无装车,补装车计划,异常装车");
carsLoadAsyncService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, null, null, null, orderPackageCode, 1,
carsLoadAsyncService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, wi, wn, oc, orderPackageCode, 1,
1, 1, 1, trayId, trayCode, trayName, null, loadScanId, "有数据,无计划,无装车,异常卸车");
//无装车记录异常日志记录

Loading…
Cancel
Save