/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.StockIn> GetModelFromDataTable(DataTable dt, out string msg) { try { List <DAL.StockIn> list = new List <DAL.StockIn>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("BillCode", "其他入库单号"); dataFieldNameDic.Add("BillDate", "日期"); dataFieldNameDic.Add("InCategory", "收发类别"); dataFieldNameDic.Add("Supplier", "供货单位"); dataFieldNameDic.Add("BusinessDepartmentName", "业务部门"); dataFieldNameDic.Add("Operator", "业务员姓名"); dataFieldNameDic.Add("WHName", "仓库名称"); dataFieldNameDic.Add("StoreKeeper", "库管员"); dataFieldNameDic.Add("Comment", "备注"); dataFieldNameDic.Add("TotalNumber", "合计数量"); dataFieldNameDic.Add("WareHouseKeeper", "仓管"); dataFieldNameDic.Add("Checker", "验收"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <StockIn>()); } StringBuilder errorColName = new StringBuilder(); //检查数据集中是否存在指定字段 foreach (KeyValuePair <string, string> kvp in dataFieldNameDic) { if (dt.Columns.Contains(kvp.Key) == false) { errorColName.Append(Environment.NewLine); errorColName.Append(kvp.Value); errorColName.Append("-"); errorColName.Append(kvp.Key); } } if (errorColName.Length > 0) { errorColName.Insert(0, "用友系统返回的数据集中未包含如下字段,不能进行有效解析!"); msg = errorColName.ToString(); return(new List <StockIn>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { StockIn newModel = new StockIn(); //newModel.SICode = KeyGenerator.Instance.GetStockInKey(); newModel.FromBillNo = DataCheckHelper.GetCellString(dr["BillCode"]); //日期 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["BillDate"]))) { DateTime d; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["BillDate"]), out d)) { newModel.SIDate = d; } } //收发类别 newModel.InCategory = DbCommonMethod.GetInCategory(DataCheckHelper.GetCellString(dr["InCategory"])); newModel.Supplier = DataCheckHelper.GetCellString(dr["Supplier"]); newModel.BusinessDepartmentName = DataCheckHelper.GetCellString(dr["BusinessDepartmentName"]); newModel.Operator = DataCheckHelper.GetCellString(dr["Operator"]); //仓库 newModel.WHName = DataCheckHelper.GetCellString(dr["WHName"]); newModel.WHCode = DbCommonMethod.ParsingWarehouse(newModel.WHName); if (string.IsNullOrEmpty(newModel.WHCode)) { throw new ApplicationException("单号" + newModel.FromBillNo + ",仓库不存在:" + newModel.WHName); } newModel.StoreKeeper = DataCheckHelper.GetCellString(dr["StoreKeeper"]); newModel.Comment = DataCheckHelper.GetCellString(dr["Comment"]); //合计数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalNumber"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["TotalNumber"]), out d)) { newModel.TotalNumber = d; } } //newModel = DataCheckHelper.GetCellString(dr["WareHouseKeeper"]); newModel.Checker = DataCheckHelper.GetCellString(dr["Checker"]); newModel.SIStatus = 1; //已保存 newModel.FromBillType = "23"; //21采购入库单、22调拨入库单、23其他入库单 newModel.SIType = CommonConvert.GetSIOTypeCode("其他入库单"); newModel.FromType = CommonConvert.GetFromTypeCode("源于Excel导入的入库单"); List <StockIn> existStockIn = (from r in list where r.FromBillNo == newModel.FromBillNo select r).ToList <StockIn>(); if (existStockIn == null || existStockIn.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <StockIn>());; } }
protected override void BindingOrderHeader(string fieldName, string fieldValue) { switch (fieldName) { case "入库单号": //_order.SICode = fieldValue; _order.FromBillNo = fieldValue; _order.SICode = DbCommonMethod.GetStockInCode(fieldValue); break; case "日期": if (!string.IsNullOrEmpty(fieldValue)) { DateTime dt; if (DateTime.TryParse(fieldValue, out dt)) { _order.SIDate = dt; } } break; case "供货单位": _order.Supplier = fieldValue; break; case "业务部门": _order.BusinessDepartmentName = fieldValue; break; case "业务员": _order.Operator = fieldValue; break; case "仓库": _order.WHName = fieldValue; _order.WHCode = DbCommonMethod.ParsingWarehouse(fieldValue); if (string.IsNullOrEmpty(_order.WHCode)) { throw new ApplicationException("仓库不存在:" + fieldValue); } break; case "库管员": _order.StoreKeeper = fieldValue; break; case "备注": _order.Comment = fieldValue; break; case "合计数量": if (!string.IsNullOrEmpty(fieldValue)) { double d; if (double.TryParse(fieldValue, out d)) { _order.TotalNumber = d; } } break; case "仓管": // _order.BusinessManager = fieldValue; break; case "验收": _order.Checker = fieldValue; break; case "收发类别": _order.InCategory = DbCommonMethod.GetInCategory(fieldValue); break; default: break; } }