public override List <RecordBase> Extract() { var list = new List <RecordBase>(); var targets = getTargetListFromReplaceTable(); if (targets.Count == 0) { return(list); } var TradeCompany = getTradeCompany(targets); foreach (var item in targets) { var reorgRec = new ReorganizationRec(); reorgRec.Id = this.Id; reorgRec.Target = item.Target; reorgRec.TargetCompany = item.Comany; foreach (var tc in TradeCompany) { if (tc.TargetCompany == item.Comany) { reorgRec.TradeCompany = tc.TradeCompany; break; } } var Price = GetPrice(reorgRec); reorgRec.Price = MoneyUtility.Format(Price.MoneyAmount, String.Empty); reorgRec.EvaluateMethod = getEvaluateMethod(reorgRec); list.Add(reorgRec); } return(list); }
public static void InitReorganization() { var sr = new StreamReader(ReorganizationPath_TRAIN); while (!sr.EndOfStream) { ReorganizationList.Add(ReorganizationRec.ConvertFromString(sr.ReadLine())); } Console.WriteLine("资产重组标准结果数:" + ReorganizationList.Count); sr.Close(); }
public static void EvaluateReorganizationByFile(string txtfilename) { List <ReorganizationRec> resultDataset = new List <ReorganizationRec>(); var sr = new StreamReader(txtfilename); while (!sr.EndOfStream) { resultDataset.Add(ReorganizationRec.ConvertFromString(sr.ReadLine())); } Console.WriteLine("资产重组标准结果数:" + resultDataset.Count); sr.Close(); EvaluateReorganization(resultDataset); }
/// <summary> /// 通过释义表里的关键字获得交易对手情况 /// </summary> /// <param name="rec"></param> /// <returns></returns> public Dictionary <string, string> getTradeCompanyByExplain(ReorganizationRec rec) { //释义表 var ExplainTrades = new Dictionary <string, string>(); foreach (var item in ExplainDict) { var keys = item.Key.Split(Utility.SplitChar); var keys2 = item.Key.Split(new char[] { '/', '/' }); if (keys.Length == 1 && keys2.Length > 1) { keys = keys2; } var values = item.Value.Split(Utility.SplitChar); var values2 = item.Value.Split(";"); if (values.Length == 1 && values2.Length > 1) { values = values2; } foreach (var key in keys) { if (!String.IsNullOrEmpty(rec.TargetCompanyFullName) && key.Equals(rec.TargetCompanyFullName + "交易对方")) { if (!ExplainTrades.ContainsKey(rec.TargetCompanyFullName)) { ExplainTrades.Add(rec.TargetCompanyFullName, item.Value); } } if (!String.IsNullOrEmpty(rec.TargetCompanyShortName) && key.Equals(rec.TargetCompanyShortName + "交易对方")) { if (!ExplainTrades.ContainsKey(rec.TargetCompanyShortName)) { ExplainTrades.Add(rec.TargetCompanyShortName, item.Value); } } if (key.Equals("交易对方")) { if (!ExplainTrades.ContainsKey("交易对方")) { ExplainTrades.Add("交易对方", item.Value); } } } } return(ExplainTrades); }
/// <summary> /// 交易对手最后整型 /// </summary> /// <param name="reorgRec"></param> public void NormalizeTradeCompany(ReorganizationRec reorgRec) { var TrimLeadingWords = new string[] { "交易对方包括", "交易对方,具体指", "本次交易的对方,", "交易对方", "交易对方,即", "全体股东,包括", "全体股东,即", "全部股东,包括", "全部股东,即", "自然人股东:", "资金认购方" }; foreach (var word in TrimLeadingWords) { if (reorgRec.TradeCompany.Contains(word)) { reorgRec.TradeCompany = Utility.GetStringAfter(reorgRec.TradeCompany, word); return; } } }
public static ReorganizationRec ConvertFromString(string str) { var Array = str.Split("\t"); var c = new ReorganizationRec(); c.Id = Array[0]; c.Target = Array[1]; c.TargetCompany = Array[2]; if (Array.Length > 3) { c.TradeCompany = Array[3]; } if (Array.Length > 4) { c.Price = Array[4]; } if (Array.Length == 6) { c.EvaluateMethod = Array[5]; } return(c); }
/// <summary> /// 交易对方 /// </summary> /// <returns></returns> public List <string> getTradeCompany(ReorganizationRec target) { var rtn = new List <string>(); TradeCompany.IsRequire = true; var Rules = new List <TableSearchTitleRule>(); Rules.Add(TradeCompany); var opt = new HTMLTable.SearchOption(); opt.IsMeger = true; var result = HTMLTable.GetMultiInfoByTitleRules(root, Rules, opt); if (result.Count == 0) { return(rtn); } //首页表格提取出交易者列表 var tableid = result[0][0].TableId; //注意:由于表格检索的问题,这里只将第一个表格的内容作为依据 //交易对方是释义表的一个项目,这里被错误识别为表头 //TODO:这里交易对方应该只选取文章前部的表格!! var TableTrades = result.Where(z => !ExplainTableId.Contains(z[0].TableId)) .Select(x => x[0].RawData) .Where(y => !y.Contains("不超过")).ToList(); var TargetLoc = LocateProperty.LocateCustomerWord(root, new string[] { target.TargetCompanyFullName, target.TargetCompanyShortName }.ToList(), "标的"); var HolderLoc = LocateProperty.LocateCustomerWord(root, new string[] { "持有", "所持" }.ToList(), "持有"); var OwnerLoc = LocateProperty.LocateCustomerWord(root, TableTrades.ToList(), "交易对手"); CustomerList.AddRange(TargetLoc); CustomerList.AddRange(HolderLoc); CustomerList.AddRange(OwnerLoc); nermap.Anlayze(this); foreach (var nerlist in nermap.ParagraghlocateDict.Values) { //交易对手 持有 标的 这样的文字检索 int OwnerIdx = -1; int HolderIdx = -1; int TargetIdx = -1; nerlist.CustomerList.Sort((x, y) => { return(x.StartIdx.CompareTo(y.StartIdx)); }); var OwnerName = string.Empty; foreach (var ner in nerlist.CustomerList) { if (ner.Description == "交易对手") { OwnerIdx = ner.StartIdx; OwnerName = ner.Value; } if (ner.Description == "持有" && OwnerIdx != -1) { HolderIdx = ner.StartIdx; } if (ner.Description == "标的" && OwnerIdx != -1 && HolderIdx != -1) { TargetIdx = ner.StartIdx; } if (OwnerIdx != -1 && HolderIdx != -1 && TargetIdx != -1) { if (TargetIdx - OwnerIdx < 20) { rtn.Add(OwnerName); } OwnerIdx = -1; HolderIdx = -1; TargetIdx = -1; } } } return(rtn.Distinct().ToList()); }
public List <String> getTradeCompanyByKeyWord(ReorganizationRec rec) { var Rtn = new List <String>(); //在释义表中寻找 持有的,持有者就是交易对手 //广传媒持有的广报经营 100%股权、大洋传媒 100%股权及新媒体公司 100%股权 //并向国信集团非公开发行股份购买其持有的江苏信托81.49%的股权 //重庆百货向商社集团和新天域湖景发行股份购买其持有的新世纪百货61%和39%的股权 //检查一下交易标的公司的位置,持有的位置,持有之前公司的位置 foreach (var ExplainSentence in ExplainDict.Values) { var DetailList = ExplainSentence.Split(";"); foreach (var DetailItem in DetailList) { var SingleSentenceList = new string[] { DetailItem }; if (DetailItem.Contains(",")) { SingleSentenceList = DetailItem.Split(","); } if (DetailItem.Contains(",")) { SingleSentenceList = DetailItem.Split(","); } var PreviewSentence = ""; foreach (var SingleSentenceItem in SingleSentenceList) { //购买的 -> 购买 var SingleSentence = SingleSentenceItem; SingleSentence = SingleSentence.Replace("购买的", "购买"); var HoldVerbIdxPlus = SingleSentence.IndexOf("所持有"); var HoldVerbIdx = SingleSentence.IndexOf("持有"); if (HoldVerbIdx == -1) { PreviewSentence = SingleSentence; continue; } if (HoldVerbIdxPlus != -1) { HoldVerbIdx = HoldVerbIdxPlus; } var targetIdx = -1; if (!String.IsNullOrEmpty(rec.TargetCompanyShortName)) { targetIdx = SingleSentence.IndexOf(rec.TargetCompanyFullName); } if (targetIdx == -1) { if (!String.IsNullOrEmpty(rec.TargetCompanyShortName)) { targetIdx = SingleSentence.IndexOf(rec.TargetCompanyShortName); } } if (targetIdx == -1) { PreviewSentence = SingleSentence; continue; } var BuyIdx = SingleSentence.IndexOf("购买"); var BetweenBuyAndHoldString = ""; if (BuyIdx != -1 && BuyIdx < HoldVerbIdx) { BetweenBuyAndHoldString = SingleSentence.Substring(BuyIdx + 2, HoldVerbIdx - BuyIdx - 2); } //Console.WriteLine("公告ID:" + Id); //Console.WriteLine("原始句子:" + SingleSentence); //Console.WriteLine("持有的位置:" + HoldVerbIdx); //Console.WriteLine("标的公司全称:" + rec.TargetCompanyFullName); //Console.WriteLine("标的公司简称:" + rec.TargetCompanyShortName); //Console.WriteLine("标的公司位置:" + targetIdx); if (!String.IsNullOrEmpty(BetweenBuyAndHoldString)) { //Console.WriteLine("购买的位置:" + BuyIdx); //不为空 if (!BetweenBuyAndHoldString.Contains("交易")) { //Console.WriteLine("购买...持有之间的内容:" + BetweenBuyAndHoldString); //不是交易对方,交易对手等字 if (BetweenBuyAndHoldString.EndsWith("全体股东")) { BetweenBuyAndHoldString = BetweenBuyAndHoldString.Substring(0, BetweenBuyAndHoldString.Length - 4); } if (BetweenBuyAndHoldString.EndsWith("股东")) { BetweenBuyAndHoldString = BetweenBuyAndHoldString.Substring(0, BetweenBuyAndHoldString.Length - 2); } Rtn = GetCompanys(BetweenBuyAndHoldString); if (Rtn.Count != 0) { return(Rtn); } } } //向海纳川发行股份及支付现金 //上市公司因向众泰汽车股东购买其合计持有的众泰汽车100%股权而向其发行的股份 //三七互娱以发行股份及支付现金的方式向中汇影视全体股东购买其合计持有的中汇影视100%的股份、 //向杨东迈、谌维和网众投资购买其合计持有的墨鹍科技68.43%的股权 //注意字符串顺序! //立思辰拟以向特定对象发行股份的方式 //向自然人张敏、陈勇、朱卫、潘凤岩、施劲松购买其所持有的友网科技合计100%股权 //这里必须要能够正确断句,且尽可能减少错误 var ToIdx = SingleSentence.IndexOf("向"); //这里拟向也是没有问题的 var ToIdx2nd = -1; if (ToIdx != -1 && (ToIdx + 1) != SingleSentence.Length) { ToIdx2nd = SingleSentence.IndexOf("向", ToIdx + 1); } if (ToIdx2nd != -1) { //是否需要将ToIdx2nd变为ToIdx var k = SingleSentence.IndexOf("发行"); if (k > ToIdx && k < ToIdx2nd) { ToIdx = ToIdx2nd; } } var BuyMethodList = new string[] { "发行股份及支付现金", "非公开发行股份", "定向发行股份", "发行股份", "支付现金", "发行A股股份" }; foreach (var BuyMethod in BuyMethodList) { var PublishStockAndPayCashIdx = SingleSentence.IndexOf(BuyMethod); if (ToIdx != -1 && PublishStockAndPayCashIdx != -1 && PublishStockAndPayCashIdx > ToIdx) { var ToTarget = SingleSentence.Substring(ToIdx + 1, PublishStockAndPayCashIdx - ToIdx - 1); if (ToTarget.EndsWith("全体股东")) { ToTarget = ToTarget.Substring(0, ToTarget.Length - 4); } if (ToTarget.EndsWith("股东")) { ToTarget = ToTarget.Substring(0, ToTarget.Length - 2); } //以...方式 if (ToTarget.EndsWith("以") && SingleSentence.Contains("方式")) { ToTarget = ToTarget.Substring(0, ToTarget.Length - 1); } //Console.WriteLine("向...发行股份及支付现金:" + ToTarget); Rtn = GetCompanys(ToTarget); if (Rtn.Count != 0) { return(Rtn); } } } //没有支付手段,直接购买的情况 if (ToIdx != -1 && BuyIdx != -1 && BuyIdx > ToIdx) { var ToTarget = SingleSentence.Substring(ToIdx + 1, BuyIdx - ToIdx - 1); if (ToTarget.EndsWith("全体股东")) { ToTarget = ToTarget.Substring(0, ToTarget.Length - 4); } if (ToTarget.EndsWith("股东")) { ToTarget = ToTarget.Substring(0, ToTarget.Length - 2); } //Console.WriteLine("向...购买:" + ToTarget); Rtn = GetCompanys(ToTarget); if (Rtn.Count != 0) { return(Rtn); } } //与王悦等11名交易对方持有的恺英网络100%股权中的等值部分进行资产置换 //持有的句型可能嵌套在与...置换之间 var WithIdx = SingleSentence.IndexOf("与"); var ReplaceIdx = SingleSentence.IndexOf("置换"); if (WithIdx != -1 && ReplaceIdx != -1) { SingleSentence = SingleSentence.Substring(WithIdx + 1); } //合计持有,所持有,持有,这样的顺序去判定 var HoldWordList = new string[] { "共计持有", "合计持有", "以其持有", "所持有", "持有" }; foreach (var hw in HoldWordList) { if (SingleSentence.IndexOf(hw) != -1) { var HoldTarget = Utility.GetStringBefore(SingleSentence, hw); //Console.WriteLine("....持有:" + HoldTarget); Rtn = GetCompanys(HoldTarget); if (Rtn.Count != 0) { return(Rtn); } } } if (!String.IsNullOrEmpty(BetweenBuyAndHoldString) && BetweenBuyAndHoldString.Equals("其")) { //Console.WriteLine("特殊指代:" + BetweenBuyAndHoldString); //以.......为特定对象 var AdIdx = PreviewSentence.IndexOf("以"); var SpecalIdx = PreviewSentence.IndexOf("特定对象"); if (AdIdx != -1 && SpecalIdx != -1 && AdIdx < SpecalIdx) { var ToTarget = PreviewSentence.Substring(AdIdx + 1, SpecalIdx - AdIdx - 1); if (ToTarget.EndsWith("为")) { ToTarget = ToTarget.Substring(0, ToTarget.Length - 1); } Rtn = GetCompanys(ToTarget); } } PreviewSentence = SingleSentence; } } } return(Rtn); }
public override List <RecordBase> Extract() { InitTableRules(); GetPersonList(); //是否在释义表中存在交易对手信息 foreach (var item in ExplainDict) { var keys = item.Key.Split(Utility.SplitChar); var keys2 = item.Key.Split(new char[] { '/', '/' }); if (keys.Length == 1 && keys2.Length > 1) { keys = keys2; } foreach (var k in keys) { if (k.Contains("交易对方")) { Console.WriteLine("交易对方条目:" + k); } } } //HTML结构 foreach (var item in root.Children) { //var title = item.Content.Normalize().NormalizeTextResult(); //Console.WriteLine(item.PositionId + ":" + title.Substring(0, Math.Min(20, title.Length))); } var list = new List <RecordBase>(); var targets = getTargetListFromExplainTable().Distinct().ToList(); if (targets.Count == 0) { return(list); } var EvaluateMethodLoc = LocateProperty.LocateCustomerWord(root, ReOrganizationTraning.EvaluateMethodList, "评估法"); this.CustomerList = EvaluateMethodLoc; nermap.Anlayze(this); foreach (var item in targets) { if (item.Target.Contains("发行")) { continue; } if (item.Target.Contains("置换")) { continue; } if (item.Target.Contains("置出")) { continue; } if (item.Target.Contains("置入")) { continue; } if (item.Target.Contains("本次")) { continue; } if (item.Target.Contains("出售")) { continue; } if (item.Target.Contains("购买")) { continue; } var reorgRec = new ReorganizationRec(); reorgRec.Id = this.Id; reorgRec.Target = item.Target; reorgRec.TargetCompany = item.Comany.TrimEnd("合计".ToArray()); //<1>XXXX公司的的对应 Regex r = new Regex(@"\<(\d+)\>"); if (r.IsMatch(reorgRec.TargetCompany)) { Console.WriteLine("Before Trim:" + reorgRec.TargetCompany); reorgRec.TargetCompany = r.Replace(reorgRec.TargetCompany, ""); Console.WriteLine("After Trim:" + reorgRec.TargetCompany); } if (reorgRec.TargetCompany.Equals("本公司")) { continue; } if (reorgRec.TargetCompany.Equals("标的公司")) { continue; } //标的公司的简称填补 foreach (var dict in ExplainDict) { var keys = dict.Key.Split(Utility.SplitChar); var keys2 = dict.Key.Split(new char[] { '/', '/' }); var isHit = false; if (keys.Length == 1 && keys2.Length > 1) { keys = keys2; } foreach (var key in keys) { if (key.Contains("标的")) { continue; } if (key.Contains("目标")) { continue; } if (key.Equals("上市公司")) { continue; } if (key.Equals("本公司")) { continue; } if (key.Equals(reorgRec.TargetCompany) || dict.Value.Equals(reorgRec.TargetCompany)) { var tempKey = key; if (tempKey.Contains(",")) { tempKey = Utility.GetStringBefore(tempKey, ","); } var tempvalue = dict.Value; if (tempvalue.Contains(",")) { tempvalue = Utility.GetStringBefore(tempvalue, ","); } reorgRec.TargetCompanyFullName = tempvalue; reorgRec.TargetCompanyShortName = tempKey; isHit = true; break; } } if (isHit) { break; } } var TradeCompany = getTradeCompany(reorgRec); reorgRec.TradeCompany = String.Join(Utility.SplitChar, TradeCompany); //根据各种模板规则获得的交易对手 var xTradeList = getTradeCompanyByKeyWord(reorgRec); if (xTradeList.Count == 1) { var xTrade = ""; xTrade = xTradeList.First(); //单个结果的情况下 if (!String.IsNullOrEmpty(xTrade)) { foreach (var dict in ExplainDict) { var keys = dict.Key.Split(Utility.SplitChar); var keys2 = dict.Key.Split(new char[] { '/', '/' }); var isHit = false; if (keys.Length == 1 && keys2.Length > 1) { keys = keys2; } foreach (var key in keys) { if (key.Contains("标的")) { continue; } if (key.Contains("目标")) { continue; } if (key.Equals("上市公司")) { continue; } if (key.Equals("本公司")) { continue; } if (key.Equals(xTrade) || dict.Value.Equals(xTrade)) { var tempKey = key; if (tempKey.Contains(",")) { tempKey = Utility.GetStringBefore(tempKey, ","); } var tempvalue = dict.Value; if (tempvalue.Contains(",")) { tempvalue = Utility.GetStringBefore(tempvalue, ","); } reorgRec.TradeCompanyFullName = tempvalue; reorgRec.TradeCompanyShortName = tempKey; isHit = true; break; } } if (isHit) { break; } } reorgRec.TradeCompany = xTrade; if (!String.IsNullOrEmpty(reorgRec.TradeCompanyFullName) && !String.IsNullOrEmpty(reorgRec.TradeCompanyShortName)) { reorgRec.TradeCompany = reorgRec.TradeCompanyFullName + "|" + reorgRec.TradeCompanyShortName; } } } if (xTradeList.Count > 1) { reorgRec.TradeCompany = String.Join(Utility.SplitChar, xTradeList); } //释义表中获得的交易对手,进行必要的订正 if (string.IsNullOrEmpty(reorgRec.TradeCompany)) { var xTradeListExplain = getTradeCompanyByExplain(reorgRec); foreach (var tradeItem in xTradeListExplain) { //交易公司的简称填补 foreach (var dict in ExplainDict) { var keys = dict.Key.Split(Utility.SplitChar); var keys2 = dict.Key.Split(new char[] { '/', '/' }); var isHit = false; if (keys.Length == 1 && keys2.Length > 1) { keys = keys2; } foreach (var key in keys) { if (key.Contains("标的")) { continue; } if (key.Contains("目标")) { continue; } if (key.Equals("上市公司")) { continue; } if (key.Equals("本公司")) { continue; } if (key.Equals(tradeItem.Value) || dict.Value.Equals(tradeItem.Value)) { var tempKey = key; if (tempKey.Contains(",")) { tempKey = Utility.GetStringBefore(tempKey, ","); } var tempvalue = dict.Value; if (tempvalue.Contains(",")) { tempvalue = Utility.GetStringBefore(tempvalue, ","); } reorgRec.TradeCompanyFullName = tempvalue; if (!tempKey.Equals("交易对方") && !tempKey.Equals("发行对象")) { reorgRec.TradeCompanyShortName = tempKey; } isHit = true; break; } } if (isHit) { break; } } reorgRec.TradeCompany = tradeItem.Value; if (!String.IsNullOrEmpty(reorgRec.TradeCompanyFullName) && !String.IsNullOrEmpty(reorgRec.TradeCompanyShortName)) { reorgRec.TradeCompany = reorgRec.TradeCompanyFullName + "|" + reorgRec.TradeCompanyShortName; } else { //中建六局及中建八局 var tradeArray = tradeItem.Value.Split(Utility.SplitChar).ToList(); var last = tradeArray.Last(); if (last.Contains("以及")) { tradeArray.RemoveAt(tradeArray.Count - 1); tradeArray.Add(Utility.GetStringBefore(last, "以及")); tradeArray.Add(Utility.GetStringAfter(last, "以及")); reorgRec.TradeCompany = String.Join(Utility.SplitChar, tradeArray); } else { if (last.Contains("及")) { tradeArray.RemoveAt(tradeArray.Count - 1); tradeArray.Add(Utility.GetStringBefore(last, "及")); tradeArray.Add(Utility.GetStringAfter(last, "及")); reorgRec.TradeCompany = String.Join(Utility.SplitChar, tradeArray); } if (last.Contains("和")) { tradeArray.RemoveAt(tradeArray.Count - 1); tradeArray.Add(Utility.GetStringBefore(last, "和")); tradeArray.Add(Utility.GetStringAfter(last, "和")); reorgRec.TradeCompany = String.Join(Utility.SplitChar, tradeArray); } } } Console.WriteLine("使用释义表的交易对手:" + tradeItem.Key + ":" + reorgRec.TradeCompany); break; } } //交易对手最后整型 NormalizeTradeCompany(reorgRec); var Price = GetPrice(reorgRec, targets.Count == 1); reorgRec.Price = MoneyUtility.Format(Price.MoneyAmount, String.Empty); reorgRec.EvaluateMethod = getEvaluateMethod(reorgRec, targets.Count == 1); if (!String.IsNullOrEmpty(reorgRec.TargetCompanyFullName) && !String.IsNullOrEmpty(reorgRec.TargetCompanyShortName)) { reorgRec.TargetCompany = reorgRec.TargetCompanyFullName + "|" + reorgRec.TargetCompanyShortName; } if (String.IsNullOrEmpty(reorgRec.TargetCompany) || String.IsNullOrEmpty(reorgRec.Target)) { continue; } //相同记录合并 var UnionKey = reorgRec.TargetCompany + reorgRec.Target; bool IsKeyExist = false; foreach (ReorganizationRec exist in list) { var existKey = exist.TargetCompany + exist.Target; if (UnionKey.Equals(existKey)) { IsKeyExist = true; break; } } if (!IsKeyExist) { list.Add(reorgRec); } } //价格或者评估表中出现过的(以下代码这里只是检证) if (PriceTable.Count != 0 && EvaluateTable.Count != 0 && PriceTable.Count == EvaluateTable.Count) { if (PriceTable.Count != list.Count) { Console.WriteLine(Id); foreach (var item in EvaluateTable) { Console.WriteLine("评估表:" + item[0].RawData.Replace(" ", "") + " Value:" + item[1].RawData); } foreach (var item in PriceTable) { Console.WriteLine("价格表:" + item[0].RawData.Replace(" ", "") + " Value:" + item[1].RawData); } foreach (ReorganizationRec item in list) { Console.WriteLine("抽出:" + item.TargetCompany + item.Target); } } } return(list); }
public override List <RecordBase> Extract() { InitTableRules(); var list = new List <RecordBase>(); var targets = getTargetListFromReplaceTable(); if (targets.Count == 0) { return(list); } var TradeCompany = getTradeCompany(targets); foreach (var item in targets) { var reorgRec = new ReorganizationRec(); reorgRec.Id = this.Id; reorgRec.Target = item.Target; reorgRec.TargetCompany = item.Comany; foreach (var tc in TradeCompany) { if (tc.TargetCompany == item.Comany) { reorgRec.TradeCompany = tc.TradeCompany; break; } } var Price = GetPrice(reorgRec); reorgRec.Price = MoneyUtility.Format(Price.MoneyAmount, String.Empty); reorgRec.EvaluateMethod = getEvaluateMethod(reorgRec); //最后才能进行 多选配置!!! foreach (var dict in ExplainDict) { var keys = dict.Key.Split(Utility.SplitChar); var keys2 = dict.Key.Split("/"); var isHit = false; if (keys.Length == 1 && keys2.Length > 1) { keys = keys2; } foreach (var key in keys) { if (key.Contains("标的")) { continue; } if (key.Contains("目标")) { continue; } if (key.Equals("上市公司")) { continue; } if (key.Equals("本公司")) { continue; } if (dict.Key.Equals(reorgRec.TargetCompany) || dict.Value.Equals(reorgRec.TargetCompany)) { var tempKey = key; if (tempKey.Contains(",")) { tempKey = Utility.GetStringBefore(tempKey, ","); } var tempvalue = dict.Value; if (tempvalue.Contains(",")) { tempvalue = Utility.GetStringBefore(tempvalue, ","); } reorgRec.TargetCompany = tempKey + "|" + tempvalue; isHit = true; break; } } if (isHit) { break; } } list.Add(reorgRec); } //需要在释义表中出现过的 if (PriceTable.Count != 0 && EvaluateTable.Count != 0 && PriceTable.Count == EvaluateTable.Count) { if (PriceTable.Count != list.Count) { Console.WriteLine(Id); foreach (var item in EvaluateTable) { Console.WriteLine("评估表:" + item[0].RawData.Replace(" ", "") + " Value:" + item[1].RawData); } foreach (var item in PriceTable) { Console.WriteLine("价格表:" + item[0].RawData.Replace(" ", "") + " Value:" + item[1].RawData); } foreach (ReorganizationRec item in list) { Console.WriteLine("抽出:" + item.TargetCompany + item.Target); } } } return(list); }