Exemple #1
0
        public OpResult SaveOrUpdate(SysDataDictionary model)
        {
            var obj = DictionaryRepository.GetQuery(o => o.DicPSN == model.DicPSN && o.Title == model.Title && o.Id != model.Id).FirstOrDefault();

            if (obj != null)
            {
                model.DicSN = obj.DicSN;
                return(OpResult.Fail("已存在该名称!"));
            }
            if (model.Id == 0)
            {
                model.DicSN     = MaxSN() + 1;
                model.Status    = true;
                model.CreateDT  = DateTime.Now;
                model.CreateUID = CurrentUser.UID;
                DictionaryRepository.Add(model);
            }
            else
            {
                var source = DictionaryRepository.Get(model.Id);
                model.ToCopyProperty(source, new List <string>()
                {
                    "CreateDT", "CreateUID", ""
                });
                DictionaryRepository.SaveChanges();
            }
            return(OpResult.Success("数据保存成功"));
        }
Exemple #2
0
        public ActionResult AddDictTitle(string title, int psn)
        {
            var re = new OperateResult()
            {
                Successed = true
            };
            var obj    = new SysDataDictionary();
            var source = _sysDictionaryRepository.GetItemByTitle(title);

            if (source != null)
            {
                re.Message = source.DicSN.ToString();
            }
            else
            {
                obj.Title  = title;
                obj.Status = true;
                obj.DicSN  = _sysDictionaryRepository.GetMaxDicSn;
                obj.DicPSN = psn;
                re         = _sysDictionaryRepository.SaveModel(obj);
                if (re.Successed)
                {
                    re.Message = obj.DicSN.ToString();
                }
            }
            return(Content(re.ToJson()));
        }
 /// <summary>
 /// 获取有效-起始日期、有效-终止日期
 /// </summary>
 /// <returns></returns>
 public string getStartEndDT(int DicSN, int id)
 {
     if (DicSN != 0)
     {
         SysDataDictionary data       = agentsInfoService.getData(DicSN);
         AgentsInfo        agentsInfo = new AgentsInfo();
         if (id > 0)
         {
             agentsInfo = agentsInfoService.GetOne(id);
         }
         if (data != null)
         {
             int      year       = Convert.ToInt32(data.Title.Replace("年", ""));
             string   StartEndDT = "";
             DateTime dtNow      = DateTime.Now;
             if (!agentsInfo.StartTime.IsNullOrEmpty())
             {
                 dtNow = Convert.ToDateTime(agentsInfo.StartTime);
             }
             StartEndDT = dtNow.ToString("yyyy-MM-dd");
             StartEndDT = StartEndDT + "|" + dtNow.AddYears(year).AddDays(1).ToString("yyyy-MM-dd");
             return(StartEndDT);
         }
         else
         {
             return("");
         }
     }
     else
     {
         return("");
     }
 }
Exemple #4
0
        static void Main(string[] args)
        {
            List <VwProduct> odata = new List <VwProduct>();

            for (int i = 0; i < 10; i++)
            {
                VwProduct _odata = new VwProduct()
                {
                    Barcode     = "0100000001" + i,
                    ProductCode = "000016" + i,
                    SubUnitId   = 117,
                    Title       = "商品" + i,
                    SysPrice    = 250 + i,
                };
                odata.Add(_odata);
            }
            List <SysDataDictionary> sdatas = new List <SysDataDictionary>();
            SysDataDictionary        sdata  = new SysDataDictionary()
            {
                DicSN = 117,
                Title = "KG",
            };

            sdatas.Add(sdata);
            JHScaleService service = new JHScaleService();
            var            datas   = service.DataFormat(odata, sdatas);
            List <string>  ips     = new List <string>()
            {
                "192.168.10.234"
            };
            var    _result = service.TransferData(datas, ips, true);
            string re      = _result.Successed + " " + _result.Message;

            Console.WriteLine(re);
        }
Exemple #5
0
        public ActionResult AddDict(SysDataDictionary model)
        {
            var re = new OperateResult()
            {
                Successed = true
            };
            var result = _sysDictionaryRepository.SaveModel(model);

            return(Content(result.ToJson()));
        }
