From ce3cc9cf1c57e624dc6d4cbc3c0a470da7639d83 Mon Sep 17 00:00:00 2001 From: caoyizhong <1270296080@qq.com> Date: Thu, 12 Oct 2023 10:02:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E6=8F=90=E7=AD=BE?= =?UTF-8?q?=E6=94=B6=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderPackageStatusConstant.java | 3 +- .../DistributionBillLadingScanEntity.java | 3 + .../app/DistrilbutionAppBillLadingZeroVO.java | 56 +++++ .../DistributionBillLadingAppController.java | 53 +++++ .../dto/app/BillLadingAppDTO.java | 4 + .../mapper/DistributionStockupMapper.xml | 2 +- .../mapper/DistrilbutionBillLadingMapper.java | 1 + .../mapper/DistrilbutionBillLadingMapper.xml | 2 +- .../IDistrilbutionBillLadingService.java | 40 ++++ .../impl/DistributionAsyncServiceImpl.java | 56 ++++- .../impl/DistributionStockupServiceImpl.java | 52 ++-- .../DistrilbutionBillLadingServiceImpl.java | 225 ++++++++++++++++-- 12 files changed, 435 insertions(+), 62 deletions(-) create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/orderpackage/OrderPackageStatusConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/orderpackage/OrderPackageStatusConstant.java index 3321c3d51..fb2d1a852 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/orderpackage/OrderPackageStatusConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/orderpackage/OrderPackageStatusConstant.java @@ -14,7 +14,8 @@ public enum OrderPackageStatusConstant { zhiliu("滞留", "40"), // yizhuangche("已装车", "50"), yichuku("已出库", "60"), - yiqianshou("已签收", "70"); + yiqianshou("已签收", "70"), + bufenqianshou("部分签收", "80"); /** * 状态 diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java index 464782281..c6e819ac8 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java @@ -48,6 +48,9 @@ public class DistributionBillLadingScanEntity extends BaseEntity { @ApiModelProperty(value = "扫码类型 1 pda扫码 2 手填") private Integer scanType; + @ApiModelProperty(value = "数量") + private Integer quantity; + @ApiModelProperty(value = "物资类型 1库存品 2 订单") private String materialType; 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 new file mode 100644 index 000000000..726c20eab --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingZeroVO.java @@ -0,0 +1,56 @@ +package com.logpm.distribution.vo.app; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class DistrilbutionAppBillLadingZeroVO implements Serializable { + + private Long id; + /** + * 订单自编号 + */ + @ApiModelProperty(value = "订单自编号") + private String orderCode; + /** + * 一级品 + */ + @ApiModelProperty(value = "一级品") + private String firsts; + /** + * 运单号 + */ + @ApiModelProperty(value = "运单号") + private String waybillNumber; + /** + * 在库订单ID + */ + @ApiModelProperty(value = "在库订单ID") + private Long stockArticleId; + /** + * 服务号 + */ + @ApiModelProperty(value = "服务号") + private String serviceNumber; + + /** + * 包件状态 + */ + @ApiModelProperty(value = "包件状态") + private String orderPackageStatus; + /** + * 总数量 + */ + @ApiModelProperty(value = "总数量") + private Integer quantity; + /** + * 预约数量 + */ + @ApiModelProperty(value = "预约数量") + private Integer reservationQuantity; + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java index 410b3dd5a..004240d09 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java @@ -17,6 +17,7 @@ package com.logpm.distribution.appcontroller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.distribution.bean.Resp; import com.logpm.distribution.dto.app.BillLadingAppDTO; @@ -122,4 +123,56 @@ public class DistributionBillLadingAppController extends BladeController { return scan; } + @PostMapping("/zeroBillPackData") + @ApiOperation(value = "零担自提包件签收数据查询") + public R zeroBillPackData(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====零担签收数据:{}",billLadingAppDTO); + if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { + return R.fail(3002, "自提id不能为空 !"); + } + R b = distrilbutionBillLadingService.zeroBillPackData(billLadingAppDTO); + return b; + } + + @PostMapping("/zeroBillOrderData") + @ApiOperation(value = "零担自提订单签收数据查询") + public R zeroBillOrderData(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====零担签收数据:{}",billLadingAppDTO); + if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { + return R.fail(3002, "自提id不能为空 !"); + } + R b = distrilbutionBillLadingService.zeroBillOrderData(billLadingAppDTO); + return b; + } + + @PostMapping("/zeroBillBatch") + @ApiOperation(value = "零担自提批量签收") + public R zeroBillBatch(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====零担自提签收:{}",billLadingAppDTO); + if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { + return R.fail(3002, "自提id不能为空 !"); + } + if(billLadingAppDTO.getList().isEmpty()){ + return R.fail(3002, "零担数据不能为空 !"); + } + + R b = distrilbutionBillLadingService.zeroBill(billLadingAppDTO); + return b; + } + @PostMapping("/zeroBillPack") + @ApiOperation(value = "零担自提单个签收") + public R zeroBillPack(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====零担自提签收:{}",billLadingAppDTO); + if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { + return R.fail(3002, "自提id不能为空 !"); + } + if(billLadingAppDTO.getList().isEmpty()){ + return R.fail(3002, "零担数据不能为空 !"); + } + + R b = distrilbutionBillLadingService.zeroBillPack(billLadingAppDTO); + return b; + } + + } 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 8692484c2..8d55e69b6 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,8 +1,10 @@ package com.logpm.distribution.dto.app; +import com.logpm.distribution.entity.DistributionParcelListEntity; import lombok.Data; import java.io.Serializable; +import java.util.List; @Data public class BillLadingAppDTO implements Serializable { @@ -22,4 +24,6 @@ public class BillLadingAppDTO implements Serializable { private String orderSelfNumbering;//订单自编码 private Long warehouseId;//仓库ID + private List list; //零担数据集合 + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml index 0cb0b0b7b..870751ca1 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml @@ -138,7 +138,7 @@ and ldbs.stock_article_id = #{param.stockArticleId} - and ldbs.stock_article_id in #{param.stockArticleId} + and ldbs.stock_article_id in #{a} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java index 10b34a7c4..3cbc6e63e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java @@ -26,6 +26,7 @@ import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.logpm.distribution.vo.*; import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO; import org.apache.ibatis.annotations.Param; +import org.springblade.core.tool.api.R; import java.util.List; import java.util.Map; diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml index 95f4bc279..874e3d8f5 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml @@ -127,7 +127,7 @@ from logpm_distribution_parcel_list ldpl left join logpm_distribution_bill_lading_scan ldbls on ldbls.parcel_list_id = ldpl.id and ldbls.is_deleted = 0 - and ldpl.is_deleted = 0 + and ldpl.is_deleted = 0 and ldpl.order_package_code is not null and ldpl.stock_article_id = #{stockArticleId} and ldpl.order_code = ${orderCode} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java index f1dbd7e26..72e5a4752 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java @@ -26,6 +26,7 @@ import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.logpm.distribution.vo.*; import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; import java.util.List; import java.util.Map; @@ -59,11 +60,24 @@ public interface IDistrilbutionBillLadingService extends BaseService pageList(IPage page, Map distrilbutionBillLading); + /** + * pda列表 + * @param page + * @param billLadingAppDTO + * @return + */ IPage pageListApp(IPage page, BillLadingAppDTO billLadingAppDTO); DistrilbutionAppBillLadingOrderMainVO selectOrderList(Long billLadingId, Integer orderStatus,String orderSelfNumbering); + /** + * 包件列表数据 + * @param billLadingId + * @param scanStatus + * @param orderSelfNumbering + * @return + */ DistrilbutionBillLadingAppVO selectDetailList(Long billLadingId, Integer scanStatus,String orderSelfNumbering); /** @@ -144,5 +158,31 @@ public interface IDistrilbutionBillLadingService extends BaseService billStockList(IPage page,Map distrilbutionBillLading); + /** + * 零担包件品类数据查询 + * @param billLadingAppDTO + * @return + */ + R zeroBillPackData(BillLadingAppDTO billLadingAppDTO); + /** + * 零担签收 + * @param billLadingAppDTO + * @return + */ + R zeroBill(BillLadingAppDTO billLadingAppDTO); + + /** + * 零担查询订单信息 + * @param billLadingAppDTO + * @return + */ + R zeroBillOrderData(BillLadingAppDTO billLadingAppDTO); + + /** + * 零担单个签收 + * @param billLadingAppDTO + * @return + */ + R zeroBillPack(BillLadingAppDTO billLadingAppDTO); } 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 9656e6150..b8d9a0dfa 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 @@ -912,6 +912,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { @Override @Transactional(rollbackFor = Exception.class) public void getStockUPstate(Long billLadingId) { + try { + Thread.sleep(300L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } //查询订单数 List list = distrilbutionBillStockService.list(Wrappers.query().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId) @@ -919,23 +924,48 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { ); AtomicReference pack = new AtomicReference<>(0); // 包件数量 AtomicReference packys = new AtomicReference<>(0); // 包件以扫数量 + //查询零担的数据 + List list3 = reservationZeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingId) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") + ); + if(!list3.isEmpty()){ + //零担数据 + int sum = list3.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + pack.set(pack.get()+sum); + } + boolean apj = false; if (list.size() > 0) { //查询包件数量 - list.forEach(i -> { - List list1 = distributionParcelListService.list(Wrappers.query().lambda() - .eq(DistributionParcelListEntity::getStockArticleId, i.getStockArticleId()) - ); - //查询扫码数量 - List list2 = distributionBillLadingScanMapper.selectList(Wrappers.query().lambda() - .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId) - .eq(DistributionBillLadingScanEntity::getStockArticleId, i.getStockArticleId()) - ); - pack.set(pack.get() + list1.size()); - packys.set(packys.get() + list2.size()); +// list.forEach(i -> { +// List list1 = distributionParcelListService.list(Wrappers.query().lambda() +// .eq(DistributionParcelListEntity::getStockArticleId, i.getStockArticleId()) +// .isNotNull(DistributionParcelListEntity::getOrderPackageCode) +// ); +// //查询扫码数量 +// List list2 = distributionBillLadingScanMapper.selectList(Wrappers.query().lambda() +// .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId) +// .eq(DistributionBillLadingScanEntity::getStockArticleId, i.getStockArticleId()) +// ); +// pack.set(pack.get() + list1.size()); +// packys.set(packys.get() + list2.size()); +// +// }); - }); - if (pack.get().equals(packys.get())) { + //查询包件数量 + List distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(billLadingId); + int size = distributionStockPackageVOS.size(); //包件数量 + pack.set(pack.get()+size); + //查询签收数量 + List list2 = distributionBillLadingScanMapper.selectList(Wrappers.query().lambda() + .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId) + ); + int sum = list2.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();// 签收数量 + packys.set(packys.get() + sum); + + if (pack.get() <= (packys.get())) { apj = true; } } else { 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 7bc3bcb17..d32a7f175 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 @@ -296,35 +296,30 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = reservationZeroPackageService.list(Wrappers.query().lambda() .eq(DistributionReservationZeroPackageEntity::getReservationId, z.getReservationId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") ); - if(list.isEmpty()){ - //有定制品 查询数量 - if(z.getStockUpType().equals("3")){ - //自提 - List list2 = distrilbutionBillStockService.listPackageSelf(z.getReservationId()); - nu.set(list2.size()); - }else{ - //商,市 - List list2 = distributionReservationPackageService.list(Wrappers.query().lambda() - .eq(DistributionReservationPackageEntity::getReservationId, z.getReservationId()) - .eq(DistributionReservationPackageEntity::getIsDeleted,0) - .in(DistributionReservationPackageEntity::getPacketBarStatus,"1","3") - ); - nu.set(list2.size()); - } - }else{ - // 查询零担数量 - List list2 = reservationZeroPackageService.list(Wrappers.query().lambda() - .eq(DistributionReservationZeroPackageEntity::getReservationId, z.getReservationId()) - .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) - .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") - ); - int sum = list2.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + if(!list.isEmpty()){ + int sum = list.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); nu.set((int) (nu.get() + sum)); b.set(true); //自提 - List list2self = distrilbutionBillStockService.listPackageSelf(z.getReservationId()); - nu.set(nu.get()+list2self.size()); +// List list2self = distrilbutionBillStockService.listPackageSelf(z.getReservationId()); +// nu.set(nu.get()+list2self.size()); + } + + if(z.getStockUpType().equals("3")){ + //自提 + List list2 = distrilbutionBillStockService.listPackageSelf(z.getReservationId()); + nu.set(nu.get()+list2.size()); + }else{ + //商,市 + List list2 = distributionReservationPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationPackageEntity::getReservationId, z.getReservationId()) + .eq(DistributionReservationPackageEntity::getIsDeleted,0) + .in(DistributionReservationPackageEntity::getPacketBarStatus,"1","3") + ); + nu.set(nu.get()+list2.size()); } }); @@ -447,8 +442,15 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + //查询有没有零担数据 + queryWrapper.eq("reservation_id",stockupDTO.getReservationId()); + queryWrapper.eq("is_deleted",0); + queryWrapper.in("zero_package_status","1","3"); + List list1 = reservationZeroPackageService.list(queryWrapper); intToStrDistributionStockupListVO(distributionStockupListVO); distributionStockupListVO.setReservationId(Long.parseLong(split[i])); + distributionStockupListVO.setPlanNum(distributionStockupListVO.getPlanNum()+ list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum()); list.add(distributionStockupListVO); } } 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 c4d63355b..b6a5ed864 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 @@ -38,10 +38,7 @@ import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper; import com.logpm.distribution.service.*; import com.logpm.distribution.vo.*; -import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO; -import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO; -import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderVO; -import com.logpm.distribution.vo.app.DistrilbutionBillLadingInventoryAppVO; +import com.logpm.distribution.vo.app.*; import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; import lombok.AllArgsConstructor; import org.redisson.api.RLock; @@ -49,6 +46,7 @@ import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.billLading.BillLadingStatusConstant; import org.springblade.common.constant.order.OrderReservationStatusConstant; import org.springblade.common.constant.order.OrderStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; import org.springblade.common.constant.stockup.StockAssignStatusConstant; import org.springblade.common.constant.stockup.StockupStatusConstant; import org.springblade.common.constant.stockup.StockupTypeConstant; @@ -56,6 +54,7 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.cache.DictBizCache; @@ -594,7 +593,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl pageListApp(IPage page, BillLadingAppDTO billLadingAppDTO) { - + //查询仓库信息 BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); if(ObjectUtils.isNotNull(myCurrentWarehouse)){ billLadingAppDTO.setWarehouseId(myCurrentWarehouse.getId()); //仓库ID @@ -602,17 +601,31 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl pageList = baseMapper.pageListApp(page, billLadingAppDTO); List records = pageList.getRecords(); for (DistrilbutionBillLadingAppVO vo : records) { //有可能存在多个订单所以需要拆分 String stockArticleId = vo.getStockArticleId(); - Integer orderNum = 0; - Integer planNum = 0; - Integer signedNum = 0; + Integer orderNum = 0; //订单总数 + Integer planNum = 0; //预约数量 + Integer signedNum = 0; //签收数量 Integer inventoryNub = 0; //库存品 String[] split = stockArticleId.split(","); + + List list1 = distributionZeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, vo.getBillLadingId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "2") + ); + if(!list1.isEmpty()){ + //有零担 + int sum = list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + planNum = planNum + sum; + } + + for (String s : split) { if (StringUtil.isBlank(s)) { continue; @@ -621,16 +634,20 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("stock_article_id", Long.parseLong(s)) .eq("is_deleted", 0); + queryWrapper.isNotNull("order_package_code"); List list = distributionParcelListService.list(queryWrapper); - int pn = list.size(); + int pn = list.size(); //包件数量 planNum = planNum + pn; //通过订单id查询扫描表中有多少数据 QueryWrapper qw = new QueryWrapper<>(); qw.eq("stock_article_id", Long.parseLong(s)) .eq("is_deleted", 0); List ls = distributionBillLadingScanService.list(qw); - int sn = ls.size(); - signedNum = signedNum + sn; + if(!ls.isEmpty()){ + int sum = ls.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); + signedNum = signedNum + sum; + } + } //查询库存品的件数量 DistributionDeliveryDetailsVO list = distributionDeliveryDetailsService.oneListNum(vo.getBillLadingId()); @@ -775,7 +792,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl dls = main.getList(); @@ -783,6 +799,17 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list1 = distributionZeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, main.getBillLadingId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") + ); + if(!list1.isEmpty()){ + int sum = list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + planNum += sum; + } + String[] split = stockArticleId.split(","); for (String s : split) { @@ -812,6 +839,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("stock_article_id", Long.parseLong(s)) .eq("is_deleted", 0); + queryWrapper.isNotNull("order_package_code"); List list = distributionParcelListService.list(queryWrapper); int pn = list.size(); planNum = planNum + pn; @@ -820,14 +848,15 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl ls = distributionBillLadingScanService.list(qw); - int sn = ls.size(); - signedNum = signedNum + sn; - - if (pn == sn) { - conpleteNum++; + if(!ls.isEmpty()){ + int sum = ls.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); + signedNum = signedNum + sum; + if (pn == sum) { + conpleteNum++; + } } } - main.setCompleteNum(conpleteNum); + main.setCompleteNum(conpleteNum); //齐套总数 main.setOrderNum(orderNum); main.setSignedNum(signedNum); main.setPlanNum(planNum); @@ -1086,6 +1115,7 @@ 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 parcelListEntityList = new ArrayList<>(); + if(!list.isEmpty()){ + list.forEach( i -> { + //查询品类信息 + DistributionParcelListEntity byId = distributionParcelListService.getById(i.getParcelListId()); + DistrilbutionAppBillLadingZeroVO billLadingZeroVO = new DistrilbutionAppBillLadingZeroVO(); + BeanUtils.copyProperties(byId,billLadingZeroVO); + DistributionReservationZeroPackageEntity one = distributionZeroPackageService.getOne(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getParcelListId, byId.getId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") + ); + billLadingZeroVO.setReservationQuantity(one.getQuantity()); + parcelListEntityList.add(billLadingZeroVO); + }); + } + return R.data(parcelListEntityList); + } + + /** + * 零担批量签收 + * @param billLadingAppDTO + * @return + */ + @Override + public R zeroBill(BillLadingAppDTO billLadingAppDTO) { + //设置lockey + String lockKey ="lock:" + billLadingAppDTO.getBillLadingId(); + RLock lock = new RedissonConfig().redisson().getLock(lockKey); + if(lock.isLocked()){ + throw new ServiceException("请勿重复提交!!!"); + } + lock.lock(5, TimeUnit.SECONDS); + List list = distributionZeroPackageService.list(Wrappers.query().lambda() + .eq(DistributionReservationZeroPackageEntity::getReservationId, billLadingAppDTO.getBillLadingId()) + .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) + .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") + ); + //添加自提签收数据 + List billLadingScanList = new ArrayList<>(); +// billLadingAppDTO.getList().forEach(i ->{ +// //判断是否大于总件数的数量 +// DistributionParcelListEntity byId = distributionParcelListService.getById(i.getId()); +// if(i.getQuantity() > byId.getQuantity()){ +// throw new ServiceException("签收数量大于订单数量!!"); +// } +// 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()); +// billLadingScanList.add(billLadingScan); +// }); + + //修改签收状态 + billLadingAppDTO.getList().stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId)) + .forEach((k,v) ->{ + v.forEach(i ->{ + //修改包件签收状态 + 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()); + billLadingScanList.add(billLadingScan); + }); + int sum = v.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); //填写的签收数量 + //查询 订单数量 + DistributionStockArticleEntity byId = distributionStockArticleService.getById(k); + DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity(); + if(sum == byId.getTotalNumber()){ + stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.qianshou.getValue()); + }else{ + stockArticleEntity.setOrderReceiveStatus(OrderStatusConstant.bufenqianshou.getValue()); + } + //修改订单状态 + stockArticleEntity.setId(k); + distributionStockArticleService.updateById(stockArticleEntity); + //预约的数量 + int sum1 = list.stream().collect(Collectors.groupingBy(DistributionReservationZeroPackageEntity::getStockArticleId)).get(k).stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); + if(sum >= sum1){ + //修改提货提货状态 + distrilbutionBillStockService.update(Wrappers.update() + .eq("bill_lading_id",billLadingAppDTO.getBillLadingId()) + .eq("stock_article_id",k) + .set("conditions",2) + ); + } + }); + if(!billLadingScanList.isEmpty()){ + distributionBillLadingScanService.saveBatch(billLadingScanList); + return Resp.scanSuccess("签收成功!","签收成功!"); + } + distributionAsyncService.getStockUPstate(billLadingAppDTO.getBillLadingId()); + return Resp.scanSuccess("签收失败!","签收失败!"); + } + + /** + * 查询订单信息 + * @param billLadingAppDTO + * @return + */ + @Override + public R zeroBillOrderData(BillLadingAppDTO billLadingAppDTO) { + return null; + } + + /** + * 零担单个签收 + * @param billLadingAppDTO + * @return + */ + @Override + public R zeroBillPack(BillLadingAppDTO billLadingAppDTO) { + return null; + } }