Exemple #1
0
        /// <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>());;
            }
        }
Exemple #2
0
        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;
            }
        }