using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using SqlSugar; namespace MES.Service.service.BasicData; public class MesItemTypeManager : Repository { //当前类已经继承了 Repository 增、删、查、改的方法 public bool Save(ErpItemType unit) { /// /// save方法调整。 /// /// /// 修改人:池南骏 /// 修改日期:2024-12-30 /// 修改说明:` /// ///原代码 //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); //} var entity = GetMesItemType(unit); return UseTransaction(db => { switch (unit.Type) { case "0": if (InsertItemType(db, entity)) return 1; break; case "1": if (DeleteItemType(entity.Id)) return 1; break; default: throw new ArgumentNullException( $"type没有{unit.Type}这个类型的参数"); } throw new NotImplementedException("操作失败"); }) > 0; } /// /// "插入或更新的方法"调整:修改为先删除再插入。 /// /// /// 修改人:池南骏 /// 修改日期:2024-12-30 /// 修改说明:` /// //// - 原代码: //private bool InsertItemType(MesItemType entity) //{ // var insert = base.Insert(entity); // if (insert) // return true; // throw new NotImplementedException("插入失败"); //} //// - 新代码: private bool InsertItemType(SqlSugarScope db, MesItemType entity) { db.Deleteable() .Where(s => s.Id == entity.Id) .ExecuteCommand(); var insert = db.Insertable(entity).ExecuteCommand(); return insert > 0; } 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, CreateDate = DateTime.Now, Company = "1000", Factory = "1000" }; } public bool SaveList(List departments) { var list = new List(); 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(); 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 itemTypeList) { /// /// InsertItemTypeBatch方法调整,先删除再插入。 /// /// /// 修改人:池南骏 /// 修改日期:2024-12-30 /// 修改说明:` /// //新增:先删除,再插入 var ids = itemTypeList.Select(it => it.Id).ToArray(); var deleteByIds = base.DeleteByIds(ids.Select(d => (dynamic)d).ToArray()); var insertRange = base.InsertRange(itemTypeList); if (insertRange) return true; throw new NotImplementedException("插入失败"); } private bool DeleteItemTypeBatch(List itemTypeList) { var ids = itemTypeList.Select(it => it.Id).ToArray(); var deleteByIds = base.DeleteByIds(ids.Select(d => (dynamic)d).ToArray()); if (deleteByIds) return true; throw new NotImplementedException("删除失败"); } }