From 3069fd2bd20cf80a3f82df439cae74a9dadac188 Mon Sep 17 00:00:00 2001 From: caoyizhong <1270296080@qq.com> Date: Thu, 12 Oct 2023 13:58:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=87=AA=E6=8F=90=E7=AD=BE?= =?UTF-8?q?=E6=94=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DistrilbutionAppBillLadingZeroOrderVO.java | 63 ++++++ .../app/DistrilbutionAppBillLadingZeroVO.java | 7 +- .../dto/app/BillLadingAppDTO.java | 4 +- .../DistrilbutionBillLadingServiceImpl.java | 197 +++++++++++++----- 4 files changed, 220 insertions(+), 51 deletions(-) create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroOrderVO.java diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroOrderVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroOrderVO.java new file mode 100644 index 000000000..42cf7eceb --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroOrderVO.java @@ -0,0 +1,63 @@ +package com.logpm.distribution.vo.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +@Data +public class DistrilbutionAppBillLadingZeroOrderVO implements Serializable { + + private Long id; + + /** + * 服务号 + */ + @ApiModelProperty(value = "服务号") + private String serviceNumber; + /** + * 订单自编号 + */ + @ApiModelProperty(value = "订单自编号") + private String orderCode; + + /** + * 货物名称 + */ + @ApiModelProperty(value = "货物名称") + private String descriptionGoods; + + /** + * 订单总件数 + */ + @ApiModelProperty(value = "订单总件数") + private Integer totalNumber; + /** + * 在库件数 + */ + @ApiModelProperty(value = "在库件数") + private Integer handQuantity; + /** + * 运单号 + */ + @ApiModelProperty(value = "运单号") + private String waybillNumber; + + @ApiModelProperty(value = "订单状态") + private String orderStatus; + /** + * 预约数量 + */ + @ApiModelProperty(value = "预约数量") + private Integer reservationQuantity; + /** + * 备货数量 + */ + @ApiModelProperty(value = "备货数量") + private Integer realityQuantity; + + + + + + +} diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java index 726c20eab..80e7ea693 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java @@ -8,7 +8,7 @@ import java.io.Serializable; @Data public class DistrilbutionAppBillLadingZeroVO implements Serializable { - private Long id; + private Long id; // 包件ID /** * 订单自编号 */ @@ -50,6 +50,11 @@ public class DistrilbutionAppBillLadingZeroVO implements Serializable { */ @ApiModelProperty(value = "预约数量") private Integer reservationQuantity; + /** + * 备货数量 + */ + @ApiModelProperty(value = "备货数量") + private Integer realityQuantity; diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java index 8d55e69b6..3bfa7a534 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java @@ -1,6 +1,7 @@ package com.logpm.distribution.dto.app; import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingZeroVO; import lombok.Data; import java.io.Serializable; @@ -24,6 +25,7 @@ public class BillLadingAppDTO implements Serializable { private String orderSelfNumbering;//订单自编码 private Long warehouseId;//仓库ID - private List list; //零担数据集合 + private List list; //零担数据集合 + private DistrilbutionAppBillLadingZeroVO billLadingZeroVO; //单个数据 } 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 b6a5ed864..df9217822 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 @@ -257,7 +257,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!ids.isEmpty()) { ids.forEach(a -> { DistributionDeliveryDetailsEntity deliveryDetails = new DistributionDeliveryDetailsEntity(); deliveryDetails.setId(a); @@ -326,7 +326,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!distrilbutionBillLading.getPrintList().isEmpty()) { addPrint(distrilbutionBillLading); } @@ -334,7 +334,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!distrilbutionBillLading.getStockDTOList().isEmpty()) { //没有 List detailsEntities = new ArrayList<>(); Boolean finalLas = las; @@ -358,7 +358,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!distrilbutionBillLading.getFei().isEmpty()) { List listEntity = new ArrayList<>(); distrilbutionBillLading.getFei().forEach((k, v) -> { DistributionDeliveryChargeEntity distributionDeliveryCharge = new DistributionDeliveryChargeEntity(); @@ -497,7 +497,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list1 = distributionStockService.list(Wrappers.query().lambda().eq(DistributionStockEntity::getStockArticle, i.getStockArticleId())); - if (list1.size() == 0) { + if (list1.isEmpty()) { //取消 DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity(); stockArticleEntity.setId(i.getStockArticleId()); @@ -757,7 +757,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list1 = distributionDeliveryDetailsService.list(Wrappers.query().lambda() .eq(DistributionDeliveryDetailsEntity::getBillLadingId, billLadingId) ); - if (list1.size() > 0) { + if (!list1.isEmpty()) { long count = list1.stream().filter(i -> i.getConditions().equals("2")).count(); signedNum += (int) count; } @@ -766,14 +766,14 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!list2.isEmpty()) { signedNum += list2.size(); } // planNum += list.stream().mapToInt(DistributionDeliveryDetailsEntity::getQuantity).sum(); DistrilbutionAppBillLadingOrderMainVO mainVO = new DistrilbutionAppBillLadingOrderMainVO(); mainVO.setOrderNum(orderNum); - if(list.size() > 0){ + if(!list.isEmpty()){ mainVO.setInventoryNub(list.stream().mapToInt(DistributionDeliveryDetailsEntity::getQuantity).sum()); }else{ mainVO.setInventoryNub(0); @@ -919,7 +919,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0 ? "已备货" : "未备货"); + i.setStockUp(!list.isEmpty() ? "已备货" : "未备货"); }); return distrilbutionBillLadingOwnVOIPage; } @@ -1014,7 +1014,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list3 = distributionDeliveryDetailsService.list(Wrappers.query().lambda() .eq(DistributionDeliveryDetailsEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()) ); - if (list3.size() > 0) { + if (!list3.isEmpty()) { list3.forEach(i -> { DistributionStockListEntity one = distributionStockListService.getOne(Wrappers.query().lambda() .eq(DistributionStockListEntity::getId, i.getStockListId()) @@ -1086,7 +1086,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!list3.isEmpty()) { return Resp.scanFail("已签收!", "已签收!"); } @@ -1125,7 +1125,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list = distrilbutionBillStockService.list(Wrappers.query().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId) ); - if (list.size() < 1) { + if (list.isEmpty()) { return Resp.scanFail("当前提货任务,订单不存在!", "当前提货任务,订单不存在!"); } else { AtomicBoolean n = new AtomicBoolean(false); @@ -1135,7 +1135,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl 0) { + if (!list1.isEmpty()) { n.set(true); //查询订单包件数量签收的信息 DistributionStockArticleEntity one = distributionStockArticleService.getOne(Wrappers.query().lambda() @@ -1267,7 +1267,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl ew.eq(DistrilbutionBillStockEntity::getBillLadingId, s).eq(DistrilbutionBillStockEntity::getOrderStatus, "2")) ); - if (list.size() > 0) { + if (!list.isEmpty()) { list.forEach(li -> { DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity(); stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue()); @@ -1428,7 +1428,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImplquery().lambda() - .eq(DistributionReservationZeroPackageEntity::getParcelListId, byId.getId()) - .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) - .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") - ); - billLadingZeroVO.setReservationQuantity(one.getQuantity()); + billLadingZeroVO.setReservationQuantity(i.getQuantity()); + billLadingZeroVO.setRealityQuantity(i.getRealityQuantity()); parcelListEntityList.add(billLadingZeroVO); }); } @@ -1495,9 +1491,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl{ v.forEach(i ->{ //修改包件签收状态 @@ -1524,34 +1520,18 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl= sum1){ - //修改提货提货状态 - distrilbutionBillStockService.update(Wrappers.update() - .eq("bill_lading_id",billLadingAppDTO.getBillLadingId()) - .eq("stock_article_id",k) - .set("conditions",2) - ); - } + int sum = v.stream().mapToInt(DistrilbutionAppBillLadingZeroVO::getQuantity).sum(); //填写的签收数量 + //修改订单签收钻状态 + updateStockArticle(sum,k); + //修改提货订单状态 + updateBillStock(sum,list,k,billLadingAppDTO.getBillLadingId()); }); if(!billLadingScanList.isEmpty()){ distributionBillLadingScanService.saveBatch(billLadingScanList); + distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId()); return Resp.scanSuccess("签收成功!","签收成功!"); } - distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId()); + return Resp.scanSuccess("签收失败!","签收失败!"); } @@ -1562,7 +1542,26 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list = distributionZeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") + ); + List billLadingZeroOrderVOS = new ArrayList<>(); + if(!list.isEmpty()){ + + //查询订单信息 + list.forEach( i ->{ + DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId()); + DistrilbutionAppBillLadingZeroOrderVO zeroOrderVO = new DistrilbutionAppBillLadingZeroOrderVO(); + BeanUtils.copyProperties(byId,zeroOrderVO); + zeroOrderVO.setReservationQuantity(i.getQuantity()); + zeroOrderVO.setRealityQuantity(i.getRealityQuantity()); + billLadingZeroOrderVOS.add(zeroOrderVO); + }); + } + return R.data(billLadingZeroOrderVOS); } /** @@ -1572,6 +1571,106 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list = distributionZeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .eq(DistributionReservationZeroPackageEntity::getStockArticleId, i.getStockArticleId()) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") + ); + //查询是否签收 + DistrilbutionBillStockEntity one = distrilbutionBillStockService.getOne(Wrappers.query().lambda() + .eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()) + .eq(DistrilbutionBillStockEntity::getStockArticleId, i.getStockArticleId()) + .eq(DistrilbutionBillStockEntity::getConditions, "2") + ); + if(!ObjectUtils.isNotNull(one)){ + return Resp.scanFail("已签收!","已签收!"); + } + //修改包件签收状态 + DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity(); + //判断是否大于总件数的数量 + DistributionParcelListEntity byId = distributionParcelListService.getById(i.getId()); + if(i.getQuantity() > byId.getQuantity()){ + throw new ServiceException("签收数量大于订单数量!!"); + }else if(i.getQuantity().equals(byId.getQuantity())){ + parcelListEntity.setId(byId.getId()); + parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue()); + }else{ + parcelListEntity.setId(byId.getId()); + parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.bufenqianshou.getValue()); + } + distributionParcelListService.updateById(parcelListEntity); + DistributionBillLadingScanEntity billLadingScan = new DistributionBillLadingScanEntity(); + billLadingScan.setScanType(2); + billLadingScan.setParcelListId(i.getId()); + billLadingScan.setOrderSelfNumbering(i.getOrderCode()); + billLadingScan.setStockArticleId(i.getStockArticleId()); + billLadingScan.setBillLadingId(billLadingAppDTO.getBillLadingId()); + billLadingScan.setMaterialType("3"); + billLadingScan.setQuantity(i.getQuantity()); + //获取全部订单的全部预约数量 +// int sum = list.stream().filter(z -> z.getStockArticleId().equals(i.getStockArticleId())).collect(Collectors.toList()).stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + //获取已签收数量 + List list1 = distributionBillLadingScanService.list(Wrappers.query().lambda() + .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()) + .eq(DistributionBillLadingScanEntity::getStockArticleId, i.getStockArticleId()) + .eq(DistributionBillLadingScanEntity::getScanType, "2") + ); + if(!list1.isEmpty()){ + int sum1 = list1.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); + //修改提货订单状态 + updateBillStock(sum1+i.getQuantity(),list,i.getStockArticleId(),billLadingAppDTO.getBillLadingId()); + } + + //添加签收记录 + distributionBillLadingScanService.save(billLadingScan); + //修改提货状态 + distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId()); + return Resp.scanSuccess("签收成功!","签收成功!"); + } + + /** + * 修改订单状态 + * @return + */ + public Boolean updateStockArticle(Integer sum ,Long stockArticleId){ + + DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity(); + //查询 订单数量 + DistributionStockArticleEntity byId = distributionStockArticleService.getById(stockArticleId); + if(sum.equals(byId.getTotalNumber())){ + stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.bufenqianshou.getValue()); + }else{ + stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.qianshou.getValue()); + } + //修改订单状态 + stockArticleEntity.setId(stockArticleId); + return distributionStockArticleService.updateById(stockArticleEntity); + } + + /** + * 修改提货订单状态 + */ + public Boolean updateBillStock(Integer sum,List list,Long stockArticleId,Long billLadingId){ + int sum1 = list.stream().collect(Collectors.groupingBy(DistributionReservationZeroPackageEntity::getStockArticleId)).get(stockArticleId).stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + if(sum >= sum1){ + //修改提货提货状态 + return distrilbutionBillStockService.update(Wrappers.update() + .eq("bill_lading_id",billLadingId) + .eq("stock_article_id",stockArticleId) + .set("conditions",2) + ); + } + return false; } + + }