@ -42,7 +42,9 @@ import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.* ;
import com.logpm.distribution.vo.print.PrintPreviewVO ;
import com.logpm.distribution.wrapper.* ;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity ;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity ;
import com.logpm.warehouse.feign.IWarehouseRetentionScanClient ;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient ;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient ;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient ;
@ -151,6 +153,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
private final IDistributionReservationZeroPackageService distributionReservationZeroPackageService ;
private final IDistributionParcelNumberService distributionParcelNumberService ;
private final IWarehouseTrayGoodsClient warehouseTrayGoodsClient ;
private final IWarehouseRetentionScanClient warehouseRetentionScanClient ;
// private final DistributionStockMapper distributionStockMapper;
// private final BladeRedis redis;
@ -1290,7 +1293,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
BeanUtils . copyProperties ( distributionDeliveryTripartiteEntity , distributionDeliverySelfEntity ) ;
}
}
DistributionReservationEntity reservationEntity = distributionReservationMapper . selectById ( distrilbutionloadingscanDTO . getReservationId ( ) ) ;
reservationEntity . setLoadingStatus ( ReservationLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
distributionReservationMapper . updateById ( reservationEntity ) ;
//查询预约下所有的订单信息
List < DistributionReservationStockarticleEntity > reservationStockarticleEntityList = distributionReservationStockarticleService . list ( Wrappers . < DistributionReservationStockarticleEntity > query ( ) . lambda ( )
. eq ( DistributionReservationStockarticleEntity : : getReservationId , distrilbutionloadingscanDTO . getReservationId ( ) ) ) ;
@ -1314,7 +1319,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
case "0" :
//订制品
v . forEach ( ord - > {
List < DistributionParcelListEntity > parcelListEntities = distributionReservationMapper . selectPackageByReservationAndStockArticle ( distrilbutionloadingscanDTO . getReservationId ( ) , ord . getStockArticleId ( ) ) ;
for ( DistributionParcelListEntity parcelListEntity : parcelListEntities ) {
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity ( ) ;
@ -5153,6 +5157,142 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return Resp . scanSuccess ( "装车成功" , str . toString ( ) ) ;
}
@Override
public R retentionScan ( DistrilbutionloadingscanDTO distrilbutionloadingscanDTO ) {
Integer retentionType = distrilbutionloadingscanDTO . getRetentionType ( ) ;
List < DistributionRetentionScanVo > retentionScanVos = new ArrayList < > ( ) ;
switch ( retentionType ) {
case 1 :
//包件--库存品 和包件
List < DistributionParcelListEntity > parcelListEntities = baseMapper . selectPackageListByDeliveryListId ( distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
// List<DisStockListDetailEntity> detailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
if ( Func . isNotEmpty ( parcelListEntities ) ) {
List < DistributionParcelListEntity > packageInfo = parcelListEntities . stream ( ) . filter ( p - > Func . isNotEmpty ( p . getOrderPackageCode ( ) ) & & p . getOrderPackageCode ( ) . equals ( distrilbutionloadingscanDTO . getBarcode ( ) ) ) . collect ( Collectors . toList ( ) ) ;
if ( packageInfo . size ( ) > 1 ) {
log . error ( "################包条码重复:{}" , distrilbutionloadingscanDTO . getBarcode ( ) ) ;
return Resp . scanFail ( "操作失败" , "操作失败" ) ;
}
if ( packageInfo . size ( ) = = 1 ) {
// DistributionRetentionScanVo distributionRetentionScanVo = new DistributionRetentionScanVo();
//此时才是满足条件的包件,能够进行滞留
//通过配送任务和包件确定预约信息
DistributionParcelListEntity parcelListEntity = packageInfo . get ( 0 ) ;
DistributionRetentionScanVo retentionPackage = baseMapper . selectRetentionPackage ( parcelListEntity . getOrderPackageCode ( ) , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
// distributionRetentionScanVo.setConditions(1);
// distributionRetentionScanVo.setOrderCode(parcelListEntity.getOrderPackageCode());
// distributionRetentionScanVo.setOrderId(parcelListEntity.getStockArticleId());
// distributionRetentionScanVo.setOrderPackageId(parcelListEntity.getId());
// distributionRetentionScanVo.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
// distributionRetentionScanVo.setReservationCode(reservationEntity.getReservationCode());
// distributionRetentionScanVo.setReservationId(reservationEntity.getId());
// distributionRetentionScanVo.setRetentionQuantity(parcelListEntity.getQuantity());
// retentionScanVos.add(distributionRetentionScanVo);
}
//
} else {
List < DisStockListDetailEntity > detailEntities = baseMapper . selectInventoryListByDeliveryListId ( distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
if ( Func . isNotEmpty ( detailEntities ) ) {
List < DisStockListDetailEntity > stockListDetailEntities = detailEntities . stream ( ) . filter ( i - > Func . isNotEmpty ( i . getStockPackageCode ( ) ) & & Func . equals ( i . getStockPackageCode ( ) , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ) . collect ( Collectors . toList ( ) ) ;
if ( stockListDetailEntities . size ( ) > 1 ) {
log . error ( "################库存品条码重复:{}" , distrilbutionloadingscanDTO . getBarcode ( ) ) ;
return Resp . scanFail ( "操作失败" , "操作失败" ) ;
}
if ( stockListDetailEntities . size ( ) = = 1 ) {
// DistributionRetentionScanVo distributionRetentionScanVo = new DistributionRetentionScanVo();
//此时才是满足条件的包件,能够进行滞留
//通过配送任务和包件确定预约信息
DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities . get ( 0 ) ;
DistributionRetentionScanVo inventoryPackage = baseMapper . selectRetentionInventoryPackage ( disStockListDetailEntity . getStockPackageCode ( ) , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
retentionScanVos . add ( inventoryPackage ) ;
}
} else {
log . error ( "################查询包件和库存品为空:{}" , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
return Resp . scanFail ( "操作失败" , "不属于该配送任务!!!" ) ;
}
}
List < DistributionRetentionScanVo > distributionRetentionScanVos = baseMapper . selectRetentionZeroPackage ( distrilbutionloadingscanDTO . getDeliveryId ( ) , distrilbutionloadingscanDTO . getBarcode ( ) ) ;
if ( Func . isNotEmpty ( distributionRetentionScanVos ) ) {
retentionScanVos . addAll ( distributionRetentionScanVos ) ;
}
break ;
case 2 :
//托盘
break ;
default :
log . info ( "################无满足滞留扫描类型" ) ;
break ;
}
// warehouseRetentionScanClient.saveRetentionScan();
if ( Func . isEmpty ( retentionScanVos ) ) {
return Resp . scanFail ( "操作失败" , "无该信息!!!" ) ;
}
return R . data ( retentionScanVos ) ;
}
@Override
public R getZeroPackageInfo ( DistrilbutionloadingscanDTO distrilbutionloadingscanDTO ) {
List < DistributionReservationStockarticleEntity > reservationStockarticleEntityList = baseMapper . selectReservationStockByDeliveryId ( distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
if ( Func . isEmpty ( reservationStockarticleEntityList ) ) {
log . error ( "#############配送任务查询订单错误,deliveryId:{}" , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
return null ;
}
List < Long > orderIds = reservationStockarticleEntityList . stream ( ) . filter ( rs - > Func . isNotEmpty ( rs . getIsZero ( ) ) & & rs . getIsZero ( ) . equals ( IsOrNoConstant . yes . getValue ( ) ) ) . map ( DistributionReservationStockarticleEntity : : getStockArticleId ) . collect ( Collectors . toList ( ) ) ;
if ( Func . isEmpty ( orderIds ) ) {
log . error ( "####################配送任务下无零担信息:{}" ) ;
return Resp . scanFail ( "查询错误" , "该任务无零担订单" ) ;
}
List < DistributionParcelNumberVO > parcelNumberVOS = new ArrayList < > ( ) ;
orderIds . forEach ( o - > {
List < DistributionParcelNumberVO > parcelNumberVOList = baseMapper . selectDeliveryZeroOrderDetail ( o , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
if ( Func . isNotEmpty ( parcelNumberVOList ) ) {
parcelNumberVOS . addAll ( parcelNumberVOList ) ;
}
} ) ;
if ( Func . isEmpty ( parcelNumberVOS ) ) {
return Resp . scanFail ( "查询失败" , "该配送任务无该零担订单" ) ;
}
return R . data ( parcelNumberVOS ) ;
}
@Override
public R getInventoryInfo ( DistrilbutionloadingscanDTO distrilbutionloadingscanDTO ) {
List < DisStockListDetailEntity > detailEntities = baseMapper . selectInventoryListByDeliveryListId ( distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
if ( Func . isEmpty ( detailEntities ) ) {
log . error ( "######################查询配送任务零担信息错误,deliveryId:{}," , distrilbutionloadingscanDTO . getDeliveryId ( ) ) ;
return null ;
}
List < DisStockListDetailEntity > stockListDetailEntities = detailEntities . stream ( ) . filter ( d - > Func . isNotEmpty ( d . getStockPackageCode ( ) ) ) . filter ( d - > d . getStockPackageCode ( ) . equals ( distrilbutionloadingscanDTO . getBarcode ( ) ) ) . collect ( Collectors . toList ( ) ) ;
List < DisStockListDetailVO > disStockListDetailVOS = DistributionDisStockListWrapper . build ( ) . listVO ( stockListDetailEntities ) ;
List < Long > inventoryIds = disStockListDetailVOS . stream ( ) . map ( DisStockListDetailVO : : getStockListId ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
DistributionStockListEntity distributionStockListEntity = distributionStockListService . listByIds ( inventoryIds ) . get ( 0 ) ;
disStockListDetailVOS . stream ( ) . forEach ( d - > { d . setMarketName ( distributionStockListEntity . getMarketName ( ) ) ; d . setCargoNumber ( distributionStockListEntity . getCargoNumber ( ) ) ; } ) ;
if ( Func . isEmpty ( stockListDetailEntities ) ) {
return Resp . scanFail ( "查询失败" , "不属于该配送任务" ) ;
}
return R . data ( stockListDetailEntities ) ;
}
@Override
public List < DistributionDeliverySelfVO > getDriverInfo ( Long deliveryId ) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper . selectById ( deliveryId ) ;
if ( Func . isEmpty ( distributionDeliveryListEntity ) ) {
log . error ( "############################# 配送任务查询为空,deliveryId为:{}" , distributionDeliveryListEntity ) ;
}
//零担订单进行装车
//这里需要进行判定是进行编辑还是进行的装车
DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfEntity ( ) ;
if ( distributionDeliveryListEntity . getKind ( ) . equals ( "1" ) ) {
distributionDeliverySelfEntity = distributionDeliverySelfMapper . selectById ( deliveryId ) ;
} else {
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper . selectTripartiteInfo ( deliveryId ) ;
BeanUtils . copyProperties ( distributionDeliveryTripartiteEntity , distributionDeliverySelfEntity ) ;
}
return null ;
}
public Map < String , String > getDriverCar ( String kind , Long deliveryListEntityId ) {
Map < String , String > map = new HashMap < > ( ) ;