Browse Source

修复包件明细查询的问题

master
pref_mail@163.com 8 months ago
parent
commit
5002bac67b
  1. 133
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

133
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

@ -17,6 +17,7 @@
package com.logpm.distribution.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -80,6 +81,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
private IDistributionLoadscaninvnService distributionLoadscaninvnService;
private final IBasicdataWarehouseClient basicdataWarehouseClient;
@Override
public IPage<DistributionDeliveryInfoVO> selectDistributionDeliveryInfoPage(IPage<DistributionDeliveryInfoVO> page, DistributionDeliveryInfoVO distributionDeliveryInfo) {
List<DistributionDeliveryInfoVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryInfoPage(page, distributionDeliveryInfo);
@ -137,13 +139,19 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
List<DistributionParcelListVO> parcelListVOS = DistributionParcelListWrapper.build().listVO(parcelListEntityList);
LambdaQueryWrapper<DistributionLoadscanEntity> loadscanEntityWrapper = new LambdaQueryWrapper<>();
loadscanEntityWrapper.eq(DistributionLoadscanEntity::getReservationId, reservationId);
if (!ids.isEmpty()) {
loadscanEntityWrapper.in(DistributionLoadscanEntity::getPackageId, ids);
}
if (!orderPackageCodes.isEmpty()) {
loadscanEntityWrapper.in(DistributionLoadscanEntity::getOrderPackageCode, orderPackageCodes);
}
loadscanEntityWrapper.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue());
// 保持不变,优化性能需要注意的是ids和orderPackageCodes的处理
List<DistributionLoadscanEntity> loadscanEntitys = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.in(DistributionLoadscanEntity::getPackageId, ids)
.eq(DistributionLoadscanEntity::getReservationId, reservationId)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.in(DistributionLoadscanEntity::getOrderPackageCode, orderPackageCodes)
);
List<DistributionLoadscanEntity> loadscanEntitys = distributionLoadscanService.list(loadscanEntityWrapper);
// 对加载的VO列表进行处理的逻辑抽取到一个独立的方法
processParcelListVOS(parcelListVOS, loadscanEntitys, reservationIdStr);
@ -163,50 +171,48 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
}
}
});
}
}
private void updateParcelStatus(DistributionParcelListVO parcel, DistributionLoadscanEntity loadscanEntity) {
parcel.setLoadingTime(loadscanEntity.getScanTime());
switch (loadscanEntity.getScanStatus()) {
case "1":
parcel.setScanStatus(LoadingStatusConstant.quxiao.getName());
break;
case "2":
parcel.setScanStatus(LoadingStatusConstant.saomiao.getName());
break;
case "3":
parcel.setScanStatus(LoadingStatusConstant.queren.getName());
break;
case "4":
parcel.setScanStatus(LoadingStatusConstant.yijianzhuangche.getName());
break;
case "5":
parcel.setScanStatus(LoadingStatusConstant.buluzhuangche.getName());
break;
default:
log.info("loadscanEntity.getScanStatus() does not meet matching conditions: {}", loadscanEntity.getScanStatus());
break;
}
if (Func.isNotEmpty(loadscanEntity.getSigningTime())) {
parcel.setSigningTime(loadscanEntity.getSigningTime());
}
if (Func.isNotEmpty(loadscanEntity.getScanUser())) {
parcel.setScanUser(loadscanEntity.getScanUser());
}
if (Func.isNotEmpty(loadscanEntity.getDriverName())) {
parcel.setDriverName(loadscanEntity.getDriverName());
}
if (Func.isNotEmpty(loadscanEntity.getSigningUser())) {
parcel.setSigningUser(loadscanEntity.getSigningUser());
}
}
parcel.setLoadingTime(loadscanEntity.getScanTime());
switch (loadscanEntity.getScanStatus()) {
case "1":
parcel.setScanStatus(LoadingStatusConstant.quxiao.getName());
break;
case "2":
parcel.setScanStatus(LoadingStatusConstant.saomiao.getName());
break;
case "3":
parcel.setScanStatus(LoadingStatusConstant.queren.getName());
break;
case "4":
parcel.setScanStatus(LoadingStatusConstant.yijianzhuangche.getName());
break;
case "5":
parcel.setScanStatus(LoadingStatusConstant.buluzhuangche.getName());
break;
default:
log.info("loadscanEntity.getScanStatus() does not meet matching conditions: {}", loadscanEntity.getScanStatus());
break;
}
if (Func.isNotEmpty(loadscanEntity.getSigningTime())) {
parcel.setSigningTime(loadscanEntity.getSigningTime());
}
if (Func.isNotEmpty(loadscanEntity.getScanUser())) {
parcel.setScanUser(loadscanEntity.getScanUser());
}
if (Func.isNotEmpty(loadscanEntity.getDriverName())) {
parcel.setDriverName(loadscanEntity.getDriverName());
}
if (Func.isNotEmpty(loadscanEntity.getSigningUser())) {
parcel.setSigningUser(loadscanEntity.getSigningUser());
}
}
private DistributionLoadscanEntity getLoadscanEntity(List<DistributionLoadscanEntity> loadscanEntitys, DistributionParcelListVO p) {
for (DistributionLoadscanEntity loadscanEntity : loadscanEntitys) {
if(loadscanEntity.getPackageId().equals(p.getId())&& loadscanEntity.getOrderPackageCode().equals(p.getOrderPackageCode())){
if (loadscanEntity.getPackageId().equals(p.getId()) && loadscanEntity.getOrderPackageCode().equals(p.getOrderPackageCode())) {
return loadscanEntity;
}
}
@ -278,7 +284,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
s.setOrderStatusName(OrderStatusConstant.qianshou.getName());
break;
default:
log.info("selectDistributionDeliveryorder 不满足匹配值 s.getOrderStatus() {}",s.getOrderStatus());
log.info("selectDistributionDeliveryorder 不满足匹配值 s.getOrderStatus() {}", s.getOrderStatus());
break;
}
});
@ -340,7 +346,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
s.setOrderStatusName(OrderStatusConstant.qianshou.getName());
break;
default:
log.info("selectDistributionDeliveryorder 不满足匹配值 s.getOrderStatus() {}",s.getOrderStatus());
log.info("selectDistributionDeliveryorder 不满足匹配值 s.getOrderStatus() {}", s.getOrderStatus());
break;
}
});
@ -360,7 +366,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
//-------------------------------------2023-10-07 客户查看订单详情-----------------------------------------------------------------
// 这里先查询出客户的订单信息,然后查询订单的预约包件信息
BasicdataWarehouseEntity myCurrentWarehouse =basicdataWarehouseClient.getMyCurrentWarehouse();
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
Long reservationId = Long.parseLong(distributionAppDeliveryListDTO.getReservationId());
List<DistributionStockArticleVO> stockArticleVOS = distributionReservationMapper.selectOrderInfoByReservationId(reservationId);
@ -387,7 +393,7 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
loadingPackage = orderInfo.get(ord.getId()).stream().collect(Collectors.toMap(DistributionLoadscanEntity::getPackageId, Function.identity(), (k1, k2) -> k2));
}
if (ord.getIsZero().equals(IsOrNoConstant.no.getValue())) {
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, ord.getId(),myCurrentWarehouse.getId());
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, ord.getId(), myCurrentWarehouse.getId());
List<DistributionAppParcelListVO> ks = new ArrayList<>();
AtomicInteger atomicInteger = new AtomicInteger();
// 装车数量
@ -396,8 +402,8 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
DistributionAppParcelListVO appParcelListVO = Func.copy(parcelListEntity, DistributionAppParcelListVO.class);
if (Func.isNotEmpty(loadingPackage.get(parcelListEntity.getId()))) {
atomicInteger.getAndIncrement();
assert appParcelListVO != null;
appParcelListVO.setScanStatus(2);
assert appParcelListVO != null;
appParcelListVO.setScanStatus(2);
appParcelListVO.setIsScan("已扫");
loadingPackage.remove(parcelListEntity.getId());
loadingNum.getAndAdd(parcelListEntity.getQuantity());
@ -406,8 +412,8 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
} else {
//此时这个订单内还存在装车的包件,这些包件就是异常装车的包件了
assert appParcelListVO != null;
appParcelListVO.setScanStatus(1);
assert appParcelListVO != null;
appParcelListVO.setScanStatus(1);
appParcelListVO.setIsScan("未扫");
}
ks.add(appParcelListVO);
@ -525,14 +531,14 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
for (DistributionLoadscanEntity loadscanEntity : v) {
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(loadscanEntity.getPackageId());
DistributionAppParcelListVO parcelListVO = Func.copy(parcelListEntity, DistributionAppParcelListVO.class);
assert parcelListVO != null;
parcelListVO.setScanStatus(3);
assert parcelListVO != null;
parcelListVO.setScanStatus(3);
parcelListVO.setIsScan("异常");
loadingNum.getAndAdd(parcelListEntity.getQuantity());
distributionAppParcelListVOS.add(parcelListVO);
}
assert appStockArticleVO != null;
appStockArticleVO.setIsZero(stockArticleEntity.getIsZero());
assert appStockArticleVO != null;
appStockArticleVO.setIsZero(stockArticleEntity.getIsZero());
appStockArticleVO.setLoadingNub(loadingNum.get());
appStockArticleVO.setIsHaveAbnormalPackage(2);
appStockArticleVO.setIsHaveAbnormalPackageName("整单异常");
@ -640,13 +646,12 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
@Override
public IPage<DistributionReservationInventoryPackageVO> getReservationPackageList(Map<String, Object> reservationPackageDTO, IPage<DistributionReservationInventoryPackageVO> page) {
String method = "DistributionDeliveryInfoServiceImpl类,getReservationPackageList方法";
if (Func.isEmpty(reservationPackageDTO.get("reservationId"))){
if (Func.isEmpty(reservationPackageDTO.get("reservationId"))) {
//参数缺失
log.error(method+"reservationId参数缺失");
log.error(method + "reservationId参数缺失");
return null;
}
IPage<DistributionReservationInventoryPackageVO> reservationInventoryPackageVOIPage = distributionReservationMapper.selectInvenToryPackageByReservationInfo(reservationPackageDTO,page);
IPage<DistributionReservationInventoryPackageVO> reservationInventoryPackageVOIPage = distributionReservationMapper.selectInvenToryPackageByReservationInfo(reservationPackageDTO, page);
return reservationInventoryPackageVOIPage;
@ -656,13 +661,13 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
@Override
public IPage<DistributionReservationZeroPackageVO> getReservationZeroPackageList(Map<String, Object> reservationPackageDTO, IPage<DistributionReservationZeroPackageVO> page) {
String method = "DistributionDeliveryInfoServiceImpl类,getReservationPackageList方法";
if (Func.isEmpty(reservationPackageDTO.get("reservationId"))){
if (Func.isEmpty(reservationPackageDTO.get("reservationId"))) {
//参数缺失
log.error(method+"reservationId参数缺失");
log.error(method + "reservationId参数缺失");
return null;
}
IPage<DistributionReservationZeroPackageVO> reservationInventoryPackageVOIPage = distributionReservationMapper.selectZeroPackageByReservationInfo(reservationPackageDTO,page);
return reservationInventoryPackageVOIPage;
IPage<DistributionReservationZeroPackageVO> reservationInventoryPackageVOIPage = distributionReservationMapper.selectZeroPackageByReservationInfo(reservationPackageDTO, page);
return reservationInventoryPackageVOIPage;
}

Loading…
Cancel
Save