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 764bddb70..c1630a421 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 @@ -132,7 +132,7 @@ public class DistributionBillLadingAppController extends BladeController { @ApiImplicitParam(name = "coding", value = "包条码", required = true), @ApiImplicitParam(name = "type", value = "类型 2 订单 1 库存品", required = true) }) - public Resp getScan(@ApiIgnore @RequestParam Map distrilbutionBillLading){ + public Resp scan(@ApiIgnore @RequestParam Map distrilbutionBillLading){ Resp scan = distrilbutionBillLadingService.getScan(distrilbutionBillLading); //获取传入类型 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java index 59d6b313c..56712aa25 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java @@ -39,7 +39,7 @@ public interface IDistributionAsyncService { * @param id * @return */ - Boolean getOrderSelfPickup(Long id); + Boolean updateOrderSelfPickup(Long id); /** * 修改扫码状态 * @param id @@ -58,7 +58,7 @@ public interface IDistributionAsyncService { * @param id * @return */ - Boolean getBillStock(Long id); + Boolean updateBillStock(Long id); /** * 修改订单备货状态 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 6b8381375..0bc8e7664 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 @@ -157,7 +157,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { @Override @LogpmAsync("asyncExecutor") @Transactional(rollbackFor = Exception.class) - public Boolean getOrderSelfPickup(Long id) { + public Boolean updateOrderSelfPickup(Long id) { DistributionStockArticleEntity entity = new DistributionStockArticleEntity(); entity.setId(id); entity.setOrderStatus(OrderStatusConstant.qianshou.getValue()); @@ -192,7 +192,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { * @return */ @Override - public Boolean getBillStock(Long id) { + public Boolean updateBillStock(Long id) { DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockVO(); distrilbutionBillStock.setId(id); distrilbutionBillStock.setConditions("20"); 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 b79936aec..51d073145 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 @@ -1343,27 +1343,27 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl distributionBillOrderExcels = distrilbutionBillStockService.distrilbutionBillDeatilStock(id); + if (!distributionBillOrderExcels.isEmpty()) { + distributionBillLadingExcelDTO.setBillOrderExcelList(distributionBillOrderExcels); + } + List distributionBillOrderPackExcels = distrilbutionBillStockService.billLadingDetailOrderPackExcel(id); + if (!distributionBillOrderPackExcels.isEmpty()) { + distributionBillLadingExcelDTO.setBillOrderPackExcelList(distributionBillOrderPackExcels); + } + List billInventoryExcelList = distributionDeliveryDetailsService.getBillLadingDetailOrderInventoryExcel(id); + if (billInventoryExcelList.isEmpty()) { + distributionBillLadingExcelDTO.setBillInventoryExcelList(billInventoryExcelList); } - DistributionBillLadingExcelDTO distributionBillLadingExcelDTO = new DistributionBillLadingExcelDTO(); - List distributionBillOrderExcels = distrilbutionBillStockService.distrilbutionBillDeatilStock(id); - if (!distributionBillOrderExcels.isEmpty()) { - distributionBillLadingExcelDTO.setBillOrderExcelList(distributionBillOrderExcels); - } - List distributionBillOrderPackExcels = distrilbutionBillStockService.billLadingDetailOrderPackExcel(id); - if (!distributionBillOrderPackExcels.isEmpty()) { - distributionBillLadingExcelDTO.setBillOrderPackExcelList(distributionBillOrderPackExcels); - } - List billInventoryExcelList = distributionDeliveryDetailsService.getBillLadingDetailOrderInventoryExcel(id); - if (billInventoryExcelList.isEmpty()) { - distributionBillLadingExcelDTO.setBillInventoryExcelList(billInventoryExcelList); - } return distributionBillLadingExcelDTO; } @Override - public R getBillLadingPackageIds(Long id,Long orderId) { + public R getBillLadingPackageIds(Long id, Long orderId) { List list = distrilbutionBillPackageService.list(Wrappers.query().lambda() .eq(DistrilbutionBillPackageEntity::getBillLadingId, id) .eq(DistrilbutionBillPackageEntity::getStockArticleId, orderId) @@ -2204,7 +2204,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImplupdate() .eq("bill_lading_id", id) .eq("stock_article_id", i.getStockArticleId()) - .apply("packet_bar_status in ( 1 , 3 )") + .apply("packet_bar_status in ( '1' , '3' )") .set("packet_bar_status", 2) ); //还原预约包件信息 @@ -2342,7 +2342,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl distributionDeliveryChargeEntityList = distributionDeliveryChargeService.list(Wrappers.query().lambda() .in(DistributionDeliveryChargeEntity::getBillLading, billIds) @@ -2353,8 +2353,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl DistributionPrintEntitys = distributionPrintService.list(Wrappers.query().lambda() .in(DistributionPrintEntity::getBillLadingId, billIds) @@ -2370,15 +2370,15 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl { - if(groupedEntities!=null){ - List list =groupedEntities.get(i.getId()); + records.forEach(i -> { + if (groupedEntities != null) { + List list = groupedEntities.get(i.getId()); list.forEach(ii -> ii.setCostName(DictBizCache.getValue(DictBizConstant.DELIVERY_COST, ii.getCost()))); i.setList(list); } - if(groupDistributionPrintEntityEntities!=null){ + if (groupDistributionPrintEntityEntities != null) { List list1 = groupDistributionPrintEntityEntities.get(i.getId()); - if(list1!=null){ + if (list1 != null) { int count = (int) list1.stream().filter(ii -> "1".equals(ii.getGenre().toString())).count(); int count1 = (int) list1.stream().filter(ii -> "2".equals(ii.getGenre().toString())).count(); int count2 = (int) list1.stream().filter(ii -> "3".equals(ii.getGenre().toString())).count(); @@ -2389,7 +2389,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl listZero = distributionZeroPackageService.list(Wrappers.query().lambda() -// .eq(DistributionReservationZeroPackageEntity::getReservationId, main.getBillLadingId()) -// .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) -// .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") -// ); -// if (!listZero.isEmpty()) { -// int sum = listZero.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); -// planNum += sum; -// } String[] split = stockArticleId.split(","); List l = new ArrayList<>(); + + + List ids = new ArrayList<>(); + + for (String s : split) { + ids.add(Long.parseLong(s)); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("stock_article_id", ids) + .eq("is_deleted", 0) + .isNotNull("order_package_code"); + if (!StringUtil.isBlank(orderSelfNumbering)) { + queryWrapper.ne("order_self_numbering", orderSelfNumbering); + } + List list2 = distributionParcelListService.list(queryWrapper); + + + + QueryWrapper qw = new QueryWrapper<>(); + qw.in("stock_article_id", ids) + .eq("is_deleted", 0); + qw.eq("bill_lading_id", main.getBillLadingId()); + List list3 = distributionBillLadingScanService.list(qw); for (String s : split) { if (StringUtil.isBlank(s)) { continue; @@ -2607,14 +2615,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("stock_article_id", Long.parseLong(s)) - .eq("is_deleted", 0) - .isNotNull("order_package_code"); - if (!StringUtil.isBlank(orderSelfNumbering)) { - queryWrapper.ne("order_self_numbering", orderSelfNumbering); - } - List list = distributionParcelListService.list(queryWrapper); + List list = list2.stream().filter(f -> f.getStockArticleId().equals(Long.parseLong(s))).collect(Collectors.toList()); int pn = 0; if (!list.isEmpty() && ObjectUtils.isNotNull(list.get(0))) { vo.setOrderSelfNumbering(list.get(0).getOrderCode()); @@ -2623,11 +2624,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl qw = new QueryWrapper<>(); - qw.eq("stock_article_id", Long.parseLong(s)) - .eq("is_deleted", 0); - qw.eq("bill_lading_id", main.getBillLadingId()); - List ls = distributionBillLadingScanService.list(qw); + + List ls = list3.stream().filter(f -> f.getStockArticleId().equals(Long.parseLong(s))).collect(Collectors.toList()); int sn = ls.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); vo.setSignedNum(sn); // signedNum = signedNum + sn; @@ -2915,7 +2913,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list = distrilbutionBillStockService.list(Wrappers.query().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()) - .eq(DistrilbutionBillStockEntity::getOrderStatus, "1") + .in(DistrilbutionBillStockEntity::getOrderStatus, "1","3") .or(eq -> eq.eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()).eq(DistrilbutionBillStockEntity::getOrderStatus, "3")) ); list.forEach(i -> { @@ -3185,7 +3183,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImplquery().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId) - .apply("order_status in (1 , 3)") + .apply("order_status in ('1' , '3')") .eq(DistrilbutionBillStockEntity::getStockArticleId, list4.get(0).getStockArticleId()) ); @@ -3210,49 +3208,94 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl ls = list.stream() // 转换为Stream + .map(DistrilbutionBillStockEntity::getStockArticleId) // 提取每个元素的orderId + .collect(Collectors.toList()); // 收集到新的List + + + List distributionStockArticleEntityList = distributionStockArticleService.list(Wrappers.query().lambda() + .in(DistributionStockArticleEntity::getId, ls)); + + List list1 = distributionParcelListService.list(Wrappers.query().lambda() + .in(DistributionParcelListEntity::getStockArticleId, ls) + ); + + + List distributionBillLadingScanEntities = distributionBillLadingScanService.list(Wrappers.query().lambda() + .in(DistributionBillLadingScanEntity::getStockArticleId, ls) + .eq(DistributionBillLadingScanEntity::getMaterialType, "2") + .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId) + ); + list.forEach(so -> { //查询包件信息 - List list1 = distributionParcelListService.list(Wrappers.query().lambda() - .eq(DistributionParcelListEntity::getStockArticleId, so.getStockArticleId()) - .eq(DistributionParcelListEntity::getOrderPackageCode, coding) - ); - if (!list1.isEmpty()) { + + DistributionParcelListEntity distributionParcelListEntity = null; + + for (DistributionParcelListEntity parcelListEntity : list1) { + if (parcelListEntity.getStockArticleId().equals(so.getStockArticleId()) && parcelListEntity.getOrderPackageCode().equals(coding)) { + distributionParcelListEntity = parcelListEntity; + } + } + + + if (distributionParcelListEntity != null) { n.set(true); //查询订单包件数量签收的信息 - DistributionStockArticleEntity one = distributionStockArticleService.getOne(Wrappers.query().lambda() - .eq(DistributionStockArticleEntity::getId, so.getStockArticleId()) - ); - List list2 = distributionBillLadingScanService.list(Wrappers.query().lambda() - .eq(DistributionBillLadingScanEntity::getStockArticleId, so.getStockArticleId()) - .eq(DistributionBillLadingScanEntity::getMaterialType, "2") - .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId) - ); + DistributionStockArticleEntity one = distributionStockArticleEntityList.stream().filter(s -> s.getId().equals(so.getStockArticleId())).findFirst().orElse(null); + + + List list2 = new ArrayList<>(); + for (DistributionBillLadingScanEntity distributionBillLadingScanEntity : distributionBillLadingScanEntities) { + if (distributionBillLadingScanEntity.getStockArticleId().equals(so.getStockArticleId())) { + list2.add(distributionBillLadingScanEntity); + } + } + + one.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue()); + //判断当前签收数 修改订单和备货订单状态 if (one.getTotalNumber().equals(list2.size() + 1)) { +// + DistrilbutionBillStockEntity one1 = null; - DistrilbutionBillStockEntity one1 = distrilbutionBillStockService.getOne(Wrappers.query().lambda() - .eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId) - .eq(DistrilbutionBillStockEntity::getStockArticleId, one.getId()) - .eq(DistrilbutionBillStockEntity::getConditions, BillLadingStatusConstant.daitihuo.getValue()) - ); + for (DistrilbutionBillStockEntity distrilbutionBillStockEntity : list) { + if (distrilbutionBillStockEntity.getStockArticleId().equals(so.getStockArticleId()) && distrilbutionBillStockEntity.getConditions().equals(BillLadingStatusConstant.daitihuo.getValue())) { + one1 = distrilbutionBillStockEntity; + } + } + + if (one1 != null) { + distributionAsyncService.updateBillStock(one1.getId()); + } + one.setOrderStatus(OrderStatusConstant.qianshou.getValue()); //修改订单状态 - distributionAsyncService.getOrderSelfPickup(list1.get(0).getId()); +// distributionAsyncService.updateOrderSelfPickup(one.getId()); //修改备货订单状态 - distributionAsyncService.getBillStock(one1.getId()); } //修改在库数量 if (ObjectUtils.isNotNull(one.getHandQuantity()) && one.getHandQuantity() > 0) { int i = one.getHandQuantity() - 1; int i2 = ObjectUtils.isNull(one.getSigninQuantity()) ? 1 : one.getSigninQuantity() + 1; - distributionStockArticleService.update(Wrappers.update() - .eq("id", one.getId()) - .set("hand_quantity", i) - .set("signin_quantity", i2) - ); +// distributionStockArticleService.update(Wrappers.update() +// .eq("id", one.getId()) +// .set("hand_quantity", i) +// .set("signin_quantity", i2) +// ); + one.setHandQuantity(i); + one.setSigninQuantity(i2); + } + + // 修改订单状态 + distributionStockArticleService.updateById(one); + //修改包件状态 - distributionAsyncService.getSelfPickup(list1.get(0).getId()); - distributionBillLadingScan.setParcelListId(list1.get(0).getId()); + distributionAsyncService.getSelfPickup(distributionParcelListEntity.getId()); + distributionBillLadingScan.setParcelListId(distributionParcelListEntity.getId()); distributionBillLadingScan.setPacketBarCode(String.valueOf(coding)); //订单 distributionBillLadingScan.setStockArticleId(one.getId()); @@ -3392,7 +3435,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl list = distrilbutionBillStockService.list(Wrappers.query().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, s) - .apply("order_status in ( 1 , 2)") + .apply("order_status in ( '1' , '3')") // .or(ew -> ew.eq(DistrilbutionBillStockEntity::getBillLadingId, s).apply(DistrilbutionBillStockEntity::getOrderStatus, "2")) ); if (!list.isEmpty()) {