From 1e1e6c33558f00634d874232efab87a3734d132c Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 07 六月 2025 08:45:31 +0800 Subject: [PATCH] 下发执行功能 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 50 ++++++++++++++++++++++++-------------------------- 1 files changed, 24 insertions(+), 26 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java index 70e07a5..1b104a7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java @@ -80,7 +80,7 @@ }); List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>() .eq(AsnOrderItem::getAsnId, params.getOrders().getId())); - double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); + Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); orders.setAnfme(sum); if (!this.updateById(orders)) { throw new CoolException("璁″垝鏀惰揣鏁伴噺淇敼澶辫触锛侊紒"); @@ -120,30 +120,25 @@ if (!deliveryItemService.updateById(deliveryItem)) { throw new CoolException("DO鍗曟槑缁嗘洿鏂板け璐ワ紒锛�"); } + + Delivery delivery = deliveryService.getOne(new LambdaQueryWrapper<Delivery>().eq(Delivery::getCode, orderItem.getPoCode())); + if (!Objects.isNull(delivery)) { + Double wkQty = Math.round((delivery.getWorkQty() - delivery.getAnfme()) * 10000) / 10000.0; + delivery.setWorkQty(wkQty.compareTo(0.0) >= 0 ? wkQty : 0).setExceStatus(POExceStatus.PO_EXCE_STATUS_UN_EXCE.val); + if (!deliveryService.updateById(delivery)) { + throw new CoolException("DO鍗曟嵁淇敼澶辫触锛侊紒"); + } + } } } } - if (!Objects.isNull(order.getPoId())) { - Delivery delivery = deliveryService.getById(order.getPoId()); - if (!Objects.isNull(delivery)) { - Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); - Double workQty = Math.round((delivery.getWorkQty() - sum) * 10000) / 10000.0; - delivery.setWorkQty(workQty.compareTo(0.0) >= 0 ? workQty : 0).setExceStatus(POExceStatus.PO_EXCE_STATUS_UN_EXCE.val); - if (!deliveryService.updateById(delivery)) { - throw new CoolException("DO鍗曟嵁淇敼澶辫触锛侊紒"); - } - } - } if (!this.remove(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, id))) { throw new CoolException("涓诲崟鍒犻櫎澶辫触锛侊紒"); } if (!outStockItemService.remove(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, id))) { throw new CoolException("鍗曟嵁鏄庣粏鍒犻櫎澶辫触锛侊紒"); } -// if (!this.saveOrUpdate(order)) { -// throw new CoolException("鍗曟嵁鍙栨秷澶辫触锛侊紒"); -// } return R.ok("鎿嶄綔鎴愬姛"); } @@ -167,7 +162,6 @@ } Map<Long, List<DeliveryItem>> listMap = items.stream().collect(Collectors.groupingBy(DeliveryItem::getDeliveryId)); listMap.keySet().forEach(key -> { - //TODO 鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀛樺湪锛屽瀛樺湪鍒欑疮鍔犱慨鏀瑰瓙琛紝涓嶅瓨鍦ㄦ墠鏂板缓 Delivery delivery = deliveryService.getById(key); if (Objects.isNull(delivery)) { throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�"); @@ -193,12 +187,15 @@ List<AsnOrderItem> orderItems = new ArrayList<>(); listMap.get(key).forEach(item -> { AsnOrderItem orderItem = new AsnOrderItem(); + Double anfme = Math.round((item.getAnfme() - item.getWorkQty() - item.getQty()) * 10000) / 10000.0; BeanUtils.copyProperties(item, orderItem); orderItem.setId(null) .setPoCode(order.getPoCode()) .setMaktx(item.getMaktx()) .setMatnrCode(item.getMatnrCode()) .setFieldsIndex(item.getFieldsIndex()) + .setAnfme(anfme) + .setWorkQty(0.0) .setAsnId(order.getId()) .setAsnCode(order.getCode()) .setStockUnit(item.getUnit()) @@ -221,7 +218,7 @@ Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); //淇敼璁″垝鏁伴噺 - order.setAnfme(sum); + order.setAnfme(sum).setWorkQty(0.0); if (!this.saveOrUpdate(order)) { throw new CoolException("涓诲崟鏁伴噺淇敼澶辫触锛侊紒"); } @@ -229,9 +226,15 @@ throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒"); } + Short exceStatus = POExceStatus.PO_EXCE_STATUS_SECTION_DONE.val; + if (delivery.getAnfme().compareTo(order.getAnfme()) <= 0) { + exceStatus = AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val; + } + + Double wkQty = Math.round((delivery.getWorkQty() + sum) * 10000) / 10000.0; if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>() - .set(Delivery::getExceStatus, POExceStatus.PO_EXCE_STATUS_EXCE_ING.val) - .set(Delivery::getWorkQty, sum) + .set(Delivery::getExceStatus, exceStatus) + .set(Delivery::getWorkQty, wkQty) .eq(Delivery::getId, key))) { throw new CoolException("涓诲崟淇敼澶辫触锛侊紒"); } @@ -352,11 +355,8 @@ } catch (Exception e) { throw new CoolException(e.getMessage()); } - return R.ok(); } - - /** * @param * @return @@ -377,16 +377,14 @@ throw new CoolException("涓诲崟淇敼澶辫触锛侊紒"); } if (Objects.isNull(params.getItems()) || params.getItems().isEmpty()) { - return R.ok("鏄庣粏鍙傛暟涓嶈兘涓虹┖锛侊紒"); + throw new CoolException("鏄庣粏鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - try { svaeOrUpdateOrderItem(params, loginUserId); } catch (Exception e) { throw new CoolException(e.getMessage()); } - - return null; + return R.ok(); } /** -- Gitblit v1.9.1