From 0c999fbeed306e212e30baabf90792afa52412dc Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 17 十二月 2025 08:37:53 +0800
Subject: [PATCH] 主表ID改为序列化生成:生产订单、采购订单。采购订单整单删除功能日志消息补全。

---
 MES.Service/service/BasicData/MesRohInManager.cs |  147 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 107 insertions(+), 40 deletions(-)

diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs
index 56dc5da..cdc658e 100644
--- a/MES.Service/service/BasicData/MesRohInManager.cs
+++ b/MES.Service/service/BasicData/MesRohInManager.cs
@@ -1,4 +1,5 @@
-锘縰sing Masuit.Tools;
+锘縰sing AngleSharp.Dom;
+using Masuit.Tools;
 using MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
@@ -70,17 +71,17 @@
     // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶
     private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,List<MesRohInData> mesRohInDatas, string type)
     {
-        ////浼犱粈涔堬紝c灏辨敼鎴愪粈涔�
+        //浼犱粈涔堬紝c灏辨敼鎴愪粈涔�
         //if (type == "3" || (mesRohIn.DocumentStatus != null && mesRohIn.DocumentStatus != "C"))//C琛ㄧず宸插鏍哥姸鎬�
         //{
         //    mesRohIn.BillNo = mesRohIn.BillNo + "F" + mesRohIn.EbelnK3id.ToString();
         //}
 
-        //浼犱粈涔堬紝c灏辨敼鎴愪粈涔�
-        if (type == "3" || (mesRohIn.DocumentStatus != null && mesRohIn.DocumentStatus != "Y"))//Y琛ㄧず宸插鏍哥姸鎬�
-        {
-            mesRohIn.BillNo = mesRohIn.BillNo + "Y" + mesRohIn.EbelnK3id.ToString();
-        }
+        ////浼犱粈涔堬紝c灏辨敼鎴愪粈涔�
+        //if (type == "3" || (mesRohIn.DocumentStatus != null && mesRohIn.DocumentStatus != "Y"))//Y琛ㄧず宸插鏍哥姸鎬�
+        //{
+        //    mesRohIn.BillNo = mesRohIn.BillNo + "F" + mesRohIn.EbelnK3id.ToString();
+        //}
 
         if (mesRohIn.Guid != null)
             db.Deleteable<MesRohIn>().Where(s => s.Guid == mesRohIn.Guid)
@@ -138,13 +139,31 @@
 
         mesRohIn.EbelnK3id = eid;
         mesRohIn.BillNo = rohIn.FBillNo;
-        mesRohIn.DocumentStatus = rohIn.FDocumentStatus;
+        
         mesRohIn.DocumentType = rohIn.FBillTypeID;
         mesRohIn.BusinessType = rohIn.FBusinessType;
+
+
+        ////erp浼犺繃鏉ョ殑Y->C,琛ㄧず瀹℃牳銆侼->A銆傦紙涓庨噾铦堕�昏緫淇濇寔涓�鑷达級
+        //mesRohIn.DocumentStatus = rohIn.FDocumentStatus;
+
+        //erp浼犺繃鏉ョ殑Y->C,琛ㄧず瀹℃牳銆侼->A銆傦紙涓庨噾铦堕�昏緫淇濇寔涓�鑷达級
+        if (string.IsNullOrEmpty(rohIn.FDocumentStatus))
+        {
+            mesRohIn.DocumentStatus = "A";
+        }
+        else
+        {
+            mesRohIn.DocumentStatus = rohIn.FDocumentStatus == "Y" ? "C" : "A";
+        }
+
+
 
         if (rohIn.FDate != null)
             mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate,
                 "yyyy-MM-dd HH:mm:ss", null);
+
+
 
         //渚涘簲鍟嗙紪鐮佽浆ID
         var mesRohInSupplier = Db.Queryable<MesSupplier>()
@@ -177,10 +196,6 @@
         if (!string.IsNullOrWhiteSpace(mesRohInPurchaseDept))
         {
             mesRohIn.PurchaseDept = mesRohInPurchaseDept;
-        }
-        else if (!string.IsNullOrWhiteSpace(rohIn.FPurchaseDeptId))
-        {
-            mesRohIn.PurchaseDept = rohIn.FPurchaseDeptId;
         }
         else
         {
@@ -330,6 +345,21 @@
                 SalesOrderId = s.F_UNW_Text_xsddh
             };
 
