From a4ae3bf5f1826e8e29a95da3dc2c947d713d4ebb Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 06 六月 2025 15:38:14 +0800
Subject: [PATCH] 1.仓库信息储存逻辑调整 2.生产订单接口优化。

---
 MES.Service/service/WomcaaManager.cs |   49 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index a39614e..c5bc955 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -23,7 +23,8 @@
     public bool Save(ErpWOM wom)
     {
         var womErpCaa = wom.ErpCaa;
-        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
+
+        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo);
         var mesWomcabs =
             MapErpCABtoWomcab(wom.ErpCabs);
 
@@ -58,8 +59,15 @@
             db.Deleteable<Womcab>()
                 .Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand();
 
-        var orUpdate = base.Insert(mesWomcaa);
-        var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
+        //鍗曟潯鎻掑叆蹇界暐绌哄瓧娈�
+        var orUpdate = db.Insertable(mesWomcaa)
+            .IgnoreColumns(true).ExecuteCommand() > 0;
+
+        //鎵归噺鎻掑叆蹇界暐绌哄瓧娈�
+        var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1)
+            .IgnoreColumnsNull()
+            .ExecuteCommand() > 0;
+
         if (orUpdate && baOrUpdate) return true;
         throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
     }
@@ -77,12 +85,12 @@
         throw new NotImplementedException("鏇存柊澶辫触");
     }
 
-    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
+    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto,string PPBOMNO)
     {
         var entity = new Womcaa
         {
             Erpid = Convert.ToInt32(dto.Id), ///     ERPID
-            Caa001 = dto.FBillNo, ///     鍗曞彿
+            Caa001 = PPBOMNO, ///     鍗曞彿
             Caa021 = dto.FWorkShopID, ///     宸ヤ綔杞﹂棿
             RoutingId = dto.FRoutingId, ///     宸ヨ壓璺嚎
             WorkShopId = dto.FREMWorkShopId, ///     浜х嚎
@@ -93,13 +101,15 @@
             Caa006 = dto.FMaterialId, ///     浜у搧缂栫爜
             Caa009 = dto.FUnitId, ///     鍗曚綅
             Caa012 = !string.IsNullOrEmpty(dto.FQty)
-                ? Convert.ToInt32(dto.FQty)
+                ? Convert.ToDecimal(dto.FQty)
                 : null, ///     鏁伴噺
             WorkGroupId = dto.FWorkGroupId, ///     璁″垝缁�
             PlanId = dto.FPlannerID, ///     璁″垝鍛�
             Caa010 = dto.FPlanStartDate, ///     棰勮寮�宸ユ椂闂�
             Caa011 = dto.FPlanFinishDate, ///     棰勮瀹屽伐鏃堕棿
-            Caa005 = dto.FConveyDate, ///     寮�鍗曟棩鏈�
+            Caa005 = DateTime.TryParse(dto.FConveyDate, out var conveyDate) 
+            ? (conveyDate <= new DateTime(1900, 1, 1) ? null : conveyDate.ToString())
+                : null, ///     寮�鍗曟棩鏈�
             StockInlimith = dto.FStockInLimitH, ///     鍏ュ簱涓婇檺
             StockInlimitl = dto.FStockInLimitL, ///     鍏ュ簱涓嬮檺
             Mtono = dto.FMTONO, ///     璁″垝璺熻釜鍙�
@@ -127,6 +137,7 @@
             //Caa015 = dto.F_UNW_Text_xsddh, ///     閿�鍞鍗曞彿
             ErpSczz = Convert.ToInt32(dto.FPrdOrgId), ///     鐢熶骇缁勭粐ID
             ErpWtzz = Convert.ToInt32(dto.FEnTrustOrgId), ///     濮旀墭缁勭粐ID
+            Btbz = dto.Btbz, ///     濮旀墭缁勭粐ID
             //Caa015Head = dto.F_XIFG_Integer_tzk, ///     閿�鍞鍗曡鍙�
             //MainProductNo = dto.F_XIFG_Base_w5c, ///     涓讳骇鍝佺紪鐮�
             // MainProductQty =
@@ -135,7 +146,10 @@
             // PackingListNumber = dto.F_XIFG_Text_yrr, ///     鍖呰鍗曞彿
             // CustomerName = dto.F_XIFG_Text_qtr1, ///     瀹㈡埛鍚嶇О
             // Customer = dto.F_XIFG_Base_83g1, ///     瀹㈡埛
-            Caa0111 = dto.FPlanFinishDate ///     棰勮瀹屽伐鏃堕棿澶囦唤
+            Caa0111 = dto.FPlanFinishDate, ///     棰勮瀹屽伐鏃堕棿澶囦唤
+            Typea = dto.TypeA, ///     棰勮瀹屽伐鏃堕棿澶囦唤
+            //Typeb = dto.TypeB ///     棰勮瀹屽伐鏃堕棿澶囦唤
+            SynchronousDate = DateTime.Now
         };
 
         var single = base.GetSingle(it => it.Erpid == entity.Erpid);
@@ -152,15 +166,15 @@
         {
             var womcab = new Womcab
             {
-                Erpid = Convert.ToInt32(dto.FENTRYID), /// ERPID 
+                Erpid = Convert.ToInt32(dto.Id), /// ERPID 
                 Cab001 = dto.FBillNo, /// 宸ュ崟鍗曞彿 
-                Cab002 = dto.FSeq, /// 搴忓彿 
+                Cab002 = Convert.ToInt32(dto.FSeq), /// 搴忓彿 
                 Cab003 = dto.FMaterialID, /// 鏉愭枡缂栫爜 
                 Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
-                    ? Convert.ToInt32(dto.FNeedQty)
+                    ? Convert.ToDecimal(dto.FNeedQty)
                     : null, /// 闇�棰嗙敤閲� 
                 Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
-                    ? Convert.ToInt32(dto.FPickedQty)
+                    ? Convert.ToDecimal(dto.FPickedQty)
                     : null, /// 宸查鐢ㄩ噺 
                 PositionNo = dto.FPositionNO, /// 浣嶇疆鍙� 
                 SupplyOrganization = dto.FChildSupplyOrgId, /// 渚涘簲缁勭粐 
@@ -174,7 +188,7 @@
                 Cab009 = dto.FUnitID, /// 鍗曚綅 
                 SupplyType = dto.FSupplyType, /// 渚涘簲绫诲瀷(C閲囪喘 Z鑷埗 W濮斿) 
                 Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
-                    ? Convert.ToInt32(dto.FStdQty)
+                    ? Convert.ToDecimal(dto.FStdQty)
                     : null, /// 缁勬垚鐢ㄩ噺 
                 Cab014 = dto.FIsKeyItem, /// 鏄惁鏇挎枡 
                 Numerator = dto.FNumerator, /// 鍒嗗瓙 
@@ -183,7 +197,12 @@
                 Eid = Convert.ToInt32(dto.Id), /// ERP ID 
 
                 Scrapqty = dto.FFixScrapQty, /// 鍥哄畾鎹熻�� 
-                Scraprate = dto.FScrapRate, /// 鍙樺姩鎹熻�楃巼 
+                Scraprate = dto.FScrapRate, /// 鍙樺姩鎹熻�楃巼
+                Freplacegroup = Convert.ToInt32(dto.FReplaceGroup),
+                UseRate = Convert.ToDecimal(dto.FUseRate),
+                MaterialType = dto.FMaterialType,
+                MustQty = Convert.ToDecimal(dto.FMustQty),
+                Typeb = dto.TypeB
                 // Fsaleorderno = dto.FSALEORDERNO, /// 閿�鍞鍗� 
                 //
                 // CustomerItemNumber = dto.F_XIFG_Text_re5, /// 瀹㈡埛璐у彿 
@@ -195,7 +214,7 @@
             };
 
             var entity = Db.Queryable<Womcab>()
-                .Where(s => s.Erpid == womcab.Erpid).Single();
+                .Where(s => s.Eid == womcab.Eid).Single();
             if (entity != null) womcab.Guid = entity.Guid;
 
             womcabList.Add(womcab);

--
Gitblit v1.9.3