Exemple #6
0
        public OpResult MoveItem(int mode, int sn)
        {
            var obj  = DictionaryRepository.Find(o => o.DicSN == sn);
            var list = DictionaryRepository.GetQuery(o => o.DicPSN == obj.DicPSN).OrderBy(o => o.SortOrder).ToList();

            switch (mode)
            {
            case 2:    //下移
                var obj1 = list.LastOrDefault();
                if (obj.Id != obj1.Id)
                {
                    SysDataDictionary next = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            next = list[i + 1]; break;
                        }
                    }
                    if (next != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = next.SortOrder;
                        next.SortOrder = sort;
                        DictionaryRepository.SaveChanges();
                    }
                }
                break;

            default:
                var obj2 = list.FirstOrDefault();
                if (obj.Id != obj2.Id)
                {
                    SysDataDictionary prev = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            prev = list[i - 1]; break;
                        }
                    }
                    if (prev != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = prev.SortOrder;
                        prev.SortOrder = sort;
                        DictionaryRepository.SaveChanges();
                    }
                }
                break;
            }
            return(OpResult.Success("顺序移动成功"));
        }
Exemple #7
0
        /// <summary>
        /// 保存数据字典
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public object SaveModel(SysDataDictionary model)
        {
            var result = OpResult.Fail("数据保存失败!");

            try
            {
                model.CompanyId = Sys.SysCommonRules.CompanyId;
                if (_dal.ExistsTitle(model.DicSN, model.DicPSN, model.Title, model.CompanyId))
                {
                    result = OpResult.Fail("数据字典名称不能重复!");
                }
                else
                {
                    if (_dal.ExistsById(model.Id))
                    {
                        var re = _dal.Update(model);
                        if (re)
                        {
                            result = OpResult.Success("数据保存成功");
                        }
                    }
                    else
                    {
                        var maxObjId = _dal.MaxVal("DicSN", SysCommonRules.CompanyId);
                        model.DicSN = maxObjId + 1;
                        var sortOrder = GetItemList(model.DicPSN);
                        if (sortOrder != null)
                        {
                            model.SortOrder = sortOrder.Max(o => (int?)o.SortOrder).GetValueOrDefault() + 1;
                        }
                        var re = _dal.Insert(model);
                        if (re > 0)
                        {
                            model.Id = re;
                            var logMsg = LogEngine.CompareModelToLog <SysDataDictionary>(Pharos.Sys.LogModule.数据字典, model);
                            logEngine.WriteInsert(logMsg, Pharos.Sys.LogModule.数据字典);
                            result = OpResult.Success("数据保存成功");
                        }
                    }
                    var stores = string.Join(",", new DBHelper().DataTableText("select storeid from Warehouse where state=1", null).AsEnumerable().Select(o => o["storeid"].ToString()));
                    Pharos.Infrastructure.Data.Redis.RedisManager.Publish("SyncDatabase", new Pharos.ObjectModels.DTOs.DatabaseChanged()
                    {
                        CompanyId = Sys.SysCommonRules.CompanyId, StoreId = stores, Target = "SysDataDictionary"
                    });
                }
            }
            catch (Exception ex)
            {
                result = OpResult.Fail("数据保存失败!" + ex.Message);
            }
            return(result);
        }
Exemple #8
0
 /// <summary>
 /// 商品数量及单位信息
 /// </summary>
 /// <param name="number"></param>
 /// <param name="unit"></param>
 /// <param name="isWeightUnit"></param>
 public ProductNumber(decimal number, SysDataDictionary unit, bool isWeightUnit)
 {
     UnitNumber = number;
     Unit       = unit;
     IsWeight   = isWeightUnit;
     if (isWeightUnit)
     {
         CountNumber = 1;
     }
     else
     {
         CountNumber = number;
     }
 }
        /// <summary>
        /// 添加/编辑用户
        /// </summary>
        /// <param name="userDto"></param>
        /// <returns></returns>
        public string AddorEditDict(SysDataDictionary model)
        {
            var resModel  = new ResponseModel();
            var userLogin = injection.GetT <Data.UserAccount>().GetUserInfo();
            var mModel    = injection.GetT <ISysDataDictionaryBLL>().AddorEditDict(model, userLogin.UserId);

            resModel.StateCode = mModel.Result ? StatesCode.success : StatesCode.failure;
            resModel.Messages  = mModel.Message;
            resModel.JsonData  = mModel.Data;
            if (mModel.Result)
            {
                _cacheContext.Remove("SysName");
            }
            return(JsonHelper.ObjectToJson(resModel));
        }
