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