From 38738b94b499ba1ccd37ab8824b5569db6662d5f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 07 六月 2025 13:04:13 +0800
Subject: [PATCH] 波次策略功能完善
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 28 +++++++++++-----------------
1 files changed, 11 insertions(+), 17 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 d6d4e80..b84c92f 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
@@ -98,7 +98,6 @@
@Override
@Transactional(rollbackFor = Exception.class)
public R cancelOutOrder(String id) {
- //TODO 鍑哄簱鍗曞彇娑堟祦绋嬶紝QMS锛堝崟鎹彇娑堬級->DO鍗�->鍑哄簱鍗�->娉㈡->鍒ゆ柇鏄惁鍏ㄥ崟鎹�->鍏ㄥ崟鎹笅鍙戝彇娑堜换鍔¤嚦WCS,闈炲叏鍗曟暟鎹彇娑堝垹闄ゆ祦绋嬫墍鏈夊叧鑱旀暟鎹�
if (Cools.isEmpty(id)) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -120,30 +119,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 +161,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("鍗曟嵁涓嶅瓨鍦紒锛�");
@@ -237,9 +230,10 @@
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, exceStatus)
- .set(Delivery::getWorkQty, sum)
+ .set(Delivery::getWorkQty, wkQty)
.eq(Delivery::getId, key))) {
throw new CoolException("涓诲崟淇敼澶辫触锛侊紒");
}
--
Gitblit v1.9.1