|
@@ -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)
|
|
|
}
|