From 3e07ab0ad28e3871e1940f1108216ae8245af2d8 Mon Sep 17 00:00:00 2001
From: 如洲 陈 <1278080563@qq.com>
Date: 星期四, 25 九月 2025 09:40:20 +0800
Subject: [PATCH] 生产任务单序列号

---
 MES.Service/service/WomcaaManager.cs |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index 5859f34..c9d0822 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -17,6 +17,31 @@
 
     private readonly WomcabManager _womcabManager = new();
 
+    /// <summary>
+    /// 楠岃瘉BOM鏄惁涓虹┖
+    /// </summary>
+    /// <param name="erpCabs">BOM鏄庣粏鍒楄〃</param>
+    /// <param name="billNo">鐢熶骇浠诲姟鍗曞彿</param>
+    /// <exception cref="Exception">褰揃OM涓虹┖鏃舵姏鍑哄紓甯�</exception>
+    private void ValidateBomNotEmpty(List<ErpCAB> erpCabs, string billNo)
+    {
+        if (erpCabs == null || erpCabs.Count == 0)
+        {
+            throw new Exception($"鐢熶骇浠诲姟鍗� {billNo} 鐨凚OM涓虹┖锛屼笉鍏佽鎺ㄩ�佸埌MES绯荤粺");
+        }
+
+        // 妫�鏌ユ槸鍚︽湁鏈夋晥鐨凚OM鏄庣粏锛堢墿鏂欑紪鐮佷笉涓虹┖涓旈渶棰嗙敤閲忓ぇ浜�0锛�
+        var validBomItems = erpCabs.Where(cab => 
+            !string.IsNullOrWhiteSpace(cab.FMaterialID2) && 
+            !string.IsNullOrWhiteSpace(cab.FNeedQty2) &&
+            decimal.TryParse(cab.FNeedQty2, out decimal qty) && qty > 0).ToList();
+
+        if (validBomItems.Count == 0)
+        {
+            throw new Exception($"鐢熶骇浠诲姟鍗� {billNo} 鐨凚OM鏄庣粏鏃犳晥锛堢墿鏂欑紪鐮佷负绌烘垨闇�棰嗙敤閲忎负0锛夛紝涓嶅厑璁告帹閫佸埌MES绯荤粺");
+        }
+    }
+
     public bool SaveList(List<ErpWOM> rohIns)
     {
         var result = rohIns.Select(Save).ToList();
@@ -28,6 +53,9 @@
         var womErpCaa = wom. ErpCaa;
         var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
         var mesWomcabs =  MapErpCABtoWomcab(wom.ErpCabs);
+
+        // 楠岃瘉BOM鏄惁涓虹┖
+        ValidateBomNotEmpty(wom.ErpCabs, womErpCaa.FBillNo);
 
         return UseTransaction(db =>
         {
@@ -189,7 +217,8 @@
             Cust_item_no = dto.FCustitemno,
             DemandDate   = DemandDate,
             CustNumber   = dto.CustNumber,
-            ModelType    = dto.ModelType
+            ModelType    = dto.ModelType,
+            OrderNo      = dto.FOrderNo
 
 
 

--
Gitblit v1.9.3