Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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>());;
            }
        }
Ejemplo n.º 4
0
        /// <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>());;
            }
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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>());;
            }
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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>());;
            }
        }
Ejemplo n.º 9
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>());;
            }
        }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
        /// <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>());;
            }
        }
Ejemplo n.º 12
0
        /// <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>());;
            }
        }
Ejemplo n.º 13
0
        /// <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);
        }
Ejemplo n.º 14
0
        /// <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>());;
            }
        }
Ejemplo n.º 15
0
        /// <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>());;
            }
        }
Ejemplo n.º 16
0
        /// <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>());;
            }
        }