| | |
| | | private bool UpdateData(SqlSugarScope db, MesBomMaster mesMesBom, |
| | | List<MesBomDetail1> mesMesBomDatas1, List<MesBomDetail2> mesMesBomDatas2) |
| | | { |
| | | var decimals1 = mesMesBomDatas1.Select(s => s.Erpid).ToArray(); |
| | | var decimals2 = mesMesBomDatas2.Select(s => s.Erpid).ToArray(); |
| | | var update = base.DeleteById(mesMesBom.Erpid); |
| | | var insertOrUpdate1 = db |
| | | .Deleteable<MesBomDetail1>().In(decimals1) |
| | | .ExecuteCommand() > 0; |
| | | var insertOrUpdate2 = db |
| | | .Deleteable<MesBomDetail2>().In(decimals2) |
| | | .ExecuteCommand() > 0; |
| | | |
| | | //删除相同ERPID相同BOM更新类型的单据 |
| | | var query = db.Queryable<MesBomMaster>() |
| | | .Where(s => s.Erpid == mesMesBom.Erpid); |
| | | |
| | | if (update && insertOrUpdate1 && insertOrUpdate2) return true; |
| | | throw new NotImplementedException("更新失败"); |
| | | if (mesMesBom.BomUpdateType != "1") |
| | | { |
| | | if (string.IsNullOrEmpty(mesMesBom.BomUpdateType)) |
| | | { |
| | | query = query.Where(s => string.IsNullOrEmpty(s.BomUpdateType)); |
| | | } |
| | | else |
| | | { |
| | | query = query.Where(s => s.BomUpdateType == mesMesBom.BomUpdateType); |
| | | } |
| | | |
| | | decimal? ID = query.Select(s => s.Id).First(); |
| | | |
| | | var update = base.DeleteById(ID); |
| | | |
| | | var insertOrUpdate1 = db.Deleteable<MesBomDetail1>() |
| | | .Where(s => s.Mid == ID) |
| | | .ExecuteCommand() > 0; |
| | | |
| | | var insertOrUpdate2 = true; |
| | | |
| | | if (mesMesBomDatas2.Count > 0) |
| | | { |
| | | insertOrUpdate2 = db.Deleteable<MesBomDetail2>() |
| | | .Where(s => s.Mid == ID) |
| | | .ExecuteCommand() > 0; ; |
| | | // deleted 为 true 表示有记录被删除 |
| | | } |
| | | |
| | | if (update && insertOrUpdate1 && insertOrUpdate2) return true; |
| | | throw new NotImplementedException("更新失败"); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | // 插入或更新数据的方法 |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesBomMaster mesMesBom, |
| | | List<MesBomDetail1> mesMesBomDatas1, List<MesBomDetail2> mesMesBomDatas2, string type) |
| | | { |
| | | if (mesMesBom.Erpid != null) base.DeleteById(mesMesBom.Erpid); |
| | | //相同ERPID不同BOM更新类型的单据保留 |
| | | var query = db.Queryable<MesBomMaster>() |
| | | .Where(s => s.Erpid == mesMesBom.Erpid); |
| | | |
| | | if (mesMesBomDatas1.Count > 0) |
| | | db.Deleteable<MesBomDetail1>() |
| | | .Where(s => s.Erphid == mesMesBom.Erpid).ExecuteCommand(); |
| | | if (string.IsNullOrEmpty(mesMesBom.BomUpdateType)) |
| | | { |
| | | query = query.Where(s => string.IsNullOrEmpty(s.BomUpdateType)); |
| | | } |
| | | else |
| | | { |
| | | query = query.Where(s => s.BomUpdateType == mesMesBom.BomUpdateType); |
| | | } |
| | | |
| | | if (mesMesBomDatas2.Count > 0) |
| | | db.Deleteable<MesBomDetail2>() |
| | | .Where(s => s.Erphid == mesMesBom.Erpid).ExecuteCommand(); |
| | | decimal? ID = query.Select(s => s.Id).First(); |
| | | |
| | | if (ID != null) |
| | | { |
| | | if (mesMesBom.Erpid != null) |
| | | db.Deleteable<MesBomMaster>() |
| | | .Where(s => s.Id == ID) |
| | | .ExecuteCommand(); |
| | | |
| | | if (mesMesBomDatas1.Count > 0) |
| | | db.Deleteable<MesBomDetail1>() |
| | | .Where(s => s.Mid == ID).ExecuteCommand(); |
| | | |
| | | if (mesMesBomDatas2.Count > 0) |
| | | db.Deleteable<MesBomDetail2>() |
| | | .Where(s => s.Mid == ID).ExecuteCommand(); |
| | | } |
| | | |
| | | |
| | | //var orUpdate = base.Insert(mesMesBom); |
| | | //var baOrUpdate = MesBomDetail1Manager.InsertRange(mesMesBomDatas1); |
| | | //if (orUpdate && baOrUpdate) return true; |
| | | |
| | | var update_res = UseTransaction(db => |
| | | { |
| | | |
| | | db.Insertable(mesMesBom).ExecuteCommand(); |
| | | //获取主表插入后的主键 |
| | | var insertedId = db.Insertable(mesMesBom).ExecuteReturnIdentity(); |
| | | |
| | | for (int i = 0; i < mesMesBomDatas1.Count; i++) |
| | | { |
| | | var item = mesMesBomDatas1[i]; |
| | | //item.PID = id; |
| | | item.Mid = insertedId; |
| | | db.Insertable(item).IgnoreColumns(true).ExecuteCommand(); |
| | | } |
| | | |
| | |
| | | for (int i = 0; i < mesMesBomDatas2.Count; i++) |
| | | { |
| | | var item = mesMesBomDatas2[i]; |
| | | //item.PID = id; |
| | | item.Mid = insertedId; |
| | | db.Insertable(item).IgnoreColumns(true).ExecuteCommand(); |
| | | } |
| | | |