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/OrganizeManager.cs | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 267 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..94ad07e --- /dev/null +++ b/MES.Service/service/BasicData/OrganizeManager.cs @@ -0,0 +1,267 @@ +锘縰sing SqlSugar; +using System; +using System.Collections.Generic; +using MES.Service.DB; +using MES.Service.Modes; +using MES.Service.Dto.webApi; +using System.Xml.Linq; + +namespace MES.Service.service; + +public class OrganizeManager : Repository<Organize> +{ + //褰撳墠绫诲凡缁忕户鎵夸簡 Repository 澧炪�佸垹銆佹煡銆佹敼鐨勬柟娉� + //Mesorganization + //杩欓噷闈㈠啓鐨勪唬鐮佷笉浼氱粰瑕嗙洊,濡傛灉瑕侀噸鏂扮敓鎴愯鍒犻櫎 OrganizeManager.cs + public bool Save(ErpOrganize item) + { + var entity = GetOrganize(item); + + return UseTransaction(db => + { + switch (item.Type) + { + case "0": + if (UpdateOrganizetatus(db, entity.Id, "A")) + return 1; + break; + case "1": + if (UpdateOrganizetatus(db, entity.Id, "B")) + return 1; + break; + case "2": + if (InsertItem(db, entity)) + return 1; + break; + case "3": + if (DeleteItem(db, Convert.ToDecimal(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<ErpOrganize> Organize) + { + var list = Organize.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 itemId, + string status) + { + var result = db.Updateable<Organize>() + .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, Organize 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<Organize>().In(itemId).ExecuteCommand(); + if (deleteById > 0) + return true; + + throw new NotImplementedException("鍒犻櫎澶辫触"); + } + + private Organize GetOrganize(ErpOrganize Organize) + { + return new Organize + { + Id = Organize.Id, + Fnumber = Organize.FNumber, + Fname = Organize.FName, + Type = Organize.Type, + FDescription = Organize.FDescription, + FParentID = Organize.FParentID, + FCreateDate = Organize.FCreateDate != null + ? DateTime.ParseExact(Organize.FCreateDate, + "yyyy-MM-dd HH:mm:ss", null) + : null, + FFORBIDORID = Organize.FFORBIDORID, + FFORBIDDATE = Organize.FFORBIDDATE != null + ? DateTime.ParseExact(Organize.FFORBIDDATE, + "yyyy-MM-dd HH:mm:ss", null) + : null + }; + } + + private bool UpdateOrganizetatusBatch(SqlSugarScope db, + List<Organize> itemList, string status) + { + var ids = itemList.Select(it => it.Id).ToArray(); + var result = db.Updateable<Organize>() + .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<Organize> itemList) + { + var insertRange = db.Insertable(itemList).ExecuteCommand(); + if (insertRange > 0) + return true; + + throw new NotImplementedException("鎻掑叆澶辫触"); + } + + private bool DeleteItemBatch(SqlSugarScope db, List<Organize> itemList) + { + var ids = itemList.Select(it => it.Id).ToArray(); + var deleteByIds = db.Deleteable<Organize>().In(ids).ExecuteCommand(); + if (deleteByIds > 0) + return true; + + throw new NotImplementedException("鍒犻櫎澶辫触"); + } + + private bool InsertOrUpdate(SqlSugarScope db, Organize entity) + { + var exists = db.Queryable<Organize>().Any(e => e.Id == entity.Id); + if (exists) + { + var update = db.Updateable(entity).ExecuteCommand(); + if (update > 0) + return true; + } + else + { + var insert = db.Insertable(entity).ExecuteCommand(); + if (insert > 0) + return true; + } + + return false; + } + + private bool InsertOrUpdateBatch(SqlSugarScope db, List<Organize> itemList) + { + foreach (var entity in itemList) + if (!InsertOrUpdate(db, entity)) + return false; + + return true; + } + + #region 鏁欏鏂规硶 + + /// <summary> + /// 浠撳偍鏂规硶婊¤冻涓嶄簡澶嶆潅涓氬姟闇�姹傦紝涓氬姟浠g爜璇峰湪杩欓噷闈㈠畾涔夋柟娉� + /// </summary> + public void Study() + { + /*********鏌ヨ*********/ + + var data1 = base.GetById(1); //鏍规嵁ID鏌ヨ + var data2 = base.GetList(); //鏌ヨ鎵�鏈� + var data3 = base.GetList(it => 1 == 1); //鏍规嵁鏉′欢鏌ヨ + //var data4 = base.GetSingle(it => 1 == 1);//鏍规嵁鏉′欢鏌ヨ涓�鏉�,濡傛灉瓒呰繃涓�鏉′細鎶ラ敊 + + var p = new PageModel() { PageIndex = 1, PageSize = 2 }; // 鍒嗛〉鏌ヨ + var data5 = base.GetPageList(it => 1 == 1, p); + Console.Write(p.TotalCount); //杩斿洖鎬绘暟 + + var data6 = base.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc); // 鍒嗛〉鏌ヨ鍔犳帓搴� + Console.Write(p.TotalCount); //杩斿洖鎬绘暟 + + List<IConditionalModel> conModels = new(); //缁勮鏉′欢鏌ヨ浣滀负鏉′欢瀹炵幇 鍒嗛〉鏌ヨ鍔犳帓搴� + conModels.Add(new ConditionalModel() + { + FieldName = typeof(Organize).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, + FieldValue = "1" + }); //id=1 + var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc); + + AsQueryable().Where(x => 1 == 1).ToList(); //鏀寔浜嗚浆鎹㈡垚queryable,鎴戜滑鍙互鐢╭ueryable瀹炵幇澶嶆潅鍔熻兘 + + + /*********鎻掑叆*********/ + var insertData = new Organize() { }; //娴嬭瘯鍙傛暟 + var insertArray = new Organize[] { insertData }; + base.Insert(insertData); //鎻掑叆 + base.InsertRange(insertArray); //鎵归噺鎻掑叆 + var id = base.InsertReturnIdentity(insertData); //鎻掑叆杩斿洖鑷鍒� + AsInsertable(insertData).ExecuteCommand(); //鎴戜滑鍙互杞垚 Insertable瀹炵幇澶嶆潅鎻掑叆 + + + /*********鏇存柊*********/ + var updateData = new Organize() { }; //娴嬭瘯鍙傛暟 + var updateArray = new Organize[] { updateData }; //娴嬭瘯鍙傛暟 + base.Update(updateData); //鏍规嵁瀹炰綋鏇存柊 + base.UpdateRange(updateArray); //鎵归噺鏇存柊 + //base.Update(it => new Organize() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// 鍙洿鏂癈lassName鍒楀拰CreateTime鍒楋紝鍏跺畠鍒椾笉鏇存柊锛屾潯浠秈d=1 + AsUpdateable(updateData).ExecuteCommand(); //杞垚Updateable鍙互瀹炵幇澶嶆潅鐨勬彃鍏� + + + /*********鍒犻櫎*********/ + var deldata = new Organize() { }; //娴嬭瘯鍙傛暟 + base.Delete(deldata); //鏍规嵁瀹炰綋鍒犻櫎 + base.DeleteById(1); //鏍规嵁涓婚敭鍒犻櫎 + base.DeleteById(new int[] { 1, 2 }); //鏍规嵁涓婚敭鏁扮粍鍒犻櫎 + base.Delete(it => 1 == 2); //鏍规嵁鏉′欢鍒犻櫎 + AsDeleteable().Where(it => 1 == 2).ExecuteCommand(); //杞垚Deleteable瀹炵幇澶嶆潅鐨勬搷浣� + } + + #endregion +} \ No newline at end of file -- Gitblit v1.9.3