From 496681209d538b3844636ba84cdb30004e87f5b9 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Tue, 9 Jul 2024 15:11:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?PC=E8=BF=9B=E8=A1=8C=E6=BB=9E=E7=95=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IWarehouseRetentionScanClient.java | 8 ++- .../DistributionDeliveryListServiceImpl.java | 44 +++++++++++----- .../feign/WarehouseRetentionScanClient.java | 10 ++++ .../IWarehouseRetentionRecordService.java | 9 ++++ .../WarehouseRetentionRecordServiceImpl.java | 52 +++++++++++++++++-- 5 files changed, 106 insertions(+), 17 deletions(-) diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java index 11fc23016..273f2ce38 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java @@ -17,6 +17,7 @@ package com.logpm.warehouse.feign; import com.logpm.warehouse.entity.WarehouseRetentionScanEntity; +import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.mp.support.BladePage; import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity; import org.springblade.core.tool.api.R; @@ -26,6 +27,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + /** * 滞留扫描记录 Feign接口类 * @@ -33,7 +36,7 @@ import org.springframework.web.bind.annotation.RequestParam; * @since 2023-11-03 */ @FeignClient( - value = "warehouseRetentionScan" + value = ModuleNameConstant.APPLICATION_WAREHOUSE_NAME ) public interface IWarehouseRetentionScanClient { @@ -58,4 +61,7 @@ public interface IWarehouseRetentionScanClient { @PostMapping(TOP+"/saveRetentionScan") R saveRetentionScan(@RequestBody WarehouseRetentionScanEntity warehouseRetentionScanEntity); + @PostMapping(TOP+"/saveBatchRetentionScan") + R saveBatchRetentionScan(@RequestBody List warehouseRetentionScanEntities); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index de298abb5..628a37bcb 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -5941,11 +5941,24 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl barcode = Func.toStrList(distrilbutionloadingscanDTO.getBarcode()); + List parcelListEntities = distributionParcelListService.list(Wrappers.query().lambda() + .in(DistributionParcelListEntity::getOrderPackageCode, barcode) + .eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) + ); + if (!parcelListEntities.isEmpty()) { + boolean flag = parcelListEntities.stream().allMatch(a -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(a.getOrderPackageLoadingStatus()) && !OrderPackageStatusConstant.yiqianshou.getValue().equals(a.getOrderPackageStatus())); + if (!flag){ + String str = parcelListEntities.stream().filter(a -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(a.getOrderPackageLoadingStatus()) && !OrderPackageStatusConstant.yiqianshou.getValue().equals(a.getOrderPackageStatus())).map(DistributionParcelListEntity::getOrderCode).distinct().collect(Collectors.joining(",")); + return R.fail(str+"不满足滞留"); + } } Integer retentionType = distrilbutionloadingscanDTO.getRetentionType(); Long deliveryId = null; @@ -5953,14 +5966,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl loadscanEntityList = distributionLoadscanService.list(Wrappers.query().lambda() - .eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .in(DistributionLoadscanEntity::getOrderPackageCode, barcode) .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) .ne(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue()) ); if (loadscanEntityList.isEmpty()) { //查询库存品 List loadscaninvnEntityList = distributionLoadscaninvnService.list(Wrappers.query().lambda() - .eq(DistributionLoadscaninvnEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .in(DistributionLoadscaninvnEntity::getOrderPackageCode, barcode) .ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) .ne(DistributionLoadscaninvnEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue()) ); @@ -5978,7 +5991,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl retentionScanVos = new ArrayList<>(); - switch (retentionType) { case 1: //包件--库存品 和包件 @@ -6056,7 +6068,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl list = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) ); @@ -6085,16 +6097,22 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl warehouseRetentionScanEntities = new ArrayList<>(); + if (!retentionScanVos.isEmpty()) { + retentionScanVos.forEach(r->{ + WarehouseRetentionScanEntity warehouseRetntionScanEntity = Func.copy(r, WarehouseRetentionScanEntity.class); + warehouseRetentionScanEntities.add(warehouseRetntionScanEntity); + }); + } + if (!warehouseRetentionScanEntities.isEmpty()) { + //进行批量滞留 + R r = warehouseRetentionScanClient.saveBatchRetentionScan(warehouseRetentionScanEntities); + if (!Objects.equals(r.getCode(),200)){ + throw new RuntimeException(r.getMsg()); + } } } - return R.data(retentionScanVos); + return R.success("滞留操作成功"); } @Override diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java index 730cd1f55..47e8b3c48 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java @@ -30,6 +30,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; + /** * 滞留扫描记录 Feign实现类 * @@ -43,6 +45,8 @@ public class WarehouseRetentionScanClient implements IWarehouseRetentionScanClie private final IWarehouseRetentionScanService warehouseRetentionScanService; + private final IWarehouseRetentionRecordService warehouseRetentionRecordService; + @Override @GetMapping(TOP) public BladePage retentionScanTop(Integer current, Integer size) { @@ -58,4 +62,10 @@ public class WarehouseRetentionScanClient implements IWarehouseRetentionScanClie return R.status(warehouseRetentionScanService.save(warehouseRetentionScanEntity)); } + @Override + public R saveBatchRetentionScan(List warehouseRetentionScanEntities) { + + return warehouseRetentionRecordService.saveBatchRetentionList(warehouseRetentionScanEntities); + } + } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java index 535a89164..50d64e4de 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java @@ -23,6 +23,7 @@ import com.logpm.warehouse.dto.RetentionDTO; import com.logpm.warehouse.dto.WarehouseRetentionRecordDTO; import com.logpm.warehouse.dto.WarehouseRetentionScanDTO; import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity; +import com.logpm.warehouse.entity.WarehouseRetentionScanEntity; import com.logpm.warehouse.excel.WarehouseRetentionRecordExcel; import com.logpm.warehouse.vo.WarehouseRetentionRecordVO; import com.logpm.warehouse.vo.WarehouseRetentionScanVO; @@ -98,4 +99,12 @@ public interface IWarehouseRetentionRecordService extends BaseService getRetentionPackageByType(@Param("retentionId") Long retentionId,@Param("type") Integer type); + + /** + * 后台批量进行滞留 + * @param warehouseRetentionScanEntities + * @return + */ + R saveBatchRetentionList(List warehouseRetentionScanEntities); + } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java index eaa07b8f0..a0ac34c7f 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java @@ -155,9 +155,9 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.query().lambda() .eq(WarehouseRetentionScanEntity::getDeliveryId, deliveryId) @@ -297,7 +297,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImplquery().lambda() - .eq(WarehouseRetentionScanEntity::getDeliveryId, warehouseRetentionScanDTOS.getDeliveryId())).stream().mapToInt(WarehouseRetentionScanEntity::getRetentionQuantity) + .eq(WarehouseRetentionScanEntity::getDeliveryId, warehouseRetentionScanDTOS.getDeliveryId())).stream().mapToInt(WarehouseRetentionScanEntity::getRetentionQuantity) .sum(); if (saveFlah.get()) { return Resp.scanSuccess("操作成功", "共计滞留" + retentionTotal + "件"); @@ -381,4 +381,50 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl warehouseRetentionScanEntities) { + AtomicBoolean saveFlah = new AtomicBoolean(false); + if (!warehouseRetentionScanEntities.isEmpty()) { + List deliveryIds = warehouseRetentionScanEntities.stream().map(WarehouseRetentionScanEntity::getDeliveryId).distinct().collect(Collectors.toList()); + //查询出该滞留任务是否存在 + List retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.query().lambda() + .in(WarehouseRetentionScanEntity::getDeliveryId, deliveryIds) + ); + if (!retentionScanEntityList.isEmpty()) { + String collect = retentionScanEntityList.stream().filter(f -> + warehouseRetentionScanEntities.stream().map(w -> w.getOrderPackageCode()) + .collect(Collectors.toList()) + .contains(f.getOrderPackageCode())) + .map(WarehouseRetentionScanEntity::getOrderPackageCode).collect(Collectors.joining(",")); + if (Objects.isNull(collect)){ + return R.fail(collect+"重复滞留"); + } + } + for (WarehouseRetentionScanEntity warehouseRetentionScanEntity : warehouseRetentionScanEntities) { + + //进行滞留逻辑处理 + switch (warehouseRetentionScanEntity.getConditions()) { + case 1: + //订制品 + saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationPackage(warehouseRetentionScanEntity.getDeliveryId(), warehouseRetentionScanEntity.getReservationId(), warehouseRetentionScanEntity.getOrderPackageId(), warehouseRetentionScanEntity.getConditions())); + break; + case 2: + //库存品 + saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationInventory(warehouseRetentionScanEntity.getDeliveryId(), warehouseRetentionScanEntity.getReservationId(), warehouseRetentionScanEntity.getOrderPackageId())); + break; + case 3: + //零担 + saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationZeroPackage(warehouseRetentionScanEntity.getDeliveryId(), warehouseRetentionScanEntity.getReservationId(), warehouseRetentionScanEntity.getOrderPackageId(), warehouseRetentionScanEntity.getRetentionQuantity(), warehouseRetentionScanEntity.getOrderId())); + break; + default: + log.error(">>>>> rs.getConditions()={}", warehouseRetentionScanEntity.getConditions()); + } + //进行滞留信息的保存 + warehouseRetentionScanService.save(Func.copy(warehouseRetentionScanEntity, WarehouseRetentionScanEntity.class)); + } + } + return R.success("操作成功"); + } + } From 19ff5de00b6e1d42d0428b10ed282bf86bb65013 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Tue, 9 Jul 2024 17:01:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?PC=E6=BB=9E=E7=95=99BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionDeliveryListController.java | 15 +- .../IDistributionDeliveryListService.java | 14 +- .../DistributionDeliveryListServiceImpl.java | 185 ++++++++++++++++-- 3 files changed, 182 insertions(+), 32 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java index 361755503..51a36fb41 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java @@ -541,22 +541,13 @@ public class DistributionDeliveryListController extends BladeController { } - @PostMapping("/retentionScan") + @PostMapping("/retentionPC") @ApiOperationSupport(order = 11) - public R retentionScan(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) { - R r = distributionDeliveryListService.retentionScan(distrilbutionloadingscanDTO); + public R retentionPC(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) { + R r = distributionDeliveryListService.retentionPC(distrilbutionloadingscanDTO); return r; } - @PostMapping("/retentionSave") - @ApiOperationSupport(order = 2) - @ApiOperation(value = "PC取消配送任务") - public R retentionSave(@Valid @RequestBody WarehouseRetentionScanEntity warehouseRetentionScanEntity) { - R r = distributionDeliveryListService.retentionSave(warehouseRetentionScanEntity); - return r; - } - - /** * 导出数据 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java index 87cfc2746..6a87f21ac 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java @@ -301,6 +301,13 @@ public interface IDistributionDeliveryListService extends BaseService loadscanEntityList = distributionLoadscanService.list(Wrappers.query().lambda() + .eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + .ne(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue()) + ); + if (loadscanEntityList.isEmpty()) { + //查询库存品 + List loadscaninvnEntityList = distributionLoadscaninvnService.list(Wrappers.query().lambda() + .eq(DistributionLoadscaninvnEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + .ne(DistributionLoadscaninvnEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue()) + ); + if (!loadscaninvnEntityList.isEmpty()) { + deliveryId = loadscaninvnEntityList.stream().map(DistributionLoadscaninvnEntity::getDeliveryId).distinct().collect(Collectors.toList()).get(0); + } + } else { + deliveryId = loadscanEntityList.stream().map(DistributionLoadscanEntity::getDeliveryId).distinct().collect(Collectors.toList()).get(0); + } + if (deliveryId == null) { + return Resp.scanFail("此包件无装车记录", "此包件无装车记录"); + } + } else { + deliveryId = distrilbutionloadingscanDTO.getDeliveryId(); + } + DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryId); + List retentionScanVos = new ArrayList<>(); + + switch (retentionType) { + case 1: + //包件--库存品 和包件 + List loadscanEntityList = distributionLoadscanService.list(Wrappers.query().lambda() + .eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + .eq(DistributionLoadscanEntity::getWarehouseId, myCurrentWarehouse.getId()) + ); + if (Func.isNotEmpty(loadscanEntityList)) { + if (loadscanEntityList.size() == 1) { + //包件存在装车才能进行滞留 + //通过配送任务和包件确定预约信息 + DistributionLoadscanEntity distributionLoadscanEntity = loadscanEntityList.get(0); +// if (2 == distributionLoadscanEntity.getIsAbnormalLoading()) { +// //异常装车未进行审核 +// return Resp.scanFail("包件存在异常操作,请先处理异常", "包件存在异常操作,请先处理异常"); +// } + if (2 == distributionLoadscanEntity.getSignforState()) { + log.info("滞留扫描失败,包件已签收>>>>>>>>>>>>>>>>>>>>>>>reservationId:{},packageCode:{}", distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getOrderPackageCode()); + return Resp.scanFail("包件已签收", "包件已签收"); + } + DistributionRetentionScanVo retentionScanVo = baseMapper.selectRetentionPackage(distributionLoadscanEntity.getOrderPackageCode(), distributionLoadscanEntity.getDeliveryId(), myCurrentWarehouse.getId()); + if (Func.isEmpty(retentionScanVo)){ + //不存在计划之中属于异常驳回的情况 + retentionScanVo = new DistributionRetentionScanVo(); + retentionScanVo.setDeliveryId(distributionLoadscanEntity.getDeliveryId()); + retentionScanVo.setOrderId(distributionLoadscanEntity.getOrderId()); + retentionScanVo.setReservationId(distributionLoadscanEntity.getReservationId()); + retentionScanVo.setTrainNumber(distributionLoadscanEntity.getTrainNumber()); + retentionScanVo.setConditions(1); + retentionScanVo.setScanType(1); + retentionScanVo.setRetentionQuantity(1); + retentionScanVo.setOrderPackageId(distributionLoadscanEntity.getPackageId()); + //查询包件 + DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(distributionLoadscanEntity.getPackageId()); + retentionScanVo.setOrderCode(parcelListEntity.getOrderCode()); + retentionScanVo.setOrderPackageStatus(parcelListEntity.getOrderPackageStatus()); + retentionScanVo.setOrderPackageCode(parcelListEntity.getOrderPackageCode()); + retentionScanVo.setWaybillNumber(parcelListEntity.getWaybillNumber()); + retentionScanVo.setWaybillId(parcelListEntity.getWaybillId()); + DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distributionLoadscanEntity.getReservationId()); + retentionScanVo.setReservationCode(reservationEntity.getReservationCode()); + } + retentionScanVo.setWarehouseId(myCurrentWarehouse.getId()); + retentionScanVo.setWarehouseName(myCurrentWarehouse.getName()); + retentionScanVo.setLoadingId(distributionLoadscanEntity.getId()); + retentionScanVos.add(retentionScanVo); + } + } else { + List loadscaninvnEntityList = distributionLoadscaninvnService.list(Wrappers.query().lambda() + .eq(DistributionLoadscaninvnEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + .eq(DistributionLoadscaninvnEntity::getWarehouseId, myCurrentWarehouse.getId()) + ); + if (Func.isNotEmpty(loadscaninvnEntityList)) { + if (loadscaninvnEntityList.size() == 1) { + + //库存品存在装车数据才能进行滞留操作 + DistributionLoadscaninvnEntity loadscaninvnEntity = loadscaninvnEntityList.get(0); + if (2 == loadscaninvnEntity.getSignforState()) { + return Resp.scanFail("包件已签收", "包件已签收"); + } + DistributionRetentionScanVo inventoryPackage = baseMapper.selectRetentionInventoryPackage(loadscaninvnEntity.getOrderPackageCode(), loadscaninvnEntity.getDeliveryId()); + inventoryPackage.setWarehouseId(myCurrentWarehouse.getId()); + inventoryPackage.setWarehouseName(myCurrentWarehouse.getName()); + inventoryPackage.setLoadingId(loadscaninvnEntity.getId()); + retentionScanVos.add(inventoryPackage); + } + } + } + break; + case 2: + List distributionRetentionScanVos = baseMapper.selectRetentionZeroPackage(distrilbutionloadingscanDTO.getDeliveryId(), distrilbutionloadingscanDTO.getBarcode()); + if (Func.isNotEmpty(distributionRetentionScanVos)) { + retentionScanVos.addAll(distributionRetentionScanVos); + } + } + if (Func.isEmpty(retentionScanVos)) { + List list = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() + .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) + ); + if (!list.isEmpty()) { + //存在异常进行是否均完成审核判断 + boolean AuditingStatusFlag = list.stream().allMatch(l -> !l.getAuditingStatus().equals(LoadingAbnormalAuditingStatusConstant.daishenhe.getValue())); + if (AuditingStatusFlag){ + return Resp.scanFail("请先处理包件异常操作", "请先处理包件异常操作"); + } + } + //如果均不存在则就该判断该货物是否属于当前的配送任务,如果属于则是未装车,如果不属于则此码无效 + List distributionParcelListEntities = baseMapper.selectPackageListByDeliveryListId(deliveryListEntity.getId()); + boolean flag = false; + if (Func.isNotEmpty(distributionParcelListEntities)) { + List isHave = distributionParcelListEntities.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList()); + if (Func.isNotEmpty(isHave)) { + flag = isHave.size() == 1; + //判断是否存在有待处理的异常 + } + } else { + List disStockListDetailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId()); + if (Func.isNotEmpty(disStockListDetailEntities)) { + List isHaveinven = disStockListDetailEntities.stream().filter(inven -> Func.isNotEmpty(inven.getStockPackageCode()) && inven.getStockPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList()); + if (Func.isNotEmpty(isHaveinven)) { + flag = isHaveinven.size() == 1; + } + } + } + + if (flag) { + //存在该订制品或者库存品包件信息但是未进行装车操作 + return Resp.scanFail("包件未装车", "包件未装车"); + } else { + //该配送任务查询无该包件信息 + return Resp.scanFail("系统无编码", "系统无编码"); + } + } + return R.data(retentionScanVos); + } + + + @Override + public R retentionPC(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) { if (distrilbutionloadingscanDTO.getBarcode().isEmpty()) { log.error("参数缺失Barcode:{}", distrilbutionloadingscanDTO.getBarcode()); return R.fail(403, "数据错误"); @@ -5961,7 +6122,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl list = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .eq(DistributionLoadscanAbnormalEntity::getAuditingStatus, LoadingAbnormalAuditingStatusConstant.daishenhe.getValue()) ); if (!list.isEmpty()) { //存在异常进行是否均完成审核判断 - boolean AuditingStatusFlag = list.stream().allMatch(l -> !l.getAuditingStatus().equals(LoadingAbnormalAuditingStatusConstant.daishenhe.getValue())); + Long finalDeliveryId = deliveryId; + boolean AuditingStatusFlag = list.stream().anyMatch(f-> finalDeliveryId.equals(f.getDeliveryListId())); if (AuditingStatusFlag){ return Resp.scanFail("请先处理包件异常操作", "请先处理包件异常操作"); } @@ -7805,16 +7971,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl