From e08a2e8a24be0996dec3b681f3c4ab45333f331c Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期二, 22 十月 2024 17:54:29 +0800
Subject: [PATCH] 初始化

---
 MES.Service/service/BasicData/MesItemTypeManager.cs |  132 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 132 insertions(+), 0 deletions(-)

diff --git a/MES.Service/service/BasicData/MesItemTypeManager.cs b/MES.Service/service/BasicData/MesItemTypeManager.cs
new file mode 100644
index 0000000..5059669
--- /dev/null
+++ b/MES.Service/service/BasicData/MesItemTypeManager.cs
@@ -0,0 +1,132 @@
+锘縰sing Castle.Core.Resource;
+using MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+
+namespace MES.Service.service.BasicData;
+
+public class MesItemTypeManager : Repository<MesItemType>
+{
+    //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉�
+    public bool Save(ErpItemType customer)
+    {
+        var entity = GetMesItemType(customer);
+
+        try
+        {
+            switch (customer.Type)
+            {
+                case "0":
+                    return InsertItemType(entity);
+                case "1":
+                    return DeleteItemType(entity.Id);
+                default:
+                    throw new ArgumentNullException(
+                        $"type娌℃湁{customer.Type}杩欎釜绫诲瀷鐨勫弬鏁�");
+            }
+        }
+        catch (Exception ex)
+        {
+            throw new ApplicationException($"鎿嶄綔澶辫触: {ex.Message}", ex);
+        }
+    }
+
+    private bool InsertItemType(MesItemType entity)
+    {
+        var insert = base.Insert(entity);
+        if (insert)
+            return true;
+
+        throw new NotImplementedException("鎻掑叆澶辫触");
+    }
+
+    private bool DeleteItemType(decimal id)
+    {
+        var deleteById = base.DeleteById(id);
+        if (deleteById)
+            return true;
+
+        throw new NotImplementedException("鍒犻櫎澶辫触");
+    }
+
+    private MesItemType GetMesItemType(ErpItemType department)
+    {
+        return new MesItemType
+        {
+            Id = Convert.ToDecimal(department.Id),
+            Pgroup = department.FPARENTID,
+            Tcode = department.FNumber,
+            Tname = department.FName,
+            Description = department.FDescription,
+            //FSubsidiary = department.FSubsidiary,
+            //Fumbrella = department.Fumbrella,
+            CreateDate = DateTime.Now,
+            LastupdateDate = DateTime.Now,
+            Company = "1000",
+            Factory = "1000"
+        };
+    }
+
+    public bool SaveList(List<ErpItemType> departments)
+    {
+        var list = new List<MesItemType>();
+        departments.ForEach(s =>
+        {
+            var entity = GetMesItemType(s);
+            entity.Type = s.Type;
+            list.Add(entity);
+        });
+
+        var groupBy = list.GroupBy(s => s.Type)
+            .ToDictionary(g => g.Key, g => g.ToList());
+        var result = new List<bool>();
+
+        foreach (var itemTypeGroup in groupBy)
+            try
+            {
+                switch (itemTypeGroup.Key)
+                {
+                    case "0":
+                        result.Add(InsertItemTypeBatch(itemTypeGroup.Value));
+                        break;
+                    case "1":
+                        result.Add(DeleteItemTypeBatch(itemTypeGroup.Value));
+                        break;
+                    default:
+                        throw new ArgumentNullException(
+                            $"type娌℃湁{itemTypeGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
+                }
+            }
+            catch (Exception ex)
+            {
+                throw new ApplicationException($"鎵归噺鎿嶄綔澶辫触: {ex.Message}", ex);
+            }
+
+        if (result.All(b => b))
+            return true;
+
+        throw new NotImplementedException("鎺ュ彛鎵ц澶辫触");
+    }
+
+    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();
+
+        var deleteByIds = Db.Deleteable<MesItemType>()
+            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
+
+        if (deleteByIds > 0)
+            return true;
+
+        throw new NotImplementedException("鍒犻櫎澶辫触");
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3