From be0a2c2d2ee6292b56508dc8760bfcc3941709a9 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Tue, 29 Oct 2024 21:36:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E5=BA=93=E8=AE=A2=E5=8D=95=E6=9C=AA?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E3=80=82=E5=B7=B2=E5=85=A5=E5=BA=93=E5=8C=85?= =?UTF-8?q?=E4=BB=B6=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/ITrunklineAdvanceDetailClient.java | 9 ++ .../DistributionStockArticleController.java | 11 ++ .../IDistributionStockArticleService.java | 8 ++ .../DistributionStockArticleServiceImpl.java | 101 ++++++++++++++++++ .../feign/TrunklineAdvanceDetailClient.java | 10 ++ 5 files changed, 139 insertions(+) diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineAdvanceDetailClient.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineAdvanceDetailClient.java index 426965b38..3566703e6 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineAdvanceDetailClient.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineAdvanceDetailClient.java @@ -28,4 +28,13 @@ public interface ITrunklineAdvanceDetailClient { @GetMapping(API_PREFIX+"/findListByWaybillId") List findListByWaybillId(@RequestParam Long waybillId); + + /** + * 查询暂存单详情 + * @param orderCode + * @param warehouseIds + * @return + */ + @GetMapping(API_PREFIX+"/selectByOrderCodeAndWarehouseId") + List selectByOrderCodeAndWarehouseId(@RequestParam String orderCode,@RequestParam String warehouseIds); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java index 991a940a8..326225df6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java @@ -189,6 +189,17 @@ public class DistributionStockArticleController extends BladeController { return R.data(parcelNumberVOS); } + /** + * 查询订单入库详情 + */ + @GetMapping("/getOrderWarehouseDetail") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入distributionStockArticle") + public R getOrderWarehouseDetail(@ApiIgnore @RequestParam String orderCode) { + R r = distributionStockArticleService.getOrderWarehouseDetail(orderCode); + return r; + } + // BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); // if (Func.isEmpty(myCurrentWarehouse)){ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java index fdbe023ed..5635df08f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java @@ -323,4 +323,12 @@ public interface IDistributionStockArticleService extends BaseService pageListOweTransfer(IPage page, Map distributionStockArticle); R findZeroOrderInfo(Long orderId); + + /** + * 查询订单入库详情 + * @param orderCode + * @return + */ + R getOrderWarehouseDetail(String orderCode); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java index 11a342cc6..d66159d1c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java @@ -47,6 +47,8 @@ import com.logpm.distribution.vo.app.queryOrderVO; import com.logpm.distribution.wrapper.DistributionParcelListWrapper; import com.logpm.distribution.wrapper.DistributionStockArticleNewWrapper; import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; +import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; +import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient; import com.logpm.warehouse.entity.WarehouseWayBillDetail; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient; @@ -150,6 +152,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl selectDistributionStockArticlePage(IPage page, DistributionStockArticleVO distributionStockArticle) { @@ -2828,6 +2831,104 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl warehouseIdList = new ArrayList<>(); + if (Objects.isNull(myCurrentWarehouse)){ + //查询当前人的仓库列表 + List warehouseList = warehouseClient.getMyWarehouseList(); + if (!warehouseList.isEmpty()) { + warehouseIdList.addAll(warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList())); + } + }else { + warehouseIdList.add(myCurrentWarehouse.getId()); + } + if (warehouseIdList.isEmpty()){ + return R.fail("当前登录人仓库信息错误"); + } + Map> info = new HashMap<>(); + //查询此暂存单数据在仓库的情况 + List list = trunklineAdvanceDetailClient.selectByOrderCodeAndWarehouseId(orderCode,warehouseIdList.stream().map(String::valueOf).collect(Collectors.joining(","))); + if (!list.isEmpty()) { + List orderPackageCodes = list.stream().map(TrunklineAdvanceDetailEntity::getOrderPackageCode).collect(Collectors.toList()); + info = handlePackageGroupByWarehouse(list,warehouseIdList,orderPackageCodes,Objects.isNull(myCurrentWarehouse),orderCode); + + return R.data(info); + } + + + return R.data(info,"未查询到相关出入库信息"); + } + + private Map> handlePackageGroupByWarehouse(List list, List warehouseIdList, List orderPackageCodes, boolean aNull,String orderCode) { + Map> info = new HashMap<>(); + List parcelListEntities = distributionParcelListService.list(Wrappers.query().lambda() + .eq(DistributionParcelListEntity::getOrderCode, orderCode) + .in(DistributionParcelListEntity::getOrderPackageCode, orderPackageCodes) + .eq(DistributionParcelListEntity::getIsTransfer, 0) + .in(!aNull,DistributionParcelListEntity::getWarehouseId,warehouseIdList) + ); + if (!parcelListEntities.isEmpty()) { + List distributionParcelListVOS = DistributionParcelListWrapper.build().listVO(parcelListEntities); + info.put("warehouse",distributionParcelListVOS); + List collect = parcelListEntities.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.toList()); + Iterator iterator = collect.iterator(); + while (iterator.hasNext()){ + String next = iterator.next(); + orderPackageCodes.remove(next); + iterator.remove(); + } + } + if (!orderPackageCodes.isEmpty()) { + //存在未入库的包件 + //进行数据组装 + List collect = list.stream().filter(f -> orderPackageCodes.contains(f.getOrderPackageCode())).collect(Collectors.toList()); + List unWarehousePackage= handleUnWarehousePackage(collect); + if (!unWarehousePackage.isEmpty()) { + info.put("unWarehouse",unWarehousePackage); + + } + } + return info; + + } + + private List handleUnWarehousePackage(List collect) { + List parcelListVOS = new ArrayList<>(); + List waybillNos = collect.stream().map(TrunklineAdvanceDetailEntity::getWaybillId).collect(Collectors.toList()); + Map> waybillMap = null; + if (!waybillNos.isEmpty()) { + List listByWaybillIds = warehouseWaybillClient.findListByWaybillIds(waybillNos); + if (!listByWaybillIds.isEmpty()) { + waybillMap = listByWaybillIds.stream().collect(Collectors.groupingBy(WarehouseWaybillEntity::getId)); + } + } + for (TrunklineAdvanceDetailEntity trunklineAdvanceDetailEntity : collect) { + DistributionParcelListVO distributionParcelListVO = new DistributionParcelListVO(); + distributionParcelListVO.setWaybillNumber(trunklineAdvanceDetailEntity.getWaybillNo()); + distributionParcelListVO.setOrderCode(trunklineAdvanceDetailEntity.getOrderCode()); + distributionParcelListVO.setWarehouse(trunklineAdvanceDetailEntity.getWarehouseName()); + distributionParcelListVO.setOrderPackageStatusName(OrderPackageStatusConstant.weiruku.getName()); + distributionParcelListVO.setFirsts(trunklineAdvanceDetailEntity.getFirstPackName()); + distributionParcelListVO.setSecond(trunklineAdvanceDetailEntity.getSecondPackName()); + distributionParcelListVO.setThirdProduct(trunklineAdvanceDetailEntity.getThirdPackName()); + distributionParcelListVO.setMaterialName(trunklineAdvanceDetailEntity.getMaterialName()); + distributionParcelListVO.setMaterialCode(trunklineAdvanceDetailEntity.getMaterialCode()); + distributionParcelListVO.setQuantity(trunklineAdvanceDetailEntity.getQuantity()); + distributionParcelListVO.setTrainNumber(trunklineAdvanceDetailEntity.getTrainNumber()); + if (!Objects.isNull(waybillMap) && !Objects.isNull(trunklineAdvanceDetailEntity.getWaybillId())){ + WarehouseWaybillEntity warehouseWaybillEntities = waybillMap.get(trunklineAdvanceDetailEntity.getWaybillId()).get(0); + distributionParcelListVO.setSendWarehouseName(warehouseWaybillEntities.getDepartureWarehouseName()); + distributionParcelListVO.setAcceptWarehouseName(warehouseWaybillEntities.getDestinationWarehouseName()); + distributionParcelListVO.setServiceNumber(warehouseWaybillEntities.getServiceNo()); + } + parcelListVOS.add(distributionParcelListVO); + + } + return parcelListVOS; + } + /** * @param page * @param distributionSignforStockArticle diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java index 95f0ff045..0b39e384f 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java @@ -1,11 +1,13 @@ package com.logpm.trunkline.feign; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -41,4 +43,12 @@ public class TrunklineAdvanceDetailClient implements ITrunklineAdvanceDetailClie .eq("is_deleted",0); return advanceDetailService.list(queryWrapper); } + + @Override + public List selectByOrderCodeAndWarehouseId(String orderCode, String warehouseIds) { + return advanceDetailService.list(Wrappers.query().lambda() + .eq(TrunklineAdvanceDetailEntity::getOrderCode,orderCode) + .in(TrunklineAdvanceDetailEntity::getWarehouseId, Func.toLongList(warehouseIds)) + ); + } }