fengweiqiang 4 년 전
부모
커밋
0918d96e6f
2개의 변경된 파일144개의 추가작업 그리고 3개의 파일을 삭제
  1. 42 3
      src/jy/extract/extract.go
  2. 102 0
      src/res/fieldscore.json

+ 42 - 3
src/jy/extract/extract.go

@@ -1248,16 +1248,48 @@ func getKvByLuaFields(vc *RuleCore, j *ju.Job, et *ExtractTask) (map[string][]ma
 		if field != vc.Field {
 			continue
 		}
-		extractFromKv(field, fieldname, j.Block, vc, kvmap)
+		extractFromKv(field, fieldname, j.Block, vc, kvmap, j.Category)
 	}
 	AddExtLog("extract", j.SourceMid, nil, kvmap, &RegLuaInfo{Field: vc.Field}, et.TaskInfo) //抽取日志
 	return kvmap, true
 }
 
-func extractFromKv(field, fieldname string, blocks []*ju.Block, vc *RuleCore, kvmap map[string][]map[string]interface{}) {
+func extractFromKv(field, fieldname string, blocks []*ju.Block, vc *RuleCore, kvmap map[string][]map[string]interface{}, Category string) () {
 	//qu.Debug("fieldname+++", fieldname)
 	for _, bl := range blocks {
 		tp := ""
+		if strings.Contains(bl.Title, "保证金") && (field == "bid_bond" || field == "contract_bond") {
+			if text := ju.TrimLRSpace(bl.Text, ""); text != "" {
+				if Category == "招标" || Category == "拟建" || Category == "预告" {
+					kvmap[field] = append(kvmap[field], map[string]interface{}{
+						"code":        "CL_块内容",
+						"field":       field,
+						"ruletext":    "投标保证金",
+						"extfrom":     "投标保证金_块内容",
+						"sourcevalue": bl.Text,
+						"value":       text,
+						"type":        "投标保证金_块内容",
+						"matchtype":   "tag_string",
+						"blocktag":    bl.Classify,
+						"weight":      0,
+					})
+				} else if Category == "结果" {
+					kvmap[field] = append(kvmap[field], map[string]interface{}{
+						"code":        "CL_",
+						"field":       field,
+						"ruletext":    "履约保证金",
+						"extfrom":     "履约保证金_块内容",
+						"sourcevalue": bl.Text,
+						"value":       text,
+						"type":        "履约保证金_块内容",
+						"matchtype":   "tag_string",
+						"blocktag":    bl.Classify,
+						"weight":      0,
+					})
+				}
+			}
+			return
+		}
 		for k, v := range []*ju.JobKv{bl.ColonKV, bl.SpaceKV, bl.TableKV} {
 			if k == 0 {
 				tp = "colon"
@@ -1291,7 +1323,7 @@ func extractFromKv(field, fieldname string, blocks []*ju.Block, vc *RuleCore, kv
 			}
 		}
 		if len(kvmap[field]) == 0 {
-			extractFromKv(field, fieldname, bl.Block, vc, kvmap)
+			extractFromKv(field, fieldname, bl.Block, vc, kvmap, Category)
 		}
 	}
 }
@@ -2102,6 +2134,13 @@ func checkFields(tmp map[string]interface{}) map[string]interface{} {
 		delete(tmp, "supervisorrate")
 	}
 	for k, v := range tmp {
+		if k == "contract_guarantee" || k == "bid_guarantee" {
+			if len(fmt.Sprint(v)) > 0 {
+				tmp[k] = true
+			} else {
+				delete(tmp, k)
+			}
+		}
 		if v == "" || len(strings.TrimSpace(fmt.Sprint(v))) == 0 || strings.Contains(fmt.Sprint(v), "**") {
 			delete(tmp, k)
 		}

+ 102 - 0
src/res/fieldscore.json

@@ -873,5 +873,107 @@
                 ]
             }
         ]
+    },
+    "bid_bond": {
+        "type": "string",
+        "positivewords": [
+            {
+                "describe": "包含关键字",
+                "regstr": "(交纳|投标|金额)",
+                "score": 3
+            }
+        ],
+        "negativewords": [
+            {
+                "describe": "包含负分",
+                "regstr": "(详见|test|null|公告|原因|测试|未知|收费|标注|流标|不满?足|终止原因|([::]|帐号|申请表|修改|清单|变更|公告|凭证|缴纳|澄清|答疑)$)",
+                "score": -8
+            }
+        ],
+        "length": [
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    0,
+                    7,
+                    -5
+                ]
+            },
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    7,
+                    20,
+                    2
+                ]
+            },
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    20,
+                    500,
+                    4
+                ]
+            },
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    500,
+                    -1,
+                    -10
+                ]
+            }
+        ]
+    },
+    "contract_guarantee": {
+        "type": "string",
+        "positivewords": [
+            {
+                "describe": "包含关键字",
+                "regstr": "(履约保证金额?|合同履约金)",
+                "score": 3
+            }
+        ],
+        "negativewords": [
+            {
+                "describe": "包含负分",
+                "regstr": "(投标(保证|担保)金|详见|test|null|公告|原因|测试|未知|收费|标注|流标|不满?足|终止原因|([::]|帐号|申请表|修改|清单|变更|公告|凭证|缴纳|澄清|答疑)$)",
+                "score": -8
+            }
+        ],
+        "length": [
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    0,
+                    7,
+                    -5
+                ]
+            },
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    7,
+                    20,
+                    2
+                ]
+            },
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    20,
+                    500,
+                    4
+                ]
+            },
+            {
+                "describe": "[gt,lte,score]",
+                "range": [
+                    500,
+                    -1,
+                    -10
+                ]
+            }
+        ]
     }
 }