public static STDT AutoIndex(ShowBase sb, out List <STPa> pa, out List <STIV> iv, out List <STIpc> ic, out List <STPR> pr, out List <STFML> fml) { STDT st = new STDT() { ZTID = sb.ZTID, SiD = sb.SiD, ImportDate = sb.ImportDate }; pa = new List <STPa>(); iv = new List <STIV>(); ic = new List <STIpc>(); pr = new List <STPR>(); fml = new List <STFML>(); int i = 0; //申请号 if (sb.An != null) { string[] ans = sb.An.Trim().Split(' '); switch (ans.Length) { case 2: st.An = ans[0]; st.Ad = ans[1].FormatDate(); st.AdY = st.Ad.GetYear(); break; case 1: st.An = ans[0]; break; } } if (sb.PN != null) { //公开 string[] pns = sb.PN.Trim().Split(' '); switch (pns.Length) { case 3: st.PN = pns[0] + pns[1]; st.PD = pns[2].FormatDate(); st.PDy = st.PD.GetYear(); break; case 2: st.PN = pns[0]; st.PD = pns[1].FormatDate(); st.PDy = st.PD.GetYear(); break; case 1: st.PN = pns[0]; break; } } if (sb.FaMN != null) { fml.Add(new STFML() { SiD = sb.SiD, FMLid = Convert.ToInt32(sb.FaMN) }); if (sb.Ipc != null) { //IPC string[] aryipcs = sb.Ipc.Split(';'); i = 0; foreach (var stripc in aryipcs) { if (stripc == "") { continue; } i++; string strtmpipc = stripc.Trim().FormatIPC(); STIpc tmpipc = new STIpc() { SiD = sb.SiD }; tmpipc.Ipc = strtmpipc.Trim(); tmpipc.Ipc1 = strtmpipc.Left(1); tmpipc.Ipc3 = strtmpipc.Left(3); tmpipc.Ipc4 = strtmpipc.Left(4); tmpipc.Ipc7 = strtmpipc.Left(7); tmpipc.Sort = (SByte)i; ic.Add(tmpipc); } if (ic.Count > 0) { st.FIpc = ic[0].Ipc; st.IpcSum = (SByte)ic.Count; } } } if (sb.Pa != null) { //申请人 string[] pas = sb.Pa.Split(";".ToArray()); foreach (var strpa in pas) { if (strpa.Trim() == "") { continue; } i++; pa.Add(new STPa() { SiD = sb.SiD, Pa = strpa.Trim(), Sort = (SByte)i }); } if (pa.Count > 0) { st.FPa = pa[0].Pa; st.PaSum = (SByte)pa.Count; } if (pa.Count > 1) { st.IsHeZUO = 1; } } if (sb.IV != null) { //发明人 string[] ins = sb.IV.Split("、;;".ToArray()); i = 0; foreach (var strin in ins) { if (strin.Trim() == "") { continue; } i++; iv.Add(new STIV() { SiD = sb.SiD, IV = strin.Trim(), Sort = (SByte)i }); } if (iv.Count > 0) { st.FIn = iv[0].IV; st.InSum = (SByte)iv.Count; } //优先权 string[] aryprs = sb.PR.Split(";".ToArray()); i = 0; foreach (var strpr in aryprs) { string tmpstrpr = strpr.Trim(); if (tmpstrpr == "") { continue; } i++; string[] items = tmpstrpr.Split(' '); if (items.Length == 2) { string prcy = items[0].Substring(0, 2).ToUpper(); string prno = items[0]; string prdt = items[1]; STPR tmpr = new STPR() { SiD = sb.SiD }; tmpr.An = prno; tmpr.Ad = prdt; tmpr.GJ = prcy; pr.Add(tmpr); } } } if (sb.OpD != null) { st.OpD = sb.OpD.FormatDate(); st.OpDy = st.OpD.ToString().GetYear(); } return(st); }
public 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 <STFML> fmls = new List <STFML>(); 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() { An = "", SiD = "", Ipc = "", Pa = "", IV = "", PN = "" }; sb.ZTID = zid; 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 "AN": sb.SiD = val; break; case "AP": sb.An = val; break; case "TI": sb.Title = val; break; case "CCA": case "CCI": 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 "DS": sb.DS = val; break; case "FAMN": sb.FaMN = val; break; case "CT": sb.Ct = val; break; case "CTNP": sb.CtNP = val; break; case "FI": sb.FI = val; break; case "FT": sb.FT = val; break; case "RF": sb.RF = val; break; case "RFAP": sb.RFaP = val; break; case "RFNP": sb.RFNP = val; break; } } 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 <STFML> fml = new List <STFML>(); dts.Add(EPODOCIndex.AutoIndex(sb, out pa, out iv, out ipc, out pr, out fml)); pas.AddRange(pa); ivs.AddRange(iv); ipcs.AddRange(ipc); prs.AddRange(pr); if (i % 100 == 0) { //Thread.Sleep(1000); //todo:标引 //todo:标引信息入库 //todo:基本信息入库 //BulkInsert(sbs); BulkInsert(sbs, pas, ivs, ipcs, prs, fml, dts); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); fml.Clear(); ShowProcess(this, i, "导入"); } } if (sbs.Count > 0) { BulkInsert(sbs, pas, ivs, ipcs, prs, fmls, dts); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); fmls.Clear(); } ShowProcess(this, count, "导入完毕"); 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); }
public static STDT AutoIndex(ShowBase sb, STDT st, out List <STPa> pa, out List <STIV> iv, out List <STIpc> ic, out List <STPR> pr, out List <STPNS> pn, out List <STAnS> an, out List <STDc> dc) { st.ZTID = sb.ZTID; st.SiD = sb.SiD; pa = new List <STPa>(); iv = new List <STIV>(); ic = new List <STIpc>(); pr = new List <STPR>(); pn = new List <STPNS>(); an = new List <STAnS>(); dc = new List <STDc>(); int i = 0; if (sb.An != null) { string[] ans = sb.An.Split(';'); List <string> gjs = new List <string>(); List <string> tmpans = new List <string>(); string zhou = ""; foreach (var stran in ans) { if (stran.Trim() == "") { continue; } i++; string tmpstran = ""; string tmpstrad = ""; //如果是Cont of|Based on 是优先权或者公开号 不记录 if (regnoap.Match(stran.Trim()).Success) { continue; } string[] arytmpstran = regspace.Replace(regap.Replace(stran.Trim(), "").Trim(), " ").Trim().Split(' '); if (arytmpstran.Length == 2) { tmpstran = arytmpstran[0].Trim(); tmpstrad = arytmpstran[1].Trim(); } else { tmpstran = arytmpstran[0].Trim(); } if (tmpans.Contains(tmpstran)) { continue; } tmpans.Add(tmpstran); STAnS tmpan = new STAnS() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpan.An = tmpstran; if (tmpstrad.GetYear() != 1800) { tmpan.Ad = tmpstrad; tmpan.AdY = tmpstrad.GetYear().ToString(); } tmpan.Sort = (SByte)i; string gj = tmpstran.Left(2).ToUpper(); if (gj == "WO") { Match mh = regwogj.Match(tmpstran.Substring(2)); if (mh.Success) { gj = mh.Groups["gj"].Value; if (!zhouguo.ContainsKey(gj)) { gj = "WO"; } } } if (!gjs.Contains(gj)) { gjs.Add(gj); } if (zhouguo.ContainsKey(gj)) { tmpan.GJ = zhouguo[gj].GJ; if (zhou == "") { zhou = zhouguo[gj].ZHoU; } } else { tmpan.GJ = "未知"; zhou = "未知"; } an.Add(tmpan); } if (an.Count > 0) { st.An = an[0].An; if (an[0].Ad.FormatDate().GetYear() != 1800) { st.Ad = an[0].Ad.FormatDate(); if (!noindex.ContainsKey("申请年")) { st.AdY = Convert.ToInt32(st.Ad.GetYear()); } } if (!noindex.ContainsKey("国家")) { st.GJ = an[0].GJ; } if (!noindex.ContainsKey("洲际")) { st.ZHoU = zhou; } } if (gjs.Count > 3) { if (gjs.Contains("US") && gjs.Contains("WO") && gjs.Contains("JP")) { if (!noindex.ContainsKey("是否三局")) { st.IsSanJU = 1; } } } if (gjs.Count > 5) { if (gjs.Contains("US") && gjs.Contains("WO") && gjs.Contains("JP") && gjs.Contains("CN") && gjs.Contains("KR")) { if (!noindex.ContainsKey("是否五局")) { st.IsWuJU = 1; } } } string tmpgjs = ""; foreach (var x in gjs) { tmpgjs += x + ";"; } st.ApGJS = tmpgjs.Trim(';'); if (!noindex.ContainsKey("同族数量")) { st.FMLSum = an.Count; } if (!noindex.ContainsKey("国家数量")) { st.GJSum = (SByte)gjs.Count; } } if (sb.PN != null) { //公开 string[] pns = regPnsplit.Split(sb.PN); i = 0; List <string> pngjs = new List <string>(); foreach (var strpn in pns) { i++; if (strpn.Trim() == "") { continue; } string tmpns = strpn.Trim(); STPNS tmppn = new STPNS() { ZTID = sb.ZTID, SiD = sb.SiD }; string tmpstrpn = ""; string tmpstrpd = ""; string[] arytmpns = regspace.Replace(tmpns, " ").Split(' '); switch (arytmpns.Length) { case 3: tmpstrpn = arytmpns[0] + arytmpns[1]; tmpstrpd = arytmpns[2]; break; case 2: tmpstrpn = arytmpns[0]; tmpstrpd = arytmpns[1]; break; case 1: tmpstrpn = arytmpns[0]; break; } tmppn.PN = tmpstrpn; if (tmpstrpd.FormatDate().GetYear() != 1800) { tmppn.PD = tmpstrpd.FormatDate(); tmppn.PDy = tmppn.PD.GetYear().ToString(); } tmppn.Sort = (SByte)i; string gj = tmppn.PN.Left(2); if (!pngjs.Contains(gj)) { pngjs.Add(gj); } if (zhouguo.ContainsKey(gj)) { tmppn.GJ = zhouguo[gj].GJ; } else { tmppn.GJ = "未知"; } pn.Add(tmppn); } if (pn.Count > 0) { st.PN = pn[0].PN; if (pn[0].PD.GetYear() != 1800) { st.PD = pn[0].PD; if (!noindex.ContainsKey("公开年")) { st.PDy = pn[0].PD.GetYear(); } } } string tmpgjs = ""; foreach (var x in pngjs) { tmpgjs += x + ";"; } st.PNGJS = tmpgjs.Trim(';'); } if (sb.Ipc != null) { string[] aryipcs = sb.Ipc.Split(';'); i = 0; foreach (var stripc in aryipcs) { if (stripc == "") { continue; } i++; string strtmpipc = stripc.Trim().FormatIPC(); STIpc tmpipc = new STIpc() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpipc.Ipc = strtmpipc.Trim(); tmpipc.Ipc1 = strtmpipc.Left(1); tmpipc.Ipc3 = strtmpipc.Left(3); tmpipc.Ipc4 = strtmpipc.Left(4); tmpipc.Ipc7 = strtmpipc.Left(7); tmpipc.Sort = (SByte)i; ic.Add(tmpipc); } if (ic.Count > 0) { if (!noindex.ContainsKey("主IPC")) { st.FIpc = ic[0].Ipc; } if (!noindex.ContainsKey("IPC数量")) { st.IpcSum = (SByte)ic.Count; } } } if (sb.Pa != null) { //申请人 string[] pas = sb.Pa.Split("(".ToArray()); int tmpsum = 0; foreach (var strpa in pas) { if (strpa.Trim() == "") { continue; } i++; string[] arystrpa = strpa.Split(')'); string tmppa = ""; string cpy = ""; if (arystrpa.Length == 2) { tmppa = arystrpa[1].Trim(); cpy = arystrpa[0].Trim(); } else { tmppa = arystrpa[1].Trim(); } STPa tmpobjpa = new STPa() { ZTID = sb.ZTID, SiD = sb.SiD, Pa = tmppa, CPY = cpy, Sort = (SByte)i }; if (!string.IsNullOrEmpty(cpy)) { if (tmpobjpa.CPY.IndexOf("-I") >= 0) { } else { tmpsum++; } } pa.Add(tmpobjpa); } if (pa.Count > 0) { if (!noindex.ContainsKey("主申请人")) { st.FPa = pa[0].Pa; } if (!noindex.ContainsKey("是否合作申请")) { st.PaSum = (SByte)pa.Count; } } if (tmpsum > 1) { if (!noindex.ContainsKey("申请年")) { st.IsHeZUO = 1; } } } if (sb.IV != null) { //发明人 string[] ins = sb.IV.Split("、;;".ToArray()); i = 0; foreach (var strin in ins) { if (strin.Trim() == "") { continue; } i++; iv.Add(new STIV() { ZTID = sb.ZTID, SiD = sb.SiD, IV = strin.Trim(), Sort = (SByte)i }); } if (iv.Count > 0) { if (!noindex.ContainsKey("主发明人")) { st.FIn = iv[0].IV; } if (!noindex.ContainsKey("发明人数量")) { st.InSum = (SByte)iv.Count; } } } if (sb.Dc != null) { //德温特分类 List <string> arydc = sb.Dc.Split(" ".ToArray()).ToList <string>(); List <string> listdc = new List <string>(); for (int j = 0; j < arydc.Count; j++) { if (arydc[j].Length > 3) { for (int tmp = 0; tmp < arydc[j].Length; tmp += 3) { listdc.Add(arydc[j].Substring(tmp, 3)); } } else { listdc.Add(arydc[j]); } } listdc = listdc.Distinct <string>().ToList <string>(); i = 0; foreach (var strdc in listdc) { if (strdc.Trim() == "") { continue; } i++; dc.Add(new STDc() { ZTID = sb.ZTID, SiD = sb.SiD, Dc = strdc, Sort = (SByte)i }); } if (dc.Count > 0) { if (!noindex.ContainsKey("DC数量")) { st.DMcSum = (SByte)dc.Count; } if (!noindex.ContainsKey("主DC")) { st.FDMc = dc[0].Dc; } } } if (sb.PR != null) { //优先权 string[] aryprs = sb.PR.Split(";".ToArray()); i = 0; foreach (var strpr in aryprs) { string tmpstrpr = strpr.Trim(); if (tmpstrpr == "") { continue; } i++; string[] items = tmpstrpr.Split(' '); if (items.Length == 2) { string prno = items[0]; string prdt = items[1]; string gj = items[0].Substring(0, 2).ToUpper(); if (gj == "WO") { Match mh = regwogj.Match(prno.Substring(2)); if (mh.Success) { gj = mh.Groups["gj"].Value; if (!zhouguo.ContainsKey(gj)) { gj = "WO"; } } } STPR tmpr = new STPR() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpr.An = prno; tmpr.Ad = prdt; if (zhouguo.ContainsKey(gj)) { tmpr.GJ = zhouguo[gj].GJ; } else { tmpr.GJ = "未知"; } pr.Add(tmpr); } } } if (sb.OpD != null) { if (sb.OpD.FormatDate().GetYear() != 1800) { if (!noindex.ContainsKey("最早优先权日")) { st.OpD = sb.OpD.FormatDate(); } if (!noindex.ContainsKey("最早优先权年")) { st.OpDy = st.OpD.ToString().GetYear(); } } } if (pr.Count > 0) { if (!noindex.ContainsKey("最早优先权国")) { st.OprC = pr[0].GJ; } } return(st); }
public static STDT AutoIndex(ShowBase sb, STDT st, out List <STPa> pa, out List <STIV> iv, out List <STIpc> ic, out List <STPR> pr, out List <STQY> qy) { pa = new List <STPa>(); iv = new List <STIV>(); ic = new List <STIpc>(); pr = new List <STPR>(); qy = new List <STQY>(); st.SiD = sb.SiD; //申请号 if (sb.An != null) { st.An = sb.An; if (sb.Ad.FormatDate().GetYear() != 1800) { st.Ad = sb.Ad.FormatDate(); if (!noindex.ContainsKey("申请年")) { st.AdY = Convert.ToInt32(st.Ad.GetYear()); } } } if (!string.IsNullOrEmpty(sb.PN)) { //公开 st.PN = sb.PN; if (sb.PD.FormatDate().GetYear() != 1800) { st.PD = sb.PD.FormatDate(); if (!noindex.ContainsKey("公开年")) { st.PDy = st.PD.GetYear(); } if (!noindex.ContainsKey("公开年差")) { if (st.PD != null && st.Ad != null) { st.PDyDef = IDataImportAdapter.GetYearDeff(st.PD, st.Ad); } } } } if (!string.IsNullOrEmpty(sb.GN)) { //公告 st.GN = sb.GN; if (sb.Gd.FormatDate().GetYear() != 1800) { st.Gd = sb.Gd.FormatDate(); if (!noindex.ContainsKey("授权年")) { st.GdY = sb.Gd.GetYear(); } if (!noindex.ContainsKey("授权年差")) { if (st.Gd != null && st.Ad != null) { st.GdYDef = IDataImportAdapter.GetYearDeff(st.Gd, st.Ad); } } } } //PCT st.PcTIn = sb.PcDIn.FormatDate(); st.PcTAn = sb.PcTAn; st.PcTAd = sb.PcTAd.FormatDate(); st.PcTPN = sb.PcTPN; st.PcTPD = sb.PcTPN.FormatDate(); //母案 st.MAd = sb.MAd; st.DesPageSum = sb.DesPageSum.ToSbyte(); st.PiCSum = sb.PiCSum.ToSbyte(); st.ClMPageSum = sb.ClMSum.ToSbyte(); //页数字数 if (!noindex.ContainsKey("权利要求1字数")) { if (!string.IsNullOrEmpty(sb.ClM)) { st.ClSCharSum = sb.ClM.Length; } } //专利类型 //专利类型(含PCT) string type = ""; string type1 = ""; char ctype = '1'; switch (st.An.Length) { case 8: case 9: ctype = st.An[2]; break; case 12: case 13: ctype = st.An[4]; break; } switch (ctype) { case '1': type = "发明专利"; type1 = "发明专利"; break; case '2': type = "实用新型"; type1 = "实用新型"; break; case '3': type = "外观专利"; type1 = "外观专利"; break; case '8': type = "发明专利"; type1 = "发明专利PCT"; break; case '9': type = "实用新型"; type1 = "实用新型PCT"; break; } if (!noindex.ContainsKey("专利类型")) { st.Type = type; } if (!noindex.ContainsKey("专利类型(含PCT)")) { st.Type1 = type1; } if (type != "发明专利") { st.GN = st.PN; st.Gd = st.PD; st.GdY = st.PDy; st.GdYDef = st.GdYDef; } #region 法律状态 //因费用终止公告日 string lg = ""; if (sb.LG != null) { if (sb.LG != "") { Match mh = regYear.Match(sb.LG); if (mh.Success) { if (!noindex.ContainsKey("法律截止年")) { st.LGYear = Convert.ToInt32(mh.Groups["lgdata"].Value.ToString().Left(4)); } } if (sb.Gd != "") { lg = "授权失效"; } else { lg = "无效"; } } else { if (type == "实用新型" || type == "外观专利") { lg = "授权有效"; } else { if (sb.Gd != "") { lg = "授权有效"; } else { lg = "在审"; } } } if (!noindex.ContainsKey("最终法律状态")) { st.LG = lg; } int age = 0; switch (lg) { case "在审": st.IsGongZHi = 0; break; case "授权有效": if (st.AdY.HasValue) { age = DateTime.Now.Year - st.AdY.Value; if (age == 0) { age = 1; } } st.IsGongZHi = 0; break; case "无效": st.IsGongZHi = 1; break; case "授权失效": if (st.LGYear.HasValue) { age = st.LGYear.Value - st.AdY.Value; if (age == 0) { age = 1; } } else { Console.WriteLine("x"); } st.IsGongZHi = 1; break; } if (!noindex.ContainsKey("专利年龄")) { st.Age = (sbyte)age; } } //if (age == 0) age = 1; if (st.Gd != null && st.PD != null) { st.SCzQ = IDataImportAdapter.GetYearDeff(st.Gd.ToString(), st.PD.ToString()); } #endregion int i = 0; #region 申请人 if (sb.Pa != null) { string[] pas = sb.Pa.Split("、;;".ToArray()); int tmpsum = 0; foreach (var strpa in pas) { if (strpa.Trim() == "") { continue; } i++; STPa tmppa = new STPa() { ZTID = sb.ZTID, SiD = sb.SiD, Pa = strpa, PaType = strpa.GetPaType(), Sort = (SByte)i }; if (tmppa.PaType != "个人") { tmpsum++; } pa.Add(tmppa); } if (pa.Count > 0) { if (!noindex.ContainsKey("主申请人")) { st.FPa = pa[0].Pa; } if (!noindex.ContainsKey("主申请人类型")) { st.FPaType = pa[0].PaType; } if (!noindex.ContainsKey("申请人数量")) { st.PaSum = (SByte)pa.Count; } } if (tmpsum > 1) { st.IsHeZUO = (SByte)1; } } #endregion #region 发明人 if (sb.IV != null) { string[] ins = sb.IV.Split("、;;".ToArray()); i = 0; foreach (var strin in ins) { if (strin.Trim() == "") { continue; } i++; iv.Add(new STIV() { ZTID = sb.ZTID, SiD = sb.SiD, IV = strin, Sort = (SByte)i }); } if (iv.Count > 0) { if (!noindex.ContainsKey("主发明人")) { st.FIn = iv[0].IV; } if (!noindex.ContainsKey("发明人数量")) { st.InSum = (SByte)iv.Count; } } } #endregion #region IPC if (sb.Ipc != null) { //IPC string[] ipcs = sb.Ipc.Split("、;;".ToArray()); i = 0; foreach (var ipc in ipcs) { if (ipc.Trim() == "") { continue; } string atripc = ipc.Replace(" ", " ").FormatIPC(); STIpc tmpipc = new STIpc() { ZTID = sb.ZTID, SiD = sb.SiD, Ipc = atripc }; if (type == "外观专利") { tmpipc.Ipc3 = atripc.Left(2); tmpipc.Ipc4 = atripc.Left(5); tmpipc.Ipc7 = atripc.Left(7); } else { tmpipc.Ipc1 = atripc.Left(1); tmpipc.Ipc3 = atripc.Left(3); tmpipc.Ipc4 = atripc.Left(4); tmpipc.Ipc7 = atripc.Left(7); } ic.Add(tmpipc); } if (ic.Count > 0) { if (!noindex.ContainsKey("主IPC")) { st.FIpc = ic[0].Ipc; } if (!noindex.ContainsKey("IPC数量")) { st.IpcSum = (SByte)ic.Count; } } } #endregion #region 洲国省市区县-经济区域 string sheng1 = "未知"; string sheng = "未知"; string shi = "未知"; string quxian = "未知"; string gj = "未知"; string zhou = "未知"; if (!string.IsNullOrEmpty(sb.AddR)) { string[] diqu = sb.AddR.AddressToShengShiQuXianAddress(); sheng1 = diqu[1]; shi = diqu[2]; quxian = diqu[3]; } int tmpindex = sb.ShEng.IndexOf("("); string daima = ""; if (tmpindex >= 0) { sheng = sb.ShEng.Substring(0, tmpindex); try { daima = sb.ShEng.Substring(tmpindex + 1, 2); } catch (Exception) { daima = ""; } } if (zhouguo.ContainsKey(daima)) { CfGCountry cfgc = zhouguo[daima]; sheng1 = cfgc.ShEng1; gj = cfgc.GJ; zhou = cfgc.ZHoU; } if (gj != "中国") { st.IsGuOwAi = 1; } List <string> Listquyu = new List <string>(); if (quyu.ContainsKey(zhou)) { Listquyu.Add(quyu[zhou]); } if (quyu.ContainsKey(gj)) { Listquyu.Add(quyu[gj]); } if (quyu.ContainsKey(sheng)) { Listquyu.Add(quyu[sheng]); } if (quyu.ContainsKey(sheng1)) { Listquyu.Add(quyu[sheng1]); } if (quyu.ContainsKey(shi)) { Listquyu.Add(quyu[shi]); } if (quyu.ContainsKey(quxian)) { Listquyu.Add(quyu[quxian]); } Listquyu = Listquyu.Distinct().ToList <string>(); foreach (var s in Listquyu) { qy.Add(new STQY() { ZTID = sb.ZTID, SiD = sb.SiD, QY = s }); } if (!noindex.ContainsKey("省")) { st.ShEng = sheng; } if (!noindex.ContainsKey("省(计划单列市)")) { st.ShEng1 = sheng1; } if (!noindex.ContainsKey("市")) { st.ShI = shi; } if (!noindex.ContainsKey("区县")) { st.QUXian = quxian; } if (!noindex.ContainsKey("洲际")) { st.ZHoU = zhou; } if (!noindex.ContainsKey("国家")) { st.GJ = gj; } #endregion #region 优先权 if (sb.PR != null) { string[] aryprs = sb.PR.Split("\t".ToArray()); i = 0; int opd = 0; string oprc = ""; foreach (var strpr in aryprs) { string tmpstrpr = strpr.Trim(); if (tmpstrpr == "") { continue; } i++; string[] itmes = regPr.Split(tmpstrpr); string prcy = itmes[0]; string prno = itmes[1]; string prdt = ""; int tmpopd = DateTime.Now.Year; try { prdt = tmpstrpr.Substring(prcy.Length, tmpstrpr.Length - prcy.Length - prno.Length).FormatDate(); tmpopd = Convert.ToInt32(prdt); if (i == 1) { opd = tmpopd; oprc = prcy; } else { if (opd < tmpopd) { opd = tmpopd; oprc = prcy; } } STPR tmpr = new STPR() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpr.An = prno; tmpr.Ad = prdt; tmpr.GJ = prcy; pr.Add(tmpr); } catch (Exception ex) { //todonothing; //tmpopd = st.AdY.Value; } } if (pr.Count > 0) { int year = opd.ToString().GetYear(); if (year != 1800) { st.OpD = opd.ToString(); st.OpDy = opd.ToString().GetYear(); } st.OprC = oprc; } } #endregion return(st); }
public static STDT AutoIndex(ShowBase sb, out List <STPa> pa, out List <STIV> iv, out List <STIpc> ic, out List <STPR> pr) { STDT st = new STDT() { ZTID = sb.ZTID, SiD = sb.SiD, ImportDate = sb.ImportDate }; pa = new List <STPa>(); iv = new List <STIV>(); ic = new List <STIpc>(); pr = new List <STPR>(); //申请号 st.An = sb.An; st.Ad = sb.Ad.FormatDate(); st.AdY = Convert.ToInt32(st.Ad.GetYear()); //公开 st.PN = sb.PN; st.PD = sb.PD.FormatDate(); st.PDy = st.PD.GetYear(); st.PDyDef = (sbyte)(st.PDy - st.AdY); //公告 st.GN = sb.GN; st.Gd = sb.Gd.FormatDate(); st.GdY = sb.Gd.GetYear(); st.GdYDef = (sbyte)(st.PDy - st.AdY); //PCT st.PcTIn = sb.PcDIn.FormatDate(); st.PcTAn = sb.PcTAn; st.PcTAd = sb.PcTAd.FormatDate(); st.PcTPN = sb.PcTPN; st.PcTPD = sb.PcTPN.FormatDate(); //母案 st.MAd = sb.MAd; //页数字数 st.DesPageSum = sb.DesPageSum.ToSbyte(); st.PiCSum = sb.PiCSum.ToSbyte(); st.ClMPageSum = sb.ClMSum.ToSbyte(); st.ClSCharSum = sb.ClM.Length; //专利类型 string type = ""; string type1 = ""; char ctype = '1'; switch (st.An.Length) { case 8: case 9: ctype = st.An[2]; break; case 12: case 13: ctype = st.An[4]; break; } switch (ctype) { case '1': type = "发明专利"; type1 = "发明专利"; break; case '2': type = "实用新型"; break; case '3': type = "外观专利"; type1 = "外观专利"; break; case '8': type = "发明专利"; type = "发明专利PCT"; break; case '9': type = "实用新型"; type1 = "实用新型PCT"; break; } st.Type = type; st.Type1 = type1; int i = 0; //申请人 if (sb.Pa != null) { string[] pas = sb.Pa.Split("、;;".ToArray()); foreach (var strpa in pas) { if (strpa.Trim() == "") { continue; } i++; pa.Add(new STPa() { SiD = sb.SiD, Pa = strpa, PaType = strpa.GetPaType(), Sort = (SByte)i }); } if (pa.Count > 0) { st.FPa = pa[0].Pa; st.FPaType = pa[0].PaType; st.PaSum = (SByte)pa.Count; } if (pa.Count > 1) { st.IsHeZUO = 1; } } //发明人 if (sb.IV != null) { string[] ins = sb.IV.Split("、;;".ToArray()); i = 0; foreach (var strin in ins) { if (strin.Trim() == "") { continue; } i++; iv.Add(new STIV() { SiD = sb.SiD, IV = strin, Sort = (SByte)i }); } if (iv.Count > 0) { st.FIn = iv[0].IV; st.InSum = (SByte)iv.Count; } } if (sb.Ipc != null) { //IPC string[] ipcs = sb.Ipc.Split("、;;".ToArray()); i = 0; foreach (var ipc in ipcs) { if (ipc.Trim() == "") { continue; } string atripc = ipc.Replace(" ", " "); STIpc tmpipc = new STIpc() { SiD = sb.SiD, Ipc = atripc }; if (type == "外观专利") { tmpipc.Ipc3 = atripc.Left(2); tmpipc.Ipc4 = atripc.Left(5); tmpipc.Ipc7 = atripc.Left(7); } else { tmpipc.Ipc1 = atripc.Left(1); tmpipc.Ipc3 = atripc.Left(3); tmpipc.Ipc4 = atripc.Left(4); tmpipc.Ipc7 = atripc.Left(7); } ic.Add(tmpipc); } if (ic.Count > 0) { st.FIpc = ic[0].Ipc; st.IpcSum = (SByte)ic.Count; } } if (sb.AddR != null) { if (sb.AddR == "") { int tmpindex = sb.ShEng.IndexOf("("); if (tmpindex >= 0) { sb.ShEng.Substring(0, tmpindex); } } else { string[] diqu = sb.AddR.AddressToShengShiQuXianAddress(); st.ShEng = diqu[1]; st.ShI = diqu[2]; st.QUXian = diqu[3]; } if (zhouguo.ContainsKey(sb.ShEng)) { string[] zhouguosheng = zhouguo[sb.ShEng].Split(';'); st.ZHoU = zhouguosheng[0]; st.GJ = zhouguosheng[1]; st.ShEng1 = zhouguosheng[2]; if (st.GJ == "中国") { st.IsGuOwAi = 1; } else { st.IsGuOwAi = 0; } } } if (sb.PR != null) { string[] aryprs = sb.PR.Split("\t".ToArray()); i = 0; int opd = 0; foreach (var strpr in aryprs) { string tmpstrpr = strpr.Trim(); if (tmpstrpr == "") { continue; } i++; string[] itmes = regPr.Split(tmpstrpr); string prcy = itmes[0]; string prno = itmes[1]; string prdt = tmpstrpr.Substring(prcy.Length, tmpstrpr.Length - prcy.Length - prno.Length).FormatDate(); int tmpopd = Convert.ToInt32(prdt); if (i == 1) { opd = tmpopd; } else { if (opd > tmpopd) { opd = tmpopd; } } STPR tmpr = new STPR() { SiD = sb.SiD }; tmpr.An = prno; tmpr.Ad = prdt; tmpr.GJ = prcy; pr.Add(tmpr); } if (pr.Count > 0) { st.OpD = opd.ToString(); st.OpDy = opd.ToString().GetYear(); } } return(st); }
private void SetUiText() { this.Text = string.Format("数据导出软件v1.0({0})", GlobalConfigVars.DbType); this.groupBox1.Text = ShowBase.GetDescription(); }
public static STDT AutoIndex(ShowBase sb, out List <STPa> pa, out List <STIV> iv, out List <STIpc> ic, out List <STPR> pr, out List <STFML> fml, out List <STCPc> cpc) { STDT st = new STDT() { ZTID = sb.ZTID, SiD = sb.SiD, ImportDate = sb.ImportDate }; pa = new List <STPa>(); iv = new List <STIV>(); ic = new List <STIpc>(); pr = new List <STPR>(); fml = new List <STFML>(); cpc = new List <STCPc>(); int i = 0; //申请号 if (!string.IsNullOrEmpty(sb.An)) { string[] ans = sb.An.Trim().Split(' '); switch (ans.Length) { case 2: st.An = ans[0]; if (ans[1].FormatDate().GetYear() != 1800) { st.Ad = ans[1].FormatDate(); st.AdY = st.Ad.GetYear(); } break; case 1: st.An = ans[0]; break; } } if (!string.IsNullOrEmpty(sb.PN)) { //公开 string[] pns = sb.PN.Trim().Split(' '); switch (pns.Length) { case 3: st.PN = pns[0] + pns[1]; if (pns[2].FormatDate().GetYear() != 1800) { st.PD = pns[2].FormatDate(); st.PDy = st.PD.GetYear(); } break; case 2: st.PN = pns[0]; if (pns[1].FormatDate().GetYear() != 1800) { st.PD = pns[1].FormatDate(); st.PDy = st.PD.GetYear(); } break; case 1: st.PN = pns[0]; break; } } if (!string.IsNullOrEmpty(st.An)) { string gj = st.An.Left(2).ToUpper(); gj = st.An.Substring(0, 2).ToUpper(); if (gj == "WO") { Match mh = regwogj.Match(st.An.Substring(2)); if (mh.Success) { gj = mh.Groups["gj"].Value; if (!zhouguo.ContainsKey(gj)) { gj = "WO"; } } } if (zhouguo.ContainsKey(gj)) { st.GJ = zhouguo[gj].GJ; st.ZHoU = zhouguo[gj].ZHoU; } else { st.GJ = "未知"; st.ZHoU = "未知"; } } if (sb.FaMN != null) { fml.Add(new STFML() { ZTID = sb.ZTID, SiD = sb.SiD, FMLid = Convert.ToInt32(sb.FaMN) }); } if (!string.IsNullOrEmpty(sb.Ipc)) { //IPC string[] aryipcs = sb.Ipc.Split(';'); i = 0; foreach (var stripc in aryipcs) { if (stripc == "") { continue; } i++; string strtmpipc = stripc.Trim().FormatIPC(); STIpc tmpipc = new STIpc() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpipc.Ipc = strtmpipc.Trim(); tmpipc.Ipc1 = strtmpipc.Left(1); tmpipc.Ipc3 = strtmpipc.Left(3); tmpipc.Ipc4 = strtmpipc.Left(4); tmpipc.Ipc7 = strtmpipc.Left(7); tmpipc.Sort = (SByte)i; ic.Add(tmpipc); } if (ic.Count > 0) { st.FIpc = ic[0].Ipc; st.IpcSum = (SByte)ic.Count; } } if (!string.IsNullOrEmpty(sb.CPc)) { //IPC string[] arycpcs = sb.CPc.Split(';'); i = 0; foreach (var strcpc in arycpcs) { if (strcpc == "") { continue; } i++; string strtmpcpc = strcpc.Trim().FormatIPC(); STCPc tmpcpc = new STCPc() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpcpc.CPc = strtmpcpc.Trim(); tmpcpc.CPc1 = strtmpcpc.Left(1); tmpcpc.CPc3 = strtmpcpc.Left(3); tmpcpc.CPc4 = strtmpcpc.Left(4); tmpcpc.CPc7 = strtmpcpc.Left(7); tmpcpc.Sort = (SByte)i; cpc.Add(tmpcpc); } if (cpc.Count > 0) { st.FCPc = cpc[0].CPc; st.CPcSum = (SByte)ic.Count; } } if (!string.IsNullOrEmpty(sb.Pa)) { //申请人 string[] pas = sb.Pa.Split(";".ToArray()); foreach (var strpa in pas) { if (strpa.Trim() == "") { continue; } i++; pa.Add(new STPa() { ZTID = sb.ZTID, SiD = sb.SiD, Pa = strpa.Trim(), Sort = (SByte)i }); } if (pa.Count > 0) { st.FPa = pa[0].Pa; st.PaSum = (SByte)pa.Count; } if (pa.Count > 1) { st.IsHeZUO = 1; } } if (!string.IsNullOrEmpty(sb.IV)) { //发明人 string[] ins = sb.IV.Split("、;;".ToArray()); i = 0; foreach (var strin in ins) { if (strin.Trim() == "") { continue; } i++; iv.Add(new STIV() { ZTID = sb.ZTID, SiD = sb.SiD, IV = strin.Trim(), Sort = (SByte)i }); } if (iv.Count > 0) { st.FIn = iv[0].IV; st.InSum = (SByte)iv.Count; } } if (!string.IsNullOrEmpty(sb.PR)) { //优先权 string[] aryprs = sb.PR.Split(";".ToArray()); i = 0; foreach (var strpr in aryprs) { string tmpstrpr = strpr.Trim(); if (tmpstrpr == "") { continue; } i++; string[] items = tmpstrpr.Split(' '); if (items.Length == 2) { string prno = items[0]; string prdt = items[1]; string gj = items[0].Substring(0, 2).ToUpper(); if (gj == "WO") { Match mh = regwogj.Match(prno.Substring(2)); if (mh.Success) { gj = mh.Groups["gj"].Value; if (!zhouguo.ContainsKey(gj)) { gj = "WO"; } } } if (zhouguo.ContainsKey(gj)) { CfGCountry cfgc = zhouguo[gj]; gj = cfgc.GJ; } STPR tmpr = new STPR() { ZTID = sb.ZTID, SiD = sb.SiD }; tmpr.An = prno; tmpr.Ad = prdt; tmpr.GJ = gj; pr.Add(tmpr); } } } if (!string.IsNullOrEmpty(sb.OpD)) { if (sb.OpD.FormatDate().GetYear() != 1800) { st.OpD = sb.OpD.FormatDate(); st.OpDy = st.OpD.ToString().GetYear(); } } if (pr.Count > 0) { st.OprC = pr[0].GJ; } return(st); }
public bool EPODocImport() { 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 <STFML> fmls = new List <STFML>(); List <STCPc> cpcs = new List <STCPc>(); int count = dt.Rows.Count; SetMaxProcess(this, count); Thimport = new Thread(() => { for (int i = 0; i < dt.Rows.Count; i++) { ShowBase sb = new ShowBase(); sb.ZTID = ZTId; sb.ImportDate = DateTime.Now; STDT st = new STDT() { ZTID = sb.ZTID, ImportDate = sb.ImportDate }; #region 处理一条数据 foreach (DataColumn col in dt.Columns) { string colname = col.ColumnName; string val = dt.Rows[i][col].ToString(); if (!Template.ColumnMapping.ContainsKey(colname)) { continue; } ColumnMapping mapping = Template.ColumnMapping[colname]; string mappingcolname = mapping.SystemColumnShowName; string tbname = mapping.Tablename; int?intval = null; sbyte?sbval = null; sbyte ssb = 0; if (SByte.TryParse(val.Replace("是", "1"), out ssb)) { sbval = ssb; } int iit = 0; if (int.TryParse(val, out iit)) { intval = iit; } #region STDT if (tbname.ToUpper() == "ST_DT") { switch (mappingcolname) { case "申请年": st.AdY = intval; break; case "公开年": st.PDy = intval; break; case "最早优先权年": st.OpDy = intval; break; case "主申请人": st.FPa = val; break; case "主发明人": st.FIn = val; break; case "主IPC": st.FIpc = val; break; case "主CPC": st.FCPc = val; break; case "是否合作申请": st.IsHeZUO = sbval; break; case "洲际": st.ZHoU = val; break; case "国家": st.GJ = val; break; case "公开年差": st.PDyDef = intval; break; case "申请人数量": st.PaSum = sbval; break; case "发明人数量": st.InSum = sbval; break; case "IPC数量": st.IpcSum = sbval; break; case "CPC数量": st.CPcSum = sbval; break; case "引证数量": st.YZSum = sbval; break; case "被引证数量": st.ByZSum = sbval; break; default: break; } } #endregion #region SHOWBASE switch (mappingcolname) { case "AN": case "入藏号": sb.SiD = val; break; case "申请号": sb.An = val; break; case "申请日": sb.Ad = val; break; case "标题": sb.Title = val; break; case "IPC": if (sb.Ipc == null) { sb.Ipc = val; } else { sb.Ipc += ";" + val; } break; case "CPC": if (sb.CPc == null) { sb.CPc = val; } else { sb.CPc += ";" + val; } break; case "申请人": sb.Pa = val; break; case "申请人代码": sb.CPY = val; break; case "最早优先权日": sb.OpD = val; break; case "摘要": sb.ABs = val; break; case "发明人": sb.IV = val; break; case "公开号": sb.PN = val; break; case "优先权": sb.PR = val; break; case "公开日": sb.PD = val; break; case "DS": sb.DS = val; break; case "FAMN": sb.FaMN = val; break; case "CT": sb.Ct = val; break; case "CTNP": sb.CtNP = val; break; case "FI": sb.FI = val; break; case "FT": sb.FT = val; break; case "RF": sb.RF = val; break; case "RFAP": sb.RFaP = val; break; case "RFNP": sb.RFNP = val; break; case "EC": sb.Ec = val; break; } #endregion } #endregion #region 标引 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 <STFML> fml = new List <STFML>(); List <STCPc> cpc = new List <STCPc>(); st = XLSEPODOCIndex.AutoIndex(sb, st, out pa, out iv, out ipc, out pr, out fml, out cpc); dts.Add(st); pas.AddRange(pa); ivs.AddRange(iv); ipcs.AddRange(ipc); prs.AddRange(pr); fmls.AddRange(fml); cpcs.AddRange(cpc); #endregion if (i % 100 == 0) { EPODOCBulkInsert(sbs, pas, ivs, ipcs, prs, fml, dts, cpcs); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); fmls.Clear(); cpcs.Clear(); ShowProcess(this, i, Skip_sum, Overwrite_sum, "导入"); } } if (sbs.Count > 0) { EPODOCBulkInsert(sbs, pas, ivs, ipcs, prs, fmls, dts, cpcs); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); fmls.Clear(); cpcs.Clear(); } ShowProcess(this, count, Skip_sum, Overwrite_sum, "导入完毕"); }); Thimport.Start(); return(true); }
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 bool CNImport() { XLSCPRSIndex.initmp(Template); 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 = dt.Rows.Count; SetMaxProcess(this, count); Thimport = new Thread(() => { #region 处理一个DataTable for (int i = 0; i < dt.Rows.Count; i++) { ShowBase sb = new ShowBase(); sb.ZTID = ZTId; sb.ImportDate = DateTime.Now; STDT st = new STDT() { ZTID = sb.ZTID, ImportDate = sb.ImportDate }; #region 处理一条数据 foreach (DataColumn col in dt.Columns) { string colname = col.ColumnName; string val = dt.Rows[i][col].ToString(); if (!Template.ColumnMapping.ContainsKey(colname)) { continue; } ColumnMapping mapping = Template.ColumnMapping[colname]; string mappingcolname = mapping.SystemColumnShowName; string tbname = mapping.Tablename; int?intval = null; sbyte?sbval = null; sbyte ssb = 0; if (SByte.TryParse(val.Replace("是", "1"), out ssb)) { sbval = ssb; } int iit = 0; if (int.TryParse(val, out iit)) { intval = iit; } #region STDT if (tbname.ToUpper() == "ST_DT") { switch (mappingcolname) { case "申请年": st.AdY = intval; break; case "公开年": st.PDy = intval; break; case "授权年": st.GdY = intval; break; case "主申请人": st.FPa = val; break; case "主发明人": st.FIn = val; break; case "主IPC": st.FIpc = val; break; case "权利要求1字数": st.ClSCharSum = intval; break; case "专利类型": st.Type = val; break; case "专利类型(含PCT)": st.Type1 = val; break; case "主申请人类型": st.FPaType = val; break; case "是否合作申请": st.IsHeZUO = sbval; break; case "洲际": st.ZHoU = val; break; case "是否国外来华": st.IsGuOwAi = sbval; break; case "国家": st.GJ = val; break; case "省": st.ShEng = val; break; case "省(计划单列市)": st.ShEng1 = val; break; case "市": st.ShI = val; break; case "区县": st.QUXian = val; break; case "经济区域": st.QUYU = val; break; case "最终法律状态": st.LG = val; break; case "法律截止年": st.LGYear = intval;; break; case "公开年差": st.PDyDef = intval;; break; case "授权年差": st.GdYDef = intval;; break; case "专利年龄": st.Age = sbval; break; case "是否公知技术": st.IsGongZHi = sbval; break; case "申请人数量": st.PaSum = sbval; break; case "发明人数量": st.InSum = sbval; break; case "IPC数量": st.IpcSum = sbval; break; default: break; } } #endregion #region showbase switch (mappingcolname) { case "申请号": sb.An = val; sb.SiD = val; break; case "发明名称": 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 "省": 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 "公告日": case "授权日": if (string.IsNullOrEmpty(sb.Gd)) { sb.Gd = val; } break; case "授权号": case "公告号": if (string.IsNullOrEmpty(sb.GN)) { 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; } #endregion } #endregion 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>(); st = XLSCPRSIndex.AutoIndex(sb, st, out pa, out iv, out ipc, out pr, out qy); dts.Add(st); pas.AddRange(pa); ivs.AddRange(iv); ipcs.AddRange(ipc); prs.AddRange(pr); qys.AddRange(qy); if (i % 100 == 0) { //todo:基本信息入库 CNBulkInsert(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, "导入"); } } #endregion if (sbs.Count > 0) { CNBulkInsert(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, "导入完毕"); }); Thimport.Start(); return(true); }
public bool WPIImport() { XLSWPIIndex.initmp(Template); 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 = dt.Rows.Count; SetMaxProcess(this, count); Thimport = new Thread(() => { // for (int i = 0; i < dt.Rows.Count; i++) { ShowBase sb = new ShowBase(); sb.ZTID = ZTId; sb.ImportDate = DateTime.Now; STDT st = new STDT() { ZTID = sb.ZTID, SiD = sb.SiD, ImportDate = sb.ImportDate }; #region 一行记录 foreach (DataColumn col in dt.Columns) { string colname = col.ColumnName; string val = dt.Rows[i][col].ToString(); if (!Template.ColumnMapping.ContainsKey(colname)) { continue; } ColumnMapping mapping = Template.ColumnMapping[colname]; string mappingcolname = mapping.SystemColumnShowName; string tbname = mapping.Tablename; int?intval = null; sbyte?sbval = null; int iit = 0; sbyte ssb = 0; if (sbyte.TryParse(val, out ssb)) { sbval = ssb; } if (int.TryParse(val, out iit)) { intval = iit; } #region STDT if (tbname.ToUpper() == "ST_DT") { switch (mappingcolname) { case "申请年": st.AdY = intval; break; case "公开年": st.AdY = intval; break; case "最早优先权年": st.OpDy = intval; break; case "主申请人": st.FPa = val; break; case "主发明人": st.FIn = val; break; case "主IPC": st.FIpc = val; break; case "主CPC": st.FCPc = val; break; case "主DC": st.FDMc = val; break; case "是否合作申请": st.IsHeZUO = sbval; break; case "洲际": st.ZHoU = val; break; case "是否三局": st.IsSanJU = sbval; break; case "是否五局": st.IsWuJU = sbval; break; case "国家": st.GJ = val; break; case "公开年差": st.PDyDef = intval; break; case "申请人数量": st.PaSum = sbval; break; case "发明人数量": st.InSum = sbval; break; case "IPC数量": st.IpcSum = sbval; break; case "CPC数量": st.CPcSum = sbval; break; case "DC数量": st.DMcSum = sbval; break; case "同族数量": st.FMLSum = sbval; break; case "国家数量": st.GJSum = sbval; break; case "引证数量": st.YZSum = sbval; break; case "被引证数量": st.ByZSum = sbval; break; default: break; } } #endregion #region SHOWBASE switch (mappingcolname) { case "AN": case "入藏号": sb.SiD = val; break; case "申请号(原始)": case "申请号": sb.An = val; break; case "标题": case "专利名称": sb.Title = val; break; case "IPC": if (sb.Ipc == null) { sb.Ipc = val; } else { sb.Ipc += ";" + val; } break; case "申请人": sb.Pa = val; break; case "申请人代码": sb.CPY = val; break; case "最早优先权日": sb.OpD = val; break; case "摘要": sb.ABs = val; break; case "发明人": sb.IV = val; break; case "公开号(原始)": case "公开号": sb.PN = val; break; case "优先权": sb.PR = val; break; case "公开日": 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; default: break; } #endregion } #endregion 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>(); st = XLSWPIIndex.AutoIndex(sb, st, out pa, out iv, out ipc, out pr, out pn, out an, out dc); dts.Add(st); 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) { WPIBulkInsert(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) { WPIBulkInsert(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, "导入完毕"); }); Thimport.Start(); return(true); }
public static STDT AutoIndex(ShowBase sb, out List <STPa> pa, out List <STIV> iv, out List <STIpc> ic, out List <STPR> pr, out List <STPNS> pn, out List <STAnS> an, out List <STDMc> dc) { STDT st = new STDT() { ZTID = sb.ZTID, SiD = sb.SiD, ImportDate = sb.ImportDate }; pa = new List <STPa>(); iv = new List <STIV>(); ic = new List <STIpc>(); pr = new List <STPR>(); pn = new List <STPNS>(); an = new List <STAnS>(); dc = new List <STDMc>(); int i = 0; if (sb.An != null) { string[] ans = sb.An.Split(';'); List <string> gjs = new List <string>(); foreach (var stran in ans) { if (stran.Trim() == "") { continue; } i++; STAnS tmpan = new STAnS() { SiD = sb.SiD }; string tmpstran = ""; string tmpstrad = ""; //如果是Cont of|Based on 是优先权或者公开号 不记录 if (regnoap.Match(stran).Success) { continue; } string[] arytmpstran = regspace.Replace(regap.Replace(stran, "").Trim(), " ").Trim().Split(' '); if (arytmpstran.Length == 2) { tmpstran = arytmpstran[0].Trim(); tmpstrad = arytmpstran[1].Trim(); } else { tmpstran = arytmpstran[0].Trim(); } tmpan.An = tmpstran; tmpan.Ad = tmpstrad; tmpan.AdY = tmpstrad.GetYear().ToString(); tmpan.Sort = (SByte)i; string gj = tmpstran.Left(2).ToUpper(); if (gj == "WO") { Match mh = regwogj.Match(tmpstran); if (mh.Success) { gj = mh.Groups["gj"].Value; } } if (!gjs.Contains(gj)) { gjs.Add(gj); } tmpan.AnGJ = gj; an.Add(tmpan); } if (an.Count > 0) { st.An = an[0].An; st.Ad = an[0].Ad.FormatDate(); st.AdY = Convert.ToInt32(st.Ad.GetYear()); } if (gjs.Count > 3) { if (gjs.Contains("US") && gjs.Contains("WO") && gjs.Contains("JP")) { st.IsSanJU = 1; } } if (gjs.Count > 3) { if (gjs.Contains("US") && gjs.Contains("WO") && gjs.Contains("JP") && gjs.Contains("CN") && gjs.Contains("KR")) { st.IsWuJU = 1; } } st.FMLSum = an.Count; st.GJSum = (SByte)gjs.Count; } if (sb.PN != null) { //公开 string[] pns = regPnsplit.Split(sb.PN); i = 0; foreach (var strpn in pns) { i++; if (strpn.Trim() == "") { continue; } string tmpns = strpn.Trim(); STPNS tmppn = new STPNS() { SiD = sb.SiD }; string tmpstrpn = ""; string tmpstrpd = ""; string[] arytmpns = regspace.Replace(tmpns, " ").Split(' '); switch (arytmpns.Length) { case 3: tmpstrpn = arytmpns[0] + arytmpns[1]; tmpstrpd = arytmpns[2]; break; case 2: tmpstrpn = arytmpns[0]; tmpstrpd = arytmpns[1]; break; case 1: tmpstrpn = arytmpns[0]; break; } tmppn.PN = tmpstrpn; tmppn.PD = tmpstrpd.FormatDate(); tmppn.PDy = tmppn.PD.GetYear().ToString(); tmppn.Sort = (SByte)i; tmppn.PNGJ = tmppn.PN.Left(2); pn.Add(tmppn); } if (pn.Count > 0) { st.PN = pn[0].PN; st.PD = pn[0].PD; st.PDy = pn[0].PD.GetYear(); } } if (sb.Ipc != null) { string[] aryipcs = sb.Ipc.Split(';'); i = 0; foreach (var stripc in aryipcs) { if (stripc == "") { continue; } i++; string strtmpipc = stripc.Trim().FormatIPC(); STIpc tmpipc = new STIpc() { SiD = sb.SiD }; tmpipc.Ipc = strtmpipc.Trim(); tmpipc.Ipc1 = strtmpipc.Left(1); tmpipc.Ipc3 = strtmpipc.Left(3); tmpipc.Ipc4 = strtmpipc.Left(4); tmpipc.Ipc7 = strtmpipc.Left(7); tmpipc.Sort = (SByte)i; ic.Add(tmpipc); } if (ic.Count > 0) { st.FIpc = ic[0].Ipc; st.IpcSum = (SByte)ic.Count; } } if (sb.Pa != null) { //申请人 string[] pas = sb.Pa.Split("(".ToArray()); foreach (var strpa in pas) { if (strpa.Trim() == "") { continue; } i++; string[] arystrpa = strpa.Split(')'); string tmppa = ""; string cpy = ""; if (arystrpa.Length == 2) { tmppa = arystrpa[1].Trim(); cpy = arystrpa[0].Trim(); } else { tmppa = arystrpa[1].Trim(); } pa.Add(new STPa() { SiD = sb.SiD, Pa = tmppa, CPY = cpy, Sort = (SByte)i }); } if (pa.Count > 0) { st.FPa = pa[0].Pa; st.PaSum = (SByte)pa.Count; } if (pa.Count > 1) { st.IsHeZUO = 1; } } if (sb.IV != null) { //发明人 string[] ins = sb.IV.Split("、;;".ToArray()); i = 0; foreach (var strin in ins) { if (strin.Trim() == "") { continue; } i++; iv.Add(new STIV() { SiD = sb.SiD, IV = strin.Trim(), Sort = (SByte)i }); } if (iv.Count > 0) { st.FIn = iv[0].IV; st.InSum = (SByte)iv.Count; } } if (sb.DMc != null) { //德温特分类 string[] arydmc = sb.DMc.Split(" ".ToArray()); i = 0; foreach (var strdc in arydmc) { if (strdc.Trim() == "") { continue; } i++; dc.Add(new STDMc() { SiD = sb.SiD, DMc = strdc, Sort = (SByte)i }); } if (dc.Count > 0) { st.DMcSum = (SByte)dc.Count; } if (iv.Count > 0) { st.FIn = iv[0].IV; st.InSum = (SByte)iv.Count; } } if (sb.PR != null) { //优先权 string[] aryprs = sb.PR.Split(";".ToArray()); i = 0; foreach (var strpr in aryprs) { string tmpstrpr = strpr.Trim(); if (tmpstrpr == "") { continue; } i++; string[] items = tmpstrpr.Split(' '); if (items.Length == 2) { string prcy = items[0].Substring(0, 2).ToUpper(); string prno = items[0]; string prdt = items[1]; STPR tmpr = new STPR() { SiD = sb.SiD }; tmpr.An = prno; tmpr.Ad = prdt; tmpr.GJ = prcy; pr.Add(tmpr); } } } if (sb.OpD != null) { st.OpD = sb.OpD.FormatDate(); st.OpDy = st.OpD.ToString().GetYear(); } return(st); }
public bool Import() { string s = sr.ReadToEnd().Replace(kunkaojin, ""); 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>(); 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(), ""), ""); MatchCollection mhs = rowRege.Matches(tmp); ShowBase sb = new ShowBase(); sb.ZTID = zid; 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; } } 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>(); dts.Add(CPRSIndex.AutoIndex(sb, out pa, out iv, out ipc, out pr)); pas.AddRange(pa); ivs.AddRange(iv); ipcs.AddRange(ipc); prs.AddRange(pr); if (i % 100 == 0) { //Thread.Sleep(1000); //todo:标引 //todo:标引信息入库 //todo:基本信息入库 BulkInsert(sbs, pas, ivs, ipcs, prs, dts); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); ShowProcess(this, i, "导入"); } } if (sbs.Count > 0) { BulkInsert(sbs, pas, ivs, ipcs, prs, dts); sbs.Clear(); pas.Clear(); ivs.Clear(); ipcs.Clear(); prs.Clear(); dts.Clear(); } ShowProcess(this, count, "导入完毕"); sr.Close(); sr.Dispose(); }); thimport.Start(); return(true); }
static void Main(string[] args) { while (true) { using (ApplicationContext db = new ApplicationContext()) { Console.Clear(); int command = 0; //команды для меню в приложении Console.WriteLine("Вы в основном меню программы\n" + "Введите 1 для входа в меню добавления пользователей \n" + "Введите 2 для входа в меню удаления пользователей \n" + "Введите 3 посмотреть список пользователей \n" + "Введите 4 для того чтобы посмотреть сколько будет лет пользователям через 4 года"); command = Convert.ToInt32(Console.ReadLine()); if (command == 1) { while (true) { Console.Clear(); string comm; Console.WriteLine("Вы в меню добавления пользователей"); ShowBase.showing(); Console.WriteLine("Введите exit, чтобы вернуться в основное меню или нажмите enter чтобы продолжить"); comm = Console.ReadLine(); if (comm == "exit") { break; } try { Console.WriteLine("Введите имя пользователя"); string name = Console.ReadLine(); if (name == "exit") { break; } Console.WriteLine("Введите возраст пользователя"); int age = Convert.ToInt32(Console.ReadLine()); AddUser user = new AddUser(); user.adding(name, age); } catch (FormatException) { Console.WriteLine("Вы ввели неверное значение"); Console.ReadKey(); } Console.Clear(); ShowBase.showing(); } } if (command == 2) { while (true) { Console.Clear(); string comm; Console.WriteLine("Вы в меню удаления пользователей"); ShowBase.showing(); Console.WriteLine("Введите exit, чтобы вернутся в основное меню или нажмите enter чтобы продолжить"); comm = Console.ReadLine(); if (comm == "exit") { break; } try { Console.WriteLine("Введите id пользователя, которого хотите удалить (введите 0 чтобы выйти из меню)"); int id = Convert.ToInt32(Console.ReadLine()); if (id == 0) { break; } RemoveUser user = new RemoveUser(); user.removing(id); } catch (FormatException) { Console.WriteLine("Вы ввели неверное значение"); Console.ReadKey(); } Console.Clear(); } } if (command == 3) { Console.Clear(); ShowBase.showing(); Console.ReadKey(); } if (command == 4) { Console.Clear(); var users = db.Users.ToList(); Console.WriteLine("Текущий список пользователей:"); foreach (User u in users) { Console.WriteLine($"ID:{u.Id}; Имя: {u.Name}; Текущий Возраст: {u.Age}; Возраст через 4 года: {u.Age + 4}; "); } Console.ReadKey(); } } } }