diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionUnpackingDetailsEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionUnpackingDetailsEntity.java index 790f1bfcd..cedc225a7 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionUnpackingDetailsEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionUnpackingDetailsEntity.java @@ -76,6 +76,12 @@ public class DistributionUnpackingDetailsEntity extends TenantEntity { */ @ApiModelProperty(value = "订单ID") private Long stockArticleId; + + /** + * 目标库存品ID + */ + @ApiModelProperty(value = "订单ID") + private Long aimStockListId; /** * 库存品Id */ @@ -91,6 +97,36 @@ public class DistributionUnpackingDetailsEntity extends TenantEntity { */ @ApiModelProperty(value = "物品名称") private String itemName; + + /** + * 目标物品名称 + */ + @ApiModelProperty(value = "目标物品名称") + private String aimItemName; + + /** + * 仓库ID + */ + @ApiModelProperty(value = "仓库ID") + private Long warehhouseId; + + /** + * 仓库名称 + */ + @ApiModelProperty(value = "仓库名称") + private String warehouseName; + + /** + * 拆包执行人 + */ + @ApiModelProperty(value = "拆包执行人") + private String unpackUser; + + /** + * 取消拆包执行人 + */ + @ApiModelProperty(value = "取消拆包执行人") + private String cancelUnpackUser; /** * 拆包数量 */ diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionUnpackingDetailsVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionUnpackingDetailsVO.java index 5e165a819..2e98604e2 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionUnpackingDetailsVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionUnpackingDetailsVO.java @@ -31,4 +31,9 @@ import lombok.EqualsAndHashCode; public class DistributionUnpackingDetailsVO extends DistributionUnpackingDetailsEntity { private static final long serialVersionUID = 1L; + + private String specification; + + private String marketName; + } diff --git a/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java b/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java index f83e833c8..63a3bdeca 100644 --- a/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java +++ b/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java @@ -102,7 +102,7 @@ public class BasicMaterialController extends BladeController { if (Func.isNotEmpty(basicMaterial.get("pid"))){ queryWrapper.lambda().eq(BasicMaterialEntity::getPid, Long.parseLong((String) basicMaterial.get("pid"))); } - List pages = basicMaterialService.list( queryWrapper); + List pages = basicMaterialService.list(queryWrapper); return R.data(pages); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java index a3f9e0581..b37e5d760 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java @@ -219,7 +219,7 @@ public class DistributionStockListController extends BladeController { */ @PostMapping("/parcels") @ApiOperationSupport(order = 6) - @ApiOperation(value = "新增或修改", notes = "传入distributionStockList") + @ApiOperation(value = "库存品管理 拆包", notes = "传入distributionStockList") public R parcels(@Valid @RequestBody DistributionStockListDTO distributionStockListDTO) { return R.status(distributionStockListService.parcels(distributionStockListDTO)); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionUnpackingDetailsController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionUnpackingDetailsController.java index f3796b444..10620e670 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionUnpackingDetailsController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionUnpackingDetailsController.java @@ -79,6 +79,28 @@ public class DistributionUnpackingDetailsController extends BladeController { return R.data(pages); } + /** + * 拆包明细记录 分页 + */ + @GetMapping("/stockListUnpackDetail") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入distributionUnpackingDetails") + public R> stockListUnpackDetail(@ApiIgnore @RequestParam Long stockListId,Query query) { + IPage pages = distributionUnpackingDetailsService.stockListUnpackDetail(Condition.getPage(query),stockListId); + return R.data(pages); + } + + + /** + * 拆包明细记录 分页 + */ + @GetMapping("/cancelUnpack") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入distributionUnpackingDetails") + public R cancelUnpack(@ApiIgnore @RequestParam String ids) { + return distributionUnpackingDetailsService.cancelUnpack(ids); + } + /** * 拆包明细记录 自定义分页 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.java index 0d19ca4eb..0bce11c3f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.java @@ -52,4 +52,5 @@ public interface DistributionUnpackingDetailsMapper extends BaseMapper exportDistributionUnpackingDetails(@Param("ew") Wrapper queryWrapper); + IPage stockListUnpackDetail(IPage page,@Param("stockListId") Long stockListId); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.xml index 567362857..20f1878ea 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionUnpackingDetailsMapper.xml @@ -35,5 +35,22 @@ + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionUnpackingDetailsService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionUnpackingDetailsService.java index 4f5523cf1..3ffcf4759 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionUnpackingDetailsService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionUnpackingDetailsService.java @@ -22,6 +22,7 @@ import com.logpm.distribution.entity.DistributionUnpackingDetailsEntity; import com.logpm.distribution.excel.DistributionUnpackingDetailsExcel; import com.logpm.distribution.vo.DistributionUnpackingDetailsVO; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; import java.util.List; @@ -50,4 +51,18 @@ public interface IDistributionUnpackingDetailsService extends BaseService exportDistributionUnpackingDetails(Wrapper queryWrapper); + /** + * 查询库存品拆包明细 + * @param page + * @param stockListId + * @return + */ + IPage stockListUnpackDetail(IPage page, Long stockListId); + + /** + * 取消拆包 + * @param stockListIds + * @return + */ + R cancelUnpack(String stockListIds); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java index 15ffbd2cf..3fc52278e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java @@ -41,6 +41,7 @@ import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseGoodsAllocationClient; import com.logpm.warehouse.feign.IWarehouseWaybillClient; import lombok.extern.slf4j.Slf4j; +import lombok.val; import org.apache.ibatis.javassist.runtime.Inner; import org.apache.logging.log4j.util.Strings; import org.springblade.common.constant.DictBizConstant; @@ -1572,6 +1573,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl parcelNumberVOS = distributionStockArticleDTO.getParcelNumberVOS(); AtomicInteger zeroPackageNum = new AtomicInteger(); if (Func.isNotEmpty(parcelNumberVOS)) { + boolean flag = parcelNumberVOS.stream().allMatch(zero -> zero.getReservationNum() <= 0); + if (flag){ + throw new RuntimeException(distributionStockArticleDTO.getOrderCode()+"数量录入错误!!!"); + } + //进行录入数量的操作 parcelNumberVOS.forEach(p -> { if (p.getReservationNum() > 0) { @@ -1596,29 +1602,35 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl list = distributionStockArticleService.getZeroOrderDetail(distributionStockArticleDTO.getId()); - list.forEach(l -> { - DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity(); - distributionReservationZeroPackageEntity.setQuantity(l.getQuantity() - l.getDeliveryQuantity() - l.getOutboundQuantity()); - distributionReservationZeroPackageEntity.setReservationId(id); - distributionReservationZeroPackageEntity.setStockArticleId(distributionStockArticleDTO.getId()); - distributionReservationZeroPackageEntity.setParcelListId(l.getParcelListId()); - distributionReservationZeroPackageEntity.setCategoryName(l.getFirsts()); - distributionReservationZeroPackageEntity.setType(DistributionTypeConstant.shipie.getValue()); - distributionReservationZeroPackageEntity.setZeroPackageStatus(ReservationOrderStatusConstant.zhengchang.getValue()); - distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); - //统计数量 - zeroPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity()); - //维护零担订单品类对应数量的冻结数量 - DistributionParcelNumberEntity parcelNumberEntity = distributionParcelNumberService.getById(l.getId()); - parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + l.getReservationNum()); - distributionParcelNumberService.updateById(parcelNumberEntity); - packageLockIds.add(l.getParcelListId()); - }); + if (!list.isEmpty()){ + if (list.stream().mapToInt(DistributionParcelNumberVO::getHandQuantity).sum() > 0){ + throw new RuntimeException(distributionStockArticleDTO.getOrderCode()+"在库数不足,请核对!!!"); + } + list.forEach(l -> { + DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity(); + distributionReservationZeroPackageEntity.setQuantity(l.getQuantity() - l.getDeliveryQuantity() - l.getOutboundQuantity()); + distributionReservationZeroPackageEntity.setReservationId(id); + distributionReservationZeroPackageEntity.setStockArticleId(distributionStockArticleDTO.getId()); + distributionReservationZeroPackageEntity.setParcelListId(l.getParcelListId()); + distributionReservationZeroPackageEntity.setCategoryName(l.getFirsts()); + distributionReservationZeroPackageEntity.setType(DistributionTypeConstant.shipie.getValue()); + distributionReservationZeroPackageEntity.setZeroPackageStatus(ReservationOrderStatusConstant.zhengchang.getValue()); + distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); + //统计数量 + zeroPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity()); + //维护零担订单品类对应数量的冻结数量 + DistributionParcelNumberEntity parcelNumberEntity = distributionParcelNumberService.getById(l.getId()); + parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + l.getReservationNum()); + distributionParcelNumberService.updateById(parcelNumberEntity); + packageLockIds.add(l.getParcelListId()); + }); + } + } } DistributionReservationStockarticleEntity reservationStockarticleEntity = new DistributionReservationStockarticleEntity(); reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.zengjia.getValue()); - reservationStockarticleEntity.setStockArticleCode(distributionStockArticleDTO.getStockArticleCode()); + reservationStockarticleEntity.setStockArticleCode(distributionStockArticleDTO.getOrderCode()); reservationStockarticleEntity.setStockArticleId(distributionStockArticleDTO.getId()); reservationStockarticleEntity.setReservationId(id); reservationStockarticleEntity.setReservationNum(packageNum.get()); @@ -3313,6 +3325,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl parcelNumberVOS = s.getParcelNumberVOS(); AtomicInteger zeroPackageNum = new AtomicInteger(0); if (Func.isNotEmpty(parcelNumberVOS)) { + boolean inputFlag = parcelNumberVOS.stream().allMatch(zero -> zero.getReservationNum() <= 0); + if (inputFlag){ + //判断零担品类录入是否都为0 + throw new RuntimeException(s.getOrderCode()+"此零担订单数量录入错误!!!"); + } //存在零担订单的包件信息 parcelNumberVOS.forEach(p -> { if (p.getReservationNum() > 0) { @@ -3341,27 +3358,34 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl list = distributionParcelNumberService.list(Wrappers.query().lambda().eq(DistributionParcelNumberEntity::getStockArticleId, s.getId())); // List list = distributionParcelNumberMapper.selectZeroOrderPackageList(s.getId()); List list = distributionStockArticleService.getZeroOrderDetail(s.getId()); - list.forEach(l -> { - if (l.getHandQuantity() > 0) { - DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity(); - distributionReservationZeroPackageEntity.setQuantity(l.getHandQuantity() - l.getDeliveryQuantity() - l.getOutboundQuantity()); - distributionReservationZeroPackageEntity.setReservationId(reservationId); - distributionReservationZeroPackageEntity.setStockArticleId(s.getId()); - distributionReservationZeroPackageEntity.setParcelListId(l.getParcelListId()); - distributionReservationZeroPackageEntity.setCategoryName(l.getFirsts()); - distributionReservationZeroPackageEntity.setType(DistributionTypeConstant.shipie.getValue()); - distributionReservationZeroPackageEntity.setZeroPackageStatus(ReservationOrderStatusConstant.zhengchang.getValue()); - distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); - //统计数量 - zeroPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity()); - //维护零担订单品类对应数量的冻结数量 - DistributionParcelNumberEntity parcelNumberEntity = distributionParcelNumberService.getById(l.getId()); - parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + distributionReservationZeroPackageEntity.getQuantity()); - distributionParcelNumberService.updateById(parcelNumberEntity); -// distributionAsyncService.checkZeroStockArticleReservationStatus(parcelNumberEntity); - packageLockIds.add(l.getParcelListId()); + if (!list.isEmpty()){ + int sum = list.stream().mapToInt(DistributionParcelNumberVO::getHandQuantity).sum(); + if (sum == 0){ + throw new RuntimeException(s.getOrderCode()+"此零担订单无在库数量!!!"); } - }); + list.forEach(l -> { + if (l.getHandQuantity() > 0) { + DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity(); + distributionReservationZeroPackageEntity.setQuantity(l.getHandQuantity() - l.getDeliveryQuantity() - l.getOutboundQuantity()); + distributionReservationZeroPackageEntity.setReservationId(reservationId); + distributionReservationZeroPackageEntity.setStockArticleId(s.getId()); + distributionReservationZeroPackageEntity.setParcelListId(l.getParcelListId()); + distributionReservationZeroPackageEntity.setCategoryName(l.getFirsts()); + distributionReservationZeroPackageEntity.setType(DistributionTypeConstant.shipie.getValue()); + distributionReservationZeroPackageEntity.setZeroPackageStatus(ReservationOrderStatusConstant.zhengchang.getValue()); + distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); + //统计数量 + zeroPackageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity()); + //维护零担订单品类对应数量的冻结数量 + DistributionParcelNumberEntity parcelNumberEntity = distributionParcelNumberService.getById(l.getId()); + parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + distributionReservationZeroPackageEntity.getQuantity()); + distributionParcelNumberService.updateById(parcelNumberEntity); +// distributionAsyncService.checkZeroStockArticleReservationStatus(parcelNumberEntity); + packageLockIds.add(l.getParcelListId()); + } + }); + } + } // distributionReservationStockarticleEntity.setIsZero(IsOrNoConstant.yes.getValue()); // distributionReservationStockarticleEntity.setReservationId(reservationId); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index bedc29c2e..4df7d21d9 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -4436,21 +4436,25 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl orderCodes = new ArrayList<>(); List parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distributionSignforEntity.getReservationId()); //包件不需要考虑备货、装车直接可进行签收 过滤已装车的包件 // List noLoadingPackage = parcelListEntityList.stream().filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).collect(Collectors.toList()); //查询该客户下的所有零担信息 List parcelNumberEntityList = distributionReservationMapper.selectZeroPackageListByReservationId(distributionSignforEntity.getReservationId()); if (Func.isNotEmpty(parcelNumberEntityList)) { - loadingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum(); - signingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum(); +// loadingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum(); +// signingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum(); for (DistributionParcelNumberDTO parcelNumberEntity : parcelNumberEntityList) { + DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(parcelNumberEntity.getParcelListId()); DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanService.getOne(Wrappers.query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionSignforEntity.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, parcelNumberEntity.getParcelListId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); - DistributionParcelNumberEntity parcelNumberServiceById = distributionParcelNumberService.getOne(Wrappers.query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId())); - Integer outboundQuantity = 0; - Integer signinQuantity = 0; - Integer deliveryQuantity = 0; - Integer handQuantity = 0; + DistributionParcelNumberEntity parcelNumberServiceById = distributionParcelNumberService.getOne(Wrappers.query().lambda() + .eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId()) + ); +// Integer outboundQuantity = 0; +// Integer signinQuantity = 0; +// Integer deliveryQuantity = 0; +// Integer handQuantity = 0; if (Func.isNotEmpty(distributionLoadscanEntity)) { //情况列举: // 1、装车件数未按照计划数量 @@ -4458,44 +4462,17 @@ public class DistributionSignforServiceImpl extends BaseServiceImplquery().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId())); - - if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) { - //装车数量和签收数量只会一样, - if (distributionLoadscanEntity.getReceivedQuantity() > 0 && distributionLoadscanEntity.getReceivedQuantity() <= parcelNumberEntity.getReservationNum()) { - outboundQuantity = distributionParcelNumberEntity.getOutboundQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum(); - signinQuantity = distributionParcelNumberEntity.getSigninQuantity() + distributionLoadscanEntity.getReceivedQuantity() - parcelNumberEntity.getReservationNum(); - deliveryQuantity = distributionParcelNumberEntity.getDeliveryQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum(); - handQuantity = distributionParcelNumberEntity.getHandQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum(); - //装车按照计划完成装车 - distributionLoadscanEntity.setPackageNub(parcelNumberEntity.getReservationNum()); - distributionLoadscanEntity.setLoadedNub(parcelNumberEntity.getReservationNum()); - distributionLoadscanEntity.setReceivedQuantity(parcelNumberEntity.getReservationNum()); - distributionLoadscanService.updateById(distributionLoadscanEntity); - packageLockIds.add(distributionLoadscanEntity.getPackageId()); - - } else { - log.error("################扫描签收零担订单数量异常:{}", distributionLoadscanEntity); - return Resp.scanFail("数量录入错误", "数量录入错误"); - } - - } else if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.weiqianshou.getValue())) { - outboundQuantity = distributionParcelNumberEntity.getOutboundQuantity() + (distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); - signinQuantity = distributionParcelNumberEntity.getSigninQuantity() + distributionLoadscanEntity.getReceivedQuantity(); - deliveryQuantity = distributionParcelNumberEntity.getDeliveryQuantity() + (distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); - handQuantity = distributionParcelNumberEntity.getHandQuantity() + (distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); - distributionLoadscanEntity.setReceivedQuantity(parcelNumberEntity.getReservationNum()); - distributionLoadscanEntity.setLoadedNub(parcelNumberEntity.getReservationNum()); - distributionLoadscanEntity.setPackageNub(parcelNumberEntity.getReservationNum()); - distributionLoadscanEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); - if (distributionSignfor.getIsClerk()) { - distributionLoadscanEntity.setMsg("文员一键签收数据补录"); - } else { - distributionLoadscanEntity.setMsg("司机一键签收数据补录"); - } - distributionLoadscanService.updateById(distributionLoadscanEntity); - packageLockIds.add(distributionLoadscanEntity.getPackageId()); - } +// DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId())); + //扣除在库数量 + parcelNumberServiceById.setHandQuantity(parcelNumberServiceById.getHandQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); + //扣除冻结数量 + parcelNumberServiceById.setDeliveryQuantity(parcelNumberServiceById.getDeliveryQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); + //维护出库数量 + parcelNumberServiceById.setOutboundQuantity(parcelNumberServiceById.getOutboundQuantity() - distributionLoadscanEntity.getLoadedNub() + parcelNumberEntity.getReservationNum()); + //维护签收数量 + parcelNumberServiceById.setSigninQuantity(parcelNumberServiceById.getSigninQuantity() - distributionLoadscanEntity.getLoadedNub() + parcelNumberEntity.getReservationNum()); + loadingPackageNum += (parcelNumberEntity.getReservationNum()- distributionLoadscanEntity.getLoadedNub()); + signingPackageNum += (parcelNumberEntity.getReservationNum()- distributionLoadscanEntity.getLoadedNub()); } else { //不存在装车数据 DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity(); @@ -4543,21 +4520,27 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl packageIds = new ArrayList<>(); List packageCodes = new ArrayList<>(); - List orderCodes = new ArrayList<>(); if (Func.isNotEmpty(parcelListEntityList)) { loadingPackageNum += parcelListEntityList.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); signingPackageNum += parcelListEntityList.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); @@ -4645,11 +4628,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl 0) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java index a33d41b3f..1830c79b0 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java @@ -266,13 +266,21 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl implements IDistributionUnpackingDetailsService { + @Autowired + @Lazy + private IDistributionStockListService distributionStockListService; + + @Autowired + private IBasicdataWarehouseClient basicdataWarehouseClient; + + @Autowired + private IBasicMaterialClient basicMaterialClient; + + + + + @Override public IPage selectDistributionUnpackingDetailsPage(IPage page, DistributionUnpackingDetailsVO distributionUnpackingDetails) { return page.setRecords(baseMapper.selectDistributionUnpackingDetailsPage(page, distributionUnpackingDetails)); @@ -52,4 +85,111 @@ public class DistributionUnpackingDetailsServiceImpl extends BaseServiceImpl stockListUnpackDetail(IPage page, Long stockListId) { + return baseMapper.stockListUnpackDetail(page, stockListId); + } + + /** + * @param stockListIds + * @return + */ + @Override + @Transient + public R cancelUnpack(String stockListIds) { + String method = "######################DistributionUnpackingDetailsServiceImpl.cancelUnpack"; + BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); + if (Func.isEmpty(myCurrentWarehouse)){ + log.error(method+"取消拆包失败,仓库未选择"); + return R.fail(403,"未授权"); + } + //根基拆包的记录进行数量的维护 + if (Func.isEmpty(stockListIds)) { + log.error(method+"取消拆包失败,参数不能为空"); + return R.fail("操作失败"); + } + List list = Func.toLongList(stockListIds); + List distributionUnpackingDetailsEntities = this.listByIds(list); + if (!distributionUnpackingDetailsEntities.isEmpty()){ + List sourceStockListId = distributionUnpackingDetailsEntities.stream().map(DistributionUnpackingDetailsEntity::getStockListId).distinct().collect(Collectors.toList()); + + if (sourceStockListId.size() == 1){ + //查询父级库存品 + DistributionStockListEntity stockListEntity = distributionStockListService.getById(sourceStockListId.get(0)); + if (Func.isEmpty(stockListEntity)){ + log.error(method+"取消拆包失败,查询父级库存品错误"); + return R.fail("操作失败"); + } + //查询父级库存品物料信息 + BasicMaterialEntity basicMaterialEntity = basicMaterialClient.getMaterialOwnId(stockListEntity.getMaterialId()); + if (Func.isEmpty(basicMaterialEntity)){ + log.error(method+"取消拆包失败,查询父级库存品物料错误"); + return R.fail("操作失败"); + } + BladeUser user = AuthUtil.getUser(); + AtomicReference Quantity = new AtomicReference<>(0); + //收集需要进行删除记录ID + List ids = new ArrayList<>(); + List distributionStockListEntities = new ArrayList<>(); + Map> collect = distributionUnpackingDetailsEntities.stream().collect(Collectors.groupingBy(DistributionUnpackingDetailsEntity::getAimStockListId)); + if (!collect.isEmpty()) { + collect.forEach((k,v)->{ + //统计需要进行恢复的拆包数量 + int sum = v.stream().mapToInt(DistributionUnpackingDetailsEntity::getUnpackingQuantity).sum(); + Quantity.updateAndGet(v1 -> v1 + sum); + List stockDetailIds = v.stream().map(DistributionUnpackingDetailsEntity::getId).collect(Collectors.toList()); + ids.addAll(stockDetailIds); + for (DistributionUnpackingDetailsEntity detailsEntity : v) { + DistributionStockListEntity distributionStockListEntity = distributionStockListService.getById(detailsEntity.getAimStockListId()); + distributionStockListEntity.setId(detailsEntity.getAimStockListId()); + distributionStockListEntity.setQuantityStock(distributionStockListEntity.getQuantityStock() - (detailsEntity.getUnpackingQuantity() * Integer.parseInt(basicMaterialEntity.getPackageNum())) ); + if (distributionStockListEntity.getQuantityStock() - distributionStockListEntity.getOutboundQuantity() < 0){ + //收集无法进行拆包的库存品 + throw new RuntimeException("在库数量不足取消拆包操作"); + }else { + distributionStockListEntities.add(distributionStockListEntity); + } + } + }); + if (!distributionStockListEntities.isEmpty()){ + distributionStockListService.updateBatchById(distributionStockListEntities); + } + } + if (!ids.isEmpty()){ + this.update(new UpdateWrapper().lambda() + .in(DistributionUnpackingDetailsEntity::getId,ids) + .set(DistributionUnpackingDetailsEntity::getIsDeleted,1) + .set(DistributionUnpackingDetailsEntity::getCancelUnpackUser,user.getNickName()) + ); + } + //查询是否还存在有拆包记录 + List allLog = this.list(Wrappers.query().lambda().eq(DistributionUnpackingDetailsEntity::getStockListId, stockListEntity.getId())); + if (allLog.isEmpty()){ + stockListEntity.setUnpack(false); + } + stockListEntity.setUnpackingQuantity(stockListEntity.getUnpackingQuantity() - Quantity.get()); + stockListEntity.setOutboundQuantity(stockListEntity.getOutboundQuantity() - Quantity.get()); + stockListEntity.setQuantityStock(stockListEntity.getQuantityStock() + Quantity.get()); + distributionStockListService.updateById(stockListEntity); + }else { + log.error(method+"取消拆包失败,存在多个父级库存品ID"); + throw new RuntimeException("操作失败"); + } + }else { + //查询不到日志信息 + log.error(method+"取消拆包失败,查询记录失败"); + throw new RuntimeException("操作失败"); + } + + + + return R.success("操作成功"); + + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index 7d53044bb..9287a1a74 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -1721,7 +1721,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl pageList(IPage page, Map distrilbutionBillLading) { DistrilbutionBillLadingDTO distrilbutionBillLadingDTO = JSONObject.parseObject(JSONObject.toJSONString(distrilbutionBillLading), DistrilbutionBillLadingDTO.class); //获取当前登录人仓库 - List myWatchWarehouse = basicdataWarehouseClient.getMyWatchWarehouse(); + List myWatchWarehouse = basicdataWarehouseClient.getMyWarehouseList(); List collect = myWatchWarehouse.stream() .map(BasicdataWarehouseEntity::getId) .collect(Collectors.toList());