From 3d950b8475cc52084cb40ed7a9373900f0606167 Mon Sep 17 00:00:00 2001
From: zhang_nuo <zhang_12370@163.com>
Date: 星期一, 21 九月 2026 19:17:00 +0800
Subject: [PATCH] feat(production): 新增生产订单自动领料功能与订单号生成方法
---
src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
index 8c885cd..6a9b4f7 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
@@ -101,12 +101,13 @@
throw new BaseException("鍚堝苟澶辫触锛屾墍閫夌敓浜ц鍒掔殑浜у搧鍨嬪彿涓嶄竴鑷�");
}
- // 宸蹭笅鍙戞垨閮ㄥ垎涓嬪彂鐨勮鍒掍笉鍏佽鍐嶆鍚堝苟
- boolean hasIssuedPlan = planLists.stream()
+ // 浠呪�滃凡涓嬪彂鈥濊鍒掍笉鍏佽鍐嶆鍙備笌鍚堝苟涓嬪彂锛�
+ // 鈥滃緟涓嬪彂/閮ㄥ垎涓嬪彂鈥濆厑璁哥户缁笅鍙戝墿浣欐暟閲忋��
+ boolean hasFullyIssuedPlan = planLists.stream()
.anyMatch(item -> item.getStatus() != null
- && (item.getStatus() == PLAN_STATUS_PARTIAL || item.getStatus() == PLAN_STATUS_ISSUED));
- if (hasIssuedPlan) {
- throw new BaseException("鍚堝苟澶辫触锛屾墍閫夌敓浜ц鍒掑瓨鍦ㄥ凡涓嬪彂鎴栭儴鍒嗕笅鍙戠殑鏁版嵁");
+ && item.getStatus() == PLAN_STATUS_ISSUED);
+ if (hasFullyIssuedPlan) {
+ throw new BaseException("鍚堝苟澶辫触锛屾墍閫夌敓浜ц鍒掑瓨鍦ㄥ凡涓嬪彂鐨勬暟鎹�");
}
// 璁$畻鏈鍙笅鍙戠殑鍓╀綑闇�姹傛�婚噺
@@ -150,6 +151,10 @@
productionOrder.setProductModelId(firstPlan.getProductModelId());
productionOrder.setQuantity(assignedQuantity);
productionOrder.setPlanCompleteTime(productionPlanDto.getPlanCompleteTime());
+ // 鐢熶骇璁㈠崟鍙锋寜涓荤敓浜ц鍒掔殑闇�姹傛棩鏈熺敓鎴�
+ ProductionPlan primaryPlan = this.getById(firstPlan.getId());
+ LocalDate orderNoDate = primaryPlan != null ? primaryPlan.getRequiredDate() : null;
+ productionOrder.setNpsNo(productionOrderService.generateNextOrderNo(orderNoDate));
if (!productionOrderService.saveProductionOrder(productionOrder)) {
throw new ServiceException("涓嬪彂澶辫触锛岀敓浜ц鍗曚繚瀛樺け璐�");
}
--
Gitblit v1.9.3