From 035f614428d37d07976e995719a5d5bfb5472648 Mon Sep 17 00:00:00 2001
From: CRZ <1278080563@qq.com>
Date: 星期三, 03 十二月 2025 10:20:33 +0800
Subject: [PATCH] 任务单接口修改

---
 MES.Service/service/WomcaaManager.cs |   55 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index 5859f34..8b08ef5 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 =>
         {
@@ -66,21 +94,21 @@
             if (mesWomcabs.Count > 0)
             {
 
-           // var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList();
-            var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList();
+            var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList();
+            //var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList();
 
 
-            /*db.Deleteable<Womcab>()
+            db.Deleteable<Womcab>()
                 .Where(it => mesWomcab
                 .Any(p => p.CAB001 == it.Cab001 
                 && p.CAB002 == it.Cab002 
                 && p.CAB003 == it.Cab003))
-                .ExecuteCommand();*/
-            db.Deleteable<Womcab>()
-                .Where(it => mesWomcab
-                .Any(p => p.CAB001 == it.Cab001
-                && p.CAB002 == it.Cab002))
                 .ExecuteCommand();
+            //db.Deleteable<Womcab>()
+            //    .Where(it => mesWomcab
+            //    .Any(p => p.CAB001 == it.Cab001
+            //    && p.CAB002 == it.Cab002))
+            //    .ExecuteCommand();
 
         };
            
@@ -137,13 +165,13 @@
         .ExecuteCommand() > 0;
 
 
-        //var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList();
-        var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList();
+        var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002, CAB003 = s.Cab003 }).ToList();
+        //var mesWomcab = mesWomcabs.Select(s => new { CAB001 = s.Cab001, CAB002 = s.Cab002}).ToList();
 
 
 
-        //var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002 && p.CAB003 == it.Cab003)).ExecuteCommand() > 0;
-        var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002)).ExecuteCommand() > 0;
+        var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002 && p.CAB003 == it.Cab003)).ExecuteCommand() > 0;
+        //var insertOrUpdate = db.Deleteable<Womcab>().Where(it => mesWomcab.Any(p => p.CAB001 == it.Cab001 && p.CAB002 == it.Cab002)).ExecuteCommand() > 0;
 
 
         if (update && insertOrUpdate) return true;
@@ -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