fengweiqiang hace 5 años
padre
commit
20cbcfb92f
Se han modificado 1 ficheros con 17 adiciones y 8 borrados
  1. 17 8
      src/jy/pretreated/analystep.go

+ 17 - 8
src/jy/pretreated/analystep.go

@@ -37,7 +37,7 @@ 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,  isSite, codeSite)
+					processTableInBlock(bl_bl, job, isSite, codeSite)
 				}
 			}
 			FindProjectCode(bl.Text, job) //匹配项目编号
@@ -96,7 +96,7 @@ func AnalyStart(job *util.Job, isSite bool, codeSite string) {
 						tmpw := 0
 						if bl.TableKV != nil {
 							for kk, v := range bl.TableKV.KvTags {
-								if strings.Contains(kk, "中标候选人") && WinnerOrderStr.MatchString(kk){
+								if strings.Contains(kk, "中标候选人") && WinnerOrderStr.MatchString(kk) {
 									for _, vv := range v {
 										if winbs[vv.Value] {
 											continue
@@ -115,7 +115,7 @@ func AnalyStart(job *util.Job, isSite bool, codeSite string) {
 						}
 						if bl.SpaceKV != nil {
 							for kk, v := range bl.SpaceKV.KvTags {
-								if strings.Contains(kk, "中标候选人") && WinnerOrderStr.MatchString(kk){
+								if strings.Contains(kk, "中标候选人") && WinnerOrderStr.MatchString(kk) {
 									for _, vv := range v {
 										if winbs[vv.Value] {
 											continue
@@ -134,7 +134,7 @@ func AnalyStart(job *util.Job, isSite bool, codeSite string) {
 						}
 						if bl.ColonKV != nil {
 							for kk, v := range bl.ColonKV.KvTags {
-								if strings.Contains(kk, "中标候选人") && WinnerOrderStr.MatchString(kk){
+								if strings.Contains(kk, "中标候选人") && WinnerOrderStr.MatchString(kk) {
 									for _, vv := range v {
 										if winbs[vv.Value] {
 											continue
@@ -159,7 +159,7 @@ func AnalyStart(job *util.Job, isSite bool, codeSite string) {
 	}
 }
 
-func processTableInBlock(bl *util.Block, job *util.Job,  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 {
@@ -283,19 +283,28 @@ func processTableResult(tabres *TableResult, block *util.Block, job *util.Job, i
 			tablePackage[v] = blockPackage
 		}
 	}
+	tmpWins := make(map[string]int)
+	for _, v := range job.Winnerorder {
+		if v["entname"] != nil && v["entname"] != "" {
+			tmpWins[v["entname"].(string)] = v["sort"].(int)
+		}
+	}
 	//处理中标人排序
 	wror := []map[string]interface{}{}
-	for i, v := range tabres.WinnerOrder {
+	for _, v := range tabres.WinnerOrder {
 		entName, _ := v["entname"].(string)
 		v["entname"] = winnerOrderEntity.clear("中标单位", entName)
 		if price, ok := v["price"].(string); ok {
 			v["price"] = winnerOrderEntity.clear("中标金额", price)
 		}
-		v["type"] = i
+		v["type"] = len(job.Winnerorder)
+		if tmpWins[v["entname"].(string)] == v["sort"].(int) && v["price"] == nil {
+			continue
+		}
 		wror = append(wror, v)
 	}
 	if len(wror) > 0 {
-		job.Winnerorder = wror
+		job.Winnerorder = append(job.Winnerorder, wror...)
 	}
 	//分包
 	if len(tablePackage) > 0 {