@ -28,6 +28,8 @@ import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient ;
import com.logpm.distribution.feign.IDistributionParcelNumberClient ;
import com.logpm.distribution.feign.IDistributionStockArticleClient ;
import com.logpm.distribution.vo.DistributionParcelListVO ;
import com.logpm.distribution.vo.ZeroPackageSupplyVO ;
import com.logpm.factorydata.enums.BrandEnums ;
import com.logpm.factorydata.feign.IFactoryDataClient ;
import com.logpm.factorydata.util.FactoryDataMessageSender ;
@ -1200,162 +1202,153 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//把orderCodeList通过fromWarehouseId进行分组
Map < Long , List < TrunklineCarsLoadScanEntity > > fromWarehouseIdmap = orderCodeList . stream ( ) . collect ( Collectors . groupingBy ( TrunklineCarsLoadScanEntity : : getFromWarehouseId ) ) ;
fromWarehouseIdmap . keySet ( ) . forEach ( fromWarehouseId - > {
TrunklineCarsOrderEntity trunklineCarsOrderEntity = trunklineCarsOrderService . findEntityByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo ( loadId , fromWarehouseId , orderCode , orderCode ) ;
if ( ! Objects . isNull ( trunklineCarsOrderEntity ) ) {
Integer realNum = trunklineCarsOrderEntity . getRealNum ( ) ;
List < TrunklineCarsLoadScanEntity > fromWarehouseIdList = fromWarehouseIdmap . get ( fromWarehouseId ) ;
//把fromWarehouseIdList中所有元素的unloadNum累加
int unloadNum = fromWarehouseIdList . stream ( ) . mapToInt ( TrunklineCarsLoadScanEntity : : getUnloadNum ) . sum ( ) ;
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient . findZeroByOrderCodeAndWarehouseId ( orderCode , fromWarehouseId ) ;
if ( ! Objects . isNull ( stockArticleEntity ) ) {
Integer handQuantity = stockArticleEntity . getHandQuantity ( ) ;
if ( unloadNum > realNum ) {
//卸车数大于实际装车数
throw new CustomerException ( 405 , "零担订单" + orderCode + "卸车件数已大于实际装车件数,请去调整补录" ) ;
} else {
// if(unloadNum < realNum){
// distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(),realNum-unloadNum);
// }
DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient . findStockArticleByOrderCodeAndWarehouseId ( orderCode , warehouseId ) ;
if ( Objects . isNull ( newStockArticleEntity ) ) {
newStockArticleEntity = new DistributionStockArticleEntity ( ) ;
BeanUtil . copy ( stockArticleEntity , newStockArticleEntity ) ;
newStockArticleEntity . setId ( null ) ;
List < TrunklineCarsLoadScanEntity > fromWarehouseIdList = fromWarehouseIdmap . get ( fromWarehouseId ) ;
int realNum = fromWarehouseIdList . stream ( ) . mapToInt ( TrunklineCarsLoadScanEntity : : getNum ) . sum ( ) ;
//把fromWarehouseIdList中所有元素的unloadNum累加
int unloadNum = fromWarehouseIdList . stream ( ) . mapToInt ( TrunklineCarsLoadScanEntity : : getUnloadNum ) . sum ( ) ;
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient . findZeroByOrderCodeAndWarehouseId ( orderCode , fromWarehouseId ) ;
if ( ! Objects . isNull ( stockArticleEntity ) ) {
if ( unloadNum > realNum ) {
//卸车数大于实际装车数
throw new CustomerException ( 405 , "零担订单" + orderCode + "卸车件数已大于实际装车件数,请去调整补录" ) ;
} else {
//把fromWarehouseIdList中所有元素的id放入一个集合
List < Long > carsLoadScanIds = fromWarehouseIdList . stream ( ) . map ( TrunklineCarsLoadScanEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanIds ( carsLoadScanIds ) ;
//把zeroDetailVOList所有元素通过goodsName进行分组
Map < String , List < TrunklineScanZeroDetailVO > > goodsNamemap = zeroDetailVOList . stream ( ) . collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getGoodsName ) ) ;
DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient . findStockArticleByOrderCodeAndWarehouseId ( orderCode , warehouseId ) ;
if ( Objects . isNull ( newStockArticleEntity ) ) {
newStockArticleEntity = new DistributionStockArticleEntity ( ) ;
BeanUtil . copy ( stockArticleEntity , newStockArticleEntity ) ;
Integer totalNumber = stockArticleEntity . getTotalNumber ( ) ;
newStockArticleEntity . setId ( null ) ;
if ( totalNumber = = unloadNum ) {
newStockArticleEntity . setOrderReceiveStatus ( "30" ) ;
} else {
newStockArticleEntity . setOrderReceiveStatus ( "20" ) ;
newStockArticleEntity . setOrderStatus ( "10" ) ;
newStockArticleEntity . setHandQuantity ( unloadNum ) ;
newStockArticleEntity . setIncomingNum ( unloadNum ) ;
newStockArticleEntity . setWarehouse ( warehouseEntity . getName ( ) ) ;
newStockArticleEntity . setWarehouseId ( warehouseEntity . getId ( ) ) ;
newStockArticleEntity . setAllocation ( null ) ;
newStockArticleEntity . setTrays ( null ) ;
newStockArticleEntity . setCarsLoadNum ( 0 ) ;
Long orderId = distributionStockArticleClient . addData ( newStockArticleEntity ) ;
if ( orderId ! = 0 ) {
Integer isTransfer = 1 ;
List < DistributionParcelListEntity > parcelListEntityList = distributionParcelListClient . findEntityListByOrderCode ( orderCode , fromWarehouseId ) ;
List < DistributionParcelNumberEntity > ls = new ArrayList < > ( ) ;
for ( DistributionParcelListEntity parcelListEntity : parcelListEntityList ) {
DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity ( ) ;
BeanUtil . copy ( parcelListEntity , newParcelListEntity ) ;
newParcelListEntity . setId ( null ) ;
newParcelListEntity . setWarehouseId ( warehouseId ) ;
newParcelListEntity . setWarehouse ( warehouseEntity . getName ( ) ) ;
newParcelListEntity . setStockArticleId ( orderId ) ;
Long acceptWarehouseId = parcelListEntity . getAcceptWarehouseId ( ) ;
if ( warehouseId . equals ( acceptWarehouseId ) ) {
newParcelListEntity . setIsTransfer ( 0 ) ;
isTransfer = 0 ;
// String operationRemark = "运单装车"+unloadNum+"件 干线批次号:"+carsLoadEntity.getCarsNo()+",车牌号:"+carsLoadEntity.getCarNumber()+",司机姓名:"+carsLoadEntity.getDriverName()+",司机手机:"+carsLoadEntity.getDriverMobile();
// openOrderAsyncService.saveLog(waybillId, waybillNo, "30", "干线装车", operationRemark, AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName);
} else {
newParcelListEntity . setIsTransfer ( 1 ) ;
}
Long orderPackageId = distributionParcelListClient . addReturnId ( newParcelListEntity ) ;
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity ( ) ;
parcelNumberEntity . setStockArticleId ( orderId ) ;
parcelNumberEntity . setParcelListId ( orderPackageId ) ;
parcelNumberEntity . setQuantity ( newParcelListEntity . getQuantity ( ) ) ;
parcelNumberEntity . setHandQuantity ( newParcelListEntity . getQuantity ( ) ) ;
parcelNumberEntity . setDeliveryQuantity ( 0 ) ;
parcelNumberEntity . setSigninQuantity ( 0 ) ;
parcelNumberEntity . setOutboundQuantity ( 0 ) ;
parcelNumberEntity . setWarehouseId ( warehouseId ) ;
ls . add ( parcelNumberEntity ) ;
}
newStockArticleEntity . setOrderStatus ( "10" ) ;
newStockArticleEntity . setHandQuantity ( unloadNum ) ;
newStockArticleEntity . setIncomingNum ( unloadNum ) ;
newStockArticleEntity . setWarehouse ( warehouseEntity . getName ( ) ) ;
newStockArticleEntity . setWarehouseId ( warehouseEntity . getId ( ) ) ;
newStockArticleEntity . setAllocation ( null ) ;
newStockArticleEntity . setTrays ( null ) ;
newStockArticleEntity . setCarsLoadNum ( 0 ) ;
Long orderId = distributionStockArticleClient . addData ( newStockArticleEntity ) ;
if ( orderId ! = 0 ) {
Integer isTransfer = 1 ;
List < DistributionParcelListVO > parcelListEntityList = distributionParcelListClient . findEntityVOListByOrderCode ( orderCode , fromWarehouseId ) ;
List < DistributionParcelNumberEntity > ls = new ArrayList < > ( ) ;
for ( DistributionParcelListVO parcelListEntity : parcelListEntityList ) {
DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity ( ) ;
String firsts = parcelListEntity . getFirsts ( ) ;
List < TrunklineScanZeroDetailVO > detailVOList = goodsNamemap . get ( firsts ) ;
//把detailVOList所有元素的unloadNum求和,如果为空用0代替
int totalUnloadNum = detailVOList . stream ( )
. mapToInt ( vo - > Optional . ofNullable ( vo . getUnloadNum ( ) ) . orElse ( 0 ) )
. sum ( ) ;
BeanUtil . copy ( parcelListEntity , newParcelListEntity ) ;
newParcelListEntity . setId ( null ) ;
newParcelListEntity . setWarehouseId ( warehouseId ) ;
newParcelListEntity . setWarehouse ( warehouseEntity . getName ( ) ) ;
newParcelListEntity . setStockArticleId ( orderId ) ;
newParcelListEntity . setQuantity ( totalUnloadNum ) ;
Long acceptWarehouseId = parcelListEntity . getAcceptWarehouseId ( ) ;
if ( warehouseId . equals ( acceptWarehouseId ) ) {
newParcelListEntity . setIsTransfer ( 0 ) ;
isTransfer = 0 ;
} else {
newParcelListEntity . setIsTransfer ( 1 ) ;
}
distributionParcelNumberClient . addBatch ( ls ) ;
// if(isTransfer == 0){
// //查询零担发车件数
// List<ZeroNumVO> zeroNumVOList = trunklineCarsLoadScanService.findZeroStartNum(loadId,warehouseId);
// if(CollUtil.isNotEmpty(zeroNumVOList)){
// zeroNumVOList.forEach(zeroNumVO -> {
// String waybillNo = zeroNumVO.getWaybillNo();
// Integer num = zeroNumVO.getNum();
// WarehouseWaybillEntity waybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
// Integer totalCount = waybill.getTotalCount();
// Integer waybillStatusInt = Integer.parseInt(waybill.getWaybillStatus());
// TrunklineWaybillOrderEntity waybillOrderEntity = trunklineWaybillOrderService.findEntityByWaybillNoAndOrderCode(waybillNo,waybillNo);
// if(!Objects.isNull(waybillOrderEntity)){
// Integer handleNumber = waybillOrderEntity.getHandleNumber();
// if(waybillStatusInt <= 40){
// if(Objects.isNull(handleNumber)){
// handleNumber = 0;
// }
// int i = handleNumber - num;
// if(i==0){
// waybill.setWaybillStatus("20");
// waybillOrderEntity.setHandleNumber(totalCount);
// }else{
// waybill.setWaybillStatus("30");
// waybillOrderEntity.setHandleNumber(i);
// }
//
// warehouseWaybillClient.updateEntity(waybill);
// trunklineWaybillOrderService.updateById(waybillOrderEntity);
// }
//
// }
//
// });
// }
// }
Long orderPackageId = distributionParcelListClient . addReturnId ( newParcelListEntity ) ;
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity ( ) ;
parcelNumberEntity . setStockArticleId ( orderId ) ;
parcelNumberEntity . setParcelListId ( orderPackageId ) ;
parcelNumberEntity . setQuantity ( parcelListEntity . getZeroPackageTotalNum ( ) ) ;
parcelNumberEntity . setHandQuantity ( totalUnloadNum ) ;
parcelNumberEntity . setDeliveryQuantity ( 0 ) ;
parcelNumberEntity . setSigninQuantity ( 0 ) ;
parcelNumberEntity . setOutboundQuantity ( 0 ) ;
parcelNumberEntity . setWarehouseId ( warehouseId ) ;
ls . add ( parcelNumberEntity ) ;
}
} else {
Integer hQuantity = newStockArticleEntity . getHandQuantity ( ) + unloadNum ;
Integer incomingNum = newStockArticleEntity . getIncomingNum ( ) + unloadNum ;
Integer totalNumber = newStockArticleEntity . getTotalNumber ( ) ;
if ( incomingNum . equals ( totalNumber ) ) {
if ( hQuantity . equals ( totalNumber ) ) {
newStockArticleEntity . setOrderStatus ( "20" ) ;
} else {
newStockArticleEntity . setOrderStatus ( "30" ) ;
}
newStockArticleEntity . setOrderReceiveStatus ( "30" ) ;
distributionParcelNumberClient . addBatch ( ls ) ;
}
} else {
Integer hQuantity = newStockArticleEntity . getHandQuantity ( ) + unloadNum ;
Integer incomingNum = newStockArticleEntity . getIncomingNum ( ) + unloadNum ;
Integer totalNumber = newStockArticleEntity . getTotalNumber ( ) ;
if ( incomingNum . equals ( totalNumber ) ) {
if ( hQuantity . equals ( totalNumber ) ) {
newStockArticleEntity . setOrderStatus ( "20" ) ;
} else {
if ( incomingNum . equals ( hQuantity ) ) {
newStockArticleEntity . setOrderStatus ( "10" ) ;
} else {
newStockArticleEntity . setOrderStatus ( "30" ) ;
}
newStockArticleEntity . setOrderReceiveStatus ( "20" ) ;
newStockArticleEntity . setOrderStatus ( "30" ) ;
}
newStockArticleEntity . setOrderReceiveStatus ( "30" ) ;
} else {
newStockArticleEntity . setOrderReceiveStatus ( "20" ) ;
}
newStockArticleEntity . setHandQuantity ( hQuantity ) ;
newStockArticleEntity . setIncomingNum ( incomingNum ) ;
List < DistributionParcelListEntity > listEntityList = distributionParcelListClient . findEntityListByOrderCode ( orderCode , warehouseId ) ;
//把listEntityList中所有元素的id放入一个集合
List < Long > parcelListIds = listEntityList . stream ( ) . map ( DistributionParcelListEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
List < DistributionParcelNumberEntity > parceNumberList = distributionParcelNumberClient . findListByParcelListIds ( parcelListIds ) ;
//把parceNumberList转化成以parcelListId为key的Map
Map < Long , DistributionParcelNumberEntity > mapByParcelListId = parceNumberList . stream ( )
. collect ( Collectors . toMap (
DistributionParcelNumberEntity : : getParcelListId ,
entity - > entity ,
( entity1 , entity2 ) - > entity1 ) ) ; // 处理可能的键冲突
List < DistributionParcelListEntity > updateParceList = new ArrayList < > ( ) ;
List < DistributionParcelNumberEntity > updateParceNumberList = new ArrayList < > ( ) ;
listEntityList . forEach ( entity - > {
Long parceListId = entity . getId ( ) ;
String firsts = entity . getFirsts ( ) ;
List < TrunklineScanZeroDetailVO > detailVOList = goodsNamemap . get ( firsts ) ;
//把detailVOList所有元素的unloadNum求和,如果为空用0代替
int totalUnloadNum = detailVOList . stream ( )
. mapToInt ( vo - > Optional . ofNullable ( vo . getUnloadNum ( ) ) . orElse ( 0 ) )
. sum ( ) ;
Integer quantity = entity . getQuantity ( ) ;
DistributionParcelListEntity updatePaceList = new DistributionParcelListEntity ( ) ;
updatePaceList . setId ( parceListId ) ;
updatePaceList . setQuantity ( quantity + totalUnloadNum ) ;
updateParceList . add ( updatePaceList ) ;
DistributionParcelNumberEntity parcelNumberEntity = mapByParcelListId . get ( parceListId ) ;
if ( ! Objects . isNull ( parcelNumberEntity ) ) {
Integer handQuantity = parcelNumberEntity . getHandQuantity ( ) ;
DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity ( ) ;
updateParceNumberEntity . setId ( parcelNumberEntity . getId ( ) ) ;
updateParceNumberEntity . setHandQuantity ( handQuantity + totalUnloadNum ) ;
updateParceNumberList . add ( updateParceNumberEntity ) ;
}
newStockArticleEntity . setHandQuantity ( hQuantity ) ;
newStockArticleEntity . setIncomingNum ( incomingNum ) ;
distributionStockArticleClient . saveOrUpdate ( newStockArticleEntity ) ;
// String waybillNumber = newStockArticleEntity.getWaybillNumber();
// WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNumber);
// Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();
// if(warehouseId.equals(destinationWarehouseId)){
// QueryWrapper<TrunklineWaybillOrderEntity> queryWrapper1 = new QueryWrapper<>();
// queryWrapper1.eq("waybill_no",stockArticleEntity.getWaybillNumber())
// .eq("order_code",stockArticleEntity.getWaybillNumber());
// TrunklineWaybillOrderEntity one = trunklineWaybillOrderService.getOne(queryWrapper1);
// if(!Objects.isNull(one)){
// Integer totalCount = warehouseWaybillEntity.getTotalCount();
// Integer waybillStatusInt = Integer.parseInt(warehouseWaybillEntity.getWaybillStatus());
// if(waybillStatusInt <= 30){
// Integer handleNumber = one.getHandleNumber();
// int total = handleNumber + unloadNum;
// if(total < totalCount){
// warehouseWaybillEntity.setWaybillStatus("50");
// one.setHandleNumber(total);
// }else{
// warehouseWaybillEntity.setWaybillStatus("60");
// one.setHandleNumber(totalCount);
// }
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }
// }
// }
} ) ;
if ( CollUtil . isNotEmpty ( updateParceList ) ) {
distributionParcelListClient . updateList ( updateParceList ) ;
}
if ( CollUtil . isNotEmpty ( updateParceNumberList ) ) {
distributionParcelNumberClient . updateList ( updateParceNumberList ) ;
}
distributionStockArticleClient . saveOrUpdate ( newStockArticleEntity ) ;
}
}
}
@ -1364,48 +1357,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient . findByWaybillNo ( orderCode ) ;
waybillPackageService . updateWaybillStatus ( warehouseWaybillEntity ) ;
// String waybillNo = warehouseWaybillEntity.getWaybillNo();
// Long waybillId = warehouseWaybillEntity.getId();
// int unloadNum = orderCodeList.stream().mapToInt(TrunklineCarsLoadScanEntity::getUnloadNum).sum();
// Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId();
// if(warehouseId.equals(destinationWarehouseId)){
// QueryWrapper<TrunklineWaybillOrderEntity> queryWrapper1 = new QueryWrapper<>();
// queryWrapper1.eq("waybill_no",orderCode)
// .eq("order_code",orderCode);
// TrunklineWaybillOrderEntity one = trunklineWaybillOrderService.getOne(queryWrapper1);
// if(!Objects.isNull(one)){
// Integer handleNumber = one.getHandleNumber();
// Integer totalCount = warehouseWaybillEntity.getTotalCount();
// Integer waybillStatusInt = Integer.parseInt(warehouseWaybillEntity.getWaybillStatus());
// int total = handleNumber + unloadNum;
// if(waybillStatusInt < 50){
// if(total != totalCount){
// warehouseWaybillEntity.setWaybillStatus("50");
// one.setHandleNumber(total);
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }else{
// warehouseWaybillEntity.setWaybillStatus("60");
// one.setHandleNumber(total);
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }
// }else if(waybillStatusInt == 50){
// if(total == totalCount){
// warehouseWaybillEntity.setWaybillStatus("60");
// one.setHandleNumber(total);
// warehouseWaybillClient.updateEntity(warehouseWaybillEntity);
// trunklineWaybillOrderService.updateById(one);
// }
// }
// }
// }
} ) ;
}
//无装车记录异常日志记录
try {
// carsLoadAsyncService.
carsLoadAsyncService . abnormalListUnloadCheckByLoadIdAndWarehouseId ( loadId , warehouseId , currentCarsLoadLineEntity . getNodeName ( ) , AuthUtil . getTenantId ( ) , AuthUtil . getUserId ( ) , AuthUtil . getNickName ( ) , Func . firstLong ( AuthUtil . getDeptId ( ) ) , currentCarsLoadLineEntity ) ;
List < String > orderPackageCodes = trunklineCarsLoadScanService . findUnloadByLoadIdAndWarehouseId ( loadId , warehouseId ) ;
@ -1715,8 +1672,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
page . setSize ( loadCarsDTO . getPageSize ( ) ) ;
//查询当前仓零担在库列表
// IPage<JSONObject> pageList = distributionStockArticleClient.findZeroListByWarehouseId(warehouseId,pageNum,pageSize);
IPage < JSONObject > pageList = baseMapper . findSignOrderZeroListByWarehouseId ( page , loadCarsDTO ) ;
IPage < ZeroSuppleListVO > pageList = baseMapper . findSignOrderZeroListByWarehouseId ( page , loadCarsDTO ) ;
List < ZeroSuppleListVO > records = pageList . getRecords ( ) ;
//把records中所有元素的orderId放入一个集合
List < Long > orderIdList = records . stream ( ) . map ( ZeroSuppleListVO : : getOrderId ) . collect ( Collectors . toList ( ) ) ;
List < ZeroPackageSupplyVO > packageList = distributionParcelListClient . findListByStockArticleIds ( orderIdList ) ;
//把packageList中所有元素通过stockArticleId进行分组
Map < Long , List < ZeroPackageSupplyVO > > map = packageList . stream ( ) . collect ( Collectors . groupingBy ( ZeroPackageSupplyVO : : getStockArticleId ) ) ;
records . forEach ( zeroSuppleListVO - > {
Long orderId = zeroSuppleListVO . getOrderId ( ) ;
List < JSONObject > jsonObjectList = new ArrayList < > ( ) ;
List < ZeroPackageSupplyVO > zeroPackageSupplyVOS = map . get ( orderId ) ;
zeroPackageSupplyVOS . forEach ( zeroPackageSupplyVO - > {
jsonObjectList . add ( JSONObject . parseObject ( JSONObject . toJSONString ( zeroPackageSupplyVO ) ) ) ;
} ) ;
zeroSuppleListVO . setZeroPackageSupplyVOS ( jsonObjectList ) ;
} ) ;
pageList . setRecords ( records ) ;
return R . data ( pageList ) ;
}
@ -3218,8 +3191,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
} ) ;
}
}
scanZeroDetailService . saveBatch ( zeroDetailList ) ;
distributionParcelListClient . updateList ( updateParceList ) ;
if ( CollUtil . isNotEmpty ( zeroDetailList ) ) {
scanZeroDetailService . saveBatch ( zeroDetailList ) ;
}
if ( CollUtil . isNotEmpty ( updateParceList ) ) {
distributionParcelListClient . updateList ( updateParceList ) ;
}
difficult = enterNum ;
distributionStockArticleClient . submitHandleNumByOrderId ( enterNum , articleId ) ;
@ -3280,8 +3257,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
zeroDetailList . add ( scanZeroDetailEntity ) ;
}
distributionParcelListClient . updateList ( updateParceList ) ;
scanZeroDetailService . updateBatchById ( zeroDetailList ) ;
if ( CollUtil . isNotEmpty ( zeroDetailList ) ) {
scanZeroDetailService . updateBatchById ( zeroDetailList ) ;
}
if ( CollUtil . isNotEmpty ( updateParceList ) ) {
distributionParcelListClient . updateList ( updateParceList ) ;
}
}
audio = ( enterNum ) + "件" ;
@ -3802,8 +3783,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
page . setSize ( loadCarsDTO . getPageSize ( ) ) ;
//查询当前仓零担在库列表
// IPage<JSONObject> pageList = distributionStockArticleClient.findZeroListByWarehouseId(warehouseId,pageNum,pageSize);
IPage < JSONObject > pageList = baseMapper . findZeroListByWarehouseId ( page , loadCarsDTO ) ;
IPage < ZeroSuppleListVO > pageList = baseMapper . findZeroListByWarehouseId ( page , loadCarsDTO ) ;
List < ZeroSuppleListVO > records = pageList . getRecords ( ) ;
//把records中所有元素的orderId放入一个集合
List < Long > orderIdList = records . stream ( ) . map ( ZeroSuppleListVO : : getOrderId ) . collect ( Collectors . toList ( ) ) ;
List < ZeroPackageSupplyVO > packageList = distributionParcelListClient . findListByStockArticleIds ( orderIdList ) ;
//把packageList中所有元素通过stockArticleId进行分组
Map < Long , List < ZeroPackageSupplyVO > > map = packageList . stream ( ) . collect ( Collectors . groupingBy ( ZeroPackageSupplyVO : : getStockArticleId ) ) ;
records . forEach ( zeroSuppleListVO - > {
Long orderId = zeroSuppleListVO . getOrderId ( ) ;
List < JSONObject > jsonObjectList = new ArrayList < > ( ) ;
List < ZeroPackageSupplyVO > zeroPackageSupplyVOS = map . get ( orderId ) ;
zeroPackageSupplyVOS . forEach ( zeroPackageSupplyVO - > {
jsonObjectList . add ( JSONObject . parseObject ( JSONObject . toJSONString ( zeroPackageSupplyVO ) ) ) ;
} ) ;
zeroSuppleListVO . setZeroPackageSupplyVOS ( jsonObjectList ) ;
} ) ;
pageList . setRecords ( records ) ;
return R . data ( pageList ) ;
}
@ -3855,6 +3852,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer enterNum = zeroSuppleVO . getEnterNum ( ) ;
Long finalNodeId = zeroSuppleVO . getFinalNodeId ( ) ;
Long signOrderId = zeroSuppleVO . getSignOrderId ( ) ;
List < ZeroPackageDTO > zeroPackageList = zeroSuppleVO . getZeroPackageList ( ) ;
WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient . findByWaybillNo ( waybillNo ) ;
if ( Objects . isNull ( warehouseWaybillEntity ) ) {
@ -3898,6 +3896,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity . setIsSupple ( 1 ) ;
carsLoadScanEntity . setSignOrderId ( signOrderId ) ;
trunklineCarsLoadScanService . save ( carsLoadScanEntity ) ;
Long scanLoadId = carsLoadScanEntity . getId ( ) ;
List < TrunklineScanZeroDetailEntity > scanZeroDetailEntityList = new ArrayList < > ( ) ;
zeroPackageList . forEach ( zeroPackageDTO - > {
Long packageId = zeroPackageDTO . getPackageId ( ) ;
Integer packageNum = zeroPackageDTO . getEnterNum ( ) ;
TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity ( ) ;
scanZeroDetailEntity . setScanId ( scanLoadId ) ;
scanZeroDetailEntity . setPackageId ( zeroPackageDTO . getPackageId ( ) ) ;
scanZeroDetailEntity . setGoodsId ( zeroPackageDTO . getGoodsId ( ) ) ;
scanZeroDetailEntity . setGoodsName ( zeroPackageDTO . getGoodsName ( ) ) ;
scanZeroDetailEntity . setLoadingNum ( packageNum ) ;
scanZeroDetailEntity . setUnloadNum ( 0 ) ;
scanZeroDetailEntityList . add ( scanZeroDetailEntity ) ;
distributionParcelListClient . addZeroQuantity ( packageId , - packageNum ) ;
} ) ;
scanZeroDetailService . saveBatch ( scanZeroDetailEntityList ) ;
zeroStockArticleEntity . setHandQuantity ( zeroStockArticleEntity . getHandQuantity ( ) - enterNum ) ;
@ -3910,14 +3925,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
if ( ! Objects . isNull ( signOrderId ) ) {
updateSignOrderNumBySignOrderId ( signOrderId ) ;
// TrunklineLoadSignOrderEntity signOrderEntity = trunklineLoadSignOrderService.getById(signOrderId);
// signOrderEntity.setPlanNum(signOrderEntity.getPlanNum() + enterNum);
// signOrderEntity.setLoadingNum(signOrderEntity.getLoadingNum() + enterNum);
// Integer signNum = signOrderEntity.getSignNum();
// if(signNum > 0 ){
// signOrderEntity.setSignStatus("10");
// }
// trunklineLoadSignOrderService.updateById(signOrderEntity);
}
}
//更新数量
@ -4031,6 +4038,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long warehouseId = loadCarsDTO . getWarehouseId ( ) ;
Integer incomingType = loadCarsDTO . getIncomingType ( ) ;
Long carsLoadScanId = loadCarsDTO . getCarsLoadScanId ( ) ;
List < ZeroPackageDTO > zeroPackageList = loadCarsDTO . getZeroPackageList ( ) ;
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient . getTrayByTrayCode ( trayCode ) ;
if ( Objects . isNull ( basicdataTrayEntity ) ) {
@ -4050,7 +4058,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
R r = trayTypeClient . orderScanOrderPackageCodeReturnR ( map ) ;
int code = r . getCode ( ) ;
if ( code ! = 200 ) {
log . warn ( "##########findNextNodeList : 打托失败 trayCode={} orderPackageCode={} msg={}" , trayCode , orderPackageCode , r . getMsg ( ) ) ;
log . warn ( "##########unloadTrayAllOne : 打托失败 trayCode={} orderPackageCode={} msg={}" , trayCode , orderPackageCode , r . getMsg ( ) ) ;
return R . fail ( code , r . getMsg ( ) ) ;
} else {
String data = ( String ) r . getData ( ) ;
@ -4064,7 +4072,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
} else {
unloadZero ( carsLoadScanId , loadId , waybillNo , enterNum , warehouseId , 1 , null , orderCode , "卸分一体 卸车" , palletName , trayCode ) ;
if ( CollUtil . isEmpty ( zeroPackageList ) ) {
log . warn ( "##########unloadTrayAllOne: 品类信息有误 carsLoadScanId={} " , carsLoadScanId ) ;
return R . fail ( 405 , "品类信息有误" ) ;
}
unloadZero ( carsLoadScanId , loadId , waybillNo , enterNum , warehouseId , 1 , null , orderCode , "卸分一体 卸车" , palletName , trayCode , zeroPackageList ) ;
Map < String , Object > map = new HashMap < > ( ) ;
map . put ( "trayType" , trayType ) ;
@ -4158,6 +4171,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R . fail ( 405 , "配载计划信息不存在" ) ;
}
String loadCode = carsLoadEntity . getCarsNo ( ) ;
String carrierName = carsLoadEntity . getCarrierName ( ) ;
// TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
// if(Objects.isNull(carsLoadLineEntity)){
@ -4168,7 +4182,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long trayId = null ;
String trayName = null ;
String trayCode = null ;
String content = "包件在 " + warehouseName + " 扫码 卸车,车次号:" + loadCode + "." ;
String content = "包件在 " + warehouseName + " 扫码 卸车,车次号:" + loadCode + ",由[" + carrierName + "] 承运 ." ;
//判断包件是否已入库
// DistributionParcelListEntity distributionParcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode, warehouseId);
@ -4387,7 +4401,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Override
public R transferUnloadZero ( Long carsLoadScanId , Long loadId , String waybillNo , Integer enterNum , Long warehouseId , Integer unbindTray , String trayCode , String orderCode , String remark ) {
public R transferUnloadZero ( Long carsLoadScanId , Long loadId , String waybillNo , Integer enterNum , Long warehouseId , Integer unbindTray , String trayCode , String orderCode , String remark , List < ZeroPackageDTO > zeroPackageList ) {
log . info ( "#############transferUnloadZero: 三方中转卸车零担" ) ;
TrunklineCarsLoadEntity carsLoadEntity = baseMapper . selectById ( loadId ) ;
@ -4450,6 +4464,15 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity . setScanStatus ( "2" ) ;
trunklineCarsLoadScanService . updateById ( carsLoadScanEntity ) ;
List < TrunklineScanZeroDetailEntity > updateScanZeroDetailList = new ArrayList < > ( ) ;
zeroPackageList . forEach ( zeroPackageDTO - > {
TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity ( ) ;
scanZeroDetailEntity . setId ( zeroPackageDTO . getId ( ) ) ;
scanZeroDetailEntity . setUnloadNum ( zeroPackageDTO . getEnterNum ( ) ) ;
updateScanZeroDetailList . add ( scanZeroDetailEntity ) ;
} ) ;
scanZeroDetailService . updateBatchById ( updateScanZeroDetailList ) ;
trunklineCarsUnloadLogService . savaUnloadLog ( warehouseId , warehouseName , loadId , loadCode , waybillId , waybillNo , orderCode ,
scanCode , enterNum , 2 , 1 , isAbnormal , trayId , trayCode , trayName , fromWarehouseId , loadScanId , remark ) ;
@ -4494,7 +4517,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Integer num = carsLoadScanEntity . getNum ( ) ;
String orderCode = carsLoadScanEntity . getOrderCode ( ) ;
Long carsLoadScanId = carsLoadScanEntity . getId ( ) ;
transferUnloadZero ( carsLoadScanId , loadId , waybillNo , num , warehouseId , 0 , trayCode , orderCode , "三方中装托盘零担正常卸车" ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanId ( carsLoadScanId ) ;
List < ZeroPackageDTO > zeroPackageList = new ArrayList < > ( ) ;
zeroDetailVOList . forEach ( zeroDetailVO - > {
ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO ( ) ;
zeroPackageDTO . setId ( zeroDetailVO . getId ( ) ) ;
zeroPackageDTO . setPackageId ( zeroDetailVO . getPackageId ( ) ) ;
zeroPackageDTO . setGoodsId ( zeroDetailVO . getGoodsId ( ) ) ;
zeroPackageDTO . setGoodsName ( zeroDetailVO . getGoodsName ( ) ) ;
zeroPackageDTO . setEnterNum ( zeroDetailVO . getLoadingNum ( ) ) ;
zeroPackageList . add ( zeroPackageDTO ) ;
} ) ;
transferUnloadZero ( carsLoadScanId , loadId , waybillNo , num , warehouseId , 0 , trayCode , orderCode , "三方中装托盘零担正常卸车" , zeroPackageList ) ;
}
}
@ -4559,14 +4593,32 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List < UnloadPackageDTO > unloadPackageList = batchUnloadDTO . getUnloadPackageList ( ) ;
List < UnloadZeroDTO > unloadZeroList = batchUnloadDTO . getUnloadZeroList ( ) ;
for ( UnloadZeroDTO unloadZeroDTO : unloadZeroList ) {
Long carsLoadScanId = unloadZeroDTO . getCarsLoadScanId ( ) ;
String waybillNo = unloadZeroDTO . getWaybillNo ( ) ;
Integer enterNum = unloadZeroDTO . getEnterNum ( ) ;
String trayCode = unloadZeroDTO . getTrayCode ( ) ;
String orderCode = unloadZeroDTO . getOrderCode ( ) ;
unloadZero ( carsLoadScanId , loadId , waybillNo , enterNum , warehouseId , 1 , trayCode , orderCode , "批量卸车零担正常卸车" , null , null ) ;
//把unloadZeroList中所有元素的carsLoadScanId放入一个list中
List < Long > carsLoadScanIdList = unloadZeroList . stream ( ) . map ( UnloadZeroDTO : : getCarsLoadScanId ) . collect ( Collectors . toList ( ) ) ;
if ( CollUtil . isNotEmpty ( carsLoadScanIdList ) ) {
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanIds ( carsLoadScanIdList ) ;
//把zeroDetailVOList所有元素通过id分组
Map < Long , List < TrunklineScanZeroDetailVO > > zeroDetailVOMap = zeroDetailVOList . stream ( ) . collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getId ) ) ;
for ( UnloadZeroDTO unloadZeroDTO : unloadZeroList ) {
Long carsLoadScanId = unloadZeroDTO . getCarsLoadScanId ( ) ;
String waybillNo = unloadZeroDTO . getWaybillNo ( ) ;
Integer enterNum = unloadZeroDTO . getEnterNum ( ) ;
String trayCode = unloadZeroDTO . getTrayCode ( ) ;
String orderCode = unloadZeroDTO . getOrderCode ( ) ;
List < TrunklineScanZeroDetailVO > list = zeroDetailVOMap . get ( carsLoadScanId ) ;
List < ZeroPackageDTO > zeroPackageList = new ArrayList < > ( ) ;
list . forEach ( zeroDetailVO - > {
ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO ( ) ;
zeroPackageDTO . setPackageId ( zeroDetailVO . getPackageId ( ) ) ;
zeroPackageDTO . setGoodsId ( zeroDetailVO . getGoodsId ( ) ) ;
zeroPackageDTO . setGoodsName ( zeroDetailVO . getGoodsName ( ) ) ;
zeroPackageDTO . setEnterNum ( zeroDetailVO . getLoadingNum ( ) ) ;
zeroPackageList . add ( zeroPackageDTO ) ;
} ) ;
unloadZero ( carsLoadScanId , loadId , waybillNo , enterNum , warehouseId , 1 , trayCode , orderCode , "批量卸车零担正常卸车" , null , null , zeroPackageList ) ;
}
}
List < Long > carsLoadScanIds = new ArrayList < > ( ) ;
@ -4596,7 +4648,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
findParamterDTO . setWarehouseId ( fromWarehouseId ) ;
List < DistributionStockArticleEntity > stockArticleEntityList = distributionStockArticleClient . findListByOrderCodesAndWarehouseId ( findParamterDTO ) ;
stockArticleEntities . addAll ( stockArticleEntityList ) ;
} ) ;
//把stockArticleEntities转成orderCode为键值的map
@ -5042,7 +5093,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String trayCode = unloadZeroDTO . getTrayCode ( ) ;
String orderCode = unloadZeroDTO . getOrderCode ( ) ;
Long carsLoadScanId = unloadZeroDTO . getCarsLoadScanId ( ) ;
transferUnloadZero ( carsLoadScanId , loadId , waybillNo , enterNum , warehouseId , 1 , trayCode , orderCode , "批量卸车零担正常卸车" ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanId ( carsLoadScanId ) ;
List < ZeroPackageDTO > zeroPackageList = new ArrayList < > ( ) ;
zeroDetailVOList . forEach ( zeroDetailVO - > {
ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO ( ) ;
zeroPackageDTO . setId ( zeroDetailVO . getId ( ) ) ;
zeroPackageDTO . setPackageId ( zeroDetailVO . getPackageId ( ) ) ;
zeroPackageDTO . setGoodsId ( zeroDetailVO . getGoodsId ( ) ) ;
zeroPackageDTO . setGoodsName ( zeroDetailVO . getGoodsName ( ) ) ;
zeroPackageDTO . setEnterNum ( zeroDetailVO . getLoadingNum ( ) ) ;
zeroPackageList . add ( zeroPackageDTO ) ;
} ) ;
transferUnloadZero ( carsLoadScanId , loadId , waybillNo , enterNum , warehouseId , 1 , trayCode , orderCode , "批量卸车零担正常卸车" , zeroPackageList ) ;
}
@ -5350,20 +5412,52 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
Long fromWarehouseId = signOrderVO . getWarehouseId ( ) ;
//查询订单列表
List < SignScanOrderVO > signScanOrderList = trunklineCarsOrderService . findSignOrderList ( loadId , fromWarehouseId , signOrderId ) ;
List < SignScanOrderVO > signScanOrderList = trunklineCarsOrderService . findSignOrderListBySignOrderId ( signOrderId ) ;
List < SignPackageVO > signPackageList = trunklineCarsLoadScanService . findSignPackageListBySignOrderId ( signOrderId ) ;
for ( SignScanOrderVO signScanOrderVO : signScanOrderList ) {
String waybillNo = signScanOrderVO . getWaybillNo ( ) ;
String orderCode = signScanOrderVO . getOrderCode ( ) ;
List < SignPackageVO > signPackageList = trunklineCarsLoadScanService . findSignPackageList ( loadId , fromWarehouseId , orderCode , waybillNo ) ;
signScanOrderVO . setSignPackageList ( signPackageList ) ;
}
String waybillNo = StringUtil . isBlank ( signScanOrderVO . getWaybillNo ( ) ) ? "null" : signScanOrderVO . getWaybillNo ( ) ;
String orderCode = StringUtil . isBlank ( signScanOrderVO . getOrderCode ( ) ) ? "null" : signScanOrderVO . getOrderCode ( ) ;
List < SignPackageVO > ls = new ArrayList < > ( ) ;
signPackageList . forEach ( e - > {
String waybillNo1 = StringUtil . isBlank ( e . getWaybillNo ( ) ) ? "null" : e . getWaybillNo ( ) ;
String orderCode1 = StringUtil . isBlank ( e . getOrderCode ( ) ) ? "null" : e . getOrderCode ( ) ;
if ( waybillNo . equals ( waybillNo1 ) & & orderCode . equals ( orderCode1 ) ) {
ls . add ( e ) ;
}
} ) ;
signScanOrderVO . setSignPackageList ( ls ) ;
}
List < SignScanOrderVO > signScanZeroOrderList = trunklineCarsOrderService . findSignZeroOrderListBySignOrderId ( signOrderId ) ;
List < SignPackageVO > signZeroPackageList = trunklineCarsLoadScanService . findSignPackageListBySignOrderId ( signOrderId ) ;
// 创建一个包含所有carsLoadScanId的新列表
List < Long > carsLoadScanIds = signZeroPackageList . stream ( )
. map ( SignPackageVO : : getCarsLoadScanId )
. collect ( Collectors . toList ( ) ) ;
List < TrunklineScanZeroDetailVO > scanZeroDetailList = scanZeroDetailService . findListByCarsLoadScanIds ( carsLoadScanIds ) ;
//把scanZeroDetailList中所有元素通过id进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > scanZeroDetailMap = scanZeroDetailList . stream ( )
. collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getScanId ) ) ;
signZeroPackageList . forEach ( signPackageVO - > {
Long carsLoadScanId = signPackageVO . getCarsLoadScanId ( ) ;
List < TrunklineScanZeroDetailVO > list = scanZeroDetailMap . get ( carsLoadScanId ) ;
signPackageVO . setScanZeroDetailList ( list ) ;
} ) ;
List < SignScanOrderVO > signScanZeroOrderList = trunklineCarsOrderService . findSignZeroOrderList ( loadId , fromWarehouseId , signOrderId ) ;
for ( SignScanOrderVO signScanOrderVO : signScanZeroOrderList ) {
String waybillNo = signScanOrderVO . getWaybillNo ( ) ;
String orderCode = signScanOrderVO . getOrderCode ( ) ;
List < SignPackageVO > signPackageList = trunklineCarsLoadScanService . findSignPackageList ( loadId , fromWarehouseId , orderCode , waybillNo ) ;
signScanOrderVO . setSignPackageList ( signPackageList ) ;
String waybillNo = StringUtil . isBlank ( signScanOrderVO . getWaybillNo ( ) ) ? "null" : signScanOrderVO . getWaybillNo ( ) ;
String orderCode = StringUtil . isBlank ( signScanOrderVO . getOrderCode ( ) ) ? "null" : signScanOrderVO . getOrderCode ( ) ;
List < SignPackageVO > ls = new ArrayList < > ( ) ;
signZeroPackageList . forEach ( e - > {
String waybillNo1 = StringUtil . isBlank ( e . getWaybillNo ( ) ) ? "null" : e . getWaybillNo ( ) ;
String orderCode1 = StringUtil . isBlank ( e . getOrderCode ( ) ) ? "null" : e . getOrderCode ( ) ;
if ( waybillNo . equals ( waybillNo1 ) & & orderCode . equals ( orderCode1 ) ) {
ls . add ( e ) ;
}
} ) ;
signScanOrderVO . setSignPackageList ( ls ) ;
}
//查询异常列表
@ -5717,7 +5811,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
@Override
public R signZeroOrder ( Long signOrderId , Long carsLoadScanId , Integer enterNum , String remark ) {
public R signZeroOrder ( Long signOrderId , Long carsLoadScanId , Integer enterNum , String remark , List < ZeroPackageDTO > zeroPackageList ) {
Date date = new Date ( ) ;
TrunklineLoadSignOrderEntity signOrderEntity = trunklineLoadSignOrderService . getById ( signOrderId ) ;
if ( Objects . isNull ( signOrderEntity ) ) {
@ -5779,6 +5873,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity . setSignOrderId ( signOrderId ) ;
trunklineCarsLoadScanService . updateById ( carsLoadScanEntity ) ;
List < TrunklineScanZeroDetailEntity > updateScanZeroDetailList = new ArrayList < > ( ) ;
zeroPackageList . forEach ( zeroPackage - > {
TrunklineScanZeroDetailEntity updateEntity = new TrunklineScanZeroDetailEntity ( ) ;
updateEntity . setId ( zeroPackage . getId ( ) ) ;
updateEntity . setUnloadNum ( zeroPackage . getEnterNum ( ) ) ;
updateScanZeroDetailList . add ( updateEntity ) ;
} ) ;
if ( CollUtil . isNotEmpty ( updateScanZeroDetailList ) ) {
scanZeroDetailService . updateBatchById ( updateScanZeroDetailList ) ;
}
//生成签收记录
trunklineCarsSignLogService . addEntity ( carsLoadScanEntity , remark ) ;
@ -5846,7 +5952,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List < Long > signOrderIds = new ArrayList < > ( ) ;
List < TrunklineCarsLoadScanEntity > updateCarsLoadScanList = new ArrayList < > ( ) ;
List < DistributionParcelListEntity > updateParcelList = new ArrayList < > ( ) ;
List < TrunklineScanZeroDetailEntity > updateZerpPackageList = new ArrayList < > ( ) ;
Date date = new Date ( ) ;
if ( ! list . isEmpty ( ) ) {
@ -5875,7 +5981,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
entity . setUnloadTime ( date ) ;
entity . setUnloadNodeId ( warehouseId ) ;
entity . setUnloadNodeName ( warehouseName ) ;
if ( entity . getType ( ) . equals ( 1 ) ) {
Integer type = entity . getType ( ) ;
Long carsLoadScanId = t . getCarsLoadScanId ( ) ;
if ( type . equals ( 1 ) ) {
String scanCode = entity . getScanCode ( ) ;
List < DistributionParcelListEntity > parcelList = parcelListMap . get ( scanCode ) ;
if ( ! Objects . isNull ( parcelList ) ) {
@ -5885,6 +5993,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
} ) ;
}
orderPackageCodes . add ( entity . getScanCode ( ) ) ;
} else if ( type . equals ( 2 ) ) {
//零担
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanId ( carsLoadScanId ) ;
zeroDetailVOList . forEach ( p - > {
TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity ( ) ;
scanZeroDetailEntity . setId ( p . getId ( ) ) ;
scanZeroDetailEntity . setUnloadNum ( p . getLoadingNum ( ) ) ;
updateZerpPackageList . add ( scanZeroDetailEntity ) ;
} ) ;
}
updateCarsLoadScanList . add ( entity ) ;
loadIds . add ( entity . getLoadId ( ) ) ;
@ -5919,6 +6037,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
trunklineCarsLoadScanService . updateBatchById ( updateCarsLoadScanList ) ;
if ( CollUtil . isNotEmpty ( updateZerpPackageList ) ) {
scanZeroDetailService . updateBatchById ( updateZerpPackageList ) ;
}
//生成签收记录
trunklineCarsSignLogService . addList ( updateCarsLoadScanList , "PC批量签收" ) ;
@ -8953,9 +9075,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
@Override
public R unloadZero ( Long carsLoadScanId , Long loadId , String waybillNo , Integer enterNun , Long warehouseId , Integer unbindTray , String trayCode , String orderCode , String remark , String unloadTrayName , String unloadTrayCode ) {
public R unloadZero ( Long carsLoadScanId , Long loadId , String waybillNo , Integer enterNun , Long warehouseId , Integer unbindTray , String trayCode , String orderCode , String remark , String unloadTrayName , String unloadTrayCode , List < ZeroPackageDTO > zeroPackageList ) {
log . info ( "#############unloadZero: 卸车零担" ) ;
if ( CollUtil . isEmpty ( zeroPackageList ) ) {
log . warn ( "#############unloadZero: ;品类信息有误 zeroPackageList={}" , zeroPackageList ) ;
return R . fail ( 405 , "品类信息有误" ) ;
}
TrunklineCarsLoadEntity carsLoadEntity = baseMapper . selectById ( loadId ) ;
if ( Objects . isNull ( carsLoadEntity ) ) {
log . warn ( "#############unloadZero: 配载计划信息不存在 loadId={}" , loadId ) ;
@ -9029,6 +9156,27 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
carsLoadScanEntity . setUnloadTrayCode ( unloadTrayCode ) ;
trunklineCarsLoadScanService . updateById ( carsLoadScanEntity ) ;
//把zeroPackageList中所有元素转化成以goodsId为key的map
Map < Long , ZeroPackageDTO > zeroDetailMap = zeroPackageList . stream ( ) . collect ( Collectors . toMap ( ZeroPackageDTO : : getGoodsId , Function . identity ( ) ) ) ;
List < TrunklineScanZeroDetailVO > zeroDetailVOList = scanZeroDetailService . findListByCarsLoadScanId ( carsLoadScanId ) ;
List < TrunklineScanZeroDetailEntity > updateList = new ArrayList < > ( ) ;
zeroDetailVOList . forEach ( detailVO - > {
Long goodsId = detailVO . getGoodsId ( ) ;
Long id = detailVO . getId ( ) ;
ZeroPackageDTO zeroPackageDTO = zeroDetailMap . get ( goodsId ) ;
if ( ! Objects . isNull ( zeroPackageDTO ) ) {
TrunklineScanZeroDetailEntity updateEntity = new TrunklineScanZeroDetailEntity ( ) ;
updateEntity . setId ( id ) ;
updateEntity . setUnloadNum ( zeroPackageDTO . getEnterNum ( ) ) ;
updateList . add ( updateEntity ) ;
}
} ) ;
if ( CollUtil . isNotEmpty ( updateList ) ) {
scanZeroDetailService . updateBatchById ( updateList ) ;
}
trunklineCarsUnloadLogService . savaUnloadLog ( warehouseId , warehouseName , loadId , loadCode , waybillId , waybillNo , orderCode ,
scanCode , enterNun , 2 , 1 , isAbnormal , trayId , trayCode , trayName , fromWarehouseId , loadScanId , remark ) ;
@ -9435,24 +9583,63 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
//查询已扫描卸车的包件
List < UnloadScanOrderVO > unloadScanOrderList = trunklineCarsLoadScanService . findPackageWithOrderList ( loadId , warehouseId ) ;
for ( UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList ) {
Integer loadingNum = unloadScanOrderVO . getLoadingNum ( ) ;
String waybillNo = unloadScanOrderVO . getWaybillNo ( ) ;
String orderCode = unloadScanOrderVO . getOrderCode ( ) ;
Integer totalNumber = trunklineAdvanceDetailService . findTotalNumByOrderCode ( orderCode ) ;
unloadScanOrderVO . setTotalNumber ( totalNumber ) ;
List < UnloadPackageVO > unloadPackageList = trunklineCarsLoadScanService . findUnloadPackageList ( loadId , warehouseId , waybillNo , orderCode ) ;
unloadScanOrderVO . setUnloadPackageList ( unloadPackageList ) ;
if ( CollUtil . isNotEmpty ( unloadScanOrderList ) ) {
//把unloadScanOrderList中所有元素转化成以orderCode为key的map
Map < String , UnloadScanOrderVO > unloadScanOrderMap = unloadScanOrderList . stream ( ) . collect ( Collectors . toMap ( UnloadScanOrderVO : : getOrderCode , Function . identity ( ) ) ) ;
Set < String > orderCodeSet = unloadScanOrderMap . keySet ( ) ;
List < OrderCodeNumVO > orderCodeNumList = trunklineAdvanceDetailService . findTotalNumByOrderCodes ( orderCodeSet ) ;
//把orderCodeNumList中所有元素转化成以orderCode为key的map
Map < String , OrderCodeNumVO > orderCodeNumMap = orderCodeNumList . stream ( ) . collect ( Collectors . toMap ( OrderCodeNumVO : : getOrderCode , Function . identity ( ) ) ) ;
List < UnloadPackageVO > unloadList = trunklineCarsLoadScanService . findUnloadPackageListByLoadIdAndFinalNodeId ( loadId , warehouseId ) ;
for ( UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList ) {
String waybillNo = StringUtil . isBlank ( unloadScanOrderVO . getWaybillNo ( ) ) ? "null" : unloadScanOrderVO . getWaybillNo ( ) ;
String orderCode = StringUtil . isBlank ( unloadScanOrderVO . getOrderCode ( ) ) ? "null" : unloadScanOrderVO . getOrderCode ( ) ;
unloadScanOrderVO . setTotalNumber ( orderCodeNumMap . get ( orderCode ) . getTotalNum ( ) ) ;
List < UnloadPackageVO > unloadPackageList = new ArrayList < > ( ) ;
unloadList . forEach ( unloadPackageVO - > {
String orderCode1 = StringUtil . isBlank ( unloadPackageVO . getOrderCode ( ) ) ? "null" : unloadPackageVO . getOrderCode ( ) ;
String waybillNo1 = StringUtil . isBlank ( unloadPackageVO . getWaybillNo ( ) ) ? "null" : unloadPackageVO . getWaybillNo ( ) ;
if ( waybillNo . equals ( waybillNo1 ) & & orderCode . equals ( orderCode1 ) ) {
unloadPackageList . add ( unloadPackageVO ) ;
}
} ) ;
unloadScanOrderVO . setUnloadPackageList ( unloadPackageList ) ;
}
}
//查询已装车的零担
List < UnloadZeroVO > zeroList = trunklineCarsLoadScanService . findUnloadZeroList ( loadId , warehouseId ) ;
List < UnloadPackageVO > unloadPackageList = trunklineCarsLoadScanService . findUnloadZeroListByLoadIdAndFinalNodeId ( loadId , warehouseId ) ;
List < Long > carsLoadScanIds = unloadPackageList . stream ( )
. map ( UnloadPackageVO : : getCarsLoadScanId )
. collect ( Collectors . toList ( ) ) ;
List < TrunklineScanZeroDetailVO > scanZeroDetailList = scanZeroDetailService . findListByCarsLoadScanIds ( carsLoadScanIds ) ;
//把scanZeroDetailList中所有元素通过id进行分组
Map < Long , List < TrunklineScanZeroDetailVO > > scanZeroDetailMap = scanZeroDetailList . stream ( )
. collect ( Collectors . groupingBy ( TrunklineScanZeroDetailVO : : getScanId ) ) ;
unloadPackageList . forEach ( unloadPackageVO - > {
Long carsLoadScanId = unloadPackageVO . getCarsLoadScanId ( ) ;
List < TrunklineScanZeroDetailVO > list = scanZeroDetailMap . get ( carsLoadScanId ) ;
unloadPackageVO . setScanZeroDetailList ( list ) ;
} ) ;
for ( UnloadZeroVO unloadZeroVO : zeroList ) {
Integer loadingNum = unloadZeroVO . getLoadingNum ( ) ;
String waybillNo = unloadZeroVO . getWaybillNo ( ) ;
String orderCode = unloadZeroVO . getOrderCode ( ) ;
List < UnloadPackageVO > unloadPackageList = trunklineCarsLoadScanService . findUnloadPackageList ( loadId , warehouseId , waybillNo , orderCode ) ;
unloadZeroVO . setUnloadPackageList ( unloadPackageList ) ;
String waybillNo = StringUtil . isBlank ( unloadZeroVO . getWaybillNo ( ) ) ? "null" : unloadZeroVO . getWaybillNo ( ) ;
String orderCode = StringUtil . isBlank ( unloadZeroVO . getOrderCode ( ) ) ? "null" : unloadZeroVO . getOrderCode ( ) ;
List < UnloadPackageVO > unloadLs = new ArrayList < > ( ) ;
unloadPackageList . forEach ( unloadPackageVO - > {
String orderCode1 = StringUtil . isBlank ( unloadPackageVO . getOrderCode ( ) ) ? "null" : unloadPackageVO . getOrderCode ( ) ;
String waybillNo1 = StringUtil . isBlank ( unloadPackageVO . getWaybillNo ( ) ) ? "null" : unloadPackageVO . getWaybillNo ( ) ;
if ( waybillNo . equals ( waybillNo1 ) & & orderCode . equals ( orderCode1 ) ) {
unloadLs . add ( unloadPackageVO ) ;
}
} ) ;
unloadZeroVO . setUnloadPackageList ( unloadLs ) ;
}
//查询异常列表