+            //搴撳瓨鍗曚綅缂栫爜杞琁D
+            //InventoryUnit = s.FStockUnitID,
+            var entityInventoryUnit = Db.Queryable<MesUnit>()
+                .Where(x => x.Fnumber == s.FUnitId)
+                .Select(x => x.Id.ToString())
+                .First();
+            if (!string.IsNullOrWhiteSpace(entityInventoryUnit))
+            {
+                entity.InventoryUnit = entityInventoryUnit;
+            }
+            else
+            {
+                entity.InventoryUnit = "0";
+            }
+
             //閲囪喘鍗曚綅缂栫爜杞琁D
             var entityPurchaseUnit = Db.Queryable<MesUnit>()
                 .Where(x => x.Fnumber == s.FUnitId)
@@ -338,10 +368,6 @@
             if (!string.IsNullOrWhiteSpace(entityPurchaseUnit))
             {
                 entity.PurchaseUnit = entityPurchaseUnit;
-            }
-            else if (!string.IsNullOrWhiteSpace(s.FUnitId))
-            {
-                entity.PurchaseUnit = s.FUnitId;
             }
             else
             {
@@ -357,10 +383,6 @@
             {
                 entity.PricingUnit = entityPricingUnit;
             }
-            else if (!string.IsNullOrWhiteSpace(s.FPriceUnitId))
-            {
-                entity.PricingUnit = s.FPriceUnitId;
-            }
             else
             {
                 entity.PricingUnit = "0";
@@ -374,10 +396,6 @@
             if (!string.IsNullOrWhiteSpace(entityItemId))
             {
                 entity.ItemId = entityItemId;
-            }
-            else if (!string.IsNullOrWhiteSpace(s.FMaterialId))
-            {
-                entity.ItemId = s.FMaterialId;
             }
             else
             {
@@ -414,29 +432,57 @@
             }
 
             //鏌ヨEbelnK3id瀵瑰簲鐨凣uid锛岃祴鍊肩粰entity.Guid銆傚疄鐜颁富閿鐢�
-            var single = rohInDataManager.GetSingle(it =>it.EbelnK3id == entity.EbelnK3id);
+            var single = rohInDataManager.GetSingle(it => it.EbelnK3id == entity.EbelnK3id);
             if (single != null) entity.Guid = single.Guid;
 
             return entity;
         }).ToList();
     }
 
+    ///// <summary>
+    ///// 鐢熸垚鏂扮殑涓昏〃ID锛岀‘淇濅笉閲嶅
+    ///// </summary>
+    //private decimal GenerateNewId()
+    //{
+    //    // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮�
+    //    var maxId = Db.Queryable<MesRohIn>().Max(x => (decimal?)x.EbelnK3id) ?? 0;
+    //    var newId = maxId + 1;
+
+    //    // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨処D涓嶅瓨鍦�
+    //    while (Db.Queryable<MesRohIn>().Where(x => x.EbelnK3id == newId).Any())
+    //    {
+    //        newId++;
+    //    }
+
+    //    return newId;
+    //}
+
     /// <summary>
