Browse Source

Merge branch 'dev3.4' of http://192.168.3.207:10080/qmx/jy-data-extract into dev3.4

apple 5 years ago
parent
commit
5055e74c7f
3 changed files with 44 additions and 35 deletions
  1. 29 28
      src/jy/extract/extract.go
  2. 7 7
      src/jy/pretreated/analystep.go
  3. 8 0
      src/jy/pretreated/analytable.go

+ 29 - 28
src/jy/extract/extract.go

@@ -494,7 +494,6 @@ func (e *ExtractTask) ExtractDetail(j *ju.Job, isSite bool, codeSite string) {
 				//	tmp = ExtRegPre(tmp, j, v, e.TaskInfo)
 				//}
 				// log.Debug("抽取-前置规则", tmp)
-
 				//抽取-规则
 				ExtRuleCore(tmp, e, vc, j, isSite)
 				// log.Debug("抽取-规则", tmp)
@@ -1030,34 +1029,35 @@ func getKvByLuaFields(vc *RuleCore, j *ju.Job, et *ExtractTask) (map[string][]ma
 				})
 				return kvmap, false
 			}
-		} else if vc.Field == "winner" {
-			for _, v := range j.Winnerorder {
-				kvmap[vc.Field] = append(kvmap[vc.Field], map[string]interface{}{
-					"code":        "winnerorder",
-					"field":       vc.Field,
-					"ruletext":    "中标候选人",
-					"extfrom":     vc.ExtFrom,
-					"sourcevalue": "中标候选人",
-					"value":       v["entname"],
-					"type":        "winnerorder",
-					"matchtype":   "winnerorder",
-				})
-			}
-			//候选人中标单位
-			if entname := j.Winnerorder[0]["entname"]; entname != nil {
-				kvmap[vc.Field] = append(kvmap[vc.Field], map[string]interface{}{
-					"code":        "CL_中标候选人",
-					"field":       vc.Field,
-					"ruletext":    "中标候选人",
-					"extfrom":     vc.ExtFrom,
-					"sourcevalue": "中标候选人",
-					"value":       entname,
-					"type":        "winnerorder",
-					"matchtype":   "winnerorder",
-				})
-				return kvmap, false
-			}
 		}
+		//else if vc.Field == "winner" {
+		//	for _, v := range j.Winnerorder {
+		//		kvmap[vc.Field] = append(kvmap[vc.Field], map[string]interface{}{
+		//			"code":        "winnerorder",
+		//			"field":       vc.Field,
+		//			"ruletext":    "中标候选人",
+		//			"extfrom":     vc.ExtFrom,
+		//			"sourcevalue": "中标候选人",
+		//			"value":       v["entname"],
+		//			"type":        "winnerorder",
+		//			"matchtype":   "winnerorder",
+		//		})
+		//	}
+		//	//候选人中标单位
+		//	if entname := j.Winnerorder[0]["entname"]; entname != nil {
+		//		kvmap[vc.Field] = append(kvmap[vc.Field], map[string]interface{}{
+		//			"code":        "CL_中标候选人",
+		//			"field":       vc.Field,
+		//			"ruletext":    "中标候选人",
+		//			"extfrom":     vc.ExtFrom,
+		//			"sourcevalue": "中标候选人",
+		//			"value":       entname,
+		//			"type":        "winnerorder",
+		//			"matchtype":   "winnerorder",
+		//		})
+		//		return kvmap, false
+		//	}
+		//}
 	}
 	for fieldname, field := range vc.LFields {
 		if field != vc.Field {
@@ -1516,6 +1516,7 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
 		auxinfo := auxInfo(j)
 		//从排序结果中取值
 		tmp := map[string]interface{}{} //抽取值
+		tmp["jsondata"] = j.Jsondata
 		tmp["fieldall"] = auxinfo
 		for _, val := range result {
 			for _, v := range val { //取第一个非负数,项目名称除外

+ 7 - 7
src/jy/pretreated/analystep.go

@@ -37,11 +37,11 @@ func AnalyStart(job *util.Job, isSite bool, codeSite string) {
 			if len([]rune(bl.Text)) > 80 {
 				bl.Block, _ = DivideBlock(job.CategorySecond, bl.Text, 1, job.RuleBlock, isSite, codeSite)
 				for _, bl_bl := range bl.Block {
-					processTableInBlock(bl_bl, job, false, isSite, codeSite)
+					processTableInBlock(bl_bl, job,  isSite, codeSite)
 				}
 			}
 			FindProjectCode(bl.Text, job) //匹配项目编号
-			processTableInBlock(bl, job, true, isSite, codeSite)
+			processTableInBlock(bl, job, isSite, codeSite)
 			//新加 未分块table中未能解析到中标候选人,从正文中解析
 			if job.Winnerorder == nil || len(job.Winnerorder) == 0 {
 				bl.Winnerorder = winnerOrderEntity.Find(bl.Text, true, 1, isSite, codeSite)
@@ -159,7 +159,7 @@ func AnalyStart(job *util.Job, isSite bool, codeSite string) {
 	}
 }
 
-func processTableInBlock(bl *util.Block, job *util.Job, packageFlag, isSite bool, codeSite string) {
+func processTableInBlock(bl *util.Block, job *util.Job,  isSite bool, codeSite string) {
 	//块中再查找表格(块,处理完把值赋到块)
 	tabs, _ := ComputeConRatio(bl.Text, 2)
 	for _, tab := range tabs {
@@ -170,10 +170,10 @@ func processTableInBlock(bl *util.Block, job *util.Job, packageFlag, isSite bool
 		}
 		//添加标识:文本中有table
 		tabres := AnalyTableV2(tab, job.Category, tmptag, tab.Text(), 2, job.SourceMid, job.RuleBlock, isSite, codeSite) //解析表格入口 返回:汇总表格对象
-		if packageFlag {
-			tabres.PackageMap = nil
-			tabres.IsMultiPackage = false
-		}
+		//if packageFlag {
+		//	tabres.PackageMap = nil
+		//	tabres.IsMultiPackage = false
+		//}
 		processTableResult(tabres, bl, job, isSite, codeSite) //分析table解析结果
 		if bl.Title == "" && tabres.BlockTag != "" {
 			bl.Title = tabres.BlockTag

+ 8 - 0
src/jy/pretreated/analytable.go

@@ -415,6 +415,14 @@ func (table *Table) sortKVArr(as *SortMap, isSite bool, codeSite string) {
 
 										}
 									}
+								}else if kv == "预算"{
+									if strings.Contains(k,"万元"){
+										for vsk, vsv := range vs {
+											if !strings.Contains(vsv,"万元"){
+												vs[vsk] = vsv+"万元"
+											}
+										}
+									}
 								}
 							}
 						} else {