@ -423,7 +423,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//更新关联订单数据的发车数量
trunklineCarsOrderService . updateStartNumByLoadIdAndWarehouseId ( loadId , warehouseId ) ;
//删除没有装车的计划数据
trunklineCarsOrderService . deleteNoRealNumByLoadIdAndWarehouseId ( loadId , warehouseId ) ;
// trunklineCarsOrderService.deleteNoRealNumByLoadIdAndWarehouseId(loadId, warehouseId);
//更新关联订单数据的发车数量
updateNumByLoadId ( loadId ) ;
@ -1709,6 +1709,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R . data ( map ) ;
}
@Override
public R findZeroDetailByCarsLoadScanId ( Long carsLoadScanId ) {
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanId ( carsLoadScanId ) ;
return R . data ( zeroDetailVOList ) ;
}
@Transactional ( rollbackFor = Exception . class )
@Override
@ -2390,6 +2398,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if ( ! Objects . isNull ( stockArticleEntity ) ) {
distributionStockArticleClient . addHandQuantity ( stockArticleEntity . getId ( ) , i ) ;
}
//把trunklineCarsLoadScanEntities1中所有元素的id放入一个List
List < Long > scanIds = trunklineCarsLoadScanEntities1 . stream ( ) . map ( TrunklineCarsLoadScanEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanIds ( scanIds ) ;
//把zeroDetailVOList按照packageId进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > zeroDetailVOMap = zeroDetailVOList . stream ( ) . collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getPackageId ) ) ;
zeroDetailVOMap . keySet ( ) . forEach ( packageId - > {
List < TrunklineScanZeroDetailVO > zeroDetailVOS = zeroDetailVOMap . get ( packageId ) ;
Integer lNum = zeroDetailVOS . stream ( ) . mapToInt ( t - > Objects . nonNull ( t . getLoadingNum ( ) ) ? t . getLoadingNum ( ) : 0 ) . sum ( ) ;
Integer uNum = zeroDetailVOS . stream ( ) . mapToInt ( t - > Objects . nonNull ( t . getUnloadNum ( ) ) ? t . getUnloadNum ( ) : 0 ) . sum ( ) ;
if ( uNum ! = lNum ) {
int diff = lNum - uNum ;
distributionParcelListClient . addZeroQuantity ( packageId , diff ) ;
distributionParcelNumberClient . addHandleQuantity ( packageId , diff ) ;
}
} ) ;
} ) ;
}
} ) ;
@ -2583,7 +2607,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
List < Long > scanLoadIds = trunklineCarsLoadScanService . findAllIdListByLoadIdAndNoScanStatus ( loadId , "3" ) ;
// List<Long> scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3");
List < Long > scanLoadIds = trunklineCarsLoadScanService . findAllIdListByLoadIdAndScanStatus ( loadId , "2" ) ;
return signLoadScanByIds ( scanLoadIds , warehouseId ) ;
@ -2654,7 +2679,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
loadCarsDTO . setUnloadTimeEnd ( CommonUtil . getEndByDateStr ( loadCarsDTO . getUnloadTimeEndStr ( ) ) ) ;
IPage < TrunklineCarsLoadScanVO > pageList = trunklineCarsLoadScanService . loadingDetail ( page , loadCarsDTO ) ;
List < TrunklineCarsLoadScanVO > records = pageList . getRecords ( ) ;
//把records中type等于2的id放入一个集合
List < Long > scanLoadIds = records . stream ( ) . filter ( item - > item . getType ( ) = = 2 ) . map ( TrunklineCarsLoadScanVO : : getId ) . collect ( Collectors . toList ( ) ) ;
if ( CollUtil . isNotEmpty ( scanLoadIds ) ) {
List < TrunklineScanZeroDetailVO > scanZeroDetailVOS = scanZeroDetailService . findListByCarsLoadScanIds ( scanLoadIds ) ;
//把scanZeroDetailVOS通过scanId进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > scanZeroDetailVOMap = scanZeroDetailVOS . stream ( ) . collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getScanId ) ) ;
records . forEach ( item - > {
Long scanId = item . getId ( ) ;
List < TrunklineScanZeroDetailVO > list = scanZeroDetailVOMap . get ( scanId ) ;
//把list中所有元素的goodsName用逗号拼起来
String loadingGoods = list . stream ( )
. map ( t - > t . getGoodsName ( ) + "(" + t . getLoadingNum ( ) + ")" )
. collect ( Collectors . joining ( "," ) ) ;
String unloadGoods = list . stream ( )
. map ( t - > t . getGoodsName ( ) + "(" + t . getUnloadNum ( ) + ")" )
. collect ( Collectors . joining ( "," ) ) ;
item . setLoadingGoods ( loadingGoods ) ;
item . setUnloadGoods ( unloadGoods ) ;
} ) ;
}
pageList . setRecords ( records ) ;
return R . data ( pageList ) ;
}
@ -3052,6 +3099,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//把parcelListEntities转化为id作为key的Map
Map < Long , DistributionParcelListEntity > parcelListMapById = parcelListEntities . stream ( ) . collect ( Collectors . toMap ( DistributionParcelListEntity : : getId , Function . identity ( ) ) ) ;
List < DistributionParcelNumberEntity > parcelNumberEntityList = distributionParcelNumberClient . findListByParcelListIds ( new ArrayList < > ( parcelListMapById . keySet ( ) ) ) ;
//把parcelNumberEntityList转化成以parceListId为key的Map
Map < Long , DistributionParcelNumberEntity > parcelNumberMapByParceListId = parcelNumberEntityList . stream ( ) . collect ( Collectors . toMap ( DistributionParcelNumberEntity : : getParcelListId , Function . identity ( ) ) ) ;
//把parcelListEntities转化成以firsts作为key的map
Map < String , DistributionParcelListEntity > parcelListMap = parcelListEntities . stream ( ) . collect ( Collectors . toMap ( DistributionParcelListEntity : : getFirsts , Function . identity ( ) ) ) ;
@ -3151,6 +3201,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
loadScanId = carsLoadScanEntity . getId ( ) ;
List < TrunklineScanZeroDetailEntity > zeroDetailList = new ArrayList < > ( ) ;
List < DistributionParcelListEntity > updateParceList = new ArrayList < > ( ) ;
List < DistributionParcelNumberEntity > updateParceNumberList = new ArrayList < > ( ) ;
if ( CollUtil . isNotEmpty ( zeroPackageList ) ) {
Long finalLoadScanId = loadScanId ;
zeroPackageList . forEach ( zeroPackageDTO - > {
@ -3164,10 +3215,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
zeroDetailList . add ( scanZeroDetailEntity ) ;
DistributionParcelListEntity parcelList = parcelListMap . get ( zeroPackageDTO . getGoodsName ( ) ) ;
Integer quantity = parcelList . getQuantity ( ) ;
Long parcelListId = parcelList . getId ( ) ;
DistributionParcelListEntity updateEntity = new DistributionParcelListEntity ( ) ;
updateEntity . setId ( parcelList . get Id( ) ) ;
updateEntity . setId ( parcelListId ) ;
updateEntity . setQuantity ( quantity - zeroPackageDTO . getEnterNum ( ) ) ;
updateParceList . add ( updateEntity ) ;
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId . get ( parcelListId ) ;
DistributionParcelNumberEntity updateNumberEntity = new DistributionParcelNumberEntity ( ) ;
updateNumberEntity . setId ( parcelNumberEntity . getId ( ) ) ;
updateNumberEntity . setHandQuantity ( parcelNumberEntity . getHandQuantity ( ) - zeroPackageDTO . getEnterNum ( ) ) ;
updateParceNumberList . add ( updateNumberEntity ) ;
} ) ;
} else {
if ( enterNum = = handQuantity ) {
@ -3184,10 +3241,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
scanZeroDetailEntity . setUnloadNum ( 0 ) ;
zeroDetailList . add ( scanZeroDetailEntity ) ;
Integer quantity = entity . getQuantity ( ) ;
Long parceListId = entity . getId ( ) ;
DistributionParcelListEntity updateEntity = new DistributionParcelListEntity ( ) ;
updateEntity . setId ( entity . getId ( ) ) ;
updateEntity . setQuantity ( quantity - entityByWaybillDetailId . getNum ( ) ) ;
updateParceList . add ( updateEntity ) ;
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId . get ( parceListId ) ;
DistributionParcelNumberEntity updateNumberEntity = new DistributionParcelNumberEntity ( ) ;
updateNumberEntity . setId ( parcelNumberEntity . getId ( ) ) ;
updateNumberEntity . setHandQuantity ( parcelNumberEntity . getHandQuantity ( ) - entityByWaybillDetailId . getNum ( ) ) ;
updateParceNumberList . add ( updateNumberEntity ) ;
} ) ;
}
}
@ -3197,6 +3260,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if ( CollUtil . isNotEmpty ( updateParceList ) ) {
distributionParcelListClient . updateList ( updateParceList ) ;
}
if ( CollUtil . isNotEmpty ( updateParceNumberList ) ) {
distributionParcelNumberClient . updateList ( updateParceNumberList ) ;
}
difficult = enterNum ;
distributionStockArticleClient . submitHandleNumByOrderId ( enterNum , articleId ) ;
@ -3227,9 +3293,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List < TrunklineScanZeroDetailEntity > zeroDetailList = new ArrayList < > ( ) ;
List < DistributionParcelListEntity > updateParceList = new ArrayList < > ( ) ;
List < DistributionParcelNumberEntity > updateParceNumberList = new ArrayList < > ( ) ;
QueryWrapper < TrunklineScanZeroDetailEntity > queryWrapper1 = new QueryWrapper < > ( ) ;
queryWrapper1 . eq ( "scanI d" , loadScanId ) ;
queryWrapper1 . eq ( "scan_i d" , loadScanId ) ;
List < TrunklineScanZeroDetailEntity > scanZeroDetailEntities = scanZeroDetailService . list ( queryWrapper1 ) ;
//把scanZeroDetailEntities中所有元素的scanId作为key转为Map
Map < Long , TrunklineScanZeroDetailEntity > map = scanZeroDetailEntities . stream ( ) . collect ( Collectors . toMap ( TrunklineScanZeroDetailEntity : : getPackageId , Function . identity ( ) ) ) ;
@ -3248,11 +3315,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R . fail ( 405 , "包件信息不存在" ) ;
}
Integer quantity = parcelList . getQuantity ( ) ;
Long parcelListId = parcelList . getId ( ) ;
DistributionParcelNumberEntity parcelNumberEntity = parcelNumberMapByParceListId . get ( parcelListId ) ;
if ( Objects . isNull ( parcelNumberEntity ) ) {
log . warn ( "##################loadingZero: 包件信息不存在111 packageId={}" , packageId ) ;
return R . fail ( 405 , "包件信息不存在" ) ;
}
Integer handQuantity1 = parcelNumberEntity . getHandQuantity ( ) ;
Integer loadingNum = scanZeroDetailEntity . getLoadingNum ( ) ;
int i2 = enterNum1 - loadingNum ;
parcelList . setQuantity ( quantity - i2 ) ;
updateParceList . add ( parcelList ) ;
parcelNumberEntity . setHandQuantity ( handQuantity1 - i2 ) ;
updateParceNumberList . add ( parcelNumberEntity ) ;
scanZeroDetailEntity . setLoadingNum ( enterNum1 ) ;
zeroDetailList . add ( scanZeroDetailEntity ) ;
}
@ -3263,6 +3339,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if ( CollUtil . isNotEmpty ( updateParceList ) ) {
distributionParcelListClient . updateList ( updateParceList ) ;
}
if ( CollUtil . isNotEmpty ( updateParceNumberList ) ) {
distributionParcelNumberClient . updateList ( updateParceNumberList ) ;
}
}
audio = ( enterNum ) + "件" ;
@ -3607,7 +3686,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
public R findCarsLoadingOrderDetail ( Long loadId , String orderCode , Long warehouseId ) {
List < OrderScanDetailVO > orderScanDetailList = trunklineCarsLoadScanService . findCarsLoadingOrderDetail ( loadId , orderCode , warehouseId ) ;
if ( CollUtil . isNotEmpty ( orderScanDetailList ) ) {
//把orderScanDetailList中所有元素的loadScanId放入一个List
List < Long > loadScanIdList = orderScanDetailList . stream ( ) . map ( OrderScanDetailVO : : getLoadScanId ) . collect ( Collectors . toList ( ) ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanIds ( loadScanIdList ) ;
//把zeroDetailVOList中所有元素通过scanId进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > zeroDetailMap = zeroDetailVOList . stream ( ) . collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getScanId ) ) ;
orderScanDetailList . forEach ( orderScanDetailVO - > {
Long loadScanId = orderScanDetailVO . getLoadScanId ( ) ;
List < TrunklineScanZeroDetailVO > list = zeroDetailMap . get ( loadScanId ) ;
orderScanDetailVO . setZeroDetailList ( list ) ;
} ) ;
}
return R . data ( orderScanDetailList ) ;
}
@ -3911,6 +4001,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
scanZeroDetailEntity . setUnloadNum ( 0 ) ;
scanZeroDetailEntityList . add ( scanZeroDetailEntity ) ;
distributionParcelListClient . addZeroQuantity ( packageId , - packageNum ) ;
distributionParcelNumberClient . addHandleQuantity ( packageId , - packageNum ) ;
} ) ;
scanZeroDetailService . saveBatch ( scanZeroDetailEntityList ) ;
@ -6154,7 +6245,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String orderCode = e . getOrderCode ( ) ;
String waybillNo = e . getWaybillNo ( ) ;
Integer planNum = e . getPlanNum ( ) ;
if ( realNum < planNum ) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient . findZeroByOrderCodeAndWarehouseId ( orderCode , warehouseId ) ;
Integer handQuantity = stockArticleEntity . getHandQuantity ( ) ;
int i = handQuantity + realNum ;
if ( realNum < planNum & & planNum = = i ) {
loadingZero ( loadId , warehouseId , waybillNo , orderCode , null , planNum , "手动一键装车" , null ) ;
}
} ) ;
@ -6948,7 +7044,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Override
public List < LoadingDetailExportVO > loadingDetailExport ( LoadCarsDTO loadCarsDTO ) {
return trunklineCarsLoadScanService . loadingDetailExport ( loadCarsDTO ) ;
List < LoadingDetailExportVO > loadingDetailExportVOS = trunklineCarsLoadScanService . loadingDetailExport ( loadCarsDTO ) ;
//把records中type等于2的id放入一个集合
List < Long > scanLoadIds = loadingDetailExportVOS . stream ( ) . filter ( item - > item . getType ( ) . equals ( "零担" ) ) . map ( LoadingDetailExportVO : : getId ) . collect ( Collectors . toList ( ) ) ;
if ( CollUtil . isNotEmpty ( scanLoadIds ) ) {
List < TrunklineScanZeroDetailVO > scanZeroDetailVOS = scanZeroDetailService . findListByCarsLoadScanIds ( scanLoadIds ) ;
//把scanZeroDetailVOS通过scanId进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > scanZeroDetailVOMap = scanZeroDetailVOS . stream ( ) . collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getScanId ) ) ;
loadingDetailExportVOS . forEach ( item - > {
Long scanId = item . getId ( ) ;
List < TrunklineScanZeroDetailVO > list = scanZeroDetailVOMap . get ( scanId ) ;
//把list中所有元素的goodsName用逗号拼起来
String loadingGoods = list . stream ( )
. map ( t - > t . getGoodsName ( ) + "(" + t . getLoadingNum ( ) + ")" )
. collect ( Collectors . joining ( "," ) ) ;
String unloadGoods = list . stream ( )
. map ( t - > t . getGoodsName ( ) + "(" + t . getUnloadNum ( ) + ")" )
. collect ( Collectors . joining ( "," ) ) ;
item . setLoadingGoods ( loadingGoods ) ;
item . setUnloadGoods ( unloadGoods ) ;
} ) ;
}
return loadingDetailExportVOS ;
}
@Override
@ -7194,10 +7313,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List < LoadZeroListVO > zeroList = trunklineCarsOrderService . findZeroList ( loadId , warehouseId ) ;
zeroList . forEach ( loadZeroListVO - > {
String waybillNo = loadZeroListVO . getWaybillNo ( ) ;
String orderCode = loadZeroListVO . getOrderCode ( ) ;
List < GoodsLoadingNumVO > loadingNumVOList = scanZeroDetailService . findGoodsLoadingNum ( loadId , warehouseId , waybillNo , orderCode ) ;
//把loadingNumVOList转化成以goodsId作为key的Map
Map < Long , GoodsLoadingNumVO > map = loadingNumVOList . stream ( ) . collect ( Collectors . toMap ( GoodsLoadingNumVO : : getGoodsId , Function . identity ( ) ) ) ;
List < JSONObject > zeroPackageList = distributionParcelListClient . findPackageGoodsListByWaybillNo ( waybillNo ) ;
List < ZeroPackageVO > ls = new ArrayList < > ( ) ;
zeroPackageList . forEach ( jsonObject - > {
ls . add ( jsonObject . toJavaObject ( ZeroPackageVO . class ) ) ;
ZeroPackageVO javaObject = jsonObject . toJavaObject ( ZeroPackageVO . class ) ;
Long goodsId = javaObject . getGoodsId ( ) ;
GoodsLoadingNumVO goodsLoadingNumVO = map . get ( goodsId ) ;
if ( Objects . isNull ( goodsLoadingNumVO ) ) {
javaObject . setLoadingNum ( 0 ) ;
} else {
javaObject . setLoadingNum ( goodsLoadingNumVO . getLoadingNum ( ) ) ;
}
ls . add ( javaObject ) ;
} ) ;
loadZeroListVO . setZeroPackageList ( ls ) ;
} ) ;
@ -7328,6 +7459,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
updateStockArticle . setHandQuantity ( distributionStockArticle . getHandQuantity ( ) + num ) ;
updateStockArticleList . add ( updateStockArticle ) ;
//把loadScanEntityList2中所有元素的id放入一个List
List < Long > carsLoadScanIdList = loadScanEntityList2 . stream ( ) . map ( TrunklineCarsLoadScanEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanIds ( carsLoadScanIds ) ;
//把zeroDetailVOList所有元素通过packageId进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > groupedByPackageId = zeroDetailVOList . stream ( ) . filter ( trunklineScanZeroDetailVO - > ! Objects . isNull ( trunklineScanZeroDetailVO . getPackageId ( ) ) )
. collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getPackageId ) ) ;
groupedByPackageId . keySet ( ) . forEach ( packageId - > {
List < TrunklineScanZeroDetailVO > scanZeroDetailVOList = groupedByPackageId . get ( packageId ) ;
Integer loadingNum = scanZeroDetailVOList . stream ( ) . map ( TrunklineScanZeroDetailVO : : getLoadingNum ) . reduce ( 0 , Integer : : sum ) ;
distributionParcelListClient . addZeroQuantity ( packageId , loadingNum ) ;
} ) ;
if ( warehouseId . equals ( fromWarehouseId ) ) {
Long waybillId = distributionStockArticle . getWaybillId ( ) ;
String waybillNo = distributionStockArticle . getWaybillNumber ( ) ;
@ -7363,8 +7506,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
} ) ;
}
} ) ;
//删除装车明细
trunklineCarsLoadScanService . deleteListByCarsLoadScanIds ( carsLoadScanIds ) ;
//删除零担的品类信息
scanZeroDetailService . deleteListByCarsLoadScanIds ( carsLoadScanIds ) ;
if ( CollUtil . isNotEmpty ( updateStockArticleList ) ) {
distributionStockArticleClient . updateByBatchId ( updateStockArticleList ) ;
@ -9095,6 +9240,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log . warn ( "############unloadZero: 配载计划节点信息不存在 loadId={} warehouseId={}" , loadId , warehouseId ) ;
return R . fail ( 405 , "配载计划节点信息不存在" ) ;
}
// String nodeStatus = loadLineEntity.getNodeStatus();
// if("10".equals(nodeStatus)){
// log.warn("############unloadZero: 当钱节点还未到车 loadId={} warehouseId={}", loadId, warehouseId);
// return R.fail(405, "当钱节点还未到车");
// }
String unloadStatus = loadLineEntity . getUnloadStatus ( ) ;
if ( ! "0" . equals ( unloadStatus ) ) {
log . warn ( "############unloadZero: 当前网点已经卸车确认 loadId={} warehouseId={}" , loadId , warehouseId ) ;