|
@@ -28,17 +28,25 @@ var (
|
|
numberReg = regexp.MustCompile("[一二三四五六七八九十0-9]+")
|
|
numberReg = regexp.MustCompile("[一二三四五六七八九十0-9]+")
|
|
numberReg2 = regexp.MustCompile("[\\d一二三四五六七八九十.,,]+")
|
|
numberReg2 = regexp.MustCompile("[\\d一二三四五六七八九十.,,]+")
|
|
thisNumberReg = regexp.MustCompile("第" + numberReg.String())
|
|
thisNumberReg = regexp.MustCompile("第" + numberReg.String())
|
|
- winnerReg0 = regexp.MustCompile("(中标候选人第\\d名)")
|
|
|
|
|
|
+ winnerReg0 = regexp.MustCompile("(中标候选人第\\d名|第[0-9一二三四五](中选|中标|成交)候选人|[第|弟][0-9一二三四五]中标人|中标人[1-9])")
|
|
winnerReg1 = regexp.MustCompile("(^|[^为])(【?(推荐)?第[一二三四五六七八九十1-9]+(合格|名|包|标段)?】?([候|侯]选)?(入围|备选|成交|中[标|选])人?([((]成交[))])?([候|侯]选|排序)?(人(单位)?|供[应货]商|单位|机构)(名称)?为?)($|[^,;;。,])")
|
|
winnerReg1 = regexp.MustCompile("(^|[^为])(【?(推荐)?第[一二三四五六七八九十1-9]+(合格|名|包|标段)?】?([候|侯]选)?(入围|备选|成交|中[标|选])人?([((]成交[))])?([候|侯]选|排序)?(人(单位)?|供[应货]商|单位|机构)(名称)?为?)($|[^,;;。,])")
|
|
- winnerReg2 = regexp.MustCompile("(排名第[一二三四五六七八九十1-9]+|第[一二三四五六七八九十1-9]+(中标)?[候|侯]选人|中标候选人排名[:]\\d)")
|
|
|
|
|
|
+ winnerReg2 = regexp.MustCompile("(排名第[一二三四五六七八九十1-9]+|[第|弟][一二三四五六七八九十1-9]+(中标|中选)?[候|侯]选人|中标候选人排名[:]\\d)")
|
|
//winnerReg2 = regexp.MustCompile("(第[一二三四五六七八九十1-9]+(候|侯)选人)")
|
|
//winnerReg2 = regexp.MustCompile("(第[一二三四五六七八九十1-9]+(候|侯)选人)")
|
|
- winnerReg3 = regexp.MustCompile("((中标候选人)?第[一二三四五六七八九十1-9]+名)")
|
|
|
|
|
|
+ winnerReg3 = regexp.MustCompile("((中标候选人)?第[一二三四五六七八九十1-9]+名)|()")
|
|
winnerReg4 = regexp.MustCompile("((确认|推荐|评审|排[名|序])[为::]+|(由高到低排序前.名|公示下列内容|(确定|推荐)的?中[标|选]候选人|\n中[标|选]候选.{1,3}\\s*\n|\n(中[标|选]候选.{1,3}[::\u3000\u2003\u00a0\\s]|成交候选供应商)|(排[名|序]|公[示|告]|具体|推荐|结果(公示)?|中[标|选]候选人.{0,2})如下|[一二三四五六七八九十\\d]+、(中[标|选]候选[^\n::]{1,8}|.{0,8}(成交|结果)信息|成交[^\n::]{2,8}))[为::]?)")
|
|
winnerReg4 = regexp.MustCompile("((确认|推荐|评审|排[名|序])[为::]+|(由高到低排序前.名|公示下列内容|(确定|推荐)的?中[标|选]候选人|\n中[标|选]候选.{1,3}\\s*\n|\n(中[标|选]候选.{1,3}[::\u3000\u2003\u00a0\\s]|成交候选供应商)|(排[名|序]|公[示|告]|具体|推荐|结果(公示)?|中[标|选]候选人.{0,2})如下|[一二三四五六七八九十\\d]+、(中[标|选]候选[^\n::]{1,8}|.{0,8}(成交|结果)信息|成交[^\n::]{2,8}))[为::]?)")
|
|
winnerReg5 = regexp.MustCompile("([^,;;。,、\n投标人]+?)(为?)(第[一二三四五六七八九十1-9]+(成交|中标)?([候|侯]选(人|供应商|单位|机构)|名)|排名第[一二三四五六七八九十1-9]+)([,;;。,、]|\\s+\n)")
|
|
winnerReg5 = regexp.MustCompile("([^,;;。,、\n投标人]+?)(为?)(第[一二三四五六七八九十1-9]+(成交|中标)?([候|侯]选(人|供应商|单位|机构)|名)|排名第[一二三四五六七八九十1-9]+)([,;;。,、]|\\s+\n)")
|
|
winnerReg6 = regexp.MustCompile("(^(排名)?第[一二三四五六七八九十1-9]+[名中标成交备选候人单位供应商]*)")
|
|
winnerReg6 = regexp.MustCompile("(^(排名)?第[一二三四五六七八九十1-9]+[名中标成交备选候人单位供应商]*)")
|
|
winnerReg7 = regexp.MustCompile("第[一二三四五六七八九十]{1}标段[::]")
|
|
winnerReg7 = regexp.MustCompile("第[一二三四五六七八九十]{1}标段[::]")
|
|
- winnerReg8 = regexp.MustCompile("(第[一二三四五六七八九十]中标候选人)[::]?\n(1)单位名称:(.*)\n(2)投标报价(含税):(.*)")
|
|
|
|
- winnerRegclear = regexp.MustCompile("(买方人员|经评审.*排名第[一二三四五六七八九十1-9]+)")
|
|
|
|
|
|
+ winnerReg8 = regexp.MustCompile("(第[一二三四五六七八九十]中选候选人)[::\\s]+?[((]1[))][\\s]+?(单位名称)[::]?(.*)[\\s]+?[((]2[))][\\s]+(参选报价|投标报价(含税))[::]?(.*)")
|
|
|
|
+ //winnerReg8 = regexp.MustCompile("(第[一二三四五六七八九十]中标候选人)[::]?\n(1)单位名称:(.*)\n(2)投标报价(含税):(.*)")
|
|
|
|
+ winnerReg9 = regexp.MustCompile("(第[一二三四五六七八九十][中选]?候选人|中标人[1-9])[::\\s]+?([\u4E00-\u9FA5]{4,20})([0-9\\.\\s万元]+)")
|
|
|
|
+ winnerReg10 = regexp.MustCompile("(第[一二三四五六七八九十]中标人)[::\\s]+?报价[¥]?([0-9\\.\\s万元]+)[;;]([\u4E00-\u9FA5]{4,20})")
|
|
|
|
+ winnerReg11 = regexp.MustCompile("([弟|第][一二三四五六七八九十]中[标|选]候选人)[::\\s]+?(单位名称|投标人名称)[::]?(.*)[\\s]+?(参选报价|投标报价[((]含税[))]|投标报价[((]元[))])[::]?(.*)")
|
|
|
|
+ winnerReg12 = regexp.MustCompile("(中[标|选]候选人[弟|第][一二三四五六七八九十0-9]名)[::\\s]+?(.*)[\\s,,]+?(投标报价)[::]?([0-9\\.\\s万元]+)")
|
|
|
|
+ winnerReg13 = regexp.MustCompile("([弟|第][一二三四五六七八九十0-9])\n(成交候选人|成交供应商)\n(.*)\n([0-9\\.\\s万元]+)")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+winnerRegclear = regexp.MustCompile("(买方人员|经评审.*排名第[一二三四五六七八九十1-9]+)")
|
|
colonEndReg = regexp.MustCompile("[::]$")
|
|
colonEndReg = regexp.MustCompile("[::]$")
|
|
toWarpReg = regexp.MustCompile("[,。,;;]+")
|
|
toWarpReg = regexp.MustCompile("[,。,;;]+")
|
|
findamountReg = regexp.MustCompile("[,。,;;\u3000\u2003\u00a0\\s]+")
|
|
findamountReg = regexp.MustCompile("[,。,;;\u3000\u2003\u00a0\\s]+")
|
|
@@ -61,21 +69,27 @@ var (
|
|
func (wo *WinnerOrderEntity) Find(text string, flag bool, from int, isSite bool, codeSite string) []map[string]interface{} {
|
|
func (wo *WinnerOrderEntity) Find(text string, flag bool, from int, isSite bool, codeSite string) []map[string]interface{} {
|
|
if clearSpace2.MatchString(text){
|
|
if clearSpace2.MatchString(text){
|
|
text = TextAfterRemoveTable(text)
|
|
text = TextAfterRemoveTable(text)
|
|
- }
|
|
|
|
|
|
+ }//评得分估|标的|班子成员|人员
|
|
text = winnerRegclear.ReplaceAllString(text,"")
|
|
text = winnerRegclear.ReplaceAllString(text,"")
|
|
if nswinnertabletag.MatchString(text) {
|
|
if nswinnertabletag.MatchString(text) {
|
|
return []map[string]interface{}{}
|
|
return []map[string]interface{}{}
|
|
}
|
|
}
|
|
text = winnerReg5.ReplaceAllString(text, "\n$3:$1\n")
|
|
text = winnerReg5.ReplaceAllString(text, "\n$3:$1\n")
|
|
- text = winnerReg8.ReplaceAllString(text,"\n${1}:${2}\n中标金额:${3}\n")
|
|
|
|
- /*
|
|
|
|
- "_id" : ObjectId("5c2c6f60a5cb26b9b7b62cd8")
|
|
|
|
|
|
+ text = winnerReg8.ReplaceAllString(text,"\n${1}:${3}\n中标金额:${5}\n")
|
|
|
|
+ text = winnerReg9.ReplaceAllString(text,"\n${1}:${2}\n中标金额:${3}\n")
|
|
|
|
+ text = winnerReg10.ReplaceAllString(text,"\n${1}:${3}\n中标金额:${2}\n")
|
|
|
|
+ text = winnerReg11.ReplaceAllString(text,"\n${1}:${3}\n中标金额:${5}\n")
|
|
|
|
+ text = winnerReg12.ReplaceAllString(text,"\n${1}:${2}\n中标金额:${4}\n")
|
|
|
|
+ text = winnerReg13.ReplaceAllString(text,"\n${1}${2}:${3}\n中标金额:${4}\n")
|
|
|
|
+
|
|
|
|
|
|
- 1 .第一中选候选人:
|
|
|
|
- (1) 单位名称:成都维诺信科技有限公司
|
|
|
|
- (2) 参选报价:522,00.00元
|
|
|
|
- (3) 质量:符合比选文件规定的质量标准
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ 第一候选人:河南冠嘉建设工程有限公司41.9450万元 合格 90日历天 孔祥子
|
|
|
|
+
|
|
|
|
+ 中标人名称 中标价格 中标份额(%)
|
|
|
|
+ 中标人1 山东益通安装有限公司 0.97元 55%
|
|
|
|
+ 中标人2 山东鸿华建筑安装工程有限公司 0.96元 45%
|
|
*/
|
|
*/
|
|
text = clearSpace1.ReplaceAllString(text, "") //清理(1) 单位名称:成都维诺信科技有限公司-->单位名称:成都维诺信科技有限公司
|
|
text = clearSpace1.ReplaceAllString(text, "") //清理(1) 单位名称:成都维诺信科技有限公司-->单位名称:成都维诺信科技有限公司
|
|
if strings.TrimSpace(text) == "" {
|
|
if strings.TrimSpace(text) == "" {
|
|
@@ -93,6 +107,7 @@ func (wo *WinnerOrderEntity) Find(text string, flag bool, from int, isSite bool,
|
|
}
|
|
}
|
|
if len(winners) == 0 {
|
|
if len(winners) == 0 {
|
|
if flag {
|
|
if flag {
|
|
|
|
+ //异常
|
|
winners = wo.findByReg(text, blocks, winnerReg3, from, isSite, codeSite)
|
|
winners = wo.findByReg(text, blocks, winnerReg3, from, isSite, codeSite)
|
|
} else {
|
|
} else {
|
|
indexs_4 := winnerReg4.Split(text, -1)
|
|
indexs_4 := winnerReg4.Split(text, -1)
|
|
@@ -139,12 +154,18 @@ func (wo *WinnerOrderEntity) getText(text string, blocks []string, reg_2 *regexp
|
|
for _, v := range array {
|
|
for _, v := range array {
|
|
var wrfg *WinnerFlag
|
|
var wrfg *WinnerFlag
|
|
if isWinnerReg1 {
|
|
if isWinnerReg1 {
|
|
|
|
+ if v[4]<0 || v[5]<0 {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
wrfg = &WinnerFlag{
|
|
wrfg = &WinnerFlag{
|
|
index: wo.toNumber(b_v[v[4]:v[5]], 0),
|
|
index: wo.toNumber(b_v[v[4]:v[5]], 0),
|
|
textStart: v[4],
|
|
textStart: v[4],
|
|
textEnd: v[5],
|
|
textEnd: v[5],
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
+ if v[2]<0 || v[3]<0 {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
wrfg = &WinnerFlag{
|
|
wrfg = &WinnerFlag{
|
|
index: wo.toNumber(b_v[v[2]:v[3]], 0),
|
|
index: wo.toNumber(b_v[v[2]:v[3]], 0),
|
|
textStart: v[2],
|
|
textStart: v[2],
|