diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index 43b991466..a979edc50 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -316,5 +316,8 @@ public interface IDistributionParcelListClient { @GetMapping(API_PREFIX + "/findOneByOrderPackageCode") DistributionParcelListEntity findOneByOrderPackageCode(@RequestParam String orderPackageCode); + @PostMapping(API_PREFIX + "/findListByOrderPackageCodesAndCode") + List findListByOrderPackageCodesAndCode(@RequestBody List orderPackageCodeGroup); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index 25e1ceed3..98c540d69 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -669,4 +669,9 @@ public class DistributionParcelListClient implements IDistributionParcelListClie return distributionParcelListService.findOneByOrderPackageCode(orderPackageCode); } + @Override + public List findListByOrderPackageCodesAndCode(List orderPackageCodeGroup) { + return distributionParcelListService.findListByOrderPackageCodesAndCode(orderPackageCodeGroup); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java index f14c61272..ccaf3aa60 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java @@ -344,4 +344,6 @@ public interface DistributionParcelListMapper extends BaseMapper findListByOrderPackageCodeAndStatus(@Param("orderPackageCode") String orderPackageCode, @Param("status") String status); DistributionParcelListEntity findOneByOrderPackageCode(@Param("orderPackageCode") String orderPackageCode); + + List findListByOrderPackageCodesAndCode(@Param("orderPackageCodes") List orderPackageCodeGroup); } 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 3a4a1a26a..905487996 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 @@ -2293,4 +2293,15 @@ limit 1 + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index c70869711..1731075e6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -319,4 +319,5 @@ public interface IDistributionParcelListService extends BaseService findListByOrderPackageCodesAndCode(List orderPackageCodeGroup); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index f6fc2feda..eaefbf8ff 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -1605,4 +1605,9 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl findListByOrderPackageCodesAndCode(List orderPackageCodeGroup) { + return baseMapper.findListByOrderPackageCodesAndCode(orderPackageCodeGroup); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java index a7646fa31..e7ef597e7 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java @@ -1,5 +1,6 @@ package com.logpm.trunkline.service; +import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineCarsLoadLineEntity; import com.logpm.warehouse.entity.WarehouseWayBillDetail; import com.logpm.warehouse.entity.WarehouseWaybillEntity; @@ -30,4 +31,7 @@ public interface IOpenOrderAsyncService { void sendUpdateWaybillFanout(WarehouseWaybillEntity waybillEntity, List details, List advanceIds,String oldConsignee); void dealwithBillladingInfo(List advanceIds,Long warehouseId,String warehouseName,Long waybillId,String waybillNo); + + void updatePackageMaterial(List updateMaterialList); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java index 6df346809..7fc70960e 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java @@ -1,11 +1,14 @@ package com.logpm.trunkline.service.impl; +import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.entity.BasicdataStoreBusinessEntity; import com.logpm.basicdata.feign.IBasicdataClientClient; import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient; +import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.entity.*; import com.logpm.trunkline.service.*; @@ -69,6 +72,8 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService { @Lazy @Autowired private ITrunklineBillladingService trunklineBillladingService; + @Autowired + private IDistributionParcelListClient distributionParcelListClient; @LogpmAsync("asyncExecutor") @Override @@ -984,5 +989,50 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService { } + @LogpmAsync("asyncExecutor") + @Override + public void updatePackageMaterial(List updateMaterialList) { + //把updateMaterialList中所有包件放入一个List + List orderPackageCodeList = updateMaterialList.stream().map(TrunklineAdvanceDetailEntity::getOrderPackageCode).collect(Collectors.toList()); + + //把orderPackageCodeKeys每2000个元素为一组 + int packageBatchSize = 1000; + List> orderPackageCodeGroups = new ArrayList<>(); + + for (int i = 0; i < orderPackageCodeList.size(); i += packageBatchSize) { + int endIndex = Math.min(i + packageBatchSize, orderPackageCodeList.size()); + orderPackageCodeGroups.add(orderPackageCodeList.subList(i, endIndex)); + } + + List parcelListEntities = new ArrayList<>(); + orderPackageCodeGroups.forEach(orderPackageCodeGroup -> { + List listEntityList = distributionParcelListClient.findListByOrderPackageCodesAndCode(orderPackageCodeGroup); + parcelListEntities.addAll(listEntityList); + }); + + + //把updateMaterialList转化成以orderPackageCode为key的Map + Map updateMaterialMap = updateMaterialList.stream().collect(Collectors.toMap(TrunklineAdvanceDetailEntity::getOrderPackageCode, Function.identity())); + + List updateParcelList = new ArrayList<>(); + parcelListEntities.forEach(parcelListEntity -> { + String orderPackageCode = parcelListEntity.getOrderPackageCode(); + TrunklineAdvanceDetailEntity trunklineAdvanceDetailEntity = updateMaterialMap.get(orderPackageCode); + if(!Objects.isNull(trunklineAdvanceDetailEntity)){ + parcelListEntity.setFirsts(trunklineAdvanceDetailEntity.getFirstPackName()); + parcelListEntity.setSecond(trunklineAdvanceDetailEntity.getSecondPackName()); + parcelListEntity.setThirdProduct(trunklineAdvanceDetailEntity.getThirdPackName()); + parcelListEntity.setMaterialId(trunklineAdvanceDetailEntity.getMaterialId()); + parcelListEntity.setMaterialCode(trunklineAdvanceDetailEntity.getMaterialCode()); + parcelListEntity.setMaterialName(trunklineAdvanceDetailEntity.getMaterialName()); + updateParcelList.add(parcelListEntity); + } + }); + + if(CollUtil.isNotEmpty(updateParcelList)){ + distributionParcelListClient.updateList(updateParcelList); + } + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java index f31f47905..f44d4b431 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java @@ -2268,6 +2268,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { ImportStandardOuPaiDTO importStandardOuPaiDTO = importStandardOuPaiDTOMap.get(advanceDetailEntity.getOrderPackageCode()); TrunklineAdvanceDetailEntity updateMaterialEntity = new TrunklineAdvanceDetailEntity(); updateMaterialEntity.setId(advanceDetailEntity.getId()); + updateMaterialEntity.setOrderPackageCode(advanceDetailEntity.getOrderPackageCode()); updateMaterialEntity.setMaterialCode(importStandardOuPaiDTO.getMaterialCode()); updateMaterialEntity.setMaterialName(importStandardOuPaiDTO.getMaterialName()); updateMaterialEntity.setFirstPackName(importStandardOuPaiDTO.getFirstsName()); @@ -2279,6 +2280,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { if(CollUtil.isNotEmpty(updateMaterialList)){ advanceDetailService.updateBatchById(updateMaterialList); + openOrderAsyncService.updatePackageMaterial(updateMaterialList); } } @@ -2492,23 +2494,26 @@ public class OpenOrderServiceImpl implements IOpenOrderService { String materialName = StringUtil.isNotBlank(importStandardOuPaiDTO.getMaterialName())?importStandardOuPaiDTO.getMaterialName():""; String materialCode = StringUtil.isNotBlank(importStandardOuPaiDTO.getMaterialCode())?importStandardOuPaiDTO.getMaterialCode():""; -// BasicMaterialEntity basicMaterialEntity = materialEntityMap.get(materialCode + "&&" + materialName); -// -// if(!Objects.isNull(basicMaterialEntity)){ -// advanceDetailModel.setMaterialId(basicMaterialEntity.getId()); -// advanceDetailModel.setMaterialCode(materialCode); -// advanceDetailModel.setMaterialName(materialName); -// String weight = basicMaterialEntity.getWeight(); -// if(StringUtil.isBlank(weight)){ -// weight = "0"; -// } -// String volume1 = basicMaterialEntity.getVolume(); -// if(StringUtil.isBlank(volume1)){ -// volume1 = "0"; -// } -// advanceDetailModel.setWeight(new BigDecimal(weight)); -// advanceDetailModel.setVolume(new BigDecimal(volume1)); -// } + advanceDetailModel.setMaterialCode(materialCode); + advanceDetailModel.setMaterialName(materialName); + + + BasicMaterialEntity basicMaterialEntity = materialEntityMap.get(materialCode + "&&" + materialName); + + if(!Objects.isNull(basicMaterialEntity)){ + advanceDetailModel.setMaterialId(basicMaterialEntity.getId()); + + String weight = basicMaterialEntity.getWeight(); + if(StringUtil.isBlank(weight)){ + weight = "0"; + } + String volume2 = basicMaterialEntity.getVolume(); + if(StringUtil.isBlank(volume2)){ + volume2 = "0"; + } + advanceDetailModel.setWeight(new BigDecimal(weight)); + advanceDetailModel.setVolume(new BigDecimal(volume2)); + } // if (StringUtil.isNotBlank(materialCode) && StringUtil.isNotBlank(materialName)) { // Long materialId = materialMap.get(materialCode); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java index 1e4048ecc..c27f69c62 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java @@ -9,13 +9,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.basic.entity.BasicMaterialEntity; import com.logpm.basic.feign.IBasicMaterialClient; +import com.logpm.basicdata.entity.BasicdataBrandEntity; import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.entity.BasicdataStoreBusinessEntity; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; -import com.logpm.basicdata.feign.IBasicdataClientClient; -import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient; -import com.logpm.basicdata.feign.IBasicdataTripartiteMallClient; -import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.basicdata.feign.*; import com.logpm.distribution.dto.FindParamterDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; @@ -67,6 +65,7 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl