/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.Department> GetModelFromDataTable(DataTable dt, out string msg) { List <DAL.Department> list = new List <DAL.Department>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("DepartmentCode", "部门编码"); dataFieldNameDic.Add("DepartmentName", "部门名称"); dataFieldNameDic.Add("CompanyName", "公司名称"); if (dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <Department>()); } 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 <Department>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { Department newModel = new Department(); newModel.DepartmentCode = DataCheckHelper.GetCellString(dr["DepartmentCode"]); newModel.DepartmentName = DataCheckHelper.GetCellString(dr["DepartmentName"]); newModel.Description = DataCheckHelper.GetCellString(dr["CompanyName"]); newModel.Parent = "root";//上级部门固定设置为root List <Department> existWareHouse = (from r in list where r.DepartmentName == newModel.DepartmentName select r).ToList <Department>(); if (existWareHouse == null || existWareHouse.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.WareHouse> GetModelFromDataTable(DataTable dt, out string msg) { List <DAL.WareHouse> list = new List <DAL.WareHouse>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("WHCode", "仓库编码"); dataFieldNameDic.Add("WHName", "仓库名称"); if (dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <WareHouse>()); } 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 <WareHouse>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { WareHouse newModel = new WareHouse(); newModel.WHCode = DataCheckHelper.GetCellString(dr["WHCode"]); newModel.WHName = DataCheckHelper.GetCellString(dr["WHName"]); newModel.WHType = 1; newModel.Enabled = true; List <WareHouse> existWareHouse = (from r in list where r.WHCode == newModel.WHCode select r).ToList <WareHouse>(); if (existWareHouse == null || existWareHouse.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); }
/// <summary> /// 从DataTable中获取销售订单明细实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.SalesOrderDetail> GetModelDetailFromDataTable(DataTable dt, out string msg) { try { List <DAL.SalesOrderDetail> list = new List <DAL.SalesOrderDetail>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "订单编号 "); dataFieldNameDic.Add("DetailRowNumber", "行号"); dataFieldNameDic.Add("CargoCode", "商品编码"); dataFieldNameDic.Add("CargoName", "商品名称"); dataFieldNameDic.Add("CargoModel", "规格 "); dataFieldNameDic.Add("CargoSpec", "型号"); dataFieldNameDic.Add("CargoUnits", "单位"); dataFieldNameDic.Add("NumOriginalPlan", "数量"); dataFieldNameDic.Add("Price", "单价"); dataFieldNameDic.Add("Money", "金额"); dataFieldNameDic.Add("DiscountMoney", "折扣金额"); dataFieldNameDic.Add("WHName", "发出仓库 "); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <SalesOrderDetail>()); } 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 <SalesOrderDetail>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { SalesOrderDetail newModel = new SalesOrderDetail(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); newModel.DetailRowNumber = DataCheckHelper.GetCellString(dr["DetailRowNumber"]); newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); string cargoCode = DbCommonMethod.ParsingCargoCode(newModel.CargoCode); if (string.IsNullOrEmpty(cargoCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",商品不存在:" + newModel.CargoCode); } newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.CargoModel = DataCheckHelper.GetCellString(dr["CargoModel"]); newModel.CargoSpec = DataCheckHelper.GetCellString(dr["CargoSpec"]); newModel.CargoUnits = DataCheckHelper.GetCellString(dr["CargoUnits"]); //数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["NumOriginalPlan"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["NumOriginalPlan"]), out d)) { newModel.NumOriginalPlan = d; } } //单价 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["Price"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["Price"]), out d)) { newModel.Price = d; } } //金额 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["Money"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["Money"]), out d)) { newModel.TotalMoney = d; } } //折后金额 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["DiscountMoney"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["DiscountMoney"]), out d)) { newModel.DiscountMoney = d; } } newModel.WHName = DataCheckHelper.GetCellString(dr["WHName"]); if (newModel.WHName != "") { newModel.WHCode = DbCommonMethod.ParsingWarehouse(newModel.WHName); if (newModel.WHCode == "") { throw new ApplicationException("单号" + newModel.NCOrderCode + ",仓库不存在:" + newModel.WHName); } } newModel.DetailRowStatus = 2;//初始态 newModel.OrderCode = newModel.OrderCode; newModel.NCOrderCode = newModel.NCOrderCode; List <SalesOrderDetail> existSalesOrderDetail = (from r in list where r.NCOrderCode == newModel.NCOrderCode && r.DetailRowNumber == newModel.DetailRowNumber select r).ToList <SalesOrderDetail>(); if (existSalesOrderDetail == null || existSalesOrderDetail.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <SalesOrderDetail>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.SalesOrder> GetModelFromDataTable(DataTable dt, out string msg) { try { List <DAL.SalesOrder> list = new List <DAL.SalesOrder>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "订单编号"); dataFieldNameDic.Add("BusinessType", "业务类型"); dataFieldNameDic.Add("SalesDate", "销售日期"); dataFieldNameDic.Add("SellDepartmentName", "销售部门"); dataFieldNameDic.Add("Operator", "业务员"); dataFieldNameDic.Add("ClientName", "客户名称"); dataFieldNameDic.Add("MemberCard", "会员卡号"); dataFieldNameDic.Add("DeliveryAddr", "收货地址"); dataFieldNameDic.Add("ContactPerson", "联 系 人"); dataFieldNameDic.Add("ContactPhoneNo", "联系电话"); dataFieldNameDic.Add("TotalNumber", "合计数量"); dataFieldNameDic.Add("Comment", "备注"); dataFieldNameDic.Add("LeaderSign", "领导"); dataFieldNameDic.Add("WarehouseSign", "仓库"); dataFieldNameDic.Add("AccountSign", "财务"); dataFieldNameDic.Add("BusinessSign", "业务"); dataFieldNameDic.Add("EditorSign", "制单人"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <SalesOrder>()); } 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 <SalesOrder>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { SalesOrder newModel = new SalesOrder(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); newModel.BusinessSign = DataCheckHelper.GetCellString(dr["BusinessType"]); //销售日期 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["SalesDate"]))) { DateTime salesDate; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["SalesDate"]), out salesDate)) { newModel.SalesDate = salesDate; } } newModel.SellDepartmentName = DataCheckHelper.GetCellString(dr["SellDepartmentName"]); newModel.Operator = DataCheckHelper.GetCellString(dr["Operator"]); newModel.ClientName = DataCheckHelper.GetCellString(dr["ClientName"]); newModel.MemberCard = DataCheckHelper.GetCellString(dr["MemberCard"]); newModel.DeliveryAddr = DataCheckHelper.GetCellString(dr["DeliveryAddr"]); newModel.ContactPerson = DataCheckHelper.GetCellString(dr["ContactPerson"]); newModel.ContactPhoneNo = DataCheckHelper.GetCellString(dr["ContactPhoneNo"]); //数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalNumber"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["TotalNumber"]), out d)) { newModel.TotalNumber = d; } } newModel.Comment = DataCheckHelper.GetCellString(dr["Comment"]); newModel.LeaderSign = DataCheckHelper.GetCellString(dr["LeaderSign"]); newModel.WarehouseSign = DataCheckHelper.GetCellString(dr["WarehouseSign"]); newModel.AccountSign = DataCheckHelper.GetCellString(dr["AccountSign"]); newModel.BusinessSign = DataCheckHelper.GetCellString(dr["BusinessSign"]); newModel.EditorSign = DataCheckHelper.GetCellString(dr["EditorSign"]); newModel.OrderStatus = 2; //初始态 newModel.EditStatus = 0; //无人编辑 newModel.OrderCode = newModel.NCOrderCode; List <SalesOrder> existSalesOrder = (from r in list where r.NCOrderCode == newModel.NCOrderCode select r).ToList <SalesOrder>(); if (existSalesOrder == null || existSalesOrder.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <SalesOrder>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> public List <DAL.StockPositionAndVolume> GetModelFromDataTable(DataTable dt, out string msg) { List <DAL.StockPositionAndVolume> list = new List <DAL.StockPositionAndVolume>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); /* * WHCode 仓库编码 * WHName 仓库名称 * CargoCode 商品编码 * CargoName 商品名称 * CargoSpec 规格 * CargoModel 型号 * CargoUnit 单位 * ReleaseYear 发行年份 * CargoStockCount 库存数量 * CargoProperty 存货属性 * ProjectName 项目名称 * */ dataFieldNameDic.Add("WHCode", "仓库编码"); dataFieldNameDic.Add("WHName", "仓库名称"); dataFieldNameDic.Add("CargoCode", "商品编码"); dataFieldNameDic.Add("CargoName", "商品名称"); dataFieldNameDic.Add("CargoSpec", "规格"); dataFieldNameDic.Add("CargoModel", "型号"); dataFieldNameDic.Add("CargoUnit", "单位"); dataFieldNameDic.Add("ReleaseYear", "发行年份"); dataFieldNameDic.Add("CargoStockCount", "库存数量"); dataFieldNameDic.Add("CargoProperty", "存货属性"); dataFieldNameDic.Add("ProjectName", "项目名称"); if (dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <StockPositionAndVolume>()); } 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 <StockPositionAndVolume>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { StockPositionAndVolume newModel = new StockPositionAndVolume(); newModel.WHCode = DataCheckHelper.GetCellString(dr["WHCode"]); newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.CargoSpec = DataCheckHelper.GetCellString(dr["CargoSpec"]); newModel.CargoModel = DataCheckHelper.GetCellString(dr["CargoModel"]); newModel.CargoUnits = DataCheckHelper.GetCellString(dr["CargoUnit"]); newModel.ReleaseYear = DataCheckHelper.GetCellString(dr["ReleaseYear"]); newModel.CargoStockCount = DataCheckHelper.GetCellDouble(dr["CargoStockCount"]); newModel.LastUpdateTime = DateTime.Now; //newModel.Remark = DataCheckHelper.GetCellString(dr["ProjectName"]); List <StockPositionAndVolume> existWareHouse = (from r in list where r.CargoCode == newModel.CargoCode && r.WHCode == newModel.WHCode select r).ToList <StockPositionAndVolume>(); if (existWareHouse == null || existWareHouse.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.ShiftOrder> GetModelFromDataTable(DataTable dt, out string msg) { try { List <DAL.ShiftOrder> list = new List <DAL.ShiftOrder>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "转库单编号"); dataFieldNameDic.Add("Comment", "转库单摘要"); dataFieldNameDic.Add("OrderDate", "转库单日期"); dataFieldNameDic.Add("OutWHName", "调出仓库名称"); dataFieldNameDic.Add("InWHName", "调入仓库名称"); dataFieldNameDic.Add("TotalNumber", "合计数量"); dataFieldNameDic.Add("LeaderName", "领导"); dataFieldNameDic.Add("SenderName", "发货人"); dataFieldNameDic.Add("ReceiverName", "收货人"); dataFieldNameDic.Add("BusinessManager", "业务经理"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <ShiftOrder>()); } 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 <ShiftOrder>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { ShiftOrder newModel = new ShiftOrder(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); newModel.Comment = DataCheckHelper.GetCellString(dr["Comment"]); //日期 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["OrderDate"]))) { DateTime d; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["OrderDate"]), out d)) { newModel.OrderDate = d; } } newModel.OutWHName = DataCheckHelper.GetCellString(dr["OutWHName"]); if (newModel.OutWHName != "") { newModel.OutWHCode = DbCommonMethod.ParsingWarehouse(newModel.OutWHName); if (string.IsNullOrEmpty(newModel.OutWHCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",调出仓库不存在:" + newModel.OutWHName); } } newModel.InWHName = DataCheckHelper.GetCellString(dr["InWHName"]); if (newModel.InWHName != "") { newModel.InWHCode = DbCommonMethod.ParsingWarehouse(newModel.InWHName); if (string.IsNullOrEmpty(newModel.InWHCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",调入仓库不存在:" + newModel.InWHName); } } //数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalNumber"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["TotalNumber"]), out d)) { newModel.TotalNumber = d; } } newModel.LeaderName = DataCheckHelper.GetCellString(dr["LeaderName"]); newModel.SenderName = DataCheckHelper.GetCellString(dr["SenderName"]); newModel.ReceiverName = DataCheckHelper.GetCellString(dr["ReceiverName"]); newModel.BusinessManager = DataCheckHelper.GetCellString(dr["BusinessManager"]); newModel.OrderStatus = 2; //初始态 newModel.EditStatus = 0; //无人编辑 newModel.OrderCode = newModel.NCOrderCode; List <ShiftOrder> existShiftOrder = (from r in list where r.NCOrderCode == newModel.NCOrderCode select r).ToList <ShiftOrder>(); if (existShiftOrder == null || existShiftOrder.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <ShiftOrder>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.Cargos> GetModelFromDataTable(DataTable dt, out string msg) { List <DAL.Cargos> list = new List <DAL.Cargos>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); /* * CargoCode 商品编码 * CargoName 商品名称 * CargoSpec 规格 * CargoModel 型号 * CargoUnits 计量单位 * ProduceYear 发行年份 * ProjectName 项目名称 */ dataFieldNameDic.Add("CargoCode", "商品编码"); dataFieldNameDic.Add("CargoName", "商品名称"); dataFieldNameDic.Add("CargoSpec", "规格"); dataFieldNameDic.Add("CargoModel", "型号"); dataFieldNameDic.Add("CargoUnits", "计量单位"); dataFieldNameDic.Add("ProduceYear", "发行年份"); dataFieldNameDic.Add("ProjectName", "项目名称"); if (dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <Cargos>()); } 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 <Cargos>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { Cargos newModel = new Cargos(); newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.CargoSpec = DataCheckHelper.GetCellString(dr["CargoSpec"]); newModel.CargoModel = DataCheckHelper.GetCellString(dr["CargoModel"]); newModel.CargoUnits = DataCheckHelper.GetCellString(dr["CargoUnits"]); newModel.ProduceYear = DataCheckHelper.GetCellString(dr["ProduceYear"]); newModel.Comment = DataCheckHelper.GetCellString(dr["ProjectName"]); List <Cargos> existWareHouse = (from r in list where r.CargoCode == newModel.CargoCode select r).ToList <Cargos>(); if (existWareHouse == null || existWareHouse.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); }
/// <summary> /// 从DataTable中获取采购订单明细实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.StockDetail> GetModelDetailFromDataTable(DataTable dt, out string msg, string SICode, string WHCode) { try { List <DAL.StockDetail> list = new List <DAL.StockDetail>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("BillCode", "其他入库单号"); dataFieldNameDic.Add("DetailRowNumber", "行号"); dataFieldNameDic.Add("CargoCode", "商品编码"); dataFieldNameDic.Add("CargoName", "商品名称"); dataFieldNameDic.Add("CargoSpec", "规格"); dataFieldNameDic.Add("CargoModel", "型号"); dataFieldNameDic.Add("CargoUnits", "单位"); dataFieldNameDic.Add("NumOriginalPlan", "数量"); dataFieldNameDic.Add("Remark", "备注"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <StockDetail>()); } 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 <StockDetail>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { StockDetail newModel = new StockDetail(); //newModel.BillCode= DataCheckHelper.GetCellString(dr["BillCode"]); newModel.BillRowNumber = DataCheckHelper.GetCellString(dr["DetailRowNumber"]); //商品编码 newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); string cargoCode = DbCommonMethod.ParsingCargoCode(newModel.CargoCode); if (string.IsNullOrEmpty(cargoCode)) { throw new ApplicationException("单号" + DataCheckHelper.GetCellString(dr["BillCode"]) + ",商品不存在:" + newModel.CargoCode); } newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.CargoSpec = DataCheckHelper.GetCellString(dr["CargoSpec"]); newModel.CargoModel = DataCheckHelper.GetCellString(dr["CargoModel"]); newModel.CargoUnits = DataCheckHelper.GetCellString(dr["CargoUnits"]); //数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["NumOriginalPlan"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["NumOriginalPlan"]), out d)) { newModel.NumOriginalPlan = d; } } newModel.Comment = DataCheckHelper.GetCellString(dr["Remark"]); newModel.NumCurrentPlan = newModel.NumOriginalPlan; //订单数量=应收数量,默认值 newModel.CargoStatus = 0; //手持机未完成 newModel.SICode = SICode; newModel.BillCode = newModel.SICode; newModel.BillType = CommonConvert.GetBillTypeCode("入库单"); newModel.InOutWHCode = WHCode; string bill = DataCheckHelper.GetCellString(dr["BillCode"]); List <StockDetail> existStockDetail = (from r in list where r.BillCode == bill && r.BillRowNumber == newModel.BillRowNumber select r).ToList <StockDetail>(); if (existStockDetail == null || existStockDetail.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <StockDetail>());; } }
/// <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>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.Cargos> GetModelFromDataTable(DataTable dt, out string msg) { List <DAL.Cargos> list = new List <DAL.Cargos>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); /* * CargoCode 商品编码 * CargoName 商品名称 * CargoSpec 规格 * CargoModel 型号 * PriceWholeSale 批发价 * PriceGoldCard 金卡会员价 * PriceSilverCard 银卡会员价 * PriceWhiteGoldCard 白金卡会员价 * PriceReference 参考售价 * */ dataFieldNameDic.Add("CargoCode", "商品编码"); dataFieldNameDic.Add("CargoName", "商品名称"); dataFieldNameDic.Add("PriceWholeSale", "批发价"); dataFieldNameDic.Add("PriceGoldCard", "金卡会员价"); dataFieldNameDic.Add("PriceSilverCard", "银卡会员价"); dataFieldNameDic.Add("PriceWhiteGoldCard", "白金卡会员价"); dataFieldNameDic.Add("PriceReference", "参考售价"); if (dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <Cargos>()); } 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 <Cargos>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { Cargos newModel = new Cargos(); newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.Price1 = DataCheckHelper.GetCellDecimal(dr["PriceWholeSale"]); newModel.Price2 = DataCheckHelper.GetCellDecimal(dr["PriceGoldCard"]); newModel.Price3 = DataCheckHelper.GetCellDecimal(dr["PriceSilverCard"]); newModel.Price4 = DataCheckHelper.GetCellDecimal(dr["PriceWhiteGoldCard"]); newModel.Price5 = DataCheckHelper.GetCellDecimal(dr["PriceReference"]); List <Cargos> existWareHouse = (from r in list where r.CargoCode == newModel.CargoCode select r).ToList <Cargos>(); if (existWareHouse == null || existWareHouse.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); }
/// <summary> /// 从DataTable中获取采购订单明细实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.PurchaseOrderDetail> GetModelDetailFromDataTable(DataTable dt, out string msg) { try { List <DAL.PurchaseOrderDetail> list = new List <DAL.PurchaseOrderDetail>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "NC系统订单号"); dataFieldNameDic.Add("DetailRowNumber", "行号"); dataFieldNameDic.Add("ContractNo", "合同号"); dataFieldNameDic.Add("CargoCode", "商品编码"); dataFieldNameDic.Add("CargoName", "商品名称"); dataFieldNameDic.Add("CargoModel", "商品型号"); dataFieldNameDic.Add("CargoSpec", "商品规格"); dataFieldNameDic.Add("WHName", "收货仓库"); dataFieldNameDic.Add("CargoUnits", "商品单位"); dataFieldNameDic.Add("PlanNumber", "应收数量"); dataFieldNameDic.Add("PriceOfTax", "含税单价"); dataFieldNameDic.Add("Price", "单价"); dataFieldNameDic.Add("DeductRate", "折扣"); dataFieldNameDic.Add("PriceOfNetTax", "净含税单价"); dataFieldNameDic.Add("NetPrice", "净单价"); dataFieldNameDic.Add("TotalPrice", "金额"); dataFieldNameDic.Add("TaxRate", "税率"); dataFieldNameDic.Add("TotalTax", "税额"); dataFieldNameDic.Add("TotalTaxAndPrice", "价税合计"); dataFieldNameDic.Add("PlanArrivalDate", "计划到货日期"); dataFieldNameDic.Add("CurrencyType", "币种"); dataFieldNameDic.Add("ExchangeRate", "汇率"); dataFieldNameDic.Add("ReceiveCompany", "收货公司"); dataFieldNameDic.Add("ReceiveOrg", "收货库存组织"); dataFieldNameDic.Add("ReceiveBillCompany", "收票公司"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <PurchaseOrderDetail>()); } 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 <PurchaseOrderDetail>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { PurchaseOrderDetail newModel = new PurchaseOrderDetail(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); newModel.DetailRowNumber = DataCheckHelper.GetCellString(dr["DetailRowNumber"]); newModel.ContractNo = DataCheckHelper.GetCellString(dr["ContractNo"]); //商品编码 newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); string cargoCode = DbCommonMethod.ParsingCargoCode(newModel.CargoCode); if (string.IsNullOrEmpty(cargoCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",商品不存在:" + newModel.CargoCode); } newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.CargoModel = DataCheckHelper.GetCellString(dr["CargoModel"]); newModel.CargoSpec = DataCheckHelper.GetCellString(dr["CargoSpec"]); //仓库 newModel.WHName = DataCheckHelper.GetCellString(dr["WHName"]); if (newModel.WHName != "") { newModel.WHCode = DbCommonMethod.ParsingWarehouse(newModel.WHName); if (string.IsNullOrEmpty(newModel.WHCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",仓库不存在:" + newModel.WHName); } } newModel.CargoUnits = DataCheckHelper.GetCellString(dr["CargoUnits"]); //数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["PlanNumber"]))) { Double number; if (Double.TryParse(DataCheckHelper.GetCellString(dr["PlanNumber"]), out number)) { newModel.NumOriginalPlan = number; } } //含税单价 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["PriceOfTax"]))) { decimal priceOfTax; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["PriceOfTax"]), out priceOfTax)) { newModel.PriceOfTax = priceOfTax; } } //单价 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["Price"]))) { decimal price; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["Price"]), out price)) { newModel.Price = price; } } //折扣率 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["DeductRate"]))) { double deductRate; if (double.TryParse(DataCheckHelper.GetCellString(dr["DeductRate"]), out deductRate)) { newModel.DeductRate = deductRate; } } //净含税单价 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["PriceOfNetTax"]))) { decimal priceOfNetTax; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["PriceOfNetTax"]), out priceOfNetTax)) { newModel.PriceOfNetTax = priceOfNetTax; } } //净单价 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["NetPrice"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["NetPrice"]), out d)) { newModel.NetPrice = d; } } //金额 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalPrice"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["TotalPrice"]), out d)) { newModel.TotalPrice = d; } } //税率 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TaxRate"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["TaxRate"]), out d)) { newModel.TaxRate = d; } } //税额 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalTax"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["TotalTax"]), out d)) { newModel.TotalTax = d; } } //价税合计 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalTaxAndPrice"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["TotalTaxAndPrice"]), out d)) { newModel.TotalTaxAndPrice = d; } } //计划到货日期 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["PlanArrivalDate"]))) { DateTime d; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["PlanArrivalDate"]), out d)) { newModel.PlanArrivalDate = d; } } newModel.CurrencyType = DataCheckHelper.GetCellString(dr["CurrencyType"]); //折本汇率 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["ExchangeRate"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["ExchangeRate"]), out d)) { newModel.ExchangeRate = d; } } newModel.ReceiveCompany = DataCheckHelper.GetCellString(dr["ReceiveCompany"]); newModel.ReceiveOrg = DataCheckHelper.GetCellString(dr["ReceiveOrg"]); newModel.ReceiveBillCompany = DataCheckHelper.GetCellString(dr["ReceiveBillCompany"]); newModel.DetailRowStatus = 2;//初始态 newModel.OrderCode = newModel.OrderCode; newModel.NCOrderCode = newModel.NCOrderCode; List <PurchaseOrderDetail> existPurchaseOrderDetail = (from r in list where r.NCOrderCode == newModel.NCOrderCode && r.DetailRowNumber == newModel.DetailRowNumber select r).ToList <PurchaseOrderDetail>(); if (existPurchaseOrderDetail == null || existPurchaseOrderDetail.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <PurchaseOrderDetail>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.PurchaseOrder> GetModelFromDataTable(DataTable dt, out string msg) { try { List <DAL.PurchaseOrder> list = new List <DAL.PurchaseOrder>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "NC系统订单号"); dataFieldNameDic.Add("OrderDate", "订单日期"); dataFieldNameDic.Add("CompanyName", "公司名称"); dataFieldNameDic.Add("Version", "版本号"); dataFieldNameDic.Add("BusinessType", "业务类型"); dataFieldNameDic.Add("Purchaser", "采购组织"); dataFieldNameDic.Add("Buyer", "采购员"); dataFieldNameDic.Add("Supplier", "供应商"); dataFieldNameDic.Add("SupplierAddr", "供应商收货地址"); dataFieldNameDic.Add("Receiver", "收货方"); dataFieldNameDic.Add("CurrencyType", "币种"); dataFieldNameDic.Add("ReceiptCompany", "发票方"); dataFieldNameDic.Add("DepartmentName", "部门名称"); dataFieldNameDic.Add("Preparer", "制单人"); dataFieldNameDic.Add("PrepareTime", "制单时间"); dataFieldNameDic.Add("Approver", "审批人"); dataFieldNameDic.Add("ApproveTime", "审批时间"); dataFieldNameDic.Add("LastEditTime", "最后修改时间"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <PurchaseOrder>()); } 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 <PurchaseOrder>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { PurchaseOrder newModel = new PurchaseOrder(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); //订单日期 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["OrderDate"]))) { DateTime datetime; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["OrderDate"]), out datetime)) { newModel.OrderDate = datetime; } } newModel.Company = DataCheckHelper.GetCellString(dr["CompanyName"]); newModel.Version = DataCheckHelper.GetCellString(dr["Version"]); newModel.BusinessType = DataCheckHelper.GetCellString(dr["BusinessType"]); newModel.Purchaser = DataCheckHelper.GetCellString(dr["Purchaser"]); newModel.Buyer = DataCheckHelper.GetCellString(dr["Buyer"]); newModel.Supplier = DataCheckHelper.GetCellString(dr["Supplier"]); newModel.SupplierAddr = DataCheckHelper.GetCellString(dr["SupplierAddr"]); newModel.Receiver = DataCheckHelper.GetCellString(dr["Receiver"]); newModel.CurrencyType = DataCheckHelper.GetCellString(dr["CurrencyType"]); newModel.ReceiptCompany = DataCheckHelper.GetCellString(dr["ReceiptCompany"]); newModel.DepartmentName = DataCheckHelper.GetCellString(dr["DepartmentName"]); newModel.Preparer = DataCheckHelper.GetCellString(dr["Preparer"]); //制单时间 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["PrepareTime"]))) { DateTime prepareTime; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["PrepareTime"]), out prepareTime)) { newModel.PrepareTime = prepareTime; } } newModel.Approver = DataCheckHelper.GetCellString(dr["Approver"]); //审批时间 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["ApproveTime"]))) { DateTime approveTime; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["ApproveTime"]), out approveTime)) { newModel.ApproveTime = approveTime; } } //最后修改时间 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["LastEditTime"]))) { DateTime lastEditTime; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["LastEditTime"]), out lastEditTime)) { newModel.LastEditTime = lastEditTime; } } newModel.OrderStatus = 2; //初始态 newModel.EditStatus = 0; //无人编辑 newModel.OrderCode = newModel.NCOrderCode; List <PurchaseOrder> existPurchaseOrder = (from r in list where r.NCOrderCode == newModel.NCOrderCode select r).ToList <PurchaseOrder>(); if (existPurchaseOrder == null || existPurchaseOrder.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <PurchaseOrder>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.Users> GetModelFromDataTable(DataTable dt, out string msg) { List <DAL.Users> list = new List <DAL.Users>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("UserID", "用户账号"); dataFieldNameDic.Add("UserName", "用户姓名"); dataFieldNameDic.Add("DepartmentNo", "用户所属部门编码"); dataFieldNameDic.Add("DepartmentName", "用户所属部门名称"); dataFieldNameDic.Add("CompanyNo", "用户所属公司编码"); dataFieldNameDic.Add("CompanyName", "用户所属公司名称"); if (dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <Users>()); } 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 <Users>());; } #region 检查用户数据中的部门信息是否已经在RFID系统中存在 List <string> RFIDExistDeptList = null; //RFID系统中存在的所有部门信息 int FirstDefaultPositionID = 0; //RFID系统中存在的所有职位信息 using (GoldEntities context = new GoldEntities()) { RFIDExistDeptList = (from r in context.Department select r.DepartmentCode).ToList <string>(); FirstDefaultPositionID = (from r in context.Position select r.PositionId).FirstOrDefault <int>(); } StringBuilder strNotExistDeptName = new StringBuilder(); ////检查部门信息是否完整 foreach (DataRow dr in dt.Rows) { string DepartmentCode = DataCheckHelper.GetCellString(dr["DepartmentNo"]); string DepartmentName = DataCheckHelper.GetCellString(dr["DepartmentName"]); if (RFIDExistDeptList.Contains(DepartmentCode) == false) { if (strNotExistDeptName.Length > 0) { strNotExistDeptName.Append(","); } string join = DepartmentCode + "-" + DepartmentName; if (strNotExistDeptName.ToString().Contains(join) == false) { strNotExistDeptName.Append(join); } } } if (strNotExistDeptName.Length > 0) { msg = "请先导入用友系统的部门信息,然后导入用户信息!RFID系统中缺少的部门信息如下:" + strNotExistDeptName.ToString(); return(null); } #endregion #region 检查RFID系统中是否有“普通用户”角色 string[] rolesArray = Roles.GetAllRoles(); if (rolesArray.Contains("普通用户") == false) { msg = "导入用户信息需要“普通用户”角色,但RFID系统内暂无“普通用户”角色,请联系管理员进行“普通用户”角色新增后再执行用户信息导入操作!"; return(null); } #endregion //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { Users newModel = new Users(); newModel.UserId = DataCheckHelper.GetCellString(dr["UserID"]); newModel.UserName = DataCheckHelper.GetCellString(dr["UserName"]); newModel.DepartmentCode = DataCheckHelper.GetCellString(dr["DepartmentNo"]); newModel.PositionId = FirstDefaultPositionID;//使用默认的岗位编码 newModel.Enabled = true; List <Users> existWareHouse = (from r in list where r.UserId == newModel.UserId select r).ToList <Users>(); if (existWareHouse == null || existWareHouse.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.StockOut> GetModelFromDataTable(DataTable dt, out string msg) { try { List <DAL.StockOut> list = new List <DAL.StockOut>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("BillCode", "其他出库单号"); dataFieldNameDic.Add("BillDate", "日期"); dataFieldNameDic.Add("OutCategory", "收发类别"); dataFieldNameDic.Add("OutWHName", "发出仓库"); dataFieldNameDic.Add("Comment", "备注"); dataFieldNameDic.Add("TotalNumber", "合计数量"); dataFieldNameDic.Add("LeaderSign", "领导"); dataFieldNameDic.Add("WareHouseKeeper", "仓管"); dataFieldNameDic.Add("AccountSign", "财务"); dataFieldNameDic.Add("BusinessSign", "经办人"); dataFieldNameDic.Add("EditorSign", "制单人"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <StockOut>()); } 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 <StockOut>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { StockOut newModel = new StockOut(); //newModel.SOCode = KeyGenerator.Instance.GetStockOutKey(); 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.SODate = d; } } //收发类别 newModel.OutCategory = DbCommonMethod.GetOutCategory(DataCheckHelper.GetCellString(dr["OutCategory"])); newModel.WHName = DataCheckHelper.GetCellString(dr["OutWHName"]); newModel.WHCode = DbCommonMethod.ParsingWarehouse(newModel.WHName); if (string.IsNullOrEmpty(newModel.WHCode)) { throw new ApplicationException("单号" + newModel.FromBillNo + ",仓库不存在:" + newModel.WHName); } newModel.Comment = DataCheckHelper.GetCellString(dr["Comment"]); //合计数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["TotalNumber"]))) { decimal d; if (decimal.TryParse(DataCheckHelper.GetCellString(dr["TotalNumber"]), out d)) { newModel.TotalMoney = d; } } newModel.LeaderSign = DataCheckHelper.GetCellString(dr["LeaderSign"]); newModel.WarehouseSign = DataCheckHelper.GetCellString(dr["WareHouseKeeper"]); newModel.AccountSign = DataCheckHelper.GetCellString(dr["AccountSign"]); newModel.BusinessSign = DataCheckHelper.GetCellString(dr["BusinessSign"]); newModel.EditorSign = DataCheckHelper.GetCellString(dr["EditorSign"]); newModel.SOStatus = 1; //已保存 newModel.FromBillType = "13"; //11-销售出库单、12-调拨出库单、13-其他出库单 newModel.EditStatus = 0; //无人编辑 newModel.SOType = CommonConvert.GetSIOTypeCode("其他出库单"); newModel.FromType = CommonConvert.GetFromTypeCode("源于Excel导入的出库单"); List <StockOut> existStockOut = (from r in list where r.FromBillNo == newModel.FromBillNo select r).ToList <StockOut>(); if (existStockOut == null || existStockOut.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <StockOut>());; } }
/// <summary> /// 从DataTable中获取采购订单明细实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.TransferOrderDetail> GetModelDetailFromDataTable(DataTable dt, out string msg) { try { List <DAL.TransferOrderDetail> list = new List <DAL.TransferOrderDetail>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "订单编号"); dataFieldNameDic.Add("DetailRowNumber", "行号"); dataFieldNameDic.Add("CargoCode", "存货编码"); dataFieldNameDic.Add("CargoName", "存货名称"); dataFieldNameDic.Add("CargoSpec", "规格"); dataFieldNameDic.Add("CargoModel", "型号"); dataFieldNameDic.Add("CargoUnits", "主计量单位"); dataFieldNameDic.Add("CargoUnitsAssist", "辅单位"); dataFieldNameDic.Add("ChangeRatio", "换算率"); dataFieldNameDic.Add("NumOriginalPlanAssist", "辅数量"); dataFieldNameDic.Add("NumOriginalPlan", "数量"); dataFieldNameDic.Add("Lot", "批次号"); dataFieldNameDic.Add("ProductDate", "生产日期"); dataFieldNameDic.Add("OutWHName", "调出仓库"); dataFieldNameDic.Add("InWHName", "调入仓库"); dataFieldNameDic.Add("OutWHNameAssist", "出货仓库"); dataFieldNameDic.Add("OutDept", "调出部门"); dataFieldNameDic.Add("OutOperator", "调出部门业务员"); dataFieldNameDic.Add("InDept", "调入部门"); dataFieldNameDic.Add("InOperator", "调入部门业务员"); dataFieldNameDic.Add("OutDeptAssist", "出货部门"); dataFieldNameDic.Add("OutOperatorAssist", "出货部门业务员姓名"); dataFieldNameDic.Add("OutArea", "调出货位"); dataFieldNameDic.Add("InArea", "调入货位"); dataFieldNameDic.Add("OutAreaAssist", "出货货位"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <TransferOrderDetail>()); } 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 <TransferOrderDetail>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { TransferOrderDetail newModel = new TransferOrderDetail(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); newModel.DetailRowNumber = DataCheckHelper.GetCellString(dr["DetailRowNumber"]); newModel.CargoCode = DataCheckHelper.GetCellString(dr["CargoCode"]); string cargoCode = DbCommonMethod.ParsingCargoCode(newModel.CargoCode); if (string.IsNullOrEmpty(cargoCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",商品不存在:" + newModel.CargoCode); } newModel.CargoName = DataCheckHelper.GetCellString(dr["CargoName"]); newModel.CargoSpec = DataCheckHelper.GetCellString(dr["CargoSpec"]); newModel.CargoModel = DataCheckHelper.GetCellString(dr["CargoModel"]); newModel.CargoUnits = DataCheckHelper.GetCellString(dr["CargoUnits"]); //newModel = DataCheckHelper.GetCellString(dr["CargoUnitsAssist"]); //newModel = DataCheckHelper.GetCellString(dr["ChangeRatio"]); //newModel = DataCheckHelper.GetCellString(dr["NumOriginalPlanAssist"]); //数量 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["NumOriginalPlan"]))) { double d; if (double.TryParse(DataCheckHelper.GetCellString(dr["NumOriginalPlan"]), out d)) { newModel.NumOriginalPlan = d; } } //newModel = DataCheckHelper.GetCellString(dr["Lot"]); //newModel = DataCheckHelper.GetCellString(dr["ProductDate"]); newModel.OutWHName = DataCheckHelper.GetCellString(dr["OutWHName"]); if (newModel.OutWHName != "") { newModel.OutWHCode = DbCommonMethod.ParsingWarehouse(newModel.OutWHName); throw new ApplicationException("单号" + newModel.NCOrderCode + ",仓库不存在:" + newModel.OutWHName); } newModel.InWHName = DataCheckHelper.GetCellString(dr["InWHName"]); if (newModel.InWHName != "") { newModel.InWHCode = DbCommonMethod.ParsingWarehouse(newModel.InWHName); throw new ApplicationException("单号" + newModel.NCOrderCode + ",仓库不存在:" + newModel.InWHName); } //newModel = DataCheckHelper.GetCellString(dr["OutWHNameAssist"]); //newModel = DataCheckHelper.GetCellString(dr["OutDept"]); //newModel = DataCheckHelper.GetCellString(dr["OutOperator"]); //newModel = DataCheckHelper.GetCellString(dr["InDept"]); //newModel = DataCheckHelper.GetCellString(dr["InOperator"]); //newModel = DataCheckHelper.GetCellString(dr["OutDeptAssist"]); //newModel = DataCheckHelper.GetCellString(dr["OutOperatorAssist"]); //newModel = DataCheckHelper.GetCellString(dr["OutArea"]); //newModel = DataCheckHelper.GetCellString(dr["InArea"]); //newModel = DataCheckHelper.GetCellString(dr["OutAreaAssist"]); newModel.DetailRowStatus = 2;//初始态 newModel.OrderCode = newModel.OrderCode; newModel.NCOrderCode = newModel.NCOrderCode; List <TransferOrderDetail> existTransferOrderDetail = (from r in list where r.NCOrderCode == newModel.NCOrderCode && r.DetailRowNumber == newModel.DetailRowNumber select r).ToList <TransferOrderDetail>(); if (existTransferOrderDetail == null || existTransferOrderDetail.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <TransferOrderDetail>());; } }
/// <summary> /// 从DataTable中获取实体列表 /// </summary> /// <param name="dt"></param> /// <param name="msg"></param> /// <returns></returns> private List <DAL.TransferOrder> GetModelFromDataTable(DataTable dt, out string msg) { try { List <DAL.TransferOrder> list = new List <DAL.TransferOrder>(); msg = ""; //接口协议文档中定义的字段 Dictionary <string, string> dataFieldNameDic = new Dictionary <string, string>(); dataFieldNameDic.Add("NCOrderCode", "订单编号"); dataFieldNameDic.Add("OrderDate", "单据日期"); dataFieldNameDic.Add("OutWHName", "调出仓库"); dataFieldNameDic.Add("OutOrganization", "调出组织"); dataFieldNameDic.Add("OutCompany", "调出公司"); dataFieldNameDic.Add("InWHName", "调入仓库"); dataFieldNameDic.Add("InOrganization", "调入组织"); dataFieldNameDic.Add("InCompany", "调入公司"); dataFieldNameDic.Add("BillType", "调拨类型"); dataFieldNameDic.Add("Comment", "备注"); dataFieldNameDic.Add("Preparer", "制单人"); dataFieldNameDic.Add("PreparerTime", "制单时间"); dataFieldNameDic.Add("Approver", "审批人"); dataFieldNameDic.Add("ApproverDate", "审批日期"); dataFieldNameDic.Add("CheckTime", "审核时间"); dataFieldNameDic.Add("LastEditor", "最后修改人"); dataFieldNameDic.Add("LastEditTime", "最后修改时间"); if (dt == null || dt.Rows.Count == 0) { msg = "用友系统返回数据集中无数据!"; return(new List <TransferOrder>()); } 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 <TransferOrder>());; } //遍历数据集创建实体 foreach (DataRow dr in dt.Rows) { TransferOrder newModel = new TransferOrder(); newModel.NCOrderCode = DataCheckHelper.GetCellString(dr["NCOrderCode"]); //订单日期 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["OrderDate"]))) { DateTime d; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["OrderDate"]), out d)) { newModel.OrderDate = d; } } newModel.OutWHName = DataCheckHelper.GetCellString(dr["OutWHName"]); if (newModel.OutWHName != "") { newModel.OutWHCode = DbCommonMethod.ParsingWarehouse(newModel.OutWHName); if (string.IsNullOrEmpty(newModel.OutWHCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",仓库不存在:" + newModel.OutWHName); } } newModel.OutOrganization = DataCheckHelper.GetCellString(dr["OutOrganization"]); newModel.OutCompany = DataCheckHelper.GetCellString(dr["OutCompany"]); newModel.InWHName = DataCheckHelper.GetCellString(dr["InWHName"]); if (newModel.InWHName != "") { newModel.InWHCode = DbCommonMethod.ParsingWarehouse(newModel.InWHName); if (string.IsNullOrEmpty(newModel.InWHCode)) { throw new ApplicationException("单号" + newModel.NCOrderCode + ",仓库不存在:" + newModel.InWHName); } } newModel.InOrganization = DataCheckHelper.GetCellString(dr["InOrganization"]); newModel.InCompany = DataCheckHelper.GetCellString(dr["InCompany"]); //newModel = DataCheckHelper.GetCellString(dr["BillType"]); //newModel = DataCheckHelper.GetCellString(dr["Comment"]); //newModel = DataCheckHelper.GetCellString(dr["Preparer"]); //newModel = DataCheckHelper.GetCellString(dr["PreparerTime"]); //newModel = DataCheckHelper.GetCellString(dr["Approver"]); //newModel = DataCheckHelper.GetCellString(dr["ApproverDate"]); //newModel = DataCheckHelper.GetCellString(dr["CheckTime"]); //newModel = DataCheckHelper.GetCellString(dr["LastEditor"]); //最后修改时间 if (!string.IsNullOrEmpty(DataCheckHelper.GetCellString(dr["LastEditTime"]))) { DateTime d; if (DateTime.TryParse(DataCheckHelper.GetCellString(dr["LastEditTime"]), out d)) { newModel.LastModifyTime = d; } } newModel.OrderStatus = 2; //初始态 newModel.EditStatus = 0; //无人编辑 newModel.OrderCode = newModel.NCOrderCode; List <TransferOrder> existTransferOrder = (from r in list where r.NCOrderCode == newModel.NCOrderCode select r).ToList <TransferOrder>(); if (existTransferOrder == null || existTransferOrder.Count == 0)//过滤重复数据 { list.Add(newModel); } } return(list); } catch (Exception ex) { msg = ex.Message; return(new List <TransferOrder>());; } }