public virtual WMS_PartModel GetById(object id) { if (IsExists(id)) { WMS_Part entity = m_Rep.GetById(id); WMS_PartModel model = new WMS_PartModel(); model.Id = entity.Id; model.PartCode = entity.PartCode; model.PartName = entity.PartName; model.PartType = entity.PartType; model.CustomerCode = entity.CustomerCode; model.LogisticsCode = entity.LogisticsCode; model.OtherCode = entity.OtherCode; model.PCS = entity.PCS; model.StoreMan = entity.StoreMan; model.Status = entity.Status; model.CreatePerson = entity.CreatePerson; model.CreateTime = entity.CreateTime; model.ModifyPerson = entity.ModifyPerson; model.ModifyTime = entity.ModifyTime; model.Unit = entity.Unit; model.Volume = entity.Volume; model.Remark = entity.Remark; model.SafeStock = entity.SafeStock; model.BelongSupplier = entity.BelongSupplier; model.BelongCustomer = entity.BelongCustomer; return(model); } else { return(null); } }
public virtual bool Edit(ref ValidationErrors errors, WMS_PartModel model) { try { WMS_Part entity = m_Rep.GetById(model.Id); if (entity == null) { errors.Add(Resource.Disable); return(false); } entity.Id = model.Id; entity.PartCode = model.PartCode; entity.PartName = model.PartName; entity.PartType = model.PartType; entity.CustomerCode = model.CustomerCode; entity.LogisticsCode = model.LogisticsCode; entity.OtherCode = model.OtherCode; entity.PCS = model.PCS; entity.StoreMan = model.StoreMan; entity.Status = model.Status; entity.CreatePerson = model.CreatePerson; entity.CreateTime = model.CreateTime; entity.ModifyPerson = model.ModifyPerson; entity.ModifyTime = model.ModifyTime; entity.Unit = model.Unit; entity.Volume = model.Volume; entity.Remark = model.Remark; entity.SafeStock = model.SafeStock; entity.BelongCustomer = model.BelongCustomer; entity.BelongSupplier = model.BelongSupplier; if (m_Rep.Edit(entity)) { return(true); } else { errors.Add(Resource.NoDataChange); return(false); } } catch (Exception ex) { errors.Add(ex.Message); ExceptionHander.WriteException(ex); return(false); } }
public virtual bool Create(ref ValidationErrors errors, WMS_PartModel model) { try { WMS_Part entity = m_Rep.GetById(model.Id); if (entity != null) { errors.Add(Resource.PrimaryRepeat); return(false); } entity = new WMS_Part(); entity.Id = model.Id; entity.PartCode = model.PartCode; entity.PartName = model.PartName; entity.PartType = model.PartType; entity.CustomerCode = model.CustomerCode; entity.LogisticsCode = model.LogisticsCode; entity.OtherCode = model.OtherCode; entity.PCS = model.PCS; entity.StoreMan = model.StoreMan; entity.Status = model.Status; entity.CreatePerson = model.CreatePerson; entity.CreateTime = model.CreateTime; entity.ModifyPerson = model.ModifyPerson; entity.ModifyTime = model.ModifyTime; entity.Unit = model.Unit; entity.Volume = model.Volume; entity.Remark = model.Remark; if (m_Rep.Create(entity)) { return(true); } else { errors.Add(Resource.InsertFail); return(false); } } catch (Exception ex) { errors.Add(ex.Message); ExceptionHander.WriteException(ex); return(false); } }
/// <summary> /// 保存数据 /// </summary> public virtual void SaveImportData(IEnumerable <WMS_PartModel> list) { try { using (DBContainer db = new DBContainer()) { foreach (var model in list) { WMS_Part entity = new WMS_Part(); entity.Id = 0; entity.PartCode = model.PartCode; entity.PartName = model.PartName; entity.PartType = model.PartType; entity.CustomerCode = model.CustomerCode; entity.LogisticsCode = model.LogisticsCode; entity.OtherCode = model.OtherCode; entity.PCS = model.PCS; entity.StoreMan = model.StoreMan; entity.Status = model.Status; entity.CreatePerson = model.CreatePerson; entity.CreateTime = ResultHelper.NowTime; entity.ModifyPerson = model.ModifyPerson; entity.ModifyTime = model.ModifyTime; entity.Unit = model.Unit; entity.Volume = model.Volume; entity.Remark = model.Remark; db.WMS_Part.Add(entity); } db.SaveChanges(); } } catch (Exception ex) { throw; } }
public bool ImportStoreMan(string oper, string filePath, ref ValidationErrors errors) { bool rtn = true; var targetFile = new FileInfo(filePath); if (!targetFile.Exists) { errors.Add("导入的数据文件不存在"); return(false); } var excelFile = new ExcelQueryFactory(filePath); using (XLWorkbook wb = new XLWorkbook(filePath)) { //第一个Sheet using (IXLWorksheet wws = wb.Worksheets.First()) { //对应列头 excelFile.AddMapping <WMS_PartModel>(x => x.PartCode, "物料编码(必输)"); excelFile.AddMapping <WMS_PartModel>(x => x.StoreMan, "保管员(必输)"); //SheetName,第一个Sheet var excelContent = excelFile.Worksheet <WMS_PartModel>(0); //开启事务 using (DBContainer db = new DBContainer()) { var tran = db.Database.BeginTransaction(); //开启事务 int rowIndex = 0; //检查数据正确性 foreach (var row in excelContent) { rowIndex += 1; string errorMessage = String.Empty; var model = new WMS_PartModel(); model.Id = row.Id; if (row.PartCode != null) { model.PartCode = row.PartCode.Replace(" ", ""); } if (row.StoreMan != null) { model.StoreMan = row.StoreMan.Replace(" ", ""); } if (!String.IsNullOrEmpty(errorMessage)) { rtn = false; errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>")); wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage; continue; } //执行额外的数据校验 try { AdditionalCheckStoreMan(db, ref model); } catch (Exception ex) { rtn = false; errorMessage = ex.Message; errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>")); wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage; continue; } //写入数据库 WMS_Part entity = m_Rep.GetById(model.Id); entity.Id = model.Id; //entity.PartCode = model.PartCode; entity.StoreMan = model.StoreMan; entity.ModifyPerson = oper; entity.ModifyTime = DateTime.Now; m_Rep.Edit(entity); //db.WMS_Part.Add(entity); try { db.SaveChanges(); } catch (Exception ex) { rtn = false; //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作) db.Entry(entity).State = System.Data.Entity.EntityState.Detached; errorMessage = ex.InnerException.InnerException.Message; errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>")); wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage; } } if (rtn) { tran.Commit(); //必须调用Commit(),不然数据不会保存 } else { tran.Rollback(); //出错就回滚 } } } wb.Save(); } return(rtn); }
public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors) { bool rtn = true; var targetFile = new FileInfo(filePath); if (!targetFile.Exists) { errors.Add("导入的数据文件不存在"); return(false); } var excelFile = new ExcelQueryFactory(filePath); using (XLWorkbook wb = new XLWorkbook(filePath)) { //第一个Sheet using (IXLWorksheet wws = wb.Worksheets.First()) { //对应列头 excelFile.AddMapping <WMS_PartModel>(x => x.PartCode, "物料编码(必输)"); excelFile.AddMapping <WMS_PartModel>(x => x.PartName, "物料名称(必输)"); excelFile.AddMapping <WMS_PartModel>(x => x.PartType, "物料类型(必输)"); excelFile.AddMapping <WMS_PartModel>(x => x.CustomerCode, "主机厂编码"); excelFile.AddMapping <WMS_PartModel>(x => x.LogisticsCode, "物流号"); excelFile.AddMapping <WMS_PartModel>(x => x.OtherCode, "额外信息编码"); excelFile.AddMapping <WMS_PartModel>(x => x.PCS, "每箱数量"); excelFile.AddMapping <WMS_PartModel>(x => x.StoreMan, "保管员(必输)"); excelFile.AddMapping <WMS_PartModel>(x => x.Unit, "单位"); excelFile.AddMapping <WMS_PartModel>(x => x.Volume, "每箱体积"); excelFile.AddMapping <WMS_PartModel>(x => x.BelongSupplier, "所属供应商"); excelFile.AddMapping <WMS_PartModel>(x => x.BelongCustomer, "所属客户"); excelFile.AddMapping <WMS_PartModel>(x => x.Remark, "说明"); //SheetName,第一个Sheet var excelContent = excelFile.Worksheet <WMS_PartModel>(0); //开启事务 using (DBContainer db = new DBContainer()) { var tran = db.Database.BeginTransaction(); //开启事务 int rowIndex = 0; //检查数据正确性 foreach (var row in excelContent) { rowIndex += 1; string errorMessage = String.Empty; var model = new WMS_PartModel(); model.Id = row.Id; if (row.PartCode != null) { model.PartCode = row.PartCode.Replace(" ", ""); } if (row.PartName != null) { model.PartName = row.PartName.Replace(" ", ""); } if (row.PartType != null) { model.PartType = row.PartType.Replace(" ", ""); } if (row.CustomerCode != null) { model.CustomerCode = row.CustomerCode.Replace(" ", "").Replace(";", ";"); } //model.PartName = row.PartName.Replace(" ", ""); //model.PartType = row.PartType.Replace(" ", ""); //model.CustomerCode = row.CustomerCode.Replace(" ", "").Replace(";",";"); model.LogisticsCode = row.LogisticsCode; model.OtherCode = row.OtherCode; model.PCS = row.PCS; model.StoreMan = row.StoreMan.Replace(" ", ""); model.Unit = row.Unit; model.Volume = row.Volume; model.Remark = row.Remark; if (row.BelongCustomer != null) { model.BelongCustomer = row.BelongCustomer.Replace(" ", "").Replace(";", ";"); } if (row.BelongSupplier != null) { model.BelongSupplier = row.BelongSupplier.Replace(" ", "").Replace(";", ";"); } //model.BelongCustomer = row.BelongCustomer.Replace(" ", "").Replace(";", ";"); //model.BelongSupplier = row.BelongSupplier.Replace(" ", "").Replace(";", ";"); //model.CreatePerson = row.oper; //model.CreateTime = row.CreateTime; //model.ModifyPerson = row.oper; //model.ModifyTime = row.ModifyTime; if (!String.IsNullOrEmpty(errorMessage)) { rtn = false; errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>")); wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage; continue; } //执行额外的数据校验 try { AdditionalCheckExcelData(db, ref model); } catch (Exception ex) { rtn = false; errorMessage = ex.Message; errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>")); wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage; continue; } //写入数据库 WMS_Part entity = new WMS_Part(); entity.Id = model.Id; entity.PartCode = model.PartCode; entity.PartName = model.PartName; entity.PartType = model.PartType; entity.CustomerCode = ";" + model.CustomerCode + ";"; entity.LogisticsCode = model.LogisticsCode; entity.OtherCode = model.OtherCode; entity.PCS = model.PCS; entity.StoreMan = model.StoreMan; entity.Status = "有效"; entity.CreatePerson = oper; entity.CreateTime = DateTime.Now; entity.ModifyPerson = oper; entity.ModifyTime = DateTime.Now; entity.Unit = model.Unit; entity.Volume = model.Volume; entity.Remark = model.Remark; if (model.BelongCustomer != null) { entity.BelongCustomer = ";" + model.BelongCustomer + ";"; } if (model.BelongSupplier != null) { entity.BelongSupplier = ";" + model.BelongSupplier + ";"; } db.WMS_Part.Add(entity); try { db.SaveChanges(); } catch (Exception ex) { rtn = false; //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作) db.Entry(entity).State = System.Data.Entity.EntityState.Detached; errorMessage = ex.InnerException.InnerException.Message; errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>")); wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage; } } if (rtn) { tran.Commit(); //必须调用Commit(),不然数据不会保存 } else { tran.Rollback(); //出错就回滚 } } } wb.Save(); } return(rtn); }