using AngleSharp.Dom; using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using SqlSugar; namespace MES.Service.service.BasicData; public class MesDeliveryNoteBarcodeManager : Repository { //private readonly MesDeliveryNoteBarcodeManager mesDeliveryNoteBarcode = new(); public bool Save(ErpBarcode barcode) { var mesDeliveryNoteBarcode = GetMesDeliveryNoteBarcode(barcode); return UseTransaction(db => { switch (barcode.Type) { case "2": case "4": case "5": return SaveOrUpdateData(db, mesDeliveryNoteBarcode) ? 1 : 0; case "3": case "6": return DeleteData(db, mesDeliveryNoteBarcode) ? 1: 0; default: throw new ArgumentNullException($"type没有{barcode.Type}这个类型的参数"); } throw new NotImplementedException("操作失败"); }) > 0; } // 更新数据的方法 private bool DeleteData(SqlSugarScope db, MesDeliveryNoteBarcode mesDeliveryNoteBarcode) { var detect = base.DeleteById(mesDeliveryNoteBarcode.Id); if (detect) return true; throw new NotImplementedException("更新失败"); } // 删除数据的方法 private bool DeleteBarcode(SqlSugarScope db, DelBarcode barcode) { var del = db.Deleteable().Where(s => s.SmallBarcode == barcode.SmallBarcode).ExecuteCommand() > 0; if (del) { return true; } throw new NotImplementedException("删除失败"); } public dynamic Delete(DelBarcode barcode) { return UseTransaction(db => { return DeleteBarcode(db, barcode) ? 1 : 0; }) > 0; } public dynamic DeleteList(List barcode) { var result = barcode.Select(Delete).ToList(); return result.All(b => b); } // 插入或更新数据的方法 private bool SaveOrUpdateData(SqlSugarScope db, MesDeliveryNoteBarcode mesDeliveryNoteBarcode) { if (mesDeliveryNoteBarcode.Id != null) base.DeleteById(mesDeliveryNoteBarcode.Id); var orUpdate = base.Insert(mesDeliveryNoteBarcode); if (orUpdate) return true; throw new NotImplementedException("插入或更新失败"); } // 批量保存记录的方法 public bool SaveList(List barcodes) { var result = barcodes.Select(Save).ToList(); return result.All(b => b); } public MesDeliveryNoteBarcode GetMesDeliveryNoteBarcode(ErpBarcode barcode) { var mesDeliveryNoteBarcode = new MesDeliveryNoteBarcode(); var single = base.GetSingle(it => it.SmallBarcode == barcode.SmallBarcode); if (single != null) mesDeliveryNoteBarcode.Id = single.Id; mesDeliveryNoteBarcode.DeliveryNo = barcode.DeliveryNo; mesDeliveryNoteBarcode.ProductCode = barcode.ProductCode; mesDeliveryNoteBarcode.SmallBarcode= barcode.SmallBarcode; mesDeliveryNoteBarcode.IncludeQty= Convert.ToDecimal(barcode.IncludeQty); mesDeliveryNoteBarcode.LineNo=Convert.ToDecimal(barcode.LineNo); mesDeliveryNoteBarcode.CreateDate = DateTime.Now; mesDeliveryNoteBarcode.SuppNo = barcode.SupplierId; return mesDeliveryNoteBarcode; } }