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 InsertData(SqlSugarScope db, MesDeliveryNoteBarcode mesDeliveryNoteBarcode) { if (mesDeliveryNoteBarcode.Id != null) base.DeleteById(mesDeliveryNoteBarcode.Id); var insert = base.Insert(mesDeliveryNoteBarcode); if (insert) return true; throw new NotImplementedException("插入失败"); } // 更新数据的方法 private bool DeleteData(SqlSugarScope db, MesDeliveryNoteBarcode mesDeliveryNoteBarcode) { var detect = base.DeleteById(mesDeliveryNoteBarcode.Id); if (detect) return true; throw new NotImplementedException("更新失败"); } // 插入或更新数据的方法 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); /* var list = barcodes.Select(GetMesDeliveryNoteBarcode).ToList(); var groupBy = list.GroupBy(s => s.Type) .ToDictionary(g => g.Key, g => g.ToList()); return UseTransaction(db => { foreach (var barcodeGroup in groupBy) switch (barcodeGroup.Key) { case "1": if (!UpdateItemStatusBatch(db, barcodeGroup.Value, "B")) throw new NotImplementedException("禁用失败"); break; case "2": if (!InsertItemBatch(db, barcodeGroup.Value)) throw new NotImplementedException("插入失败"); break; default: throw new ArgumentNullException( $"type没有{barcodeGroup.Key}这个类型的参数"); } return 1; }) > 0; */ } /* private bool InsertItemBatch(SqlSugarScope db, List barcodeList) { var insertRange = db.Insertable(barcodeList).ExecuteCommand(); if (insertRange > 0) return true; throw new NotImplementedException("插入失败"); } private bool DeleteItemBatch(SqlSugarScope db, List barcodeList) { var ids = barcodeList.Select(it => it.Id).ToArray(); var deleteByIds = db.Deleteable().In(ids).ExecuteCommand(); if (deleteByIds > 0) return true; throw new NotImplementedException("删除失败"); } */ 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; } }