Exemple #10
0
        /// <summary>
        /// 驳回商户信息申请
        /// </summary>
        /// <param name="ids"></param>
        /// <param name="reason"></param>
        /// <param name="specific"></param>
        /// <returns></returns>
        public OpResult Overrule(string ids, int reason, string specific)
        {
            SysDataDictionary data = dataRepository.GetQuery(o => o.DicSN == reason).FirstOrDefault();
            var      idss          = ids.Split(',').Select(o => int.Parse(o));
            OpResult op            = UpListByWhere(o => idss.Contains(o.Id), o => o.State = (short)TraderPayLicenseState.Reject);

            if (op.Successed)
            {
                var listLog = GetListByWhere(o => idss.Contains(o.Id));
                foreach (var v in listLog)
                {
                    ApproveLog approveLog = new ApproveLog();
                    approveLog.ModuleNum     = Convert.ToInt16(ApproveLogNum.支付许可);
                    approveLog.ItemId        = v.LicenseId;
                    approveLog.CreateTime    = DateTime.Now;
                    approveLog.OperationType = Convert.ToInt16(ApproveLogType.驳回);
                    approveLog.OperatorUID   = CurrentUser.UID;
                    approveLog.Description   = "被驳回:" + data.Title + "," + specific;
                    //审核日志
                    approveLogService.InsertUpdate(approveLog, 0);
                }
            }
            return(op);
        }
 /// <summary>
 /// 获取有效-起始日期、有效-终止日期
 /// </summary>
 /// <returns></returns>
 public string getStartEndDT(int DicSN)
 {
     if (DicSN != 0)
     {
         SysDataDictionary data = agentsInfoService.getData(DicSN);
         if (data != null)
         {
             int      year       = Convert.ToInt32(data.Title.Replace("年", ""));
             string   StartEndDT = "";
             DateTime dtNow      = DateTime.Now;
             StartEndDT = dtNow.ToString("yyyy-MM-dd");
             StartEndDT = StartEndDT + "|" + dtNow.AddYears(year).AddDays(1).ToString("yyyy-MM-dd");
             return(StartEndDT);
         }
         else
         {
             return("");
         }
     }
     else
     {
         return("");
     }
 }
        public bool AddProduct(List <VwProduct> products)
        {
            var maxdicsn   = DictionaryService.MaxSN();
            var brandClass = DictionaryService.GetChildList(5);

            foreach (var product in products)
            {
                if (!product.Barcode.IsNullOrEmpty() && !product.CategoryTitle.IsNullOrEmpty())
                {
                    var source = ProductRepository.Find(o => o.Barcode == product.Barcode);
                    if (source != null && !("," + source.CompanyIds + ",").Contains("," + product.CompanyIds + ","))
                    {
                        source.CompanyIds += "," + product.CompanyIds;
                        ProductRepository.SaveChanges();
                        continue;
                    }
                    var categorys = product.CategoryTitle.Split('/');
                    var first     = categorys[0];
                    if (first.IndexOf(']') != -1)
                    {
                        first = first.Substring(first.IndexOf(']') + 1);
                    }

                    if (!product.BrandTitle.IsNullOrEmpty() && !product.BrandClassTitle.IsNullOrEmpty())
                    {
                        var brandCls = brandClass.FirstOrDefault(o => o.Title == product.BrandClassTitle);
                        if (brandCls == null)
                        {
                            brandCls = new SysDataDictionary()
                            {
                                DicPSN    = 5,
                                Status    = true,
                                Title     = product.BrandClassTitle,
                                DicSN     = maxdicsn++,
                                CreateDT  = DateTime.Now,
                                CreateUID = CurrentUser.UID
                            };
                            DictionaryService.SaveOrUpdate(brandCls);
                            brandClass.Add(brandCls);
                        }
                        var brand = new ProductBrand()
                        {
                            Source = int.Parse(product.CompanyIds), Title = product.BrandTitle, ClassifyId = brandCls.DicSN
                        };
                        var op = BrandService.SaveOrUpdate(brand);
                        product.BrandSN = brand.BrandSN;
                    }
                    if (!product.SubUnit.IsNullOrEmpty())
                    {
                        var dict = new SysDataDictionary()
                        {
                            DicPSN = 4, Title = product.SubUnit
                        };
                        var op = DictionaryService.SaveOrUpdate(dict);
                        product.SubUnitId = dict.DicSN;
                    }
                    int   psn = 0;
                    short g   = 1;
                    foreach (var cate in categorys)
                    {
                        if (cate.IsNullOrEmpty())
                        {
                            continue;
                        }
                        var ct = cate;
                        if (ct.IndexOf(']') != -1)
                        {
                            ct = ct.Substring(ct.IndexOf(']') + 1);
                        }
                        var category = new ProductCategory()
                        {
                            CategoryPSN  = psn,
                            CategoryCode = ProductCategoryService.MaxCode(psn),
                            Source       = 2,
                            Grade        = g,
                            Title        = ct
                        };
                        var op = ProductCategoryService.SaveOrUpdate(category);
                        psn = category.CategorySN;
                        g++;
                    }
                    product.CategorySN = psn;
                    product.CreateDT   = DateTime.Now;
                    product.State      = 1;
                    product.Source     = 2;
                    var pro = new ProductRecord();
                    product.ToCopyProperty(pro);
                    ProductRepository.Add(pro);
                }
            }
            return(true);
        }
