From 2fe13d51e183bb5a459d85fe71f8043ba55dec73 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Tue, 10 Sep 2024 17:39:04 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BF=E9=9B=B6=E6=8B=85=E6=94=B9?= =?UTF-8?q?=E9=80=A0=E9=80=BB=E8=BE=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ersalesAbnormalRecordZeroDetailEntity.java | 2 +- .../IDistributionParcelNumberClient.java | 3 + .../logpm/trunkline/vo/GoodsLoadingNumVO.java | 13 ++ .../trunkline/vo/LoadingDetailExportVO.java | 9 + .../logpm/trunkline/vo/OrderScanDetailVO.java | 4 + .../trunkline/vo/TrunklineCarsLoadScanVO.java | 2 + .../com/logpm/trunkline/vo/ZeroPackageVO.java | 1 + .../AftersalesAbnormalRecordServiceImpl.java | 4 + .../feign/DistributionParcelNumberClient.java | 5 + .../mapper/DistributionParcelListMapper.xml | 4 +- .../IDistributionParcelNumberService.java | 1 + .../controller/CarsLoadController.java | 40 ++++- .../mapper/TrunklineCarsLoadScanMapper.xml | 3 +- .../mapper/TrunklineScanZeroDetailMapper.java | 6 + .../mapper/TrunklineScanZeroDetailMapper.xml | 21 +++ .../service/ITrunklineCarsLoadService.java | 2 + .../ITrunklineScanZeroDetailService.java | 6 + .../impl/TrunklineCarsLoadServiceImpl.java | 169 +++++++++++++++++- .../TrunklineScanZeroDetailServiceImpl.java | 11 ++ 19 files changed, 290 insertions(+), 16 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java index 8213d3465..4f1dbb059 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java @@ -32,7 +32,7 @@ public class AftersalesAbnormalRecordZeroDetailEntity extends TenantEntity { @ApiModelProperty(name = "异常记录id",notes = "") private Long abnormalRecordId; - @ApiModelProperty(name = "异常记录id",notes = "") + @ApiModelProperty(name = "包件id",notes = "") private Long packageId; @ApiModelProperty(name = "品类id",notes = "") diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java index 7c2c076e2..9994502eb 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java @@ -62,4 +62,7 @@ public interface IDistributionParcelNumberClient { @GetMapping(API_PREFIX+"/findListByStockArticleId") List findListByStockArticleId(@RequestParam Long orderId); + + @GetMapping(API_PREFIX+"/addHandleQuantity") + void addHandleQuantity(@RequestParam Long packageId, @RequestParam int num); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java new file mode 100644 index 000000000..17aeb99af --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java @@ -0,0 +1,13 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class GoodsLoadingNumVO implements Serializable { + + private Long goodsId; + private Integer loadingNum; + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java index 5aa4353c6..a254cbfa2 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java @@ -1,5 +1,6 @@ package com.logpm.trunkline.vo; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -10,6 +11,9 @@ import java.util.Date; @Data public class LoadingDetailExportVO implements Serializable { + @ExcelIgnore + private Long id; + @ExcelProperty(value = "运单号") private String waybillNo; @@ -85,4 +89,9 @@ public class LoadingDetailExportVO implements Serializable { @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date signTime; + @ExcelProperty(value = "装车品类数量") + private String loadingGoods; + @ExcelProperty(value = "卸车品类数量") + private String unloadGoods; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java index d34dbd376..ebcb96c9a 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java @@ -3,6 +3,8 @@ package com.logpm.trunkline.vo; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; @Data public class OrderScanDetailVO implements Serializable { @@ -13,4 +15,6 @@ public class OrderScanDetailVO implements Serializable { private String trayName; private String trayCode; + private List zeroDetailList = new ArrayList<>(); + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java index 70ef81332..6e55b5e9c 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java @@ -11,5 +11,7 @@ public class TrunklineCarsLoadScanVO extends TrunklineCarsLoadScanEntity { private String destinationWarehouseName; + private String loadingGoods; + private String unloadGoods; } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java index 51e9df223..99d0b55dc 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java @@ -11,5 +11,6 @@ public class ZeroPackageVO implements Serializable { private Long goodsId; private String goodsName;//品类名称 private Integer stockNum;//品类在库件数 + private Integer loadingNum;//品类装车件数 } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java index 7665d89e4..5c6b65a9a 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java @@ -156,6 +156,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS(); + if(CollUtil.isEmpty(zeroPackageDTOS)){ + log.warn("################dealAbnormal: 品类信息不存在"); + return R.fail(405,"品类信息不存在"); + } Integer num = abnormalRecordEntity.getNum(); Long carsLoadScanId = abnormalRecordEntity.getAssociationId(); TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java index f58e8e9ba..f220f4d0d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java @@ -77,4 +77,9 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber return distributionParcelNumberService.list(queryWrapper); } + @Override + public void addHandleQuantity(Long packageId, int num) { + distributionParcelNumberService.addZeroQuantity(packageId, num); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index 49b12682d..033b10e3c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -1880,8 +1880,8 @@ lwwd.product_name goodsName, ldpl.quantity stockNum from logpm_distribution_parcel_list ldpl - left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advanceId - where lwwd.order_code = #{waybillNo} + left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id + where lwwd.waybill_no = #{waybillNo} - select ltcls.waybill_no waybillNo, + select ltcls.id id, + ltcls.waybill_no waybillNo, ltcls.load_code carsNo, ltcls.order_code orderCode, ltcls.scan_code scanCode, diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java index 0e6baf314..bfedd3cd3 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java @@ -2,6 +2,7 @@ package com.logpm.trunkline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.vo.GoodsLoadingNumVO; import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; import org.apache.ibatis.annotations.Param; import org.mapstruct.Mapper; @@ -14,4 +15,9 @@ public interface TrunklineScanZeroDetailMapper extends BaseMapper findListByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId); List findListByCarsLoadScanIds(@Param("carsLoadScanIds") List carsLoadScanIds); + + List findGoodsLoadingNum(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId, @Param("waybillNo") String waybillNo, @Param("orderCode") String orderCode); + + void deleteListByCarsLoadScanIds(@Param("carsLoadScanIds") List carsLoadScanIds); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml index 43c476d4b..5a9ce01d6 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml @@ -18,4 +18,25 @@ + + + + + delete from logpm_trunkline_scan_zero_detail + where scan_id in + + #{item} + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java index 39e196a4d..0648c2256 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java @@ -226,4 +226,6 @@ public interface ITrunklineCarsLoadService extends BaseService findListByCarsLoadScanId(Long carsLoadScanId); List findListByCarsLoadScanIds(List carsLoadScanIds); + + List findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode); + + void deleteListByCarsLoadScanIds(List carsLoadScanIds); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 3fd097816..0119fbae9 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -423,7 +423,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId); + + return R.data(zeroDetailVOList); + } + @Transactional(rollbackFor = Exception.class) @Override @@ -2390,6 +2398,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl scanIds = trunklineCarsLoadScanEntities1.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(scanIds); + //把zeroDetailVOList按照packageId进行分组 + Map> zeroDetailVOMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId)); + zeroDetailVOMap.keySet().forEach(packageId -> { + List 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); + } + }); }); } }); @@ -2654,7 +2678,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl pageList = trunklineCarsLoadScanService.loadingDetail(page, loadCarsDTO); - + List records = pageList.getRecords(); + //把records中type等于2的id放入一个集合 + List scanLoadIds = records.stream().filter(item -> item.getType() == 2).map(TrunklineCarsLoadScanVO::getId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(scanLoadIds)){ + List scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds); + //把scanZeroDetailVOS通过scanId进行分组 + Map> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + records.forEach(item -> { + Long scanId = item.getId(); + List 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 +3098,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl parcelListMapById = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity())); + List parcelNumberEntityList = distributionParcelNumberClient.findListByParcelListIds(new ArrayList<>(parcelListMapById.keySet())); + //把parcelNumberEntityList转化成以parceListId为key的Map + Map parcelNumberMapByParceListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity())); //把parcelListEntities转化成以firsts作为key的map Map parcelListMap = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity())); @@ -3151,6 +3200,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); List updateParceList = new ArrayList<>(); + List updateParceNumberList = new ArrayList<>(); if(CollUtil.isNotEmpty(zeroPackageList)){ Long finalLoadScanId = loadScanId; zeroPackageList.forEach(zeroPackageDTO -> { @@ -3164,10 +3214,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); List updateParceList = new ArrayList<>(); + List updateParceNumberList = new ArrayList<>(); QueryWrapper queryWrapper1 = new QueryWrapper<>(); - queryWrapper1.eq("scanId",loadScanId); + queryWrapper1.eq("scan_id",loadScanId); List scanZeroDetailEntities = scanZeroDetailService.list(queryWrapper1); //把scanZeroDetailEntities中所有元素的scanId作为key转为Map Map map = scanZeroDetailEntities.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity())); @@ -3248,11 +3314,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId); - + if(CollUtil.isNotEmpty(orderScanDetailList)){ + //把orderScanDetailList中所有元素的loadScanId放入一个List + List loadScanIdList = orderScanDetailList.stream().map(OrderScanDetailVO::getLoadScanId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(loadScanIdList); + //把zeroDetailVOList中所有元素通过scanId进行分组 + Map> zeroDetailMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + orderScanDetailList.forEach(orderScanDetailVO -> { + Long loadScanId = orderScanDetailVO.getLoadScanId(); + List list = zeroDetailMap.get(loadScanId); + orderScanDetailVO.setZeroDetailList(list); + }); + } return R.data(orderScanDetailList); } @@ -3911,6 +4000,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadingDetailExport(LoadCarsDTO loadCarsDTO) { - return trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO); + List loadingDetailExportVOS = trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO); + + //把records中type等于2的id放入一个集合 + List scanLoadIds = loadingDetailExportVOS.stream().filter(item -> item.getType().equals("零担")).map(LoadingDetailExportVO::getId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(scanLoadIds)){ + List scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds); + //把scanZeroDetailVOS通过scanId进行分组 + Map> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + loadingDetailExportVOS.forEach(item -> { + Long scanId = item.getId(); + List 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 +7312,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroList = trunklineCarsOrderService.findZeroList(loadId, warehouseId); zeroList.forEach(loadZeroListVO -> { String waybillNo = loadZeroListVO.getWaybillNo(); + String orderCode = loadZeroListVO.getOrderCode(); + List loadingNumVOList = scanZeroDetailService.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode); + //把loadingNumVOList转化成以goodsId作为key的Map + Map map = loadingNumVOList.stream().collect(Collectors.toMap(GoodsLoadingNumVO::getGoodsId, Function.identity())); List zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNo(waybillNo); List 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 +7458,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsLoadScanIdList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + //把zeroDetailVOList所有元素通过packageId进行分组 + Map> groupedByPackageId = zeroDetailVOList.stream().filter(trunklineScanZeroDetailVO-> !Objects.isNull(trunklineScanZeroDetailVO.getPackageId())) + .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId)); + groupedByPackageId.keySet().forEach(packageId -> { + List 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 +7505,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl findListByCarsLoadScanIds(List carsLoadScanIds) { return baseMapper.findListByCarsLoadScanIds(carsLoadScanIds); } + + @Override + public List findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode) { + return baseMapper.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode); + } + + @Override + public void deleteListByCarsLoadScanIds(List carsLoadScanIds) { + baseMapper.deleteListByCarsLoadScanIds(carsLoadScanIds); + } }