From d7ba7177035a5ae1e616794c42b40843d5451a9d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 07 六月 2025 09:44:06 +0800
Subject: [PATCH] 波次策略管理
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 70 ++++++++++++++++-------------------
1 files changed, 32 insertions(+), 38 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 e034a1f..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("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -161,38 +160,36 @@
throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
}
Map<Long, List<DeliveryItem>> listMap = items.stream().collect(Collectors.groupingBy(DeliveryItem::getDeliveryId));
- //鑾峰彇绗竴涓狪D
- Long deliveryId = items.stream().findFirst().get().getDeliveryId();
- Delivery delivery = deliveryService.getById(deliveryId);
- if (Objects.isNull(delivery)) {
- throw new CoolException("涓诲崟鎹笉瀛樺湪锛侊紒");
- }
- AsnOrder order = new AsnOrder();
- BeanUtils.copyProperties(delivery, order);
- String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, order);
- if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) {
- throw new CoolException("缂栫爜瑙勫垯閿欒锛氳妫�鏌� 銆孲YS_OUT_STOCK_CODE銆嶇紪鐮佹槸鍚﹁缃垚鍔�");
- }
- order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
- .setType(delivery.getType())
- .setWkType(delivery.getWkType())
- .setCode(ruleCode)
- .setId(null)
- .setUpdateBy(loginUserId)
- .setCreateBy(loginUserId);
- if (!this.save(order)) {
- throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒");
- }
-
listMap.keySet().forEach(key -> {
- Delivery delivery1 = deliveryService.getById(key);
+ Delivery delivery = deliveryService.getById(key);
+ if (Objects.isNull(delivery)) {
+ throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+ }
+ AsnOrder order = new AsnOrder();
+ BeanUtils.copyProperties(delivery, order);
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, order);
+ if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) {
+ throw new CoolException("缂栫爜瑙勫垯閿欒锛氳妫�鏌� 銆孲YS_OUT_STOCK_CODE銆嶇紪鐮佹槸鍚﹁缃垚鍔�");
+ }
+ order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
+ .setType(delivery.getType())
+ .setWkType(delivery.getWkType())
+ .setCode(ruleCode)
+ .setPoId(delivery.getId())
+ .setId(null)
+ .setUpdateBy(loginUserId)
+ .setCreateBy(loginUserId)
+ .setPoCode(delivery.getCode());
+ if (!this.save(order)) {
+ throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒");
+ }
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(delivery1.getCode())
+ .setPoCode(order.getPoCode())
.setMaktx(item.getMaktx())
.setMatnrCode(item.getMatnrCode())
.setFieldsIndex(item.getFieldsIndex())
@@ -206,7 +203,6 @@
.setPlatOrderCode(item.getPlatOrderCode())
.setProjectCode(item.getProjectCode())
.setPlatItemId(item.getPlatItemId())
- .setFieldsIndex(item.getFieldsIndex())
.setUpdateBy(loginUserId)
.setCreateBy(loginUserId)
.setPoDetlId(item.getId());
@@ -220,31 +216,29 @@
});
Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
-
+ //淇敼璁″垝鏁伴噺
+ order.setAnfme(sum).setWorkQty(0.0);
+ if (!this.saveOrUpdate(order)) {
+ throw new CoolException("涓诲崟鏁伴噺淇敼澶辫触锛侊紒");
+ }
if (!asnOrderItemService.saveBatch(orderItems)) {
throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
}
Short exceStatus = POExceStatus.PO_EXCE_STATUS_SECTION_DONE.val;
- if (delivery1.getAnfme().compareTo(sum) <= 0) {
+ 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, exceStatus)
- .set(Delivery::getWorkQty, sum)
+ .set(Delivery::getWorkQty, wkQty)
.eq(Delivery::getId, key))) {
throw new CoolException("涓诲崟淇敼澶辫触锛侊紒");
}
+
});
-
- Double sum = items.stream().mapToDouble(DeliveryItem::getAnfme).sum();
- //淇敼璁″垝鏁伴噺
- order.setAnfme(sum).setWorkQty(0.0);
- if (!this.saveOrUpdate(order)) {
- throw new CoolException("涓诲崟鏁伴噺淇敼澶辫触锛侊紒");
- }
-
return R.ok();
}
--
Gitblit v1.9.1