From 729c87c230c6afcd698ead19732420a3195d58ad Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 23 十月 2024 10:43:04 +0800
Subject: [PATCH] 接口调整
---
MES.Service/service/BasicData/MesItemsManager.cs | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 208 insertions(+), 0 deletions(-)
diff --git a/MES.Service/service/BasicData/MesItemsManager.cs b/MES.Service/service/BasicData/MesItemsManager.cs
new file mode 100644
index 0000000..bb2e9a0
--- /dev/null
+++ b/MES.Service/service/BasicData/MesItemsManager.cs
@@ -0,0 +1,208 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service.BasicData;
+
+public class MesItemsManager : Repository<MesItems>
+{
+ public bool Save(ErpItems item)
+ {
+ var entity = GetMesItems(item);
+
+ return UseTransaction(db =>
+ {
+ switch (item.Type)
+ {
+ case "0":
+ if (UpdateItemStatus(db, entity.Id, "A"))
+ return 1;
+ break;
+ case "1":
+ if (UpdateItemStatus(db, entity.Id, "B"))
+ return 1;
+ break;
+ case "2":
+ if (InsertItem(db, entity))
+ return 1;
+ break;
+ case "3":
+ if (DeleteItem(db, entity.Id))
+ 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<ErpItems> items)
+ {
+ var list = items.Select(GetMesItems).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 (!UpdateItemStatusBatch(db, itemGroup.Value, "A"))
+ throw new NotImplementedException("鍚敤澶辫触");
+ break;
+ case "1":
+ if (!UpdateItemStatusBatch(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 UpdateItemStatus(SqlSugarScope db, decimal itemId,
+ string status)
+ {
+ var result = db.Updateable<MesItems>()
+ .SetColumns(s => s.Fforbidstatus == status)
+ .Where(s => s.Id == itemId).ExecuteCommand();
+
+ if (result > 0)
+ return true;
+
+ throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+ }
+
+ private bool InsertItem(SqlSugarScope db, MesItems entity)
+ {
+ var insert = db.Insertable(entity).ExecuteCommand();
+ if (insert > 0)
+ return true;
+
+ throw new NotImplementedException("鎻掑叆澶辫触");
+ }
+
+ private bool DeleteItem(SqlSugarScope db, decimal itemId)
+ {
+ var deleteById = db.Deleteable<MesItems>()
+ .Where(s => s.Id == itemId).ExecuteCommand();
+ if (deleteById > 0)
+ return true;
+
+ throw new NotImplementedException("鍒犻櫎澶辫触");
+ }
+
+ private MesItems GetMesItems(ErpItems item)
+ {
+ return new MesItems
+ {
+ Id = Convert.ToDecimal(item.Id),
+ Type = item.Type,
+ ItemNo = item.FNumber,
+ ItemName = item.FName,
+ ItemModel = item.FSpecification,
+ ItemUnit = item.FBaseUnitId,
+ Lowlimit = Convert.ToDouble(item.FSafeStock),
+ Highlimit = Convert.ToDouble(item.FMaxStock),
+ PrdPack = Convert.ToDouble(item.FMinPackCount),
+ DepotCode = item.FStockId,
+ Fmaterialgroup = item.FMaterialGroup,
+ Remarks = item.FDescription,
+ Ffinishreceiptoverrate =
+ Convert.ToDecimal(item.FFinishReceiptOverRate),
+ Fissuetype = item.FIssueType,
+ Fisbatchmanage = Convert.ToInt32(item.FIsBatchManage),
+ Fpurchaserid = item.FPurchaserId,
+ Fpurchaseunitid = Convert.ToDecimal(item.FPurchaseUnitId),
+ Storeunit = item.FStoreUnitID,
+ Saleunit = item.FSaleUnitId,
+ Fforbidstatus = item.FForbidStatus,
+ MaterialProperti = item.FErpClsID,
+ ProductionWorkshop = item.FWorkShopId,
+ ProduceUnit = item.FPRODUCEUNITID,
+ SubconUnit = item.FSUBCONUNITID,
+ FSubsidiary = item.FUseOrgId,
+ Fumbrella = item.FCreateOrgId,
+ LastupdateDate = DateTime.Now,
+ CreateDate = DateTime.Now,
+ Company = "1000",
+ Factory = "1000"
+ };
+ }
+
+ private bool UpdateItemStatusBatch(SqlSugarScope db,
+ List<MesItems> itemList, string status)
+ {
+ var ids = itemList.Select(it => it.Id).ToArray();
+ var result = db.Updateable<MesItems>()
+ .SetColumns(s => s.Fforbidstatus == status)
+ .Where(s => ids.Contains(s.Id)).ExecuteCommand();
+
+ if (result > 0)
+ return true;
+
+ throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+ }
+
+ private bool InsertItemBatch(SqlSugarScope db, List<MesItems> itemList)
+ {
+ var insertRange = db.Insertable(itemList).ExecuteCommand();
+ if (insertRange > 0)
+ return true;
+
+ throw new NotImplementedException("鎻掑叆澶辫触");
+ }
+
+ private bool DeleteItemBatch(SqlSugarScope db, List<MesItems> itemList)
+ {
+ var ids = itemList.Select(it => it.Id).ToArray();
+ var deleteByIds = db.Deleteable<MesItems>()
+ .Where(s => ids.Contains(s.Id)).ExecuteCommand();
+ if (deleteByIds > 0)
+ return true;
+
+ throw new NotImplementedException("鍒犻櫎澶辫触");
+ }
+
+ private bool InsertOrUpdate(SqlSugarScope db, MesItems entity)
+ {
+ db.Deleteable<MesItems>().Where(s => s.Id == entity.Id)
+ .ExecuteCommand();
+
+ var insert = db.Insertable(entity).ExecuteCommand();
+ return insert > 0;
+ }
+
+ private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesItems> itemList)
+ {
+ foreach (var entity in itemList)
+ if (!InsertOrUpdate(db, entity))
+ return false;
+
+ return true;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3