From ffe60f21f17f80f3247e04a2c9c7de05c253b209 Mon Sep 17 00:00:00 2001 From: caoyizhong <1270296080@qq.com> Date: Wed, 1 Nov 2023 14:44:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9B=B6=E6=8B=85=E5=A4=87?= =?UTF-8?q?=E8=B4=A7=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/DistributionParcelListEntity.java | 4 + .../vo/DistributionStockupOrderListVO.java | 1 + .../DistributionParcelListController.java | 4 +- .../IDistributionParcelListService.java | 3 +- .../impl/DistributionAsyncServiceImpl.java | 2 +- .../DistributionParcelListServiceImpl.java | 21 +- .../impl/DistributionStockupServiceImpl.java | 234 +++++++++++++++--- .../feign/WarehouseUpdownGoodsClient.java | 3 +- 8 files changed, 224 insertions(+), 48 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java index db8470b74..50e716e84 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java @@ -215,6 +215,10 @@ public class DistributionParcelListEntity extends TenantEntity { @TableField(exist = false) private Integer reservationNum; + @ApiModelProperty(value = "是否选择") + @TableField(exist = false) + private Boolean choice; //是否选择 + @ApiModelProperty(value = "备货状态") diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupOrderListVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupOrderListVO.java index 439fa10b0..80558e1aa 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupOrderListVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupOrderListVO.java @@ -38,5 +38,6 @@ public class DistributionStockupOrderListVO implements Serializable { private Long stockId; //备货id private Long allocationId; //货位id private Integer stockQuantity; //备货数量 + private Integer allocationNumber; //货位数量 } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionParcelListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionParcelListController.java index a3c7321eb..7ca33b4aa 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionParcelListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionParcelListController.java @@ -155,8 +155,8 @@ public class DistributionParcelListController extends BladeController { @GetMapping("/pickupPack") @ApiOperationSupport(order = 2) @ApiOperation(value = "查询自提包件信息", notes = "传入distributionParcelList") - public R> getPickupPack(@ApiIgnore @RequestParam Map distributionParcelList, Query query) { - List list = distributionParcelListService.getPickupPack(distributionParcelList); + public R> getPickupPack(@ApiIgnore @RequestParam Map distributionParcelList, Query query) { + IPage list = distributionParcelListService.getPickupPack(distributionParcelList,Condition.getPage(query)); return R.data(list); } 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 6be0a3dad..faade8b1b 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 @@ -152,7 +152,8 @@ public interface IDistributionParcelListService extends BaseService getPickupPack(Map distributionParcelList); + IPage getPickupPack(Map distributionParcelList,IPage page); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index e6cb02814..e97be5653 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -1427,7 +1427,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { nu.set(nu.get() + sum); } //修改预约备货状态 - if(nuy.get() == nu.get()){ + if(nuy.get() >= nu.get()){ DistributionReservationEntity reservationEntity = new DistributionReservationEntity(); reservationEntity.setId(i.getReservationId()); reservationEntity.setStockupStatus(ReservationStockupStatusConstant.yibeihuo.getValue()); 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 6aa500fa1..2f09df4b5 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 @@ -496,30 +496,33 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl getPickupPack(Map distributionParcelList) { + public IPage getPickupPack(Map distributionParcelList, IPage page) { Object o = distributionParcelList.get("stockArticleId"); Object reservationId = distributionParcelList.get("reservationId"); - List distributionParcelListEntities = baseMapper.selectList(Wrappers.query().lambda() - .eq(DistributionParcelListEntity::getStockArticleId, o) - .eq(DistributionParcelListEntity::getConditions, "1") - ); - List list = new ArrayList<>(); - distributionParcelListEntities.forEach( i ->{ + + DistributionParcelListDTO parcelListEntity = new DistributionParcelListDTO(); + parcelListEntity.setStockArticleId(Long.valueOf(o.toString())); + parcelListEntity.setConditions(1); + IPage distributionParcelListEntityIPage = baseMapper.pageOweList(page, parcelListEntity); + List list = new ArrayList<>(); + distributionParcelListEntityIPage.getRecords().forEach( i ->{ DistributionReservationZeroPackageEntity one = reservationZeroPackageService.getOne(Wrappers.query().lambda() .eq(DistributionReservationZeroPackageEntity::getStockArticleId, i.getStockArticleId()) .eq(DistributionReservationZeroPackageEntity::getReservationId, reservationId) .eq(DistributionReservationZeroPackageEntity::getParcelListId, i.getId()) .apply("zero_package_status in (1,3)") ); - DistributionParcelListVO parcelListVO = new DistributionParcelListVO(); + DistributionParcelListEntity parcelListVO = new DistributionParcelListEntity(); BeanUtils.copyProperties(i,parcelListVO); parcelListVO.setChoice(ObjectUtils.isNotNull(one) ? true : false); list.add(parcelListVO); }); - return list; + distributionParcelListEntityIPage.setRecords(list); + return distributionParcelListEntityIPage; } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 6c2d5fe49..d5648f8de 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -17,6 +17,7 @@ package com.logpm.distribution.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -109,7 +110,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list2 = distrilbutionBillStockService.listPackageSelf(i.getReservationId()); i.setPlanNum(i.getPlanNum()+list2.size()); + List listStock = distributionStockService.list(Wrappers.query().lambda() + .eq(DistributionStockEntity::getBillLadingId, i.getReservationId()) + .eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId()) + ); + if(!listStock.isEmpty()){ + int sum = listStock.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum(); + i.setStockupNum(sum); + }else{ + i.setStockupNum(0); + } }); - map.put("orderList", list); } else { //商 ,市 @@ -454,6 +464,16 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list2 = distributionStockService.list(Wrappers.query().lambda() + .eq(DistributionStockEntity::getReservationId, stockupDTO.getReservationId()) + .eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId()) + ); + if(!list2.isEmpty()){ + int sum = list2.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum(); + distributionStockupListVO.setStockupNum(sum); + }else{ + distributionStockupListVO.setStockupNum(0); + } list.add(distributionStockupListVO); } } @@ -606,6 +626,86 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl allocationEntityList = warehouseTaryAllocationClient.getAllocationId(allocationId); + if(ObjectUtils.isNotNull(allocationEntityList) && !allocationEntityList.isEmpty()){ + //查询托盘信息 + + List trayList = warehouseTrayGoodsClient.getTrayList(trayGoodsEntity); + if(!trayList.isEmpty()){ + i.setTrayId(trayList.get(0).getId().toString()); + i.setPallet(trayList.get(0).getTrayCode()); + } + } + }else{ + + List trayList = warehouseTrayGoodsClient.getTrayList(trayGoodsEntity); + if(!trayList.isEmpty()){ + String trayId = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).collect(Collectors.toList()).stream().map(Object::toString).collect(Collectors.joining(",")); + String trayCode = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayCode).collect(Collectors.joining(",")); + i.setTrayId(trayId); + i.setPallet(trayCode); + } + } + return i; + + } + + /** + * 查询零担货位信息 + * @param list + * @return + */ + public List getZeroTrayInfo(List list){ + List listStockup = new ArrayList<>(); + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + DistributionStockupOrderListVO i = iterator.next(); + BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); + if(ObjectUtils.isNull(myCurrentWarehouse)){ + throw new ServiceException("请选择仓库信息!!"); + } + //查询货位信息 + WarehouseUpdownGoodsEntity updownGoodsEntity = new WarehouseUpdownGoodsEntity(); + updownGoodsEntity.setAssociationId(Long.valueOf(i.getStockArticleId())); + updownGoodsEntity.setWarehouseId(myCurrentWarehouse.getId()); + updownGoodsEntity.setAssociationValue(i.getOrderCode()); + updownGoodsEntity.setAssociationType("1"); + List information = warehouseUpdownGoodsClient.getLocationStockListInformation(updownGoodsEntity); + if(!information.isEmpty()){ + DistributionStockupOrderListVO finalI = i; + information.stream().forEach(q ->{ + DistributionStockupOrderListVO stockupOrderListVO = new DistributionStockupOrderListVO(); + BeanUtils.copyProperties(finalI,stockupOrderListVO); + //查询托盘信息 + stockupOrderListVO = getTrayInfo(stockupOrderListVO,Long.valueOf(stockupOrderListVO.getStockArticleId()),myCurrentWarehouse.getId(),stockupOrderListVO.getOrderCode(),q.getAllocationId()); + stockupOrderListVO.setAllocation(q.getPositionCode()); + stockupOrderListVO.setAllocationId(q.getAllocationId()); + stockupOrderListVO.setAllocationNumber(q.getNum()); + listStockup.add(stockupOrderListVO); + iterator.remove(); + }); + } + + } + list.addAll(listStockup); + return list; + +} + + /** * 查询自提信息 * @param reservationId @@ -620,35 +720,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl{ - BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); - if(ObjectUtils.isNull(myCurrentWarehouse)){ - throw new ServiceException("请选择仓库信息!!"); - } - WarehouseTrayGoodsEntity trayGoodsEntity = new WarehouseTrayGoodsEntity(); - trayGoodsEntity.setAssociationId(Long.valueOf(i.getStockArticleId())); - trayGoodsEntity.setWarehouseId(myCurrentWarehouse.getId()); - trayGoodsEntity.setAssociationValue(i.getOrderCode()); - trayGoodsEntity.setAssociationType("1"); - List trayList = warehouseTrayGoodsClient.getTrayList(trayGoodsEntity); - if(!trayList.isEmpty()){ - i.setTrayId(trayList.get(0).getId().toString()); - i.setPallet(trayList.get(0).getTrayCode()); - } - WarehouseUpdownGoodsEntity updownGoodsEntity = new WarehouseUpdownGoodsEntity(); - updownGoodsEntity.setAssociationId(Long.valueOf(i.getStockArticleId())); - trayGoodsEntity.setWarehouseId(myCurrentWarehouse.getId()); - trayGoodsEntity.setAssociationValue(i.getOrderCode()); - trayGoodsEntity.setAssociationType("1"); - List information = warehouseUpdownGoodsClient.getLocationStockListInformation(updownGoodsEntity); - if(!information.isEmpty()){ - i.setAllocation(information.get(0).getPositionCode()); - i.setAllocationId(information.get(0).getAllocationId()); - } - }); - + List zeroTrayInfo = getZeroTrayInfo(list); + if(!zeroTrayInfo.isEmpty()){ + list = zeroTrayInfo; + } } - //获取有货位的数据 List collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList()); Set listYou = new HashSet<>(); @@ -838,6 +914,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl(); } + //零担查询货位,托盘信息 + if(stockupDTO.getIsZero().equals("1")){ + List zeroTrayInfo = getZeroTrayInfo(list); + if(!zeroTrayInfo.isEmpty()){ + list = zeroTrayInfo; + } + } + List collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList()); //有货位 Set listYou = new HashSet<>(); // collect11.forEach( p ->{ @@ -882,6 +966,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImplquery().lambda() + .eq(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1") + .eq(DistributionReservationZeroPackageEntity::getId, i.getId()) + ); + + + if(ObjectUtils.isNull()){ + return Resp.scanFail(i.getCategoryName()+"备货信息未找到!",i.getCategoryName()+"备货信息未找到!"); + } + if(one.getQuantity().equals(one.getRealityQuantity())){ + return Resp.scanFail(i.getCategoryName()+"备货已完成!!",i.getCategoryName()+"备货已完成!!"); + } + } + //把数据取出来 List zeroStockUpData;; @@ -2206,7 +2340,6 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl collect = stockupDTO.getList().stream().filter( //可以 @@ -2214,12 +2347,23 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl stockEntityList = new ArrayList<>(); + List jsonObjectList = new ArrayList<>(); for (StockupZeroVO i : collect) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("warehouseId",myCurrentWarehouse.getId()); //查询是不是当前包件 DistributionReservationZeroPackageEntity byId1 = reservationZeroPackageService.getById(i.getId()); if(ObjectUtils.isNull(byId1)){ continue; } + DistributionStockArticleEntity stockArticle = distributionStockArticleService.getById(byId1.getStockArticleId()); + if(ObjectUtils.isNull(stockArticle)){ + throw new ServiceException("订单数据不存在!!"); + } + jsonObject.put("orderCode",stockArticle.getOrderCode()); + jsonObject.put("waybillCode",stockArticle.getWaybillNumber()); + + //查询备货信息 QueryWrapper queryWrapper = new QueryWrapper<>(); if(stockupDTO.getTypeService().equals("3")){ queryWrapper.eq("bill_lading_id",stockupDTO.getReservationId()); @@ -2232,8 +2376,8 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl byId.getQuantity()){ +// DistributionReservationZeroPackageEntity byId = reservationZeroPackageService.getById(i.getId()); + if(i.getQuantity() > byId1.getQuantity()){ return Resp.scanFail(i.getCategoryName()+"备货数量大于待备货数量!",i.getCategoryName()+"备货数量大于待备货数量!"); } Optional first = stockupDTO.getList().stream().filter(q -> i.getStockArticleId().equals(q.getStockArticleId()) && q.getQuantity() <= i.getQuantity() && q.getQuantity() > 0).findFirst(); @@ -2243,12 +2387,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImplquery().lambda() .eq(ObjectUtils.isNotNull(updownGoodsEntity.getAllocationId()),WarehouseUpdownGoodsEntity::getAllocationId,updownGoodsEntity.getAllocationId()) - .eq(WarehouseUpdownGoodsEntity::getAssociationValue,updownGoodsEntity.getAssociationValue()) + .eq(ObjectUtils.isNotNull(updownGoodsEntity.getAssociationValue()),WarehouseUpdownGoodsEntity::getAssociationValue,updownGoodsEntity.getAssociationValue()) .eq(WarehouseUpdownGoodsEntity::getWarehouseId,updownGoodsEntity.getWarehouseId()) + .eq(ObjectUtils.isNotNull(updownGoodsEntity.getAssociationType()),WarehouseUpdownGoodsEntity::getAssociationType,updownGoodsEntity.getAssociationType()) .eq(ObjectUtils.isNotNull(updownGoodsEntity.getAssociationId()),WarehouseUpdownGoodsEntity::getAssociationId,updownGoodsEntity.getAssociationId()) ); }