Exemple #13
0
 public ActionResult Save(SysDataDictionary obj)
 {
     return(new OpActionResult(DictService.Save(obj)));
 }
 public ChildDictionaryModel(SysDataDictionary entity)
     : base(entity)
 {
 }
 public DataDictionaryModel(SysDataDictionary dict)
 {
     CurrentDict = dict;
 }
Exemple #16
0
        public OpResult Import(ImportSet obj, System.Web.HttpFileCollectionBase httpFiles, string fieldName, string columnName)
        {
            var op    = new OpResult();
            var errLs = new List <string>();
            int count = 0;

            try
            {
                Dictionary <string, char> fieldCols = null;
                DataTable dt = null;
                op = ImportSetService.ImportSet(obj, httpFiles, fieldName, columnName, ref fieldCols, ref dt);
                if (!op.Successed)
                {
                    return(op);
                }
                var brandClass = DataDictRepository.GetQuery(o => o.DicPSN == 5).ToList();
                var otherClass = brandClass.FirstOrDefault(o => o.Title.StartsWith("其"));
                var brands     = GetList();
                var clsIdx     = Convert.ToInt32(fieldCols["ClassifyId"]) - 65;
                var titleIdx   = Convert.ToInt32(fieldCols["Title"]) - 65;
                count = dt.Rows.Count;
                var max = DataDictRepository.GetQuery().Max(o => o.DicSN);
                for (int i = dt.Rows.Count - 1; i >= 0; i--)
                {
                    try
                    {
                        var dr   = dt.Rows[i];
                        var text = dr[clsIdx].ToString();
                        if (text.IsNullOrEmpty())
                        {
                            continue;
                        }
                        var cls = brandClass.FirstOrDefault(o => o.Title == text);
                        if (cls != null)
                        {
                            dr[clsIdx] = cls.DicSN.ToString();
                        }
                        else
                        {
                            if (obj.RefCreate)
                            {
                                var data = new SysDataDictionary
                                {
                                    DicPSN    = 5,
                                    Status    = true,
                                    Title     = text,
                                    DicSN     = max++,
                                    CreateDT  = DateTime.Now,
                                    CreateUID = CurrentUser.UID
                                };
                                DataDictRepository.Add(data);
                                brandClass.Add(data);
                                dr[clsIdx] = data.DicSN.ToString();
                            }
                            else if (otherClass != null)
                            {
                                dr[clsIdx] = otherClass.DicSN.ToString();
                            }
                            else
                            {
                                errLs.Add("行业分类[" + text + "]不存在!");
                                dt.Rows.RemoveAt(i);//去除不导入
                                continue;
                            }
                        }
                        text = dr[titleIdx].ToString().Trim();
                        if (brands.Any(o => o.Title == text))
                        {
                            errLs.Add("品牌名称[" + text + "]已存在!");
                            dt.Rows.RemoveAt(i);//去除不导入
                        }
                        else
                        {
                            brands.Add(new ProductBrand()
                            {
                                Title = text
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        throw new Exception("品牌分类处理失败!", e);
                    }
                }
                var           maxsn = BrandRepository.GetQuery().Max(o => (int?)o.BrandSN).GetValueOrDefault();
                StringBuilder sb    = new StringBuilder();
                sb.Append("begin tran ");
                foreach (DataRow dr in dt.Rows)
                {
                    sb.Append("insert into ");
                    sb.Append(obj.TableName);
                    sb.Append("(BrandSN,State,Source,");
                    sb.Append(string.Join(",", fieldCols.Keys));
                    sb.Append(") values(");
                    sb.AppendFormat("{0},", ++maxsn);
                    sb.AppendFormat("1,0,");
                    foreach (var de in fieldCols)
                    {
                        var index = Convert.ToInt32(de.Value) - 65;
                        try
                        {
                            var text = dr[index].ToString();
                            sb.Append("'" + text + "',");
                        }
                        catch (Exception e)
                        {
                            throw new Exception("列选择超过范围!", e);
                        }
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append(");");
                }
                sb.Append(" commit tran");
                if (dt.Rows.Count > 0)
                {
                    op.Successed = new DBHelper().ExecuteNonQueryText(sb.ToString(), null) > 0;
                    LogEngine.WriteInsert("品牌导入", LogModule.档案管理);
                }
            }
            catch (Exception ex)
            {
                op.Message   = ex.Message;
                op.Successed = false;
                LogEngine.WriteError(ex);
                errLs.Add("导入出现异常!");
            }
            return(CommonService.GenerateImportHtml(errLs, count));
        }
        public OpResult Import(ImportSet obj, System.Web.HttpFileCollectionBase httpFiles, string fieldName, string columnName)
        {
            var op    = new OpResult();
            var errLs = new List <string>();
            int count = 0;

            try
            {
                Dictionary <string, char> fieldCols = null;
                DataTable dt = null;
                op = ImportSetService.ImportSet(obj, httpFiles, fieldName, columnName, ref fieldCols, ref dt);
                if (!op.Successed)
                {
                    return(op);
                }
                var categorys       = ProductCategoryService.GetList();
                var otherClass      = categorys.FirstOrDefault(o => o.Title.StartsWith("其"));
                var brands          = BrandService.GetList();
                var otherBrand      = brands.FirstOrDefault(o => o.Title.StartsWith("其"));
                var brandClass      = DictionaryService.GetChildList(5);
                var otherBrandClass = brandClass.FirstOrDefault(o => o.Title.StartsWith("其"));//?
                var units           = DictionaryService.GetSubUnitCategories();
                var otherUnit       = units.FirstOrDefault(o => o.Title.StartsWith("其"));
                var products        = GetList();
                var maxCate         = ProductCategoryService.MaxSN() + 1;
                var maxBrand        = BrandService.MaxSN() + 1;
                var maxDict         = DictionaryService.MaxSN() + 1;

                var clsIdx   = Convert.ToInt32(fieldCols["CategorySN"]) - 65;
                var brandIdx = Convert.ToInt32(fieldCols["BrandSN"]) - 65;
                var unitIdx  = Convert.ToInt32(fieldCols["SubUnitId"]) - 65;
                var titleIdx = Convert.ToInt32(fieldCols["Barcode"]) - 65;
                count = dt.Rows.Count;
                for (int i = dt.Rows.Count - 1; i >= 0; i--)
                {
                    try
                    {
                        var dr = dt.Rows[i];
                        #region 条码验证
                        var text = dr[titleIdx].ToString();
                        if (text.IsNullOrEmpty())
                        {
                            errLs.Add("行号[" + i + "]条码为空!");
                            dt.Rows.RemoveAt(i);
                            continue;
                        }
                        else if (products.Any(o => o.Barcode == text))
                        {
                            errLs.Add("条码[" + text + "]已存在!");
                            dt.Rows.RemoveAt(i);
                            continue;
                        }
                        else
                        {
                            products.Add(new ProductRecord()
                            {
                                Barcode = text
                            });
                        }
                        #endregion
                        #region 处理类别
                        text = dr[clsIdx].ToString();
                        if (!text.IsNullOrEmpty() && text.Contains("/"))
                        {
                            var cates  = text.Split('/');
                            var first  = cates.FirstOrDefault();
                            var third  = cates.LastOrDefault();
                            var second = "";
                            if (cates.Length == 3)
                            {
                                second = cates[1];
                                third  = cates[2];
                            }
                            else if (cates.Length == 2)
                            {
                                second = cates[1];
                                third  = null;
                            }
                            else if (cates.Length > 3)
                            {
                                second = cates[1];
                                third  = text.Replace(first + "/" + second + "/", "");
                            }
                            var parent = categorys.FirstOrDefault(o => o.Title == first);

                            var cls = parent != null?categorys.FirstOrDefault(o => o.CategoryPSN == parent.CategorySN && o.Title == second) : null;

                            cls = cls != null && !third.IsNullOrEmpty() ? categorys.FirstOrDefault(o => o.CategoryPSN == cls.CategorySN && o.Title == third) : cls;
                            if (cls != null)
                            {
                                dr[clsIdx] = cls.CategorySN.ToString();
                            }
                            else
                            {
                                if (obj.RefCreate)
                                {
                                    var list = new List <ProductCategory>();
                                    cls = categorys.FirstOrDefault(o => o.Title == first);
                                    int   psn   = 0;
                                    short grade = 2;
                                    if (cls == null)
                                    {
                                        parent = new ProductCategory()
                                        {
                                            CategorySN   = maxCate,
                                            Title        = first,
                                            CategoryCode = 1,
                                            Grade        = 1,
                                            State        = 1,
                                        };
                                        list.Add(parent);
                                        psn = parent.CategorySN;
                                        var child = new ProductCategory()
                                        {
                                            CategoryPSN  = psn,
                                            CategorySN   = ++maxCate,
                                            Title        = second,
                                            CategoryCode = 1,
                                            Grade        = grade,
                                            State        = 1,
                                        };
                                        list.Add(child);
                                        psn   = child.CategorySN;
                                        grade = 3;
                                        if (!third.IsNullOrEmpty())
                                        {
                                            child = new ProductCategory()
                                            {
                                                CategoryPSN  = psn,
                                                CategorySN   = ++maxCate,
                                                Title        = third,
                                                CategoryCode = 1,
                                                Grade        = grade,
                                                State        = 1,
                                            };
                                            psn = child.CategorySN;
                                            list.Add(child);
                                        }
                                    }
                                    else
                                    {
                                        psn = cls.CategorySN;
                                        cls = categorys.FirstOrDefault(o => o.Title == second);
                                        if (cls == null)
                                        {
                                            var maxcode = ProductCategoryService.MaxCode(psn);
                                            var child   = new ProductCategory()
                                            {
                                                CategoryPSN  = psn,
                                                CategorySN   = ++maxCate,
                                                Title        = second,
                                                CategoryCode = ++maxcode,
                                                Grade        = grade,
                                                State        = 1
                                            };
                                            list.Add(child);
                                            psn   = child.CategorySN;
                                            grade = 3;
                                        }
                                        else
                                        {
                                            psn = cls.CategorySN;
                                        }
                                        if (!third.IsNullOrEmpty())
                                        {
                                            cls = categorys.FirstOrDefault(o => o.Title == third);
                                            if (cls == null)
                                            {
                                                var maxcode = ProductCategoryService.MaxCode(psn);
                                                var child   = new ProductCategory()
                                                {
                                                    CategoryPSN  = psn,
                                                    CategorySN   = ++maxCate,
                                                    Title        = third,
                                                    CategoryCode = ++maxcode,
                                                    Grade        = grade,
                                                    State        = 1
                                                };
                                                list.Add(child);
                                                psn = child.CategorySN;
                                            }
                                            else
                                            {
                                                psn = cls.CategorySN;
                                            }
                                        }
                                    }
                                    ProductCategoryService.AddRange(list);
                                    categorys.AddRange(list);
                                    dr[clsIdx] = psn.ToString();
                                }
                                else if (otherClass != null)
                                {
                                    dr[clsIdx] = otherClass.CategorySN.ToString();
                                }
                                else
                                {
                                    errLs.Add("条码[" + dr[titleIdx] + "]类别不存在!");
                                    dt.Rows.RemoveAt(i);//去除不导入
                                    continue;
                                }
                            }
                        }
                        else
                        {
                            errLs.Add("条码[" + dr[titleIdx] + "]类别不存在!");
                            dt.Rows.RemoveAt(i);//去除不导入
                            continue;
                        }
                        #endregion
                        #region 处理品牌
                        text = dr[brandIdx].ToString();
                        if (!text.IsNullOrEmpty())
                        {
                            var cls = brands.FirstOrDefault(o => o.Title == text);
                            if (cls != null)
                            {
                                dr[brandIdx] = cls.BrandSN.ToString();
                            }
                            else
                            {
                                if (obj.RefCreate)
                                {
                                    if (otherBrandClass == null)
                                    {
                                        errLs.Add("条码[" + dr[titleIdx] + "]品牌分类不存在!");
                                        dt.Rows.RemoveAt(i);
                                        continue;
                                    }
                                    var data = new ProductBrand()
                                    {
                                        //BrandSN = maxBrand++,
                                        Title      = text,
                                        ClassifyId = otherBrandClass.DicSN,
                                        JianPin    = "",
                                        State      = 1
                                    };
                                    BrandService.SaveOrUpdate(data);
                                    brands.Add(data);
                                    dr[brandIdx] = data.BrandSN.ToString();
                                }
                                else if (otherBrand != null)
                                {
                                    dr[brandIdx] = otherBrand.BrandSN.ToString();
                                }
                                else
                                {
                                    errLs.Add("条码[" + dr[titleIdx] + "]品牌不存在!");
                                    dt.Rows.RemoveAt(i);
                                    continue;
                                }
                            }
                        }
                        #endregion
                        #region 处理单位
                        text = dr[unitIdx].ToString();
                        if (!text.IsNullOrEmpty())
                        {
                            var cls = units.FirstOrDefault(o => o.Title == text);
                            if (cls != null)
                            {
                                dr[unitIdx] = cls.DicSN.ToString();
                            }
                            else
                            {
                                if (obj.RefCreate)
                                {
                                    var data = new SysDataDictionary()
                                    {
                                        DicPSN = 4,
                                        //DicSN = maxDict++,
                                        Status = true,
                                        Title  = text,
                                    };
                                    DictionaryService.SaveOrUpdate(data);
                                    units.Add(data);
                                    dr[unitIdx] = data.DicSN.ToString();
                                }
                                else if (otherUnit != null)
                                {
                                    dr[unitIdx] = otherUnit.DicSN.ToString();
                                }
                                else
                                {
                                    errLs.Add("条码[" + dr[titleIdx] + "]单位不存在!");
                                    dt.Rows.RemoveAt(i);
                                    continue;
                                }
                            }
                        }
                        #endregion
                    }
                    catch (Exception e)
                    {
                        throw new Exception("创建相关记录失败," + e.Message, e);
                    }
                }
                StringBuilder sb = new StringBuilder();
                sb.Append("begin tran ");
                foreach (DataRow dr in dt.Rows)
                {
                    sb.Append("insert into ");
                    sb.Append(obj.TableName);
                    sb.Append("(State,");
                    sb.Append(string.Join(",", fieldCols.Keys));
                    sb.Append(") values(1,");
                    foreach (var de in fieldCols)
                    {
                        var index = Convert.ToInt32(de.Value) - 65;
                        try
                        {
                            var text = dr[index].ToString().Trim();
                            sb.Append("'" + text + "',");
                        }
                        catch (Exception e)
                        {
                            throw new Exception("列选择超过范围!", e);
                        }
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append(");");
                }
                sb.Append(" commit tran");
                if (dt.Rows.Count > 0)
                {
                    new DBFramework.DBHelper().ExecuteNonQueryText(sb.ToString(), null);
                }
            }
            catch (Exception ex)
            {
                op.Message   = ex.Message;
                op.Successed = false;
                LogEngine.WriteError(ex);
                errLs.Add("导入出现异常!");
            }
            return(CommonService.GenerateImportHtml(errLs, count));
        }
Exemple #18
0
        public ActionResult Save(SysDataDictionary model)
        {
            var result = DictionaryService.SaveOrUpdate(model);

            return(new OpActionResult(result));
        }