From 77a6ef8c94bd440919e4b925485215ae92190d81 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 23 十月 2024 11:12:00 +0800
Subject: [PATCH] 接口修正
---
MES.Service/service/BasicData/OrganizeManager.cs | 181 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 181 insertions(+), 0 deletions(-)
diff --git a/MES.Service/service/BasicData/OrganizeManager.cs b/MES.Service/service/BasicData/OrganizeManager.cs
new file mode 100644
index 0000000..9dac857
--- /dev/null
+++ b/MES.Service/service/BasicData/OrganizeManager.cs
@@ -0,0 +1,181 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service;
+
+public class OrganizeManager : Repository<SysOrganization>
+{
+ public bool Save(ErpOrganize item)
+ {
+ var entity = GetOrganize(item);
+
+ return UseTransaction(db =>
+ {
+ switch (item.Type)
+ {
+ case "0":
+ if (UpdateOrganizetatus(db, entity.FNumber, "A"))
+ return 1;
+ break;
+ case "1":
+ if (UpdateOrganizetatus(db, entity.FNumber, "B"))
+ return 1;
+ break;
+ case "2":
+ if (InsertItem(db, entity))
+ return 1;
+ break;
+ case "3":
+ if (DeleteItem(db, entity.FNumber))
+ return 1;
+ break;
+ case "4":
+ if (InsertOrUpdate(db, entity))
+ return 1;
+ break;
+ default:
+ throw new ArgumentNullException(
+ $"type娌℃湁{item.Type}杩欎釜绫诲瀷鐨勫弬鏁�");
+ }
+
+ throw new NotImplementedException("鎿嶄綔澶辫触");
+ }) > 0;
+ }
+
+ public bool SaveList(List<ErpOrganize> SysOrganization)
+ {
+ var list = SysOrganization.Select(GetOrganize).ToList();
+ var groupBy = list.GroupBy(s => s.Type)
+ .ToDictionary(g => g.Key, g => g.ToList());
+
+ return UseTransaction(db =>
+ {
+ foreach (var itemGroup in groupBy)
+ switch (itemGroup.Key)
+ {
+ case "0":
+ if (!UpdateOrganizetatusBatch(db, itemGroup.Value, "A"))
+ throw new NotImplementedException("鍚敤澶辫触");
+ break;
+ case "1":
+ if (!UpdateOrganizetatusBatch(db, itemGroup.Value, "B"))
+ throw new NotImplementedException("绂佺敤澶辫触");
+ break;
+ case "2":
+ if (!InsertItemBatch(db, itemGroup.Value))
+ throw new NotImplementedException("鎻掑叆澶辫触");
+ break;
+ case "3":
+ if (!DeleteItemBatch(db, itemGroup.Value))
+ throw new NotImplementedException("鍒犻櫎澶辫触");
+ break;
+ case "4":
+ if (!InsertOrUpdateBatch(db, itemGroup.Value))
+ throw new NotImplementedException("鍚屾澶辫触");
+ break;
+ default:
+ throw new ArgumentNullException(
+ $"type娌℃湁{itemGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
+ }
+
+ return 1;
+ }) > 0;
+ }
+
+ private bool UpdateOrganizetatus(SqlSugarScope db, string number,
+ string status)
+ {
+ var result = db.Updateable<SysOrganization>()
+ .SetColumns(s => s.IsStatus == status.Equals("A"))
+ .Where(s => s.FNumber == number).ExecuteCommand();
+
+ if (result > 0)
+ return true;
+
+ throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+ }
+
+ private bool InsertItem(SqlSugarScope db, SysOrganization entity)
+ {
+ var insert = db.Insertable(entity).ExecuteCommand();
+ if (insert > 0)
+ return true;
+
+ throw new NotImplementedException("鎻掑叆澶辫触");
+ }
+
+ private bool DeleteItem(SqlSugarScope db, string number)
+ {
+ var deleteById = db.Deleteable<SysOrganization>()
+ .Where(s => s.FNumber == number).ExecuteCommand();
+ if (deleteById > 0)
+ return true;
+
+ throw new NotImplementedException("鍒犻櫎澶辫触");
+ }
+
+ private SysOrganization GetOrganize(ErpOrganize organize)
+ {
+ return new SysOrganization
+ {
+ Name = organize.FName,
+ FNumber = organize.FNumber,
+ FParentlD = organize.FParentID,
+ IsStatus = organize.FForbidStatus.Equals("A")
+ };
+ }
+
+ private bool UpdateOrganizetatusBatch(SqlSugarScope db,
+ List<SysOrganization> itemList, string status)
+ {
+ var numbers = itemList.Select(it => it.FNumber).ToArray();
+ var result = db.Updateable<SysOrganization>()
+ .SetColumns(s => s.IsStatus == "A".Equals(status))
+ .Where(s => numbers.Contains(s.FNumber)).ExecuteCommand();
+
+ if (result > 0)
+ return true;
+
+ throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+ }
+
+ private bool InsertItemBatch(SqlSugarScope db,
+ List<SysOrganization> itemList)
+ {
+ var insertRange = db.Insertable(itemList).ExecuteCommand();
+ if (insertRange > 0)
+ return true;
+
+ throw new NotImplementedException("鎻掑叆澶辫触");
+ }
+
+ private bool DeleteItemBatch(SqlSugarScope db,
+ List<SysOrganization> itemList)
+ {
+ var numbers = itemList.Select(it => it.FNumber).ToArray();
+ var deleteByIds = db.Deleteable<SysOrganization>()
+ .Where(s => numbers.Contains(s.FNumber)).ExecuteCommand();
+ if (deleteByIds > 0)
+ return true;
+
+ throw new NotImplementedException("鍒犻櫎澶辫触");
+ }
+
+ private bool InsertOrUpdate(SqlSugarScope db, SysOrganization entity)
+ {
+ db.Deleteable<SysOrganization>()
+ .Where(s => s.FNumber == entity.FNumber).ExecuteCommand();
+
+ var insert = db.Insertable(entity).ExecuteCommand();
+
+ return insert > 0;
+ }
+
+ private bool InsertOrUpdateBatch(SqlSugarScope db,
+ List<SysOrganization> itemList)
+ {
+ return itemList.All(entity => InsertOrUpdate(db, entity));
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3