From 0b8a17db936d25422e856d4fc78a067144b98f73 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期三, 26 十一月 2025 14:41:52 +0800
Subject: [PATCH] 物料类型信息

---
 MES.Service/service/BasicData/MesItemTypeManager.cs |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 104 insertions(+), 12 deletions(-)

diff --git a/MES.Service/service/BasicData/MesItemTypeManager.cs b/MES.Service/service/BasicData/MesItemTypeManager.cs
index 00f6ce3..bcc2ce1 100644
--- a/MES.Service/service/BasicData/MesItemTypeManager.cs
+++ b/MES.Service/service/BasicData/MesItemTypeManager.cs
@@ -1,9 +1,14 @@
 锘縰sing MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
-
+using AngleSharp.Dom;
+using SqlSugar;
+using Masuit.Tools;
 namespace MES.Service.service.BasicData;
 
+/// <summary>
+/// 鐗╂枡绫诲瀷淇℃伅
+/// </summary>
 public class MesItemTypeManager : Repository<MesItemType>
 {
     //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
@@ -30,14 +35,55 @@
         }
     }
 
+    /// <summary>
+    /// 娣诲姞鐗╂枡绫诲瀷淇℃伅new_0
+    /// </summary>
+    /// <param name="entity"></param>
+    /// <returns></returns>
+    /// <exception cref="NotImplementedException"></exception>
     private bool InsertItemType(MesItemType entity)
     {
-        var insert = base.Insert(entity);
-        if (insert)
-            return true;
+        if (entity.Id == 0)
+        {
+            // 鏂板鎯呭喌锛氱敓鎴愭柊ID骞舵彃鍏�
+            var newId = GenerateNewId();
+            entity.Id = newId;
+            var insert = base.Insert(entity);
+            if (insert)
+                return true;
+        }
+        else
+        {
+            // 鏇存柊鎯呭喌锛氬垹闄ゅ悗閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塈D
+            var originalId = entity.Id;
+
+            // 鍏堝垹闄ゅ師璁板綍锛堝鏋滃瓨鍦級
+            Db.Deleteable<MesItemType>().Where(s => s.Id == originalId).ExecuteCommand();
+
+            // 閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塈D
+            entity.Id = originalId;
+            var insert = base.Insert(entity);
+            if (insert)
+                return true;
+        }
 
         throw new NotImplementedException("鎻掑叆澶辫触");
     }
+
+    /// <summary>
+    /// 娣诲姞鐗╂枡绫诲瀷淇℃伅old_0
+    /// </summary>
+    /// <param name="entity"></param>
+    /// <returns></returns>
+    /// <exception cref="NotImplementedException"></exception>
+    //private bool InsertItemType(MesItemType entity)
+    //{
+    //    var insert = base.Insert(entity);
+    //    if (insert)
+    //        return true;
+
+    //    throw new NotImplementedException("鎻掑叆澶辫触");
+    //}
 
     private bool DeleteItemType(decimal id)
     {
@@ -49,18 +95,47 @@
         throw new NotImplementedException("鍒犻櫎澶辫触");
     }
 
+    /// <summary>
+    /// 鐢熸垚鏂扮殑ID锛岀‘淇濅笉閲嶅
+    /// </summary>
+    private decimal GenerateNewId()
+    {
+        // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮�
+        var maxId = Db.Queryable<MesItemType>().Max(x => (decimal?)x.Id) ?? 0;
+        var newId = maxId + 1;
+
+        // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨処D涓嶅瓨鍦�
+        while (Db.Queryable<MesItemType>().Where(x => x.Id == newId).Any())
+        {
+            newId++;
+        }
+
+        return newId;
+    }
+
     private MesItemType GetMesItemType(ErpItemType department)
     {
+        // 鏌ユ壘鏄惁宸插瓨鍦ㄧ浉鍚屽鎴风紪鐮佺殑璁板綍銆侷D銆乧reate_date
+        var existingCustomer = Db.Queryable<MesItemType>()
+            .Where(s => s.Tcode == department.FNumber)
+            .First();
+
         return new MesItemType
         {
-            Id = Convert.ToDecimal(department.Id),
-            Pgroup = department.FParentId,
+            // 濡傛灉瀛樺湪锛屼娇鐢ㄧ幇鏈夌殑ID锛屽悗缁皢鍒犻櫎鍚庨噸鏂版彃鍏�
+            // 濡傛灉涓嶅瓨鍦紝璁句负0锛孖nsertOrUpdate鏂规硶灏嗙敓鎴愭柊ID
+            Id = existingCustomer?.Id ?? 0,
+            Pgroup = department.fParentGroup,
             Tcode = department.FNumber,
             Tname = department.FName,
             Description = department.FDescription,
+            MA011= department.MA011,
             //FSubsidiary = department.FSubsidiary,
             //Fumbrella = department.Fumbrella,
-            CreateDate = DateTime.Now,
+
+            // 濡傛灉瀛樺湪锛屼娇鐢ㄧ幇鏈夌殑CreateDate锛屽悗缁皢鍒犻櫎鍚庨噸鏂版彃鍏�
+            // 濡傛灉涓嶅瓨鍦紝璁句负褰撳墠鏃堕棿
+            CreateDate = existingCustomer?.CreateDate ?? DateTime.Now,
             LastupdateDate = DateTime.Now,
             Company = "1000",
             Factory = "1000"
@@ -108,15 +183,32 @@
         throw new NotImplementedException("鎺ュ彛鎵ц澶辫触");
     }
 
+    /// <summary>
+    /// 鎵归噺娣诲姞鐗╂枡绫诲瀷淇℃伅new_0
+    /// </summary>
+    /// <param name="db"></param>
+    /// <param name="itemTypeList"></param>
+    /// <returns></returns>
     private bool InsertItemTypeBatch(List<MesItemType> itemTypeList)
     {
-        var insertRange = base.InsertRange(itemTypeList);
-        if (insertRange)
-            return true;
-
-        throw new NotImplementedException("鎻掑叆澶辫触");
+        return itemTypeList.All(entity => InsertItemType(entity));
     }
 
+    /// <summary>
+    /// 鎵归噺娣诲姞鐗╂枡绫诲瀷淇℃伅old_0
+    /// </summary>
+    /// <param name="itemTypeList"></param>
+    /// <returns></returns>
+    /// <exception cref="NotImplementedException"></exception>
+    //private bool InsertItemTypeBatch(List<MesItemType> itemTypeList)
+    //{
+    //    var insertRange = base.InsertRange(itemTypeList);
+    //    if (insertRange)
+    //        return true;
+
+    //    throw new NotImplementedException("鎻掑叆澶辫触");
+    //}
+
     private bool DeleteItemTypeBatch(List<MesItemType> itemTypeList)
     {
         var ids = itemTypeList.Select(it => it.Id).ToArray();

--
Gitblit v1.9.3