@ -2505,123 +2505,49 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//查询客户
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient . getMyCurrentWarehouse ( ) ;
List < DistributionAppReservationVO > customList = distributionDeliveryInfoMapper . selectAppcustomListPage ( distributionDeliveryList . getId ( ) ) ;
// 查询所有的预约单ID
List < Long > idList = customList . stream ( )
. map ( DistributionAppReservationVO : : getId )
. collect ( Collectors . toList ( ) ) ;
List < DistributionReservationStockarticleEntity > reservationStockarticleEntityLists = distributionReservationMapper . selectStockArticleByReservationIds ( idList ) ;
for ( DistributionAppReservationVO distributionAppReservationVO : customList ) {
List < DistributionReservationStockarticleEntity > reservationStockarticleEntityList = localFindReservationStockarticleEntityLists ( reservationStockarticleEntityLists , distributionAppReservationVO . getId ( ) ) ;
log . info ( ">>>>>>>>>> reservationStockarticleEntityList ={}" , reservationStockarticleEntityList . size ( ) ) ;
List < DistributionStockEntity > distributionStockEntities = new ArrayList < > ( ) ;
List < DistributionLoadscanEntity > loadscanEntityList = new ArrayList < > ( ) ;
List < WarehouseTrayGoodsEntity > trayList = new ArrayList < > ( ) ;
List < Long > reaveIds = reservationStockarticleEntityList . stream ( )
. map ( DistributionReservationStockarticleEntity : : getReservationId )
. collect ( Collectors . toList ( ) ) ;
if ( reaveIds . isEmpty ( ) ) {
log . info ( ">>>>> reaveIds ==null 匹配的预约ID = {}" , distributionAppReservationVO . getId ( ) ) ;
continue ;
if ( distributionAppReservationVO . getReservationNum ( ) = = distributionAppReservationVO . getLoadingNub ( ) ) {
distributionAppReservationVO . setIsload ( "是" ) ;
} else {
distributionAppReservationVO . setIsload ( "否" ) ;
}
List < DistributionParcelListEntity > allParcelListEntities = distributionReservationMapper . selectPackageByReservations ( reaveIds , myCurrentWarehouse . getId ( ) ) ;
for ( DistributionReservationStockarticleEntity reservationStockarticleEntity : reservationStockarticleEntityList ) {
if ( reservationStockarticleEntity . getIsZero ( ) . equals ( IsOrNoConstant . no . getValue ( ) ) ) {
//查询订制品备货数量
List < DistributionStockEntity > packageListStockUpScan = distributionStockMapper . selectList ( Wrappers . < DistributionStockEntity > query ( ) . lambda ( ) . eq ( DistributionStockEntity : : getType , 1 ) . eq ( DistributionStockEntity : : getParcelListId , reservationStockarticleEntity . getStockArticleId ( ) ) . eq ( DistributionStockEntity : : getReservationId , reservationStockarticleEntity . getReservationId ( ) ) ) ;
if ( Func . isNotEmpty ( packageListStockUpScan ) ) {
distributionStockEntities . addAll ( packageListStockUpScan ) ;
}
//统计托盘数
//查询所有包件
// List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationStockarticleEntity.getReservationId(), reservationStockarticleEntity.getStockArticleId(), myCurrentWarehouse.getId());
List < DistributionParcelListEntity > parcelListEntities = localFindAllParcelListEntities ( allParcelListEntities , reservationStockarticleEntity . getStockArticleId ( ) ) ;
parcelListEntities . forEach ( p - > {
WarehouseTrayGoodsEntity warehouseTrayGoodsEntity = new WarehouseTrayGoodsEntity ( ) ;
warehouseTrayGoodsEntity . setAssociationId ( p . getId ( ) ) ;
warehouseTrayGoodsEntity . setAssociationValue ( p . getOrderPackageCode ( ) ) ;
warehouseTrayGoodsEntity . setAssociationType ( "3" ) ;
List < WarehouseTrayGoodsEntity > trayGoodsClientTrayList = warehouseTrayGoodsClient . getTrayList ( warehouseTrayGoodsEntity ) ;
if ( Func . isNotEmpty ( trayGoodsClientTrayList ) ) {
trayList . addAll ( trayGoodsClientTrayList ) ;
}
} ) ;
//查询订制品装车数量
List < DistributionLoadscanEntity > packageListLoadingScan = distributionLoadscanService . list ( Wrappers . < DistributionLoadscanEntity > query ( ) . lambda ( ) . eq ( DistributionLoadscanEntity : : getReservationId , reservationStockarticleEntity . getReservationId ( ) ) . eq ( DistributionLoadscanEntity : : getOrderId , reservationStockarticleEntity . getStockArticleId ( ) ) . ne ( DistributionLoadscanEntity : : getScanStatus , LoadingStatusConstant . quxiao . getValue ( ) ) ) ;
if ( Func . isNotEmpty ( packageListLoadingScan ) ) {
loadscanEntityList . addAll ( packageListLoadingScan ) ;
}
} else if ( reservationStockarticleEntity . getIsZero ( ) . equals ( IsOrNoConstant . yes . getValue ( ) ) ) {
//查询零担备货数量
List < DistributionStockEntity > zeroPackageListStockUpScan = distributionStockMapper . selectList ( Wrappers . < DistributionStockEntity > query ( ) . lambda ( ) . eq ( DistributionStockEntity : : getType , 2 ) . eq ( DistributionStockEntity : : getParcelListId , reservationStockarticleEntity . getStockArticleId ( ) ) . eq ( DistributionStockEntity : : getReservationId , reservationStockarticleEntity . getReservationId ( ) ) ) ;
if ( Func . isNotEmpty ( zeroPackageListStockUpScan ) ) {
distributionStockEntities . addAll ( zeroPackageListStockUpScan ) ;
}
//查询零担装车数量
List < DistributionLoadscanEntity > zeroPackageListLoadingScan = distributionLoadscanService . list ( Wrappers . < DistributionLoadscanEntity > query ( ) . lambda ( ) . eq ( DistributionLoadscanEntity : : getReservationId , reservationStockarticleEntity . getReservationId ( ) ) . eq ( DistributionLoadscanEntity : : getOrderId , reservationStockarticleEntity . getStockArticleId ( ) ) . ne ( DistributionLoadscanEntity : : getScanStatus , LoadingStatusConstant . quxiao . getValue ( ) ) ) ;
if ( Func . isNotEmpty ( zeroPackageListLoadingScan ) ) {
loadscanEntityList . addAll ( zeroPackageListLoadingScan ) ;
}
}
if ( distributionAppReservationVO . getReservationNum ( ) = = distributionAppReservationVO . getStockupNum ( ) ) {
distributionAppReservationVO . setIsstock ( "是" ) ;
} else {
distributionAppReservationVO . setIsstock ( "否" ) ;
}
distributionAppReservationVO . setTrayNum ( 0 ) ;
if ( Func . isNotEmpty ( trayList ) ) {
// Long count = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).count();
List < WarehouseTrayGoodsEntity > trayList = new ArrayList < > ( ) ;
//查询满足条件的托盘码
List < DistributionParcelListEntity > distributionParcelListEntities = distributionReservationMapper . selectPackageListByReservationId ( distributionAppReservationVO . getId ( ) ) ;
int trayNum = 0 ;
if ( Func . isNotEmpty ( distributionParcelListEntities ) ) {
Map < String , Object > map = new HashMap < > ( ) ;
List < Long > packageIds = distributionParcelListEntities . stream ( ) . map ( DistributionParcelListEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
map . put ( "packageIds" , packageIds ) ;
map . put ( "warehouseId" , myCurrentWarehouse . getId ( ) ) ;
List < WarehouseTrayGoodsEntity > packageTrayInfo = warehouseTrayGoodsClient . getPackageTrayInfo ( map ) ;
List < String > packageCodeList = distributionParcelListEntities . stream ( ) . map ( DistributionParcelListEntity : : getOrderPackageCode ) . collect ( Collectors . toList ( ) ) ;
// List<WarehouseTrayGoodsEntity> collect = trayList.stream().distinct().collect(Collectors.toList());
List < Long > trayIds = trayList . stream ( ) . map ( WarehouseTrayGoodsEntity : : getTrayId ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
for ( Long trayId : trayIds ) {
List < WarehouseTrayGoodsEntity > trayIdList = warehouseTrayGoodsClient . getTrayIdList ( trayId . toString ( ) , "" ) ;
//判断该托盘上的货物都存在于计划之中
boolean isLoadingTrayFlag = trayIdList . stream ( ) . map ( WarehouseTrayGoodsEntity : : getAssociationValue ) . allMatch ( t - > packageCodeList . contains ( t ) ) ;
if ( isLoadingTrayFlag ) {
trayNum + = 1 ;
if ( Func . isNotEmpty ( packageTrayInfo ) ) {
List < Long > trayIds = packageTrayInfo . stream ( ) . map ( WarehouseTrayGoodsEntity : : getTrayId ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
for ( Long trayId : trayIds ) {
List < WarehouseTrayGoodsEntity > trayIdList = warehouseTrayGoodsClient . getTrayIdList ( trayId . toString ( ) , "" ) ;
//判断该托盘上的货物都存在于计划之中
boolean isLoadingTrayFlag = trayIdList . stream ( ) . map ( WarehouseTrayGoodsEntity : : getAssociationValue ) . allMatch ( t - > packageCodeList . contains ( t ) ) ;
if ( isLoadingTrayFlag ) {
trayNum + = 1 ;
}
}
}
}
//统计满足条件的托盘
// Long aaa = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).distinct().count();
distributionAppReservationVO . setTrayNum ( trayNum ) ;
}
List < DisStockListDetailEntity > stockListDetailEntityList = distributionReservationMapper . selectInventoryListByReservation ( distributionAppReservationVO . getId ( ) ) ;
// boolean inventoryStockupStatus = stockListDetailEntityList.stream().allMatch(i -> Func.isNotEmpty(i.getStockPackageCode()));
//备货数和计划数一致时完成备货
if ( distributionStockEntities . size ( ) + stockListDetailEntityList . stream ( ) . filter ( s - > Func . isNotEmpty ( s . getStockPackageCode ( ) ) ) . count ( ) = = distributionAppReservationVO . getReservationNum ( ) ) {
distributionAppReservationVO . setIsstock ( "是" ) ;
} else {
distributionAppReservationVO . setIsstock ( "否" ) ;
}
Integer packageListScanNum = loadscanEntityList . stream ( ) . mapToInt ( DistributionLoadscanEntity : : getLoadedNub ) . sum ( ) ;
Long inventoryListScanNum = stockListDetailEntityList . stream ( ) . filter ( i - > Func . isNotEmpty ( i . getStockPackageCode ( ) ) & & i . getStockLockingStatus ( ) . equals ( InventoryLoadingStatusConstant . yizhuangche . getValue ( ) ) ) . count ( ) ;
distributionAppReservationVO . setLoadingNub ( packageListScanNum + inventoryListScanNum . intValue ( ) ) ;
if ( packageListScanNum + inventoryListScanNum = = distributionAppReservationVO . getReservationNum ( ) ) {
distributionAppReservationVO . setIsload ( "是" ) ;
} else {
distributionAppReservationVO . setIsload ( "否" ) ;
}
}
return customList ;
}