using Model.InterFaceModel; using SqlSugar; using System; using System.Collections.Generic; using System.Text; using WMS.DAL; using WMS.Entity.BllAsnEntity; using WMS.Entity.Context; using WMS.IBLL.IBllTransServer; namespace WMS.BLL.BllTransServer { public class NoticeServer : DbHelper, INoticeServer { private static readonly SqlSugarScope Db = DataContext.Db; public NoticeServer() : base(Db) { } public ErpModel CreateAsn(AsnInfo model) { try { var resultModel = new ErpModel() { Success = -1, Message = "" }; if (string.IsNullOrEmpty(model.OrderCode)) { resultModel.Message = "上游系统单号不可为空!"; return resultModel; } if (model.AsnDetails.Count <= 0) { resultModel.Message = "入库单明细不可为空!"; return resultModel; } // 入库总表信息 string asnNo = new Common().GetMaxNo("ASN"); var asnModel = new BllArrivalNotice() { ASNNo = asnNo, Status = "0",//等待执行 Type = "0",//原料入库 Origin = string.IsNullOrEmpty(model.Origin) ? "MES" : model.Origin, CustomerNo = model.Customer, CustomerName = "", OrderCode = model.OrderCode, }; // 入库明细表信息 List detailModels = new List(); foreach (AsnDetail asnDetailModel in model.AsnDetails) { if (string.IsNullOrEmpty(asnDetailModel.SkuNo)) { resultModel.Message = "物料编码不可为空!"; return resultModel; } if (string.IsNullOrEmpty(asnDetailModel.SkuName)) { resultModel.Message = "物料名称不可为空!"; return resultModel; } if (asnDetailModel.Qty <= 0) { resultModel.Message = "数量应大于0!"; return resultModel; } if (string.IsNullOrEmpty(asnDetailModel.LotNo)) { resultModel.Message = "批次号不可为空!"; return resultModel; } var detailModel = new BllArrivalNoticeDetail() { ASNNo = asnNo, OrderDetailCode = asnDetailModel.OrderDetailCode, SkuNo = asnDetailModel.SkuNo, SkuName = asnDetailModel.SkuName, LotNo = asnDetailModel.LotNo, LotText = "", Qty = (decimal)asnDetailModel.Qty, FactQty = 0, CompleteQty = 0, SupplierLot = asnDetailModel.SupplierLot, Status = "0", IsSampling = "0", InspectStatus = "0", CreateUser = 0 }; detailModels.Add(detailModel); } Db.BeginTran(); // 插入入库单总表 Db.Insertable(asnModel).ExecuteCommand(); // 插入入库单明细表 Db.Insertable(detailModels).ExecuteCommand(); Db.CommitTran(); resultModel.Success = 0; resultModel.Message = "成功"; return resultModel; } catch (Exception ex) { Db.RollbackTran(); throw ex; } } } }