@ -14,6 +14,7 @@ import com.logpm.distribution.dto.app.StockupZeroDTO;
import com.logpm.distribution.entity.* ;
import com.logpm.distribution.mapper.* ;
import com.logpm.distribution.service.* ;
import com.logpm.distribution.vo.DistributionParcelNumberVO ;
import com.logpm.distribution.vo.DistributionStockPackageVO ;
import com.logpm.distribution.vo.DistributionStockupSelfVO ;
import com.logpm.distribution.vo.DistrilbutionBillStockVO ;
@ -83,8 +84,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
private final IDisStockListDetailService disStockListDetailService ;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient ;
private final IBasicdataWarehouseClient warehouseClient ;
private final IDistributionReservationZeroPackageService reservationZeroPackageService ;
private final IDistributionParcelNumberService distributionParcelNumberService ;
private final IDistributionReservationZeroPackageService reservationZeroPackageService ;
private final IDistributionParcelNumberService distributionParcelNumberService ;
@Override
@ -209,6 +210,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/ * *
* 修改订单备货状态
*
* @param id 订单ID
* /
@Async
@ -216,38 +218,39 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void updateStockArticleStock ( Long id ) {
log . debug ( "###查询订单备货状态" ) ;
DistributionStockArticleEntity byId = distributionStockArticleService . getById ( id ) ;
if ( byId . getStockupStatus ( ) . equals ( OrderStockupStatusConstant . daibeihuo . getValue ( ) ) ) {
if ( byId . getStockupStatus ( ) . equals ( OrderStockupStatusConstant . daibeihuo . getValue ( ) ) ) {
//
byId . setStockupStatus ( OrderStockupStatusConstant . bufenbeihuo . getValue ( ) ) ;
boolean b = distributionStockArticleService . updateById ( byId ) ;
log . debug ( "###执行结果={}" , b ) ;
} else if ( byId . getStockupStatus ( ) . equals ( "1" ) ) {
log . debug ( "###执行结果={}" , b ) ;
} else if ( byId . getStockupStatus ( ) . equals ( "1" ) ) {
List < DistributionParcelListEntity > distributionParcelListEntities = distributionParcelListMapper . selectList ( Wrappers . < DistributionParcelListEntity > query ( ) . lambda ( )
. eq ( DistributionParcelListEntity : : getStockArticleId , id )
) ;
int sum = distributionParcelListEntities . stream ( ) . filter ( i - > i . getOrderPackageStockupStatus ( ) . equals ( OrderPackageStockupStatusConstant . daibeihuo . getValue ( ) ) ) . collect ( Collectors . toList ( ) ) . stream ( ) . mapToInt ( DistributionParcelListEntity : : getQuantity ) . sum ( ) ;
if ( sum = = 0 & & byId . getStockupStatus ( ) . equals ( OrderStockupStatusConstant . bufenbeihuo . getValue ( ) ) ) {
if ( sum = = 0 & & byId . getStockupStatus ( ) . equals ( OrderStockupStatusConstant . bufenbeihuo . getValue ( ) ) ) {
byId . setStockupStatus ( OrderStockupStatusConstant . yibeihu . getValue ( ) ) ;
boolean b = distributionStockArticleService . updateById ( byId ) ;
log . debug ( "###执行结果={}" , b ) ;
log . debug ( "###执行结果={}" , b ) ;
}
}
}
/ * *
* 修改包件预约状态
*
* @param ids 订单ID
* /
@Async
@Override
public void updateParcelListReservation ( List < Long > ids ) {
log . debug ( "####修改包件预约状态" ) ;
ids . stream ( ) . forEach ( i - > {
ids . stream ( ) . forEach ( i - > {
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity ( ) ;
distributionParcelListEntity . setId ( i ) ;
distributionParcelListEntity . setOrderPackageReservationStatus ( OrderPackageReservationStatusConstant . yiyueyue . getValue ( ) ) ;
int i1 = distributionParcelListMapper . updateById ( distributionParcelListEntity ) ;
log . debug ( "####修改包件预约数量===={}" , i1 ) ;
log . debug ( "####修改包件预约数量===={}" , i1 ) ;
} ) ;
}
@ -359,7 +362,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Async
@Override
@Transactional ( isolation = Isolation . READ_UNCOMMITTED , rollbackFor = Exception . class )
public void changeMarketDeliveryListStatus ( String barcode , Long deliveryId , Long reservationId ) {
public void changeMarketDeliveryListStatus ( String barcode , Long deliveryId , Long reservationId ) {
//查询库存品
DisStockListDetailEntity loadingInventoryDetail = distributionDeliveryListMapper . getLoadingInventoryDetail ( barcode , deliveryId ) ;
@ -399,7 +402,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
log . error ( "####库存品记录错误+{" + reservationStockarticleEntityList + "}" ) ;
return ;
}
checkReservationAndDeliveryLoadingStatus ( deliveryId , reservationId ) ;
checkReservationAndDeliveryLoadingStatus ( deliveryId , reservationId ) ;
}
@Async
@ -515,12 +518,12 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if ( inventorySigningFlag & & reservationSigningFlag ) {
r . setSigningStatus ( ReservationSigningStatusConstant . yiqianshou . getValue ( ) ) ;
} else {
inventorySigningFlag = distributionReservationStocklistEntities . stream ( ) . allMatch ( i - > ! i . getSigningStatus ( ) . equals ( ReservationInventorySigningStatusConstant . yiqianshou . getValue ( ) ) ) ;
reservationSigningFlag = parcelListEntities . stream ( ) . allMatch ( p - > ! p . getOrderPackageStatus ( ) . equals ( OrderPackageStatusConstant . yiqianshou . getValue ( ) ) ) ;
if ( inventorySigningFlag & & reservationSigningFlag ) {
inventorySigningFlag = distributionReservationStocklistEntities . stream ( ) . allMatch ( i - > ! i . getSigningStatus ( ) . equals ( ReservationInventorySigningStatusConstant . yiqianshou . getValue ( ) ) ) ;
reservationSigningFlag = parcelListEntities . stream ( ) . allMatch ( p - > ! p . getOrderPackageStatus ( ) . equals ( OrderPackageStatusConstant . yiqianshou . getValue ( ) ) ) ;
if ( inventorySigningFlag & & reservationSigningFlag ) {
r . setSigningStatus ( ReservationSigningStatusConstant . daiqianshou . getValue ( ) ) ;
} else {
} else {
r . setSigningStatus ( ReservationSigningStatusConstant . bufenqianshou . getValue ( ) ) ;
}
}
@ -562,24 +565,24 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//查询一个配送任务下的所有客户
List < DistributionReservationEntity > reservationEntityList = distributionDeliveryListMapper . selectReservationByDeliveryListId ( deliveryId ) ;
boolean loadingStatusFlag = reservationEntityList . stream ( ) . allMatch ( r - > r . getLoadingStatus ( ) . equals ( ReservationLoadingStatusConstant . yizhuangche . getValue ( ) ) ) ;
if ( loadingStatusFlag ) {
if ( loadingStatusFlag ) {
deliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
} else {
} else {
loadingStatusFlag = reservationEntityList . stream ( ) . allMatch ( r - > r . getLoadingStatus ( ) . equals ( ReservationLoadingStatusConstant . daizhuangche . getValue ( ) ) ) ;
if ( loadingStatusFlag ) {
if ( loadingStatusFlag ) {
deliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . weizhuangche . getValue ( ) ) ;
} else {
} else {
deliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . bunfenzhuangche . getValue ( ) ) ;
}
}
boolean signingStatusFlag = reservationEntityList . stream ( ) . allMatch ( r - > r . getSigningStatus ( ) . equals ( ReservationSigningStatusConstant . yiqianshou . getValue ( ) ) ) ;
if ( signingStatusFlag ) {
if ( signingStatusFlag ) {
deliveryListEntity . setDeliveryStatus ( DeliveryStatusConstant . yiwancheng . getValue ( ) ) ;
} else {
} else {
loadingStatusFlag = reservationEntityList . stream ( ) . allMatch ( r - > r . getLoadingStatus ( ) . equals ( ReservationSigningStatusConstant . daiqianshou . getValue ( ) ) ) ;
if ( loadingStatusFlag ) {
if ( loadingStatusFlag ) {
deliveryListEntity . setDeliveryStatus ( DeliveryStatusConstant . daipeisong . getValue ( ) ) ;
} else {
} else {
deliveryListEntity . setDeliveryStatus ( DeliveryStatusConstant . peisongzhong . getValue ( ) ) ;
}
}
@ -589,14 +592,15 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/ * *
* 判断包件是否该下架
*
* @param stockupDTO
* /
@Async
@Override
public void stockupSelfOffShelf ( StockupDTO stockupDTO ) throws InterruptedException {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient . getMyCurrentWarehouse ( ) ;
if ( Objects . isNull ( myCurrentWarehouse ) ) {
throw new CustomerException ( 403 , "仓库信息不能为空" ) ;
if ( Objects . isNull ( myCurrentWarehouse ) ) {
throw new CustomerException ( 403 , "仓库信息不能为空" ) ;
}
//判断类型
@ -613,7 +617,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//有
List < DistributionStockupSelfVO > collectY = distributionStockupSelfVO . stream ( ) . filter ( o - > ObjectUtils . isNotNull ( o . getAllocationId ( ) ) ) . collect ( Collectors . toList ( ) ) ;
collectY . stream ( ) . collect ( Collectors . groupingBy ( DistributionStockupSelfVO : : getAllocationId ) )
. forEach ( ( k , v ) - > {
. forEach ( ( k , v ) - > {
List < String > list = new ArrayList < > ( ) ;
AtomicInteger a = new AtomicInteger ( ) ;
AtomicInteger b = new AtomicInteger ( ) ;
@ -629,11 +633,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if ( a . get ( ) = = b . get ( ) ) {
//下架
list . forEach ( i - > {
warehouseUpdownTypeClient . downPackage ( i , myCurrentWarehouse . getId ( ) ) ;
warehouseUpdownTypeClient . downPackage ( i , myCurrentWarehouse . getId ( ) ) ;
} ) ;
}
} ) ;
} ) ;
//没有
/ * List < DistributionStockupSelfVO > collectW = distributionStockupSelfVO . stream ( ) . filter ( o - > ObjectUtils . isNull ( o . getAllocationId ( ) ) ) . collect ( Collectors . toList ( ) ) ;
@ -660,21 +664,21 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional
public void checkLoadingByPackage ( DistributionParcelListEntity parcelListEntity , Long deliveryId , Long reservationId ) {
if ( Func . isEmpty ( parcelListEntity ) ) {
log . error ( "############包件信息异常:{}" , parcelListEntity ) ;
public void checkLoadingByPackage ( DistributionParcelListEntity parcelListEntity , Long deliveryId , Long reservationId ) {
if ( Func . isEmpty ( parcelListEntity ) ) {
log . error ( "############包件信息异常:{}" , parcelListEntity ) ;
throw new RuntimeException ( "包件信息异常" ) ;
}
//维护包件所属订单是否均已完成装车,如果均已完成装车则订单进行装车状态的修改
if ( parcelListEntity . getConditions ( ) ! = 2 ) {
if ( parcelListEntity . getConditions ( ) ! = 2 ) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( parcelListEntity . getStockArticleId ( ) ) ;
//查询出该订单的装车件数
Integer orderLoadingNum = distributionLoadscanMapper . selectOrderLoadingNum ( stockArticleEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( orderLoadingNum ) & & orderLoadingNum > 0 ) {
if ( Func . isNotEmpty ( orderLoadingNum ) & & orderLoadingNum > 0 ) {
//存在装车数量,需要对装车数量进行判定
if ( orderLoadingNum = = stockArticleEntity . getTotalNumber ( ) ) {
if ( orderLoadingNum = = stockArticleEntity . getTotalNumber ( ) ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . chuku . getValue ( ) ) ;
} else {
} else {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . bufenchuku . getValue ( ) ) ;
}
distributionStockArticleService . updateById ( stockArticleEntity ) ;
@ -689,34 +693,34 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//判断客户是否完成装车
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper . selectById ( reservationId ) ;
int reservationPackageTotal = distributionReservationEntity . getReservationNum ( ) + distributionReservationEntity . getReservationStockListNum ( ) ;
if ( reservationPackageTotal ! = 0 ) {
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper . selectReservationLoadingNum ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( reservationLoadingNum ) ) {
int reservationLoadingQuantity = reservationLoadingNum . getPackageLoadingQuantity ( ) + reservationLoadingNum . getInventoryLoadingQuantity ( ) ;
if ( reservationLoadingQuantity = = reservationPackageTotal ) {
if ( reservationPackageTotal ! = 0 ) {
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper . selectReservationLoadingNum ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( reservationLoadingNum ) ) {
int reservationLoadingQuantity = reservationLoadingNum . getPackageLoadingQuantity ( ) + reservationLoadingNum . getInventoryLoadingQuantity ( ) ;
if ( reservationLoadingQuantity = = reservationPackageTotal ) {
distributionReservationEntity . setLoadingStatus ( ReservationLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
} else {
} else {
distributionReservationEntity . setLoadingStatus ( ReservationLoadingStatusConstant . bufenzhuangche . getValue ( ) ) ;
}
distributionReservationMapper . updateById ( distributionReservationEntity ) ;
}
} else {
} else {
log . error ( "##########查询客户配送数量为0" ) ;
}
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper . selectById ( deliveryId ) ;
int deliveryPackageTotal = distributionDeliveryListEntity . getDeliveryNumber ( ) ;
if ( deliveryPackageTotal ! = 0 ) {
if ( deliveryPackageTotal ! = 0 ) {
DistributionLoadingNumDTO deliveryLoadingNum = distributionDeliveryListMapper . selectDeliveryLoadingNum ( distributionDeliveryListEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( deliveryLoadingNum ) ) {
int deliveryLoadingQuantity = deliveryLoadingNum . getPackageLoadingQuantity ( ) + deliveryLoadingNum . getInventoryLoadingQuantity ( ) ;
if ( deliveryPackageTotal = = deliveryLoadingQuantity ) {
if ( Func . isNotEmpty ( deliveryLoadingNum ) ) {
int deliveryLoadingQuantity = deliveryLoadingNum . getPackageLoadingQuantity ( ) + deliveryLoadingNum . getInventoryLoadingQuantity ( ) ;
if ( deliveryPackageTotal = = deliveryLoadingQuantity ) {
distributionDeliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
} else {
} else {
distributionDeliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . bunfenzhuangche . getValue ( ) ) ;
}
distributionDeliveryListMapper . updateById ( distributionDeliveryListEntity ) ;
}
} else {
} else {
log . error ( "##########查询客户配送数量为0" ) ;
}
}
@ -798,62 +802,61 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// }
// }
@Override
public void checkLoadingByDelivery ( Long deliveryId ) {
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper . selectById ( deliveryId ) ;
if ( Func . isNotEmpty ( deliveryListEntity ) ) {
if ( Func . isNotEmpty ( deliveryListEntity ) ) {
List < DistributionParcelListEntity > deliveryParcelListEntities = distributionDeliveryListMapper . selectPackageListByDeliveryListId ( deliveryId ) ;
boolean deliveryLoadingFlag = deliveryParcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ) ;
if ( deliveryLoadingFlag ) {
boolean deliveryLoadingFlag = deliveryParcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ) ;
if ( deliveryLoadingFlag ) {
deliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
} else {
deliveryLoadingFlag = deliveryParcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . weizhuancghe . getValue ( ) ) ) ;
if ( deliveryLoadingFlag ) {
} else {
deliveryLoadingFlag = deliveryParcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . weizhuancghe . getValue ( ) ) ) ;
if ( deliveryLoadingFlag ) {
deliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . weizhuangche . getValue ( ) ) ;
} else {
} else {
deliveryListEntity . setDeliveryListLoadingStatus ( DeliveryLoadingStatusConstant . bunfenzhuangche . getValue ( ) ) ;
}
}
distributionDeliveryListMapper . updateById ( deliveryListEntity ) ;
}
List < DistributionReservationEntity > reservationEntityList = distributionDeliveryListMapper . selectReservationByDeliveryListId ( deliveryId ) ;
if ( Func . isNotEmpty ( reservationEntityList ) & & reservationEntityList . size ( ) > 0 ) {
if ( Func . isNotEmpty ( reservationEntityList ) & & reservationEntityList . size ( ) > 0 ) {
for ( DistributionReservationEntity reservationEntity : reservationEntityList ) {
List < DistributionParcelListEntity > parcelListEntities = distributionReservationMapper . selectPackageListByReservationId ( reservationEntity . getId ( ) ) ;
Map < Long , List < DistributionParcelListEntity > > order = parcelListEntities . stream ( ) . collect ( Collectors . groupingBy ( DistributionParcelListEntity : : getStockArticleId ) ) ;
order . forEach ( ( k , v ) - > {
order . forEach ( ( k , v ) - > {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( k ) ;
List < DistributionParcelListEntity > stockArticlePackageList = distributionParcelListService . list ( Wrappers . < DistributionParcelListEntity > query ( ) . lambda ( ) . eq ( DistributionParcelListEntity : : getStockArticleId , k ) ) ;
if ( stockArticlePackageList . size ( ) = = v . size ( ) ) {
if ( stockArticlePackageList . size ( ) = = v . size ( ) ) {
boolean orderLoadingFlag = v . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ) ;
if ( orderLoadingFlag ) {
if ( orderLoadingFlag ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . chuku . getValue ( ) ) ;
} else {
} else {
orderLoadingFlag = v . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . weizhuancghe . getValue ( ) ) ) ;
if ( ! orderLoadingFlag ) {
if ( ! orderLoadingFlag ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . bufenchuku . getValue ( ) ) ;
}
}
} else {
} else {
boolean orderbufenLoadingFlag = v . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ) ;
if ( orderbufenLoadingFlag ) {
if ( orderbufenLoadingFlag ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . bufenchuku . getValue ( ) ) ;
}
}
distributionStockArticleService . updateById ( stockArticleEntity ) ;
} ) ;
boolean reservationLoadingFlag = parcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ) ;
if ( reservationLoadingFlag ) {
if ( reservationLoadingFlag ) {
reservationEntity . setLoadingStatus ( ReservationLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
} else {
reservationLoadingFlag = parcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . weizhuancghe . getValue ( ) ) ) ;
if ( reservationLoadingFlag ) {
} else {
reservationLoadingFlag = parcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageLoadingStatus ( ) . equals ( OrderPackageLoadingStatusConstant . weizhuancghe . getValue ( ) ) ) ;
if ( reservationLoadingFlag ) {
reservationEntity . setLoadingStatus ( ReservationLoadingStatusConstant . daizhuangche . getValue ( ) ) ;
} else {
} else {
reservationEntity . setLoadingStatus ( ReservationLoadingStatusConstant . bufenzhuangche . getValue ( ) ) ;
}
}
@ -868,13 +871,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
DistributionParcelListEntity parcelListEntity = distributionParcelListService . getById ( packageId ) ;
parcelListEntity . setOrderPackageLoadingStatus ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
distributionParcelListService . updateById ( parcelListEntity ) ;
if ( Func . isNotEmpty ( parcelListEntity ) ) {
if ( Func . isNotEmpty ( parcelListEntity ) ) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( parcelListEntity . getStockArticleId ( ) ) ;
Integer orderLoadingNum = distributionLoadscanMapper . selectOrderLoadingNum ( stockArticleEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( orderLoadingNum ) & & orderLoadingNum > 0 ) {
if ( stockArticleEntity . getTotalNumber ( ) = = orderLoadingNum ) {
if ( Func . isNotEmpty ( orderLoadingNum ) & & orderLoadingNum > 0 ) {
if ( stockArticleEntity . getTotalNumber ( ) = = orderLoadingNum ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . chuku . getValue ( ) ) ;
} else {
} else {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . bufenchuku . getValue ( ) ) ;
}
distributionStockArticleService . updateById ( stockArticleEntity ) ;
@ -888,13 +891,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
. eq ( DistributionParcelListEntity : : getStockArticleId , parcelListEntity . getStockArticleId ( ) ) ) ;
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( parcelListEntity . getStockArticleId ( ) ) ;
boolean flag = parcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageReservationStatus ( ) . equals ( OrderPackageReservationStatusConstant . yiyueyue . getValue ( ) ) ) ;
if ( flag ) {
if ( flag ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . yiyueyue . getValue ( ) ) ;
} else {
flag = parcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageReservationStatus ( ) . equals ( OrderPackageReservationStatusConstant . daiyuyue . getValue ( ) ) ) ;
if ( flag ) {
} else {
flag = parcelListEntities . stream ( ) . allMatch ( p - > p . getOrderPackageReservationStatus ( ) . equals ( OrderPackageReservationStatusConstant . daiyuyue . getValue ( ) ) ) ;
if ( flag ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . daiyuyue . getValue ( ) ) ;
} else {
} else {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . bufenyuyue . getValue ( ) ) ;
}
@ -912,40 +915,39 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
} catch ( InterruptedException e ) {
throw new RuntimeException ( e ) ;
}
log . debug ( "修改备货数据》》》" , stockupDTO ) ;
log . debug ( "修改备货数据》》》" , stockupDTO ) ;
QueryWrapper < DistributionReservationZeroPackageEntity > queryWrapper = new QueryWrapper ( ) ;
if ( ObjectUtils . isNotNull ( stockupDTO . getStockArticleId ( ) ) ) {
queryWrapper . eq ( "stock_article_id" , stockupDTO . getStockArticleId ( ) ) ;
if ( ObjectUtils . isNotNull ( stockupDTO . getStockArticleId ( ) ) ) {
queryWrapper . eq ( "stock_article_id" , stockupDTO . getStockArticleId ( ) ) ;
}
if ( stockupDTO . getStockArticleIdList ( ) ! = null & & ! stockupDTO . getStockArticleIdList ( ) . equals ( null ) ) {
queryWrapper . in ( "stock_article_id" , stockupDTO . getStockArticleIdList ( ) ) ;
if ( stockupDTO . getStockArticleIdList ( ) ! = null & & ! stockupDTO . getStockArticleIdList ( ) . equals ( null ) ) {
queryWrapper . in ( "stock_article_id" , stockupDTO . getStockArticleIdList ( ) ) ;
}
queryWrapper . eq ( "reservation_id" , stockupDTO . getReservationId ( ) ) ;
queryWrapper . eq ( "reservation_id" , stockupDTO . getReservationId ( ) ) ;
List < DistributionReservationZeroPackageEntity > list = reservationZeroPackageService . list ( queryWrapper ) ;
AtomicBoolean pian = new AtomicBoolean ( true ) ;
DistributionStockupEntity stockupEntity = new DistributionStockupEntity ( ) ;
list . stream ( ) . forEach ( i - > {
if ( ! i . getQuantity ( ) . equals ( i . getRealityQuantity ( ) ) ) {
if ( ! i . getQuantity ( ) . equals ( i . getRealityQuantity ( ) ) ) {
//不同 不能修改为完成
pian . set ( false ) ;
}
} ) ;
if ( pian . get ( ) ) {
if ( pian . get ( ) ) {
AtomicReference < Boolean > s = new AtomicReference < > ( false ) ;
if ( stockupDTO . getTypeService ( ) . equals ( "3" ) ) {
if ( stockupDTO . getTypeService ( ) . equals ( "3" ) ) {
//自提
//查询有没有不是零担的订单
List < DistributionStockPackageVO > distributionStockPackageVOS = distrilbutionBillStockService . listPackageSelf ( stockupDTO . getReservationId ( ) ) ;
if ( ! distributionStockPackageVOS . isEmpty ( ) ) {
if ( ! distributionStockPackageVOS . isEmpty ( ) ) {
distributionStockPackageVOS . forEach ( i - > {
if ( getDoneStockUp ( i . getStockArticleId ( ) , i . getParcelListId ( ) , stockupDTO . getReservationId ( ) , stockupDTO . getTypeService ( ) ) ) {
distributionStockPackageVOS . forEach ( i - > {
if ( getDoneStockUp ( i . getStockArticleId ( ) , i . getParcelListId ( ) , stockupDTO . getReservationId ( ) , stockupDTO . getTypeService ( ) ) ) {
//没有扫
s . set ( true ) ;
}
} ) ;
} else {
} else {
//查询有没有库存品
@ -953,50 +955,50 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
. eq ( DistributionDeliveryDetailsEntity : : getBillLadingId , stockupDTO . getReservationId ( ) )
. in ( DistributionDeliveryDetailsEntity : : getInventoryStatus , "1" , "3" )
) ;
if ( ! distributionDeliveryDetailsEntities . isEmpty ( ) ) {
if ( ! distributionDeliveryDetailsEntities . isEmpty ( ) ) {
int sum = distributionDeliveryDetailsEntities . stream ( ) . mapToInt ( DistributionDeliveryDetailsEntity : : getQuantity ) . sum ( ) ; //全部的库存数量
distributionDeliveryDetailsEntities . forEach ( d - > {
if ( ! getDoneStockUpStock ( d . getStockListId ( ) , stockupDTO . getReservationId ( ) , stockupDTO . getTypeService ( ) , stockupDTO . getStockupId ( ) , sum ) ) {
distributionDeliveryDetailsEntities . forEach ( d - > {
if ( ! getDoneStockUpStock ( d . getStockListId ( ) , stockupDTO . getReservationId ( ) , stockupDTO . getTypeService ( ) , stockupDTO . getStockupId ( ) , sum ) ) {
s . set ( true ) ;
}
} ) ;
}
if ( s . get ( ) ) {
if ( s . get ( ) ) {
stockupEntity . setStockupStatus ( StockupStatusConstant . beihuozhong . getValue ( ) ) ;
} else {
} else {
stockupEntity . setStockupStatus ( StockupStatusConstant . yibeihuo . getValue ( ) ) ;
stockupEntity . setFixTime ( new Date ( ) ) ;
}
}
} else {
} else {
//商,市
//查询数据
List < DistributionStockupInfoEntity > distributionStockupInfoEntities = distributionStockupInfoMapper . selectList ( Wrappers . < DistributionStockupInfoEntity > query ( ) . lambda ( )
. eq ( DistributionStockupInfoEntity : : getStockupId , stockupDTO . getStockupId ( ) )
) ;
distributionStockupInfoEntities . forEach ( v - > {
distributionStockupInfoEntities . forEach ( v - > {
//查询包件数据
List < DistributionReservationPackageEntity > packageEntities = distributionReservationPackageMapper . selectList ( Wrappers . < DistributionReservationPackageEntity > query ( ) . lambda ( )
. eq ( DistributionReservationPackageEntity : : getReservationId , v . getReservationId ( ) )
. eq ( DistributionReservationPackageEntity : : getPacketBarStatus , '1' )
) ;
packageEntities . forEach ( i - > {
if ( getDoneStockUp ( i . getStockArticleId ( ) , i . getParceListId ( ) , v . getReservationId ( ) , stockupDTO . getTypeService ( ) ) ) {
packageEntities . forEach ( i - > {
if ( getDoneStockUp ( i . getStockArticleId ( ) , i . getParceListId ( ) , v . getReservationId ( ) , stockupDTO . getTypeService ( ) ) ) {
//没有扫
s . set ( true ) ;
}
} ) ;
} ) ;
if ( ! s . get ( ) ) {
if ( ! s . get ( ) ) {
//查询有没有库存品
List < DistributionReservationStocklistEntity > distributionReservationStocklistEntities = distributionReservationStocklistMapper . selectList ( Wrappers . < DistributionReservationStocklistEntity > query ( ) . lambda ( )
. eq ( DistributionReservationStocklistEntity : : getReservationId , stockupDTO . getReservationId ( ) )
. in ( DistributionReservationStocklistEntity : : getStockListStatus , "1" , "3" )
) ;
if ( ! distributionReservationStocklistEntities . isEmpty ( ) ) {
if ( ! distributionReservationStocklistEntities . isEmpty ( ) ) {
int sum = distributionReservationStocklistEntities . stream ( ) . mapToInt ( DistributionReservationStocklistEntity : : getRealityNum ) . sum ( ) ; //全部的库存数量
distributionReservationStocklistEntities . forEach ( d - > {
if ( ! getDoneStockUpStock ( d . getStocklistId ( ) , stockupDTO . getReservationId ( ) , stockupDTO . getTypeService ( ) , stockupDTO . getStockupId ( ) , sum ) ) {
distributionReservationStocklistEntities . forEach ( d - > {
if ( ! getDoneStockUpStock ( d . getStocklistId ( ) , stockupDTO . getReservationId ( ) , stockupDTO . getTypeService ( ) , stockupDTO . getStockupId ( ) , sum ) ) {
s . set ( true ) ;
}
} ) ;
@ -1005,14 +1007,14 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
stockupEntity . setFixTime ( new Date ( ) ) ;
}
}
if ( s . get ( ) ) {
if ( s . get ( ) ) {
stockupEntity . setStockupStatus ( StockupStatusConstant . beihuozhong . getValue ( ) ) ;
} else {
} else {
stockupEntity . setStockupStatus ( StockupStatusConstant . yibeihuo . getValue ( ) ) ;
stockupEntity . setFixTime ( new Date ( ) ) ;
}
} else {
} else {
stockupEntity . setStockupStatus ( StockupStatusConstant . beihuozhong . getValue ( ) ) ;
}
stockupEntity . setId ( stockupDTO . getStockupId ( ) ) ;
@ -1025,10 +1027,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
DistributionParcelListEntity parcelListEntity = distributionParcelListService . getById ( parcelNumberEntity . getParcelListId ( ) ) ;
//计算该品类的使用数量,这里数量被使用就一定会进行预约
int a = parcelNumber . getDeliveryQuantity ( ) + parcelNumber . getOutboundQuantity ( ) ;
if ( a = = 0 ) {
if ( a = = 0 ) {
parcelListEntity . setOrderPackageReservationStatus ( OrderPackageReservationStatusConstant . daiyuyue . getValue ( ) ) ;
} else {
if ( a = = parcelNumberEntity . getHandQuantity ( ) ) {
} else {
if ( a = = parcelNumberEntity . getHandQuantity ( ) ) {
parcelListEntity . setOrderPackageReservationStatus ( OrderPackageReservationStatusConstant . yiyueyue . getValue ( ) ) ;
}
}
@ -1036,17 +1038,17 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( parcelListEntity . getStockArticleId ( ) ) ;
List < DistributionParcelListEntity > parcelListEntityList = distributionParcelListService . list ( Wrappers . < DistributionParcelListEntity > query ( ) . lambda ( ) . eq ( DistributionParcelListEntity : : getStockArticleId , stockArticleEntity . getId ( ) ) ) ;
boolean flag = parcelListEntityList . stream ( ) . allMatch ( p - > Func . equals ( p . getOrderPackageReservationStatus ( ) , OrderPackageReservationStatusConstant . yiyueyue . getValue ( ) ) ) ;
if ( flag ) {
if ( flag ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . yiyueyue . getValue ( ) ) ;
} else {
} else {
List < DistributionParcelNumberEntity > parcelNumberEntityList = distributionParcelNumberService . list ( Wrappers . < DistributionParcelNumberEntity > query ( ) . lambda ( ) . eq ( DistributionParcelNumberEntity : : getStockArticleId , stockArticleEntity . getId ( ) ) ) ;
AtomicInteger atomicInteger = new AtomicInteger ( ) ;
parcelNumberEntityList . forEach ( p - > {
parcelNumberEntityList . forEach ( p - > {
atomicInteger . getAndAdd ( p . getDeliveryQuantity ( ) + p . getOutboundQuantity ( ) ) ;
} ) ;
if ( stockArticleEntity . getHandQuantity ( ) > atomicInteger . get ( ) ) {
if ( stockArticleEntity . getHandQuantity ( ) > atomicInteger . get ( ) ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . bufenyuyue . getValue ( ) ) ;
} else if ( stockArticleEntity . getHandQuantity ( ) = = atomicInteger . get ( ) ) {
} else if ( stockArticleEntity . getHandQuantity ( ) = = atomicInteger . get ( ) ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . yiyueyue . getValue ( ) ) ;
}
}
@ -1055,67 +1057,67 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional
public void checkZeroStockArticleLoadingStatus ( DistributionParcelNumberEntity parcelNumberEntity , Long deliveryId , Long reservationId ) {
if ( Func . isEmpty ( parcelNumberEntity ) ) {
log . error ( "#################parcelNumberEntity参数错误:{}" , parcelNumberEntity ) ;
public void checkZeroStockArticleLoadingStatus ( DistributionParcelNumberEntity parcelNumberEntity , Long deliveryId , Long reservationId ) {
if ( Func . isEmpty ( parcelNumberEntity ) ) {
log . error ( "#################parcelNumberEntity参数错误:{}" , parcelNumberEntity ) ;
return ;
}
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( parcelNumberEntity . getStockArticleId ( ) ) ;
if ( Func . equals ( stockArticleEntity . getIsZero ( ) , IsOrNoConstant . no . getValue ( ) ) ) {
log . error ( "#################查询订单异常,订单ID为:{}" , parcelNumberEntity . getStockArticleId ( ) ) ;
if ( Func . equals ( stockArticleEntity . getIsZero ( ) , IsOrNoConstant . no . getValue ( ) ) ) {
log . error ( "#################查询订单异常,订单ID为:{}" , parcelNumberEntity . getStockArticleId ( ) ) ;
return ;
}
List < DistributionParcelNumberEntity > parcelNumberEntities = distributionParcelNumberService . list ( Wrappers . < DistributionParcelNumberEntity > query ( ) . lambda ( )
. eq ( DistributionParcelNumberEntity : : getStockArticleId , stockArticleEntity . getId ( ) ) ) ;
if ( Func . isEmpty ( parcelNumberEntities ) ) {
log . error ( "#################查询零担订单包件品类异常,订单ID为:{}" , stockArticleEntity . getId ( ) ) ;
if ( Func . isEmpty ( parcelNumberEntities ) ) {
log . error ( "#################查询零担订单包件品类异常,订单ID为:{}" , stockArticleEntity . getId ( ) ) ;
return ;
}
parcelNumberEntities . forEach ( p - > {
parcelNumberEntities . forEach ( p - > {
DistributionParcelListEntity parcelListEntity = distributionParcelListService . getById ( p . getParcelListId ( ) ) ;
if ( p . getOutboundQuantity ( ) = = p . getQuantity ( ) ) {
if ( p . getOutboundQuantity ( ) = = p . getQuantity ( ) ) {
parcelListEntity . setOrderPackageLoadingStatus ( OrderPackageLoadingStatusConstant . yizhuangche . getValue ( ) ) ;
} else {
} else {
parcelListEntity . setOrderPackageLoadingStatus ( OrderPackageLoadingStatusConstant . weizhuancghe . getValue ( ) ) ;
}
distributionParcelListService . updateById ( parcelListEntity ) ;
} ) ;
List < DistributionParcelListEntity > parcelListEntityList = distributionParcelListService . list ( Wrappers . < DistributionParcelListEntity > query ( ) . lambda ( )
. eq ( DistributionParcelListEntity : : getStockArticleId , stockArticleEntity . getId ( ) ) ) ;
if ( Func . isEmpty ( parcelListEntityList ) ) {
log . error ( "#################查询零担订单包件异常,订单ID为:{}" , stockArticleEntity . getId ( ) ) ;
if ( Func . isEmpty ( parcelListEntityList ) ) {
log . error ( "#################查询零担订单包件异常,订单ID为:{}" , stockArticleEntity . getId ( ) ) ;
return ;
}
int outboundQuantity = parcelNumberEntities . stream ( ) . mapToInt ( DistributionParcelNumberEntity : : getOutboundQuantity ) . sum ( ) ;
if ( outboundQuantity > 0 & & outboundQuantity < stockArticleEntity . getTotalNumber ( ) ) {
if ( outboundQuantity > 0 & & outboundQuantity < stockArticleEntity . getTotalNumber ( ) ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . bufenchuku . getValue ( ) ) ;
stockArticleEntity . setDeliveryQuantity ( stockArticleEntity . getDeliveryQuantity ( ) + outboundQuantity ) ;
}
if ( stockArticleEntity . getTotalNumber ( ) = = outboundQuantity ) {
if ( stockArticleEntity . getTotalNumber ( ) = = outboundQuantity ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . chuku . getValue ( ) ) ;
stockArticleEntity . setDeliveryQuantity ( stockArticleEntity . getDeliveryQuantity ( ) + outboundQuantity ) ;
}
distributionStockArticleService . updateById ( stockArticleEntity ) ;
//维护预约客户和配送任务装车状态
checkReservationAndDeliveryLoadingStatus ( deliveryId , reservationId ) ;
checkReservationAndDeliveryLoadingStatus ( deliveryId , reservationId ) ;
}
@Override
public void checkSignStatus ( Long packageId , Long reservationId , Long deliveryId ) {
if ( Func . isNotEmpty ( packageId ) ) {
if ( Func . isNotEmpty ( packageId ) ) {
DistributionParcelListEntity parcelListEntity = distributionParcelListService . getById ( packageId ) ;
//维护包件所属订单签收状态
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService . getById ( parcelListEntity . getStockArticleId ( ) ) ;
//维护该订单的签收状态
if ( Func . isNotEmpty ( stockArticleEntity ) ) {
if ( Func . isNotEmpty ( stockArticleEntity ) ) {
Integer totalNumber = stockArticleEntity . getTotalNumber ( ) ;
Integer orderSignNum = distributionLoadscanMapper . selectOrderSignNum ( stockArticleEntity . getId ( ) ) ;
Integer orderLoadingNum = distributionLoadscanMapper . selectOrderLoadingNum ( stockArticleEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( orderSignNum ) & & orderSignNum > 0 ) {
if ( totalNumber = = orderSignNum ) {
if ( Func . isNotEmpty ( orderSignNum ) & & orderSignNum > 0 ) {
if ( totalNumber = = orderSignNum ) {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . qianshou . getValue ( ) ) ;
} else {
} else {
stockArticleEntity . setOrderStatus ( OrderStatusConstant . bufenqianshou . getValue ( ) ) ;
}
}
@ -1124,27 +1126,121 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
checkReservationAndDeliveryLoadingStatus ( deliveryId , reservationId ) ;
checkReservationAndDeliveryLoadingStatus ( deliveryId , reservationId ) ;
checkReservationAndDeliverySigningStatus ( reservationId , deliveryId ) ;
//注意:这里对于异常装车的包件也需要进行统计
}
@Override
public void checkRetentionReservationAndDeliveryInfo ( Long reservationId , Long deliveryId ) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper . selectById ( reservationId ) ;
if ( Func . isNotEmpty ( distributionReservationEntity ) ) {
//重新统计预约单包件数量
List < DistributionReservationStockarticleEntity > distributionReservationStockarticleEntities = distributionReservationMapper . selectStockArticleByReservationId ( reservationId ) ;
if ( Func . isNotEmpty ( distributionReservationStockarticleEntities ) ) {
for ( DistributionReservationStockarticleEntity distributionReservationStockarticleEntity : distributionReservationStockarticleEntities ) {
if ( distributionReservationStockarticleEntity . getIsZero ( ) . equals ( IsOrNoConstant . no . getValue ( ) ) ) {
List < DistributionParcelListEntity > distributionParcelListEntities = distributionReservationMapper . selectPackageByReservationAndStockArticle ( reservationId , distributionReservationStockarticleEntity . getStockArticleId ( ) ) ;
if ( Func . isNotEmpty ( distributionParcelListEntities ) ) {
if ( distributionParcelListEntities . size ( ) ! = distributionReservationStockarticleEntity . getReservationNum ( ) ) {
distributionReservationStockarticleEntity . setReservationNum ( distributionParcelListEntities . size ( ) ) ;
distributionReservationStockarticleMapper . updateById ( distributionReservationStockarticleEntity ) ;
}
} else {
distributionReservationStockarticleEntity . setReservationNum ( 0 ) ;
distributionReservationStockarticleEntity . setStockArticleStatus ( ReservationOrderStatusConstant . quxiao . getValue ( ) ) ;
distributionReservationStockarticleMapper . updateById ( distributionReservationStockarticleEntity ) ;
}
} else if ( distributionReservationStockarticleEntity . getIsZero ( ) . equals ( IsOrNoConstant . yes . getValue ( ) ) ) {
//零担需要判断
List < DistributionParcelNumberVO > distributionParcelNumberVOS = distributionReservationMapper . selectReservationZeroOrderDetail ( distributionReservationStockarticleEntity . getStockArticleId ( ) , distributionReservationStockarticleEntity . getReservationId ( ) ) ;
if ( Func . isNotEmpty ( distributionParcelNumberVOS ) ) {
int sum = distributionParcelNumberVOS . stream ( ) . mapToInt ( DistributionParcelNumberVO : : getReservationNum ) . sum ( ) ;
if ( distributionReservationStockarticleEntity . getReservationNum ( ) ! = sum ) {
distributionReservationStockarticleEntity . setReservationNum ( sum ) ;
if ( sum = = 0 ) {
distributionReservationStockarticleEntity . setStockArticleStatus ( ReservationOrderStatusConstant . quxiao . getValue ( ) ) ;
}
distributionReservationStockarticleMapper . updateById ( distributionReservationStockarticleEntity ) ;
}
}
}
}
}
//维护预约的预约数量
maintenanceReservationPackageNum ( reservationId ) ;
maintenanceDeliveryPackageNum ( deliveryId ) ;
}
}
/ * *
* 维护配送数量和状态
* @param deliveryId
* /
@Transactional
private void maintenanceDeliveryPackageNum ( Long deliveryId ) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper . selectById ( deliveryId ) ;
if ( Func . isNotEmpty ( distributionDeliveryListEntity ) ) {
List < DistributionReservationEntity > distributionReservationEntities = distributionDeliveryListMapper . selectReservationByDeliveryListId ( distributionDeliveryListEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( distributionReservationEntities ) ) {
int sum = distributionReservationEntities . stream ( ) . mapToInt ( DistributionReservationEntity : : getReservationNum ) . sum ( ) + distributionReservationEntities . stream ( ) . mapToInt ( DistributionReservationEntity : : getReservationStockListNum ) . sum ( ) ;
distributionDeliveryListEntity . setDeliveryNumber ( sum ) ;
} else {
distributionDeliveryListEntity . setDeliveryNumber ( 0 ) ;
}
distributionDeliveryListMapper . updateById ( distributionDeliveryListEntity ) ;
if ( distributionDeliveryListEntity . getDeliveryNumber ( ) = = 0 ) {
distributionDeliveryListMapper . deleteById ( distributionDeliveryListEntity ) ;
}
}
}
/ * *
* 维护预约数量和状态
* @param reservationId
* /
@Transactional
private void maintenanceReservationPackageNum ( Long reservationId ) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper . selectById ( reservationId ) ;
if ( Func . isNotEmpty ( distributionReservationEntity ) ) {
List < DistributionReservationStockarticleEntity > distributionReservationStockarticleEntities = distributionReservationMapper . selectStockArticleByReservationId ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( distributionReservationStockarticleEntities ) ) {
int sum = distributionReservationStockarticleEntities . stream ( ) . mapToInt ( DistributionReservationStockarticleEntity : : getReservationNum ) . sum ( ) ;
distributionReservationEntity . setReservationNum ( sum ) ;
} else {
distributionReservationEntity . setReservationNum ( 0 ) ;
}
List < DistributionReservationStocklistEntity > distributionReservationStocklistEntities = distributionReservationMapper . selectStockListByReservationId ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( distributionReservationStocklistEntities ) ) {
//统计库存品数
int sum = distributionReservationStocklistEntities . stream ( ) . mapToInt ( DistributionReservationStocklistEntity : : getReservationNum ) . sum ( ) ;
distributionReservationEntity . setReservationStockListNum ( sum ) ;
} else {
distributionReservationEntity . setReservationStockListNum ( 0 ) ;
}
distributionReservationMapper . updateById ( distributionReservationEntity ) ;
if ( distributionReservationEntity . getReservationNum ( ) = = 0 & & distributionReservationEntity . getReservationStockListNum ( ) = = 0 ) {
distributionReservationMapper . deleteById ( distributionReservationEntity ) ;
}
}
}
@Transactional
private void checkReservationAndDeliverySigningStatus ( Long reservationId , Long deliveryId ) {
//维护客户签收状态
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper . selectById ( reservationId ) ;
if ( Func . isNotEmpty ( distributionReservationEntity ) ) {
if ( Func . isNotEmpty ( distributionReservationEntity ) ) {
int reservationTotal = distributionReservationEntity . getReservationNum ( ) + distributionReservationEntity . getReservationStockListNum ( ) ;
//查询该客户的签收数量
DistributionLoadingNumDTO reservationSigningNum = distributionReservationMapper . selectReservationSigningNum ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( reservationSigningNum ) ) {
DistributionLoadingNumDTO reservationSigningNum = distributionReservationMapper . selectReservationSigningNum ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( reservationSigningNum ) ) {
int reservationSigningQuantity = reservationSigningNum . getPackageSigningQuantity ( ) + reservationSigningNum . getInventorySigningQuantity ( ) ;
if ( reservationSigningQuantity > 0 ) {
if ( reservationTotal = = reservationSigningQuantity ) {
if ( reservationSigningQuantity > 0 ) {
if ( reservationTotal = = reservationSigningQuantity ) {
distributionReservationEntity . setSigningStatus ( ReservationSigningStatusConstant . yiqianshou . getValue ( ) ) ;
} else {
} else {
distributionReservationEntity . setSigningStatus ( ReservationSigningStatusConstant . bufenqianshou . getValue ( ) ) ;
}
distributionReservationMapper . updateById ( distributionReservationEntity ) ;
@ -1155,15 +1251,15 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//维护配送任务签收状态
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper . selectById ( deliveryId ) ;
if ( Func . isNotEmpty ( distributionDeliveryListEntity ) ) {
if ( Func . isNotEmpty ( distributionDeliveryListEntity ) ) {
Integer deliverySigningTotal = distributionDeliveryListEntity . getDeliveryNumber ( ) ;
DistributionLoadingNumDTO deliverySigningNum = distributionDeliveryListMapper . selectDeliverySigningNum ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( deliverySigningNum ) ) {
DistributionLoadingNumDTO deliverySigningNum = distributionDeliveryListMapper . selectDeliverySigningNum ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( deliverySigningNum ) ) {
int deliverySigningQuantity = deliverySigningNum . getPackageSigningQuantity ( ) + deliverySigningNum . getInventorySigningQuantity ( ) ;
if ( deliverySigningQuantity > 0 ) {
if ( deliverySigningTotal = = deliverySigningQuantity ) {
if ( deliverySigningQuantity > 0 ) {
if ( deliverySigningTotal = = deliverySigningQuantity ) {
distributionDeliveryListEntity . setDeliveryStatus ( DeliveryStatusConstant . yiwancheng . getValue ( ) ) ;
} else {
} else {
distributionDeliveryListEntity . setDeliveryStatus ( DeliveryStatusConstant . peisongzhong . getValue ( ) ) ;
}
distributionDeliveryListMapper . updateById ( distributionDeliveryListEntity ) ;
@ -1198,10 +1294,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
. eq ( DistributionReservationZeroPackageEntity : : getIsDeleted , 0 )
. in ( DistributionReservationZeroPackageEntity : : getZeroPackageStatus , "1" , "3" )
) ;
if ( ! list3 . isEmpty ( ) ) {
if ( ! list3 . isEmpty ( ) ) {
//零担数据
int sum = list3 . stream ( ) . mapToInt ( DistributionReservationZeroPackageEntity : : getQuantity ) . sum ( ) ;
pack . set ( pack . get ( ) + sum ) ;
pack . set ( pack . get ( ) + sum ) ;
}
boolean apj = false ;
@ -1225,7 +1321,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//查询包件数量
List < DistributionStockPackageVO > distributionStockPackageVOS = distrilbutionBillStockService . listPackageSelf ( billLadingId ) ;
int size = distributionStockPackageVOS . size ( ) ; //包件数量
pack . set ( pack . get ( ) + size ) ;
pack . set ( pack . get ( ) + size ) ;
//查询签收数量
List < DistributionBillLadingScanEntity > list2 = distributionBillLadingScanMapper . selectList ( Wrappers . < DistributionBillLadingScanEntity > query ( ) . lambda ( )
. eq ( DistributionBillLadingScanEntity : : getBillLadingId , billLadingId )
@ -1417,10 +1513,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void changeOrderReservationStatus ( DistributionStockArticleDTO stockArticleDTO ) {
Long id = stockArticleDTO . getId ( ) ;
DistributionStockArticleEntity stockArticleEntity = Func . copy ( stockArticleDTO , DistributionStockArticleEntity . class ) ;
if ( stockArticleEntity . getIsZero ( ) . equals ( IsOrNoConstant . no . getValue ( ) ) ) {
if ( stockArticleEntity . getIsZero ( ) . equals ( IsOrNoConstant . no . getValue ( ) ) ) {
List < DistributionParcelListEntity > parcelListEntityList = distributionParcelListService . getBaseMapper ( ) . selectList ( Wrappers . < DistributionParcelListEntity > query ( ) . lambda ( ) . eq ( DistributionParcelListEntity : : getStockArticleId , id ) ) ;
boolean flag = parcelListEntityList . stream ( ) . allMatch ( p - > p . getOrderPackageReservationStatus ( ) . equals ( OrderPackageReservationStatusConstant . yiyueyue . getValue ( ) ) ) ;
if ( flag & & stockArticleEntity . getTotalNumber ( ) = = parcelListEntityList . size ( ) ) {
if ( flag & & stockArticleEntity . getTotalNumber ( ) = = parcelListEntityList . size ( ) ) {
assert stockArticleEntity ! = null ;
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . yiyueyue . getValue ( ) ) ;
} else {
@ -1433,19 +1529,19 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . bufenyuyue . getValue ( ) ) ;
}
}
} else {
} else {
//检测零担订单是否完成预约
List < DistributionParcelNumberEntity > parcelNumberEntities = distributionParcelNumberService . list ( Wrappers . < DistributionParcelNumberEntity > query ( ) . lambda ( )
. eq ( DistributionParcelNumberEntity : : getStockArticleId , stockArticleDTO . getId ( ) ) ) ;
AtomicInteger unavailableNum = new AtomicInteger ( ) ;
parcelNumberEntities . forEach ( p - > {
parcelNumberEntities . forEach ( p - > {
unavailableNum . getAndAdd ( p . getOutboundQuantity ( ) + p . getDeliveryQuantity ( ) ) ;
} ) ;
if ( unavailableNum . get ( ) = = stockArticleDTO . getHandQuantity ( ) ) {
if ( unavailableNum . get ( ) = = stockArticleDTO . getHandQuantity ( ) ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . yiyueyue . getValue ( ) ) ;
} else if ( unavailableNum . get ( ) < stockArticleDTO . getHandQuantity ( ) ) {
} else if ( unavailableNum . get ( ) < stockArticleDTO . getHandQuantity ( ) ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . bufenyuyue . getValue ( ) ) ;
} else if ( unavailableNum . get ( ) = = 0 ) {
} else if ( unavailableNum . get ( ) = = 0 ) {
stockArticleEntity . setReservationStatus ( OrderReservationStatusConstant . daiyuyue . getValue ( ) ) ;
}
}
@ -1505,18 +1601,18 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
* /
@Override
@Transactional ( rollbackFor = Exception . class )
public void stockupUpdateState ( StockupDTO stockupDTO , int num ) {
public void stockupUpdateState ( StockupDTO stockupDTO , int num ) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient . getMyCurrentWarehouse ( ) ;
if ( stockupDTO . getScanType ( ) . equals ( 1 ) ) {
if ( stockupDTO . getScanType ( ) . equals ( 1 ) ) {
//包件
//查询包件备货状态
List < DistributionParcelListEntity > distributionParcelListEntities = distributionParcelListMapper . selectList ( Wrappers . < DistributionParcelListEntity > query ( ) . lambda ( )
. eq ( DistributionParcelListEntity : : getOrderPackageCode , stockupDTO . getPacketBarCode ( ) )
. eq ( ObjectUtils . isNotNull ( myCurrentWarehouse ) , DistributionParcelListEntity : : getWarehouseId , myCurrentWarehouse . getId ( ) )
. eq ( ObjectUtils . isNotNull ( myCurrentWarehouse ) , DistributionParcelListEntity : : getWarehouseId , myCurrentWarehouse . getId ( ) )
) ;
//修改
if ( ! distributionParcelListEntities . isEmpty ( ) ) {
if ( ! distributionParcelListEntities . isEmpty ( ) ) {
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity ( ) ;
distributionParcelListEntity . setId ( distributionParcelListEntities . get ( 0 ) . getId ( ) ) ;
distributionParcelListEntity . setOrderPackageStockupStatus ( OrderPackageStockupStatusConstant . yibeihu . getValue ( ) ) ;
@ -1545,7 +1641,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
. eq ( DistributionStockEntity : : getReservationId , i . getReservationId ( ) )
. eq ( DistributionStockEntity : : getStockupId , stockupDTO . getStockupId ( ) )
) ;
if ( ! list . isEmpty ( ) ) {
if ( ! list . isEmpty ( ) ) {
int size = list . stream ( ) . mapToInt ( DistributionStockEntity : : getStockQuantity ) . sum ( ) ;
nuy . set ( nuy . get ( ) + size ) ;
}
@ -1559,7 +1655,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
nu . set ( nu . get ( ) + sum ) ;
}
//修改预约备货状态
if ( nuy . get ( ) > = nu . get ( ) ) {
if ( nuy . get ( ) > = nu . get ( ) ) {
DistributionReservationEntity reservationEntity = new DistributionReservationEntity ( ) ;
reservationEntity . setId ( i . getReservationId ( ) ) ;
reservationEntity . setStockupStatus ( ReservationStockupStatusConstant . yibeihuo . getValue ( ) ) ;
@ -1631,7 +1727,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
* @param stockupDTO
* /
@Override
public void stockupSelfUpdateState ( StockupDTO stockupDTO , int num ) {
public void stockupSelfUpdateState ( StockupDTO stockupDTO , int num ) {
//查询全部订单数据
List < DistrilbutionBillStockEntity > distrilbutionBillStockEntities = distrilbutionBillStockMapper . selectList ( Wrappers . < DistrilbutionBillStockEntity > query ( ) . lambda ( )
@ -1647,7 +1743,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// AtomicReference<Boolean> z = new AtomicReference<>(false);
// AtomicReference<Integer> zeroNum = new AtomicReference<>(0); //零担已备货的数量
AtomicReference < Integer > zeroYuNum = new AtomicReference < > ( 0 ) ; //零担预约的数量
if ( ! listZero . isEmpty ( ) ) {
if ( ! listZero . isEmpty ( ) ) {
int sum = listZero . stream ( ) . mapToInt ( DistributionReservationZeroPackageEntity : : getQuantity ) . sum ( ) ;
zeroYuNum . set ( sum ) ;
//有
@ -1672,9 +1768,9 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//查询订单的非零担数据
List < DistributionStockPackageVO > distributionStockPackageVOS = distrilbutionBillStockService . listPackageSelf ( stockupDTO . getReservationId ( ) ) ;
//计算全部预约件数
if ( ! distributionStockPackageVOS . isEmpty ( ) ) {
if ( ! distributionStockPackageVOS . isEmpty ( ) ) {
nu . set ( distributionStockPackageVOS . size ( ) + zeroYuNum . get ( ) ) ;
} else {
} else {
nu . set ( zeroYuNum . get ( ) ) ;
}
// distrilbutionBillStockEntities.forEach(i -> {
@ -1727,11 +1823,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//修改
}
} else {
if ( i = = 0 ) {
if ( i = = 0 ) {
//修改备货状态
distributionStockup . setId ( stockupDTO . getStockupId ( ) ) ;
distributionStockup . setStockupStatus ( StockupStatusConstant . yibeihuo . getValue ( ) ) ;
} else {
} else {
//修改备货状态
distributionStockup . setId ( stockupDTO . getStockupId ( ) ) ;
distributionStockup . setStockupStatus ( StockupStatusConstant . beihuozhong . getValue ( ) ) ;
@ -1748,27 +1844,28 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/ * *
* 查询是否有没有备货的数据
*
* @param stockArticleId
* @param parcelListId
* @param reservationId
* @param typeService
* @return
* /
public Boolean getDoneStockUp ( Long stockArticleId , Long parcelListId , Long reservationId , String typeService ) {
public Boolean getDoneStockUp ( Long stockArticleId , Long parcelListId , Long reservationId , String typeService ) {
QueryWrapper < DistributionStockEntity > queryWrapper1 = new QueryWrapper < > ( ) ;
queryWrapper1 . eq ( "stock_article" , stockArticleId ) ;
queryWrapper1 . eq ( "parcel_list_id" , parcelListId ) ;
queryWrapper1 . eq ( "stock_article" , stockArticleId ) ;
queryWrapper1 . eq ( "parcel_list_id" , parcelListId ) ;
if ( typeService . equals ( "3" ) ) {
queryWrapper1 . eq ( "bill_lading_id" , reservationId ) ;
} else {
queryWrapper1 . eq ( "reservation_id" , reservationId ) ;
if ( typeService . equals ( "3" ) ) {
queryWrapper1 . eq ( "bill_lading_id" , reservationId ) ;
} else {
queryWrapper1 . eq ( "reservation_id" , reservationId ) ;
}
DistributionStockEntity stockEntity = distributionStockService . selectOne ( queryWrapper1 ) ;
if ( ObjectUtils . isNull ( stockEntity ) ) {
if ( ObjectUtils . isNull ( stockEntity ) ) {
//没有扫
return true ;
} else {
} else {
return false ;
}
@ -1776,26 +1873,27 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/ * *
* 查询是否有没有备货的库存品数据
*
* @param stockListId
* @param reservationId
* @param typeService
* @return
* /
public Boolean getDoneStockUpStock ( Long stockListId , Long reservationId , String typeService , Long stockupId , Integer num ) {
public Boolean getDoneStockUpStock ( Long stockListId , Long reservationId , String typeService , Long stockupId , Integer num ) {
QueryWrapper < DistributionStockEntity > queryWrapper1 = new QueryWrapper < > ( ) ;
queryWrapper1 . eq ( "stock_list_id" , stockListId ) ;
queryWrapper1 . eq ( "stockup_id" , stockupId ) ;
queryWrapper1 . eq ( "type" , "2" ) ;
queryWrapper1 . eq ( "stock_list_id" , stockListId ) ;
queryWrapper1 . eq ( "stockup_id" , stockupId ) ;
queryWrapper1 . eq ( "type" , "2" ) ;
if ( typeService . equals ( "3" ) ) {
queryWrapper1 . eq ( "bill_lading_id" , reservationId ) ;
} else {
queryWrapper1 . eq ( "reservation_id" , reservationId ) ;
if ( typeService . equals ( "3" ) ) {
queryWrapper1 . eq ( "bill_lading_id" , reservationId ) ;
} else {
queryWrapper1 . eq ( "reservation_id" , reservationId ) ;
}
List < DistributionStockEntity > stockEntityList = distributionStockService . selectList ( queryWrapper1 ) ;
if ( ! stockEntityList . isEmpty ( ) & & stockEntityList . size ( ) > = num ) {
if ( ! stockEntityList . isEmpty ( ) & & stockEntityList . size ( ) > = num ) {
return true ; //已完成
} else {
} else {
return false ; //未完成
}