@ -34,6 +34,7 @@ import com.logpm.trunkline.entity.*;
import com.logpm.trunkline.mapper.TrunklineCarsLoadMapper ;
import com.logpm.trunkline.service.* ;
import com.logpm.trunkline.vo.* ;
import com.logpm.warehouse.entity.WarehousePackageTrackLogEntity ;
import com.logpm.warehouse.entity.WarehouseWayBillDetail ;
import com.logpm.warehouse.entity.WarehouseWaybillEntity ;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient ;
@ -3390,12 +3391,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R . success ( "卸车成功" ) ;
}
@Transactional ( rollbackFor = Exception . class )
@Override
public R batchUnload ( BatchUnloadDTO batchUnloadDTO ) {
Long loadId = batchUnloadDTO . getLoadId ( ) ;
Long warehouseId = batchUnloadDTO . getWarehouseId ( ) ;
Integer incomingType = batchUnloadDTO . getIncomingType ( ) ;
String nickName = AuthUtil . getNickName ( ) ;
Long userId = AuthUtil . getUserId ( ) ;
String tenantId = AuthUtil . getTenantId ( ) ;
Long deptId = Func . firstLong ( AuthUtil . getDeptId ( ) ) ;
TrunklineCarsLoadEntity carsLoadEntity = baseMapper . selectById ( loadId ) ;
if ( Objects . isNull ( carsLoadEntity ) ) {
log . warn ( "############batchUnload: 配载计划信息不存在 loadId={}" , loadId ) ;
@ -3408,26 +3415,335 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R . fail ( 405 , "当前节点还未到车" ) ;
}
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient . getEntityWarehouseId ( warehouseId ) ;
if ( Objects . isNull ( warehouseEntity ) ) {
log . warn ( "############batchUnload: 仓库信息不存在 warehouseId={}" , warehouseId ) ;
return R . fail ( 405 , "仓库信息不存在" ) ;
}
String warehouseName = warehouseEntity . getName ( ) ;
List < UnloadPackageDTO > unloadPackageList = batchUnloadDTO . getUnloadPackageList ( ) ;
List < UnloadZeroDTO > unloadZeroList = batchUnloadDTO . getUnloadZeroList ( ) ;
for ( UnloadPackageDTO unloadPackageDTO : unloadPackageList ) {
String orderPackageCode = unloadPackageDTO . getOrderPackageCode ( ) ;
unloadPackage ( loadId , orderPackageCode , warehouseId , 1 , "批量卸车包件正常卸车" , incomingType ) ;
}
for ( UnloadZeroDTO unloadZeroDTO : unloadZeroList ) {
String waybillNo = unloadZeroDTO . getWaybillNo ( ) ;
Integer enterNum = unloadZeroDTO . getEnterNum ( ) ;
String trayCode = unloadZeroDTO . getTrayCode ( ) ;
String orderCode = unloadZeroDTO . getOrderCode ( ) ;
unloadZero ( loadId , waybillNo , enterNum , warehouseId , 1 , trayCode , orderCode , "批量卸车零担正常卸车" ) ;
}
List < Long > carsLoadScanIds = new ArrayList < > ( ) ;
for ( UnloadPackageDTO unloadPackageDTO : unloadPackageList ) {
carsLoadScanIds . add ( unloadPackageDTO . getCarsLoadScanId ( ) ) ;
}
if ( ! carsLoadScanIds . isEmpty ( ) ) {
Date date = new Date ( ) ;
List < TrunklineCarsLoadScanEntity > loadScanEntityList = trunklineCarsLoadScanService . findListByIdsNoPackage ( carsLoadScanIds , warehouseId ) ;
List < DistributionParcelListEntity > parcelListEntities = trunklineCarsLoadScanService . findParceListByCarsLoadScanIds ( carsLoadScanIds ) ;
//把parcelListEntities转成orderPackageCode为键值的map
Map < String , DistributionParcelListEntity > parcelListMap = parcelListEntities . stream ( ) . collect ( Collectors . toMap ( DistributionParcelListEntity : : getOrderPackageCode , e - > e ) ) ;
List < DistributionStockArticleEntity > stockArticleEntities = trunklineCarsLoadScanService . findOrderListByCarsLoadScanIds ( carsLoadScanIds ) ;
//把stockArticleEntities转成orderCode为键值的map
Map < String , DistributionStockArticleEntity > stockArticleMap = stockArticleEntities . stream ( ) . collect ( Collectors . toMap ( DistributionStockArticleEntity : : getOrderCode , e - > e ) ) ;
// List<WarehouseWaybillEntity> waybillEntities = trunklineCarsLoadScanService.findWaybillListByCarsLoadScanIds(carsLoadScanIds);
// //把waybillEntities转成WaybillNo为键值的map
// Map<String,WarehouseWaybillEntity> waybillMap = waybillEntities.stream().collect(Collectors.toMap(WarehouseWaybillEntity::getWaybillNo, e -> e));
List < String > orderCodeList = trunklineCarsLoadScanService . findIncomingOrdeCodesByCarsLoadScanIds ( carsLoadScanIds , warehouseId ) ;
Map < String , Long > orderCodes = new HashMap < > ( ) ;
if ( ! Objects . isNull ( orderCodeList ) ) {
Map < String , Long > finalOrderCodes2 = orderCodes ;
orderCodeList . forEach ( e - > {
String [ ] split = e . split ( "----" ) ;
finalOrderCodes2 . put ( split [ 0 ] , Long . valueOf ( split [ 1 ] ) ) ;
} ) ;
orderCodes = finalOrderCodes2 ;
}
List < TrunklineCarsLoadScanEntity > updateScanEntityList = new ArrayList < > ( ) ;
//把loadScanEntityList通过isData=0和isData=1分成两个新的list
List < TrunklineCarsLoadScanEntity > loadScanEntityListNoData = loadScanEntityList . stream ( ) . filter ( e - > e . getIsData ( ) = = 0 ) . collect ( Collectors . toList ( ) ) ;
loadScanEntityListNoData . forEach ( e - > {
e . setScanStatus ( "2" ) ;
e . setUnloadNodeId ( warehouseId ) ;
e . setUnloadNodeName ( warehouseName ) ;
e . setUnloadAbnormal ( 0 ) ;
e . setUnloadNum ( 1 ) ;
e . setUnloadUserName ( nickName ) ;
updateScanEntityList . add ( e ) ;
} ) ;
//需要解托下架的包件嘛
Map < Long , List < String > > unbingTrayAndDelAllocationPackages = new HashMap < > ( ) ;
//直接新增的包件
List < DistributionParcelListEntity > newParcelListEntities = new ArrayList < > ( ) ;
//需要修改仓库信息的打托数据
List < String > trayCodes = new ArrayList < > ( ) ;
List < String > orderPackageCodes = new ArrayList < > ( ) ;
List < TrunklineCarsUnloadLogEntity > unloadLogList = new ArrayList < > ( ) ;
List < TrunklineCarsLoadScanEntity > loadScanEntityListHasData = loadScanEntityList . stream ( ) . filter ( e - > e . getIsData ( ) = = 1 ) . collect ( Collectors . toList ( ) ) ;
//把loadScanEntityListHasData通过tray_code is null和tray_code is not null 分成两个新的list
List < TrunklineCarsLoadScanEntity > loadScanEntityListHasDataNoTray = loadScanEntityListHasData . stream ( ) . filter ( e - > StringUtil . isBlank ( e . getTrayCode ( ) ) ) . collect ( Collectors . toList ( ) ) ;
//把loadScanEntityListHasDataNoTray通过orderCode进行分组
Map < String , List < TrunklineCarsLoadScanEntity > > loadScanEntityListHasDataNoTrayMap = loadScanEntityListHasDataNoTray . stream ( ) . collect ( Collectors . groupingBy ( TrunklineCarsLoadScanEntity : : getOrderCode ) ) ;
Map < String , Long > finalOrderCodes = orderCodes ;
loadScanEntityListHasDataNoTrayMap . keySet ( ) . forEach ( e - > {
//判断是否有已经有order了
Long orderId = null ;
if ( ! finalOrderCodes . isEmpty ( ) ) {
orderId = finalOrderCodes . get ( e ) ;
}
if ( ObjectUtil . isNull ( orderId ) ) {
//没有id
DistributionStockArticleEntity stockArticleEntity = stockArticleMap . get ( e ) ;
DistributionStockArticleEntity newStockArticleEntity = new DistributionStockArticleEntity ( ) ;
BeanUtil . copy ( stockArticleEntity , newStockArticleEntity ) ;
newStockArticleEntity . setId ( null ) ;
newStockArticleEntity . setCreateUser ( userId ) ;
newStockArticleEntity . setUpdateUser ( userId ) ;
newStockArticleEntity . setWarehouseId ( warehouseId ) ;
newStockArticleEntity . setWarehouse ( warehouseName ) ;
newStockArticleEntity . setHandQuantity ( 0 ) ;
newStockArticleEntity . setIncomingNum ( 0 ) ;
newStockArticleEntity . setCreateUserName ( nickName ) ;
newStockArticleEntity . setOrderStatus ( "10" ) ;
newStockArticleEntity . setStockupStatus ( "10" ) ;
newStockArticleEntity . setReservationStatus ( "10" ) ;
newStockArticleEntity . setGroundingStatus ( "10" ) ;
newStockArticleEntity . setOrderReceiveStatus ( "10" ) ;
newStockArticleEntity . setFreezeStatus ( "10" ) ;
orderId = distributionStockArticleClient . addData ( newStockArticleEntity ) ;
finalOrderCodes . put ( e , orderId ) ;
}
List < TrunklineCarsLoadScanEntity > carsLoadScanEntities = loadScanEntityListHasDataNoTrayMap . get ( e ) ;
Long finalOrderId = orderId ;
carsLoadScanEntities . forEach ( p - > {
Long fromWarehouseId = p . getFromWarehouseId ( ) ;
DistributionParcelListEntity parcelListEntity = parcelListMap . get ( p . getScanCode ( ) ) ;
Long acceptWarehouseId = parcelListEntity . getAcceptWarehouseId ( ) ;
DistributionParcelListEntity newNoOrderPackage = new DistributionParcelListEntity ( ) ;
BeanUtil . copy ( parcelListEntity , newNoOrderPackage ) ;
newNoOrderPackage . setId ( null ) ;
newNoOrderPackage . setCreateUser ( userId ) ;
newNoOrderPackage . setUpdateUser ( userId ) ;
newNoOrderPackage . setWarehouseId ( warehouseId ) ;
newNoOrderPackage . setWarehouse ( warehouseName ) ;
newNoOrderPackage . setStockArticleId ( finalOrderId ) ;
newNoOrderPackage . setOrderPackageStatus ( "20" ) ;
newNoOrderPackage . setOrderPackageFreezeStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageGroundingStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageStockupStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageReservationStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageLoadingStatus ( "10" ) ;
if ( acceptWarehouseId . equals ( warehouseId ) ) {
newNoOrderPackage . setIsTransfer ( 0 ) ;
} else {
newNoOrderPackage . setIsTransfer ( 1 ) ;
}
newParcelListEntities . add ( newNoOrderPackage ) ;
orderPackageCodes . add ( p . getScanCode ( ) ) ;
List < String > list = unbingTrayAndDelAllocationPackages . get ( fromWarehouseId ) ;
if ( Objects . isNull ( list ) ) {
list = new ArrayList < > ( ) ;
list . add ( p . getScanCode ( ) ) ;
} else {
list . add ( p . getScanCode ( ) ) ;
}
unbingTrayAndDelAllocationPackages . put ( fromWarehouseId , list ) ;
Integer isAbnormal = 0 ;
String remark = "正常卸车" ;
p . setScanStatus ( "2" ) ;
p . setUnloadNodeId ( warehouseId ) ;
p . setUnloadNodeName ( warehouseName ) ;
Long finalNodeId = p . getFinalNodeId ( ) ;
if ( ! finalNodeId . equals ( warehouseId ) ) {
isAbnormal = 1 ;
remark = "卸车仓库与目的仓不一致,异常卸车" ;
}
p . setUnloadAbnormal ( isAbnormal ) ;
p . setUnloadNum ( 1 ) ;
p . setUnloadUserName ( nickName ) ;
updateScanEntityList . add ( p ) ;
TrunklineCarsUnloadLogEntity entity = new TrunklineCarsUnloadLogEntity ( ) ;
entity . setTenantId ( tenantId ) ;
entity . setCreateUser ( userId ) ;
entity . setUpdateUser ( userId ) ;
entity . setCreateDept ( deptId ) ;
entity . setCreateTime ( date ) ;
entity . setUpdateTime ( date ) ;
entity . setWarehouseId ( warehouseId ) ;
entity . setWarehouseName ( warehouseName ) ;
entity . setLoadId ( loadId ) ;
entity . setLoadCode ( carsLoadEntity . getCarsNo ( ) ) ;
entity . setWaybillId ( p . getWaybillId ( ) ) ;
entity . setWaybillNo ( p . getWaybillNo ( ) ) ;
entity . setOrderCode ( p . getOrderCode ( ) ) ;
entity . setScanCode ( p . getScanCode ( ) ) ;
entity . setNum ( p . getUnloadNum ( ) ) ;
entity . setType ( p . getType ( ) ) ;
entity . setIsData ( p . getIsData ( ) ) ;
entity . setIsAbnormal ( isAbnormal ) ;
entity . setFromWarehouseId ( fromWarehouseId ) ;
entity . setLoadScanId ( p . getId ( ) ) ;
entity . setRemark ( remark ) ;
unloadLogList . add ( entity ) ;
} ) ;
} ) ;
orderCodes = finalOrderCodes ;
List < TrunklineCarsLoadScanEntity > loadScanEntityListHasDataHasTray = loadScanEntityListHasData . stream ( ) . filter ( e - > StringUtil . isNotBlank ( e . getTrayCode ( ) ) ) . collect ( Collectors . toList ( ) ) ;
//把loadScanEntityListHasDataHasTray通过TrayCode进行分组
Map < String , List < TrunklineCarsLoadScanEntity > > loadScanEntityListHasDataHasTrayMap = loadScanEntityListHasDataHasTray . stream ( ) . collect ( Collectors . groupingBy ( TrunklineCarsLoadScanEntity : : getTrayCode ) ) ;
Map < String , Long > finalOrderCodes1 = orderCodes ;
loadScanEntityListHasDataHasTrayMap . keySet ( ) . forEach ( o - > {
trayCodes . add ( o ) ;
List < TrunklineCarsLoadScanEntity > carsLoadScanEntities = loadScanEntityListHasDataHasTrayMap . get ( o ) ;
//把carsLoadScanEntities通过orderCode进行分组
Map < String , List < TrunklineCarsLoadScanEntity > > carsLoadScanEntitiesMap = carsLoadScanEntities . stream ( ) . collect ( Collectors . groupingBy ( TrunklineCarsLoadScanEntity : : getOrderCode ) ) ;
carsLoadScanEntitiesMap . keySet ( ) . forEach ( e - > {
//判断是否有已经有order了
Long orderId = finalOrderCodes1 . get ( e ) ;
if ( ObjectUtil . isNull ( orderId ) ) {
//没有id
DistributionStockArticleEntity stockArticleEntity = stockArticleMap . get ( e ) ;
DistributionStockArticleEntity newStockArticleEntity = new DistributionStockArticleEntity ( ) ;
BeanUtil . copy ( stockArticleEntity , newStockArticleEntity ) ;
newStockArticleEntity . setId ( null ) ;
newStockArticleEntity . setCreateUser ( userId ) ;
newStockArticleEntity . setUpdateUser ( userId ) ;
newStockArticleEntity . setWarehouseId ( warehouseId ) ;
newStockArticleEntity . setWarehouse ( warehouseName ) ;
newStockArticleEntity . setHandQuantity ( 0 ) ;
newStockArticleEntity . setIncomingNum ( 0 ) ;
newStockArticleEntity . setCreateUserName ( nickName ) ;
newStockArticleEntity . setOrderStatus ( "10" ) ;
newStockArticleEntity . setStockupStatus ( "10" ) ;
newStockArticleEntity . setReservationStatus ( "10" ) ;
newStockArticleEntity . setGroundingStatus ( "10" ) ;
newStockArticleEntity . setOrderReceiveStatus ( "10" ) ;
newStockArticleEntity . setFreezeStatus ( "10" ) ;
orderId = distributionStockArticleClient . addData ( newStockArticleEntity ) ;
finalOrderCodes1 . put ( e , orderId ) ;
}
List < TrunklineCarsLoadScanEntity > carsLoadScanList = carsLoadScanEntitiesMap . get ( e ) ;
Long finalOrderId = orderId ;
carsLoadScanList . forEach ( p - > {
DistributionParcelListEntity parcelListEntity = parcelListMap . get ( p . getScanCode ( ) ) ;
Long acceptWarehouseId = parcelListEntity . getAcceptWarehouseId ( ) ;
DistributionParcelListEntity newNoOrderPackage = new DistributionParcelListEntity ( ) ;
BeanUtil . copy ( parcelListEntity , newNoOrderPackage ) ;
newNoOrderPackage . setId ( null ) ;
newNoOrderPackage . setCreateUser ( userId ) ;
newNoOrderPackage . setUpdateUser ( userId ) ;
newNoOrderPackage . setWarehouseId ( warehouseId ) ;
newNoOrderPackage . setWarehouse ( warehouseName ) ;
newNoOrderPackage . setStockArticleId ( finalOrderId ) ;
newNoOrderPackage . setOrderPackageStatus ( "20" ) ;
newNoOrderPackage . setOrderPackageFreezeStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageGroundingStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageStockupStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageReservationStatus ( "10" ) ;
newNoOrderPackage . setOrderPackageLoadingStatus ( "10" ) ;
if ( acceptWarehouseId . equals ( warehouseId ) ) {
newNoOrderPackage . setIsTransfer ( 0 ) ;
} else {
newNoOrderPackage . setIsTransfer ( 1 ) ;
}
newParcelListEntities . add ( newNoOrderPackage ) ;
orderPackageCodes . add ( p . getScanCode ( ) ) ;
Integer isAbnormal = 0 ;
String remark = "正常卸车" ;
p . setScanStatus ( "2" ) ;
p . setUnloadNodeId ( warehouseId ) ;
p . setUnloadNodeName ( warehouseName ) ;
Long finalNodeId = p . getFinalNodeId ( ) ;
if ( ! finalNodeId . equals ( warehouseId ) ) {
isAbnormal = 1 ;
remark = "卸车仓库与目的仓不一致,异常卸车" ;
}
p . setUnloadAbnormal ( isAbnormal ) ;
p . setUnloadNum ( 1 ) ;
p . setUnloadUserName ( nickName ) ;
p . setRemark ( remark ) ;
updateScanEntityList . add ( p ) ;
TrunklineCarsUnloadLogEntity entity = new TrunklineCarsUnloadLogEntity ( ) ;
entity . setTenantId ( tenantId ) ;
entity . setCreateUser ( userId ) ;
entity . setUpdateUser ( userId ) ;
entity . setCreateDept ( deptId ) ;
entity . setCreateTime ( date ) ;
entity . setUpdateTime ( date ) ;
entity . setWarehouseId ( warehouseId ) ;
entity . setWarehouseName ( warehouseName ) ;
entity . setLoadId ( loadId ) ;
entity . setLoadCode ( carsLoadEntity . getCarsNo ( ) ) ;
entity . setWaybillId ( p . getWaybillId ( ) ) ;
entity . setWaybillNo ( p . getWaybillNo ( ) ) ;
entity . setOrderCode ( p . getOrderCode ( ) ) ;
entity . setScanCode ( p . getScanCode ( ) ) ;
entity . setNum ( p . getUnloadNum ( ) ) ;
entity . setType ( p . getType ( ) ) ;
entity . setIsData ( p . getIsData ( ) ) ;
entity . setIsAbnormal ( isAbnormal ) ;
entity . setFromWarehouseId ( p . getFromWarehouseId ( ) ) ;
entity . setLoadScanId ( p . getId ( ) ) ;
entity . setRemark ( remark ) ;
unloadLogList . add ( entity ) ;
} ) ;
} ) ;
} ) ;
//直接新增的包件
distributionParcelListClient . addBatch ( newParcelListEntities ) ;
trunklineCarsLoadScanService . updateBatchById ( updateScanEntityList ) ;
carsLoadAsyncService . savaUnloadLogBatch ( unloadLogList ) ;
// trunklineCarsUnloadLogService.savaUnloadLogBatch(unloadLogList);
//需要解托下架的包件嘛
unbingTrayAndDelAllocationPackages . keySet ( ) . forEach ( w - > {
List < String > list = unbingTrayAndDelAllocationPackages . get ( w ) ;
updownTypeClient . downPackageOrDelTray ( StringUtil . join ( list ) , w , "批量入库解托下架" ) ;
} ) ;
//需要修改仓库信息的打托数据
trayCodes . forEach ( trayCode - > {
trayTypeClient . changeTrayWarehouseInfo ( trayCode , warehouseId ) ;
} ) ;
newParcelListEntities . forEach ( e - > {
carsLoadAsyncService . dealwithAfterAbnormalPackage ( e . getOrderPackageCode ( ) , warehouseId , warehouseName , carsLoadEntity . getCarsNo ( ) , userId , deptId , nickName ) ;
} ) ;
String content = "包件在 " + warehouseName + "卸车,卸车方式:" + IncomingTypeEnum . getValue ( incomingType ) ;
packageTrackLogAsyncService . addPackageTrackLog ( tenantId , userId , deptId , nickName , orderPackageCodes , warehouseId , warehouseName , WorkNodeEnums . UNLOAD_INCOMING_WAREHOUSE . getCode ( ) , content ) ;
}
updateNumByLoadId ( loadId ) ;
return R . success ( "卸车成功" ) ;
}
@ -3928,12 +4244,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log . warn ( "##############manualLoading: 配载计划不存在 loadId={}" , loadId ) ;
return R . fail ( 405 , "配载计划不存在" ) ;
}
String carsNo = carsLoadEntity . getCarsNo ( ) ;
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient . getEntityWarehouseId ( warehouseId ) ;
if ( Objects . isNull ( warehouseEntity ) ) {
log . warn ( "##############manualLoading: 仓库信息不存在 warehouseId={}" , warehouseId ) ;
return R . fail ( 405 , "仓库信息不存在" ) ;
}
String warehouseName = warehouseEntity . getName ( ) ;
Long nowWarehouseId = carsLoadEntity . getNowWarehouseId ( ) ;
if ( ! nowWarehouseId . equals ( warehouseId ) ) {
@ -3941,39 +4259,107 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R . fail ( 405 , "车辆不在当前仓" ) ;
}
String tenantId = AuthUtil . getTenantId ( ) ;
Long userId = AuthUtil . getUserId ( ) ;
Long deptId = Func . firstLong ( AuthUtil . getDeptId ( ) ) ;
String nickName = AuthUtil . getNickName ( ) ;
//查询有哪些在当前仓做计划的订单
List < TrunklineCarsOrderEntity > carsOrderEntityList = trunklineCarsOrderService . findListByLoadIdAndNodeId ( loadId , warehouseId ) ;
for ( TrunklineCarsOrderEntity carsOrderEntity : carsOrderEntityList ) {
Integer type = carsOrderEntity . getType ( ) ;
Integer realNum = carsOrderEntity . getRealNum ( ) ;
if ( type . equals ( 1 ) ) {
//订制品订单
String orderCode = carsOrderEntity . getOrderCode ( ) ;
Integer planNum = carsOrderEntity . getPlanNum ( ) ;
String waybillNo = carsOrderEntity . getWaybillNo ( ) ;
List < DistributionParcelListEntity > entityListByOrderCode = distributionParcelListClient . findEntityListByOrderCodeAndStatus ( orderCode , warehouseId , "20" , waybillNo ) ;
int size = entityListByOrderCode . size ( ) ;
if ( planNum . equals ( size + realNum ) ) {
for ( DistributionParcelListEntity parcelListEntity : entityListByOrderCode ) {
String orderPackageCode = parcelListEntity . getOrderPackageCode ( ) ;
//查询包件是否已经装车
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService . findEntityByLoadIdAndOrderPackageCode ( loadId , orderPackageCode ) ;
if ( Objects . isNull ( carsLoadScanEntity ) ) {
loadingScan ( loadId , warehouseId , orderPackageCode , null , "手动一键装车" ) ;
}
}
}
} else if ( type . equals ( 2 ) ) {
//零担订单
String orderCode = carsOrderEntity . getOrderCode ( ) ;
String waybillNo = carsOrderEntity . getWaybillNo ( ) ;
Integer planNum = carsOrderEntity . getPlanNum ( ) ;
// Integer realNum = carsOrderEntity.getRealNum();
if ( realNum . equals ( 0 ) ) {
loadingZero ( loadId , warehouseId , waybillNo , orderCode , null , planNum , "手动一键装车" ) ;
//把carsOrderEntityList通过type分组成两个新的集合
List < TrunklineCarsOrderEntity > packageOrderList = carsOrderEntityList . stream ( ) . filter ( e - > e . getType ( ) . equals ( 1 ) ) . collect ( Collectors . toList ( ) ) ;
List < TrunklineCarsOrderEntity > zeroOrderList = carsOrderEntityList . stream ( ) . filter ( e - > e . getType ( ) . equals ( 2 ) ) . collect ( Collectors . toList ( ) ) ;
//零担批量装车
zeroOrderList . stream ( ) . forEach ( e - > {
//零担订单
Integer realNum = e . getRealNum ( ) ;
String orderCode = e . getOrderCode ( ) ;
String waybillNo = e . getWaybillNo ( ) ;
Integer planNum = e . getPlanNum ( ) ;
if ( realNum . equals ( 0 ) ) {
loadingZero ( loadId , warehouseId , waybillNo , orderCode , null , planNum , "手动一键装车" ) ;
}
} ) ;
List < TrunklineCarsLoadScanEntity > addCarsLoadScanList = new ArrayList < > ( ) ;
List < WarehousePackageTrackLogEntity > addPackageTrackLogList = new ArrayList < > ( ) ;
List < String > orderPackageCodes = new ArrayList < > ( ) ;
List < DistributionParcelListEntity > parcelList = new ArrayList < > ( ) ;
packageOrderList . stream ( ) . forEach ( e - > {
Integer realNum = e . getRealNum ( ) ;
String orderCode = e . getOrderCode ( ) ;
Integer planNum = e . getPlanNum ( ) ;
String waybillNo = e . getWaybillNo ( ) ;
Long finalNodeId = e . getFinalNodeId ( ) ;
String finalNodeName = null ;
BasicdataWarehouseEntity finalNodeWarehouse = basicdataWarehouseClient . getEntityWarehouseId ( finalNodeId ) ;
if ( Objects . nonNull ( finalNodeWarehouse ) ) {
finalNodeName = finalNodeWarehouse . getName ( ) ;
}
List < DistributionParcelListEntity > entityListByOrderCode = distributionParcelListClient . findEntityListByOrderCodeAndStatus ( orderCode , warehouseId , "20" , waybillNo ) ;
int size = entityListByOrderCode . size ( ) ;
if ( planNum . equals ( size + realNum ) ) {
for ( DistributionParcelListEntity parcelListEntity : entityListByOrderCode ) {
String orderPackageCode = parcelListEntity . getOrderPackageCode ( ) ;
TrunklineCarsLoadScanEntity carsLoadScanEntity = new TrunklineCarsLoadScanEntity ( ) ;
carsLoadScanEntity . setLoadId ( loadId ) ;
carsLoadScanEntity . setWarehouseId ( warehouseId ) ;
carsLoadScanEntity . setWarehouseName ( warehouseName ) ;
carsLoadScanEntity . setLoadCode ( carsNo ) ;
carsLoadScanEntity . setWaybillId ( parcelListEntity . getWaybillId ( ) ) ;
carsLoadScanEntity . setWaybillNo ( parcelListEntity . getWaybillNumber ( ) ) ;
carsLoadScanEntity . setOrderCode ( parcelListEntity . getOrderCode ( ) ) ;
carsLoadScanEntity . setScanCode ( orderPackageCode ) ;
carsLoadScanEntity . setScanStatus ( "1" ) ;
carsLoadScanEntity . setNum ( 1 ) ;
carsLoadScanEntity . setType ( 1 ) ;
carsLoadScanEntity . setIsData ( 1 ) ;
carsLoadScanEntity . setLoadingAbnormal ( 0 ) ;
carsLoadScanEntity . setUnloadAbnormal ( 0 ) ;
carsLoadScanEntity . setFromWarehouseId ( warehouseId ) ;
carsLoadScanEntity . setUnloadNum ( 0 ) ;
carsLoadScanEntity . setFinalNodeId ( finalNodeId ) ;
carsLoadScanEntity . setFinalNodeName ( finalNodeName ) ;
carsLoadScanEntity . setUnloadCheck ( 0 ) ;
carsLoadScanEntity . setIsSupple ( 0 ) ;
carsLoadScanEntity . setLoadingUserName ( AuthUtil . getNickName ( ) ) ;
addCarsLoadScanList . add ( carsLoadScanEntity ) ;
Date date = new Date ( ) ;
WarehousePackageTrackLogEntity warehousePackageTrackLogEntity = new WarehousePackageTrackLogEntity ( ) ;
warehousePackageTrackLogEntity . setTenantId ( tenantId ) ;
warehousePackageTrackLogEntity . setCreateUser ( userId ) ;
warehousePackageTrackLogEntity . setCreateTime ( date ) ;
warehousePackageTrackLogEntity . setUpdateUser ( userId ) ;
warehousePackageTrackLogEntity . setUpdateTime ( date ) ;
warehousePackageTrackLogEntity . setIsDeleted ( 0 ) ;
warehousePackageTrackLogEntity . setStatus ( 1 ) ;
warehousePackageTrackLogEntity . setCreateDept ( deptId ) ;
warehousePackageTrackLogEntity . setOrderPackageCode ( orderPackageCode ) ;
warehousePackageTrackLogEntity . setWarehouseId ( warehouseId ) ;
warehousePackageTrackLogEntity . setWarehouseName ( warehouseName ) ;
warehousePackageTrackLogEntity . setWorkNode ( WorkNodeEnums . INITIAL_WAREHOUSE_LOADING . getCode ( ) ) ;
String content = "包件在 " + warehouseName + "手动批量装车,配载计划目的仓 " + carsLoadScanEntity . getFinalNodeName ( ) + ",数据来源仓库 " + warehouseName ;
warehousePackageTrackLogEntity . setContent ( content ) ;
warehousePackageTrackLogEntity . setOperator ( nickName ) ;
addPackageTrackLogList . add ( warehousePackageTrackLogEntity ) ;
orderPackageCodes . add ( orderPackageCode ) ;
}
}
}
} ) ;
distributionParcelListClient . updatePackageStatus ( orderPackageCodes , warehouseId , "60" ) ;
trunklineCarsLoadScanService . saveBatch ( addCarsLoadScanList ) ;
updateNumByLoadId ( loadId ) ;
addCarsLoadScanList . forEach ( e - > {
trunklineCarsLoadingLogService . savaLoadingLog ( warehouseId , warehouseName , loadId , e . getLoadCode ( ) , e . getWaybillId ( ) , e . getWaybillNo ( ) , e . getOrderCode ( ) , e . getScanCode ( ) , 1 ,
1 , 1 , 0 , null , null , null , e . getFromWarehouseId ( ) , e . getId ( ) , remark ) ;
} ) ;
packageTrackLogAsyncService . addBatchPackageTrackLog ( addPackageTrackLogList , orderPackageCodes , WorkNodeEnums . INITIAL_WAREHOUSE_LOADING . getCode ( ) ) ;
return R . success ( "装车完成" ) ;
}