public override bool Import() { string s = Sr.ReadToEnd().Replace(kunkaojin, ""); TemplateHelper tmph = new TemplateHelper(""); string[] arys = regRowSplit.Split(s); List<ShowBase> sbs = new List<ShowBase>(); List<STPa> pas = new List<STPa>(); List<STIV> ivs = new List<STIV>(); List<STIpc> ipcs = new List<STIpc>(); List<STPR> prs = new List<STPR>(); List<STDT> dts = new List<STDT>(); List<STDc> dcs = new List<STDc>(); List<STPNS> pns = new List<STPNS>(); List<STAnS> ans = new List<STAnS>(); int count = arys.Length - 1; SetMaxProcess(this, count); Thimport = new Thread(() => { //第一行为空 for (int i = 1; i <= count; i++) { string tmp = regspace.Replace(regcharRNT.Replace(arys[i], ""), " "); tmp = MarkReplece.Replace(tmp, "【$1】").Trim(); MatchCollection mhs = rowRege.Matches(tmp); ShowBase sb = new ShowBase(); sb.ZTID = ZTId; sb.ImportDate = DateTime.Now; foreach (Match m in mhs) { string colname = m.Groups["colname"].Value.Trim(); string val = m.Groups["colval"].Value.Trim().Trim('\t'); string mappingcolname = tmph.getMappingColumnName(colname); switch (mappingcolname) { case "AN": sb.SiD = val; break; case "AP": sb.An = val; break; case "TI": sb.Title = val; break; case "ICAI": case "ICCI": if (sb.Ipc == null) { sb.Ipc = val; } else { sb.Ipc += ";" + val; } break; case "PA": sb.Pa = val; break; case "CPY": sb.CPY = val; break; case "OPD": sb.OpD = val; break; case "AB": sb.ABs = val; break; case "IN": sb.IV = val; break; case "PN": sb.PN = val; break; case "PR": sb.PR = val; break; case "PD": sb.PD = val; break; case "DC": sb.Dc = val; break; case "DMC": sb.DMc = val; break; case "DS": break; case "YZ": break; case "BY": break; case "CPC": sb.CPc = val; break; case "": break; default: break; } } if (CheckExist(sb.SiD)) { if (Skip) { Skip_sum++; continue; } else { DelExist(sb.ZTID.ToString(), sb.SiD.ToString()); Overwrite_sum++; } } else { Sids.Add(sb.SiD, true); } sbs.Add(sb); List<STPa> pa = new List<STPa>(); List<STIV> iv = new List<STIV>(); List<STIpc> ipc = new List<STIpc>(); List<STPR> pr = new List<STPR>(); List<STAnS> an = new List<STAnS>(); List<STPNS> pn = new List<STPNS>(); List<STDc> dc = new List<STDc>(); dts.Add(WPIIndex.AutoIndex(sb, out pa, out iv, out ipc, out pr, out pn, out an, out dc)); pas.AddRange(pa); ivs.AddRange(iv); ipcs.AddRange(ipc); prs.AddRange(pr); pns.AddRange(pn); ans.AddRange(an); dcs.AddRange(dc); if (i % 100 == 0) { //Thread.Sleep(1000); //todo:标引 //todo:标引信息入库 //todo:基本信息入库 //BulkInsert(sbs); BulkInsert(sbs, pas, ivs, ipcs, prs, dts, pns, ans, dcs); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); pns.Clear(); ans.Clear(); dcs.Clear(); ShowProcess(this, i, Skip_sum, Overwrite_sum, "导入"); } } if (sbs.Count > 0) { BulkInsert(sbs, pas, ivs, ipcs, prs, dts, pns, ans, dcs); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); pns.Clear(); ans.Clear(); dcs.Clear(); } ShowProcess(this, count, Skip_sum, Overwrite_sum, "导入完毕"); Sr.Close(); Sr.Dispose(); }); Thimport.Start(); return true; }
public override bool Import() { string s = Sr.ReadToEnd(); TemplateHelper tmph = new TemplateHelper(""); string[] arys = regRowSplit.Split(s); List<DAL.ShowBase> sbs = new List<DAL.ShowBase>(); List<DAL.STPa> pas = new List<DAL.STPa>(); List<DAL.STIV> ivs = new List<DAL.STIV>(); List<DAL.STIpc> ipcs = new List<DAL.STIpc>(); List<DAL.STPR> prs = new List<DAL.STPR>(); List<DAL.STDT> dts = new List<DAL.STDT>(); List<DAL.STQY> qys = new List<DAL.STQY>(); int count = arys.Length - 1; SetMaxProcess(this, count); Thimport = new Thread(() => { //第一行为空 for (int i = 1; i <= arys.Length - 1; i++) { string tmp = regspace.Replace(regcharRNT.Replace(arys[i].Trim(), ""), ""); foreach (string x in otherstring) { tmp = tmp.Replace(x, ""); } tmp = RemoveZaoZi(tmp); MatchCollection mhs = rowRege.Matches(tmp); ShowBase sb = new ShowBase(); sb.ZTID = ZTId; sb.ImportDate = DateTime.Now; foreach (Match m in mhs) { string colname = m.Groups["colname"].Value; string val = m.Groups["colval"].Value.Trim().Trim('\t'); string mappingcolname = tmph.getMappingColumnName(colname); switch (mappingcolname) { case "申请号": sb.An = val; sb.SiD = val; break; case "发明名称": sb.Title = val; break; case "摘要": sb.ABs = val; break; case "权利要求": sb.ClM = val; break; case "国际分类号": sb.Ipc = val; break; case "范畴分类号": sb.FCfL = val; break; case "国家/省市": sb.ShEng = val; break; case "申请人": sb.Pa = val; break; case "联系地址": sb.AddR = val; break; case "邮编": sb.Zip = val; break; case "代理机构": sb.DLJG = val; break; case "代理人": sb.DLr = val; break; case "代理机构地址": sb.DLJGAddR = val; break; case "发明人": sb.IV = val; break; case "申请日": sb.Ad = val; break; case "公开号": sb.PN = val; break; case "公开日": sb.PD = val; break; //case "授权公告日": // sb.Gd = val; // break; case "公告日": sb.Gd = val; break; //case "授权日": // sb.Gd = val; // break; case "公告号": sb.GN = val; break; case "优先权": sb.PR = val; break; case "审批历史": sb.LG = val; break; case "附图数": sb.PiCSum = val; break; case "页数": sb.DesPageSum = val; break; case "权利要求项数": sb.ClMSum = val; break; } } if (CheckExist(sb.SiD)) { if (Skip) { Skip_sum++; continue; } else { DelExist(sb.ZTID.ToString(), sb.SiD.ToString()); Overwrite_sum++; } } else { Sids.Add(sb.SiD, true); } sbs.Add(sb); List<STPa> pa = new List<STPa>(); List<STIV> iv = new List<STIV>(); List<STIpc> ipc = new List<STIpc>(); List<STPR> pr = new List<STPR>(); List<STQY> qy = new List<STQY>(); dts.Add(CPRSIndex.AutoIndex(sb, out pa, out iv, out ipc, out pr, out qy)); pas.AddRange(pa); ivs.AddRange(iv); ipcs.AddRange(ipc); prs.AddRange(pr); qys.AddRange(qy); if (i % 100 == 0) { //Thread.Sleep(1000); //todo:标引 //todo:标引信息入库 //todo:基本信息入库 BulkInsert(sbs, pas, ivs, ipcs, prs, dts, qys); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); qys.Clear(); ShowProcess(this, i, Skip_sum, Overwrite_sum, "导入"); } } if (sbs.Count > 0) { BulkInsert(sbs, pas, ivs, ipcs, prs, dts, qys); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); qys.Clear(); } log.Info(string.Format("导入完毕: 专题库:{0},ID:{1},类型:,{2}总量:{3},跳过:{4}", ztName, ZTId, Type, count, Skip_sum)); ShowProcess(this, count, Skip_sum, Overwrite_sum, "导入完毕"); Sr.Close(); Sr.Dispose(); }); Thimport.Start(); return true; }