-    /// 鐢熸垚鏂扮殑涓昏〃ID锛岀‘淇濅笉閲嶅
+    /// 鐢熸垚鏂扮殑涓昏〃ID锛岄�氳繃鏁版嵁搴撳簭鍒楄幏鍙栧敮涓�ID
     /// </summary>
     private decimal GenerateNewId()
     {
-        // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮�
-        var maxId = Db.Queryable<MesRohIn>().Max(x => (decimal?)x.EbelnK3id) ?? 0;
-        var newId = maxId + 1;
-
-        // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨処D涓嶅瓨鍦�
-        while (Db.Queryable<MesRohIn>().Where(x => x.EbelnK3id == newId).Any())
+        try
         {
-            newId++;
-        }
+            // 鏇挎崲涓猴細
+            var sequenceValueObj = Db.Ado.GetScalar("SELECT NEXT VALUE FOR MES_ROH_IN_seq");
+            var sequenceValue = Convert.ToDecimal(sequenceValueObj);
+            // 楠岃瘉搴忓垪鍊兼槸鍚︽湁鏁�
+            if (sequenceValue <= 0)
+            {
+                throw new InvalidOperationException($"鏁版嵁搴撳簭鍒� MES_ROH_IN_seq 杩斿洖浜嗘棤鏁堢殑鍊�: {sequenceValue}");
+            }
 
-        return newId;
+            return sequenceValue;
+        }
+        catch (Exception ex)
+        {
+            // 璁板綍寮傚父淇℃伅
+            Console.WriteLine($"璋冪敤鏁版嵁搴撳簭鍒� MES_ROH_IN_seq 澶辫触: {ex.Message}");
+
+            // 鍚戜笂灞傛姏鍑烘槑纭殑寮傚父淇℃伅
+            throw new InvalidOperationException($"鐢熸垚瀛愯〃ID澶辫触锛屾棤娉曡幏鍙栨暟鎹簱搴忓垪鍊�: {ex.Message}", ex);
+        }
     }
 
     /// <summary>
@@ -446,14 +492,29 @@
     {
         try
         {
-            // 鏇挎崲涓猴細
+            // 鑾峰彇褰撳墠琛ㄤ腑宸插瓨鍦ㄧ殑鏈�澶� EBELN_K3ID
+            //var maxId = Db.Queryable<MesRohInData>().Max(x => (decimal?)x.EbelnK3id) ?? 0m;
+
+            // 鍏堝彇涓�涓簭鍒楀��
             var sequenceValueObj = Db.Ado.GetScalar("SELECT NEXT VALUE FOR MES_ROH_IN_DATA_seq");
             var sequenceValue = Convert.ToDecimal(sequenceValueObj);
-            // 楠岃瘉搴忓垪鍊兼槸鍚︽湁鏁�
+
             if (sequenceValue <= 0)
             {
                 throw new InvalidOperationException($"鏁版嵁搴撳簭鍒� MES_ROH_IN_DATA_seq 杩斿洖浜嗘棤鏁堢殑鍊�: {sequenceValue}");
             }
+
+            //// 濡傛灉搴忓垪鍊艰惤鍚庝簬褰撳墠鏈�澶D锛屾寔缁幏鍙栫洿鍒拌秴杩� maxId
+            //while (sequenceValue <= maxId || Db.Queryable<MesRohInData>().Where(x => x.EbelnK3id == sequenceValue).Any())
+            //{
+            //    sequenceValueObj = Db.Ado.GetScalar("SELECT NEXT VALUE FOR MES_ROH_IN_DATA_seq");
+            //    sequenceValue = Convert.ToDecimal(sequenceValueObj);
+
+            //    if (sequenceValue <= 0)
+            //    {
+            //        throw new InvalidOperationException($"鏁版嵁搴撳簭鍒� MES_ROH_IN_DATA_seq 杩炵画杩斿洖鏃犳晥鐨勫��: {sequenceValue}");
+            //    }
+            //}
 
             return sequenceValue;
         }
@@ -474,6 +535,8 @@
     /// <returns>琚垹闄ょ殑鍗曞彿</returns>
     public (int outSum, string outMsg) Delete(string FBillNo, string FBillTypeID)
     {
+        try
+        { 
         var outMsg = string.Empty;
         var outSum = 0;
 
@@ -488,9 +551,13 @@
         Db.Ado.UseStoredProcedure().ExecuteCommand("ERP_DeleteMesRohInByBillNo", parameters);
 
         outMsg = parameters[2].Value?.ToString() ?? "";
-        outSum = parameters[3].Value != null ? Convert.ToInt32(parameters[2].Value) : -1;
-
-        return (outSum, outMsg);
+        outSum = parameters[3].Value != null ? Convert.ToInt32(parameters[index: 3].Value) : -1;
+            return (outSum, outMsg);
+        }
+        catch (Exception ex)
+        {
+            throw new InvalidOperationException($"璋冪敤瀛樺偍杩囩▼ ERP_DeleteMesRohInByBillNo 澶辫触: {ex.Message}", ex);
+        }
     }
 
 

--
Gitblit v1.9.3