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