瀏覽代碼

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

maxiaoshan 5 年之前
父節點
當前提交
a76024f1e2
共有 3 個文件被更改,包括 48 次插入13 次删除
  1. 7 0
      src/jy/clear/tonumber.go
  2. 34 11
      src/jy/extract/extract.go
  3. 7 2
      src/jy/pretreated/analytable.go

+ 7 - 0
src/jy/clear/tonumber.go

@@ -3,9 +3,11 @@ package clear
 
 import (
 	"fmt"
+	"qfw/util"
 	"regexp"
 	"strconv"
 	"strings"
+	"unicode/utf8"
 )
 
 var contentUnit *regexp.Regexp //全文检索单位:万元
@@ -80,6 +82,11 @@ func ObjToFloat(data []interface{}) []interface{} {
 func ObjToMoney(data []interface{}) []interface{} {
 	isfindUnit := true
 	tmpstr :=(data)[0]
+	if utf8.RuneCountInString(util.ObjToString(tmpstr)) > 30 {
+		(data)[0] = 0
+		data = append(data, false)
+		return data
+	}
 	ret := capitalMoney(data)[0]
 	if ret.(float64) < float64(10000) || ret.(float64) > float64(50000000000) {
 		ret2, b := numMoney(data)

+ 34 - 11
src/jy/extract/extract.go

@@ -1617,23 +1617,46 @@ func AnalysisSaveResult(j, jf *ju.Job, e *ExtractTask) {
 			var tmpBidamount, tmpBudget float64
 			//s_winner逗号分隔拼接,分包中标人
 			var tmpstr,savewinner []string
-			//包预算,中标金额合并大于抽取就覆盖
+
 			for b, v := range j.PackageInfo {
 				if v["winner"]!= nil && v["winner"]!=""{
 					tmpstr = append(tmpstr,b)
 				}
-				if v["budget"] != nil {
-					tmpBudget += qu.Float64All(v["budget"])
+			}
+			//包预算,中标金额合并大于抽取就覆盖
+			if len(j.PackageInfo) >1{
+				//包数大于1累加
+				for _, v := range j.PackageInfo {
+					if v["budget"] != nil {
+						tmpBudget += qu.Float64All(v["budget"])
+					}
+					if v["bidamount"] != nil {
+						tmpBidamount += qu.Float64All(v["bidamount"])
+					}
 				}
-				if v["bidamount"] != nil {
-					tmpBidamount += qu.Float64All(v["bidamount"])
+				if qu.Float64All(tmp["budget"]) < tmpBudget {
+					tmp["budget"] = tmpBudget
+				}
+				if qu.Float64All(tmp["bidamount"]) < tmpBidamount {
+					tmp["bidamount"] = tmpBidamount
+				}
+			}else {
+				//包数等于1,tmp没有值取包里的值
+				if tmp["budget"] == nil || tmp["budget"] == 0 {
+					for _,v := range j.PackageInfo {
+						if v["budget"] != nil {
+							tmp["budget"] = v["budget"]
+						}
+					}
+
+				}
+				if tmp["bidamount"] == nil || tmp["bidamount"] == 0 {
+					for _,v := range j.PackageInfo {
+						if v["bidamount"] != nil {
+							tmp["bidamount"] = v["bidamount"]
+						}
+					}
 				}
-			}
-			if qu.Float64All(tmp["budget"]) < tmpBudget {
-				tmp["budget"] = tmpBudget
-			}
-			if qu.Float64All(tmp["bidamount"]) < tmpBidamount {
-				tmp["bidamount"] = tmpBidamount
 			}
 			//s_winner逗号分隔拼接,分包中标人
 			sort.Strings(tmpstr)

+ 7 - 2
src/jy/pretreated/analytable.go

@@ -71,6 +71,8 @@ var (
 	filter_zbje_k = regexp.MustCompile("(中标|成交|总|拦标|合同|供[应货]商|报)[\\p{Han}、]{0,6}(价|额|[大小]写|[万亿]?元).{0,4}$")
 	//简单判断金额
 	filter_zbje_jd = regexp.MustCompile("^[^(售|保证)]{0,4}(价|额).{0,4}$")
+	//预算金额
+	filter_ysje_jd = regexp.MustCompile("预算")
 	//且排队以下字眼的key
 	filter_zbje_kn = regexp.MustCompile("得分|打分|时间|业绩|须知|分|要求$")
 	//且值包含以下字眼
@@ -195,7 +197,11 @@ func CommonDataAnaly(k, tabletag, tabledesc string, v interface{}, isSite bool,
 			if filter_tag_zb.MatchString(tabletag) || filter_tag_zb.MatchString(tabledesc) {
 				//u.Debug(v1, k, "-----", filter_zbdw_jd.MatchString(k), filter_zbdw_v.MatchString(v1))
 				if filter_zbje_jd.MatchString(k) && !filter_zbje_kn.MatchString(k) && filter_zbje_v.MatchString(v1) {
-					kvTags["中标金额"] = append(kvTags["中标金额"], &u.Tag{Key: k, Value: v1, Weight: -100})
+					if filter_ysje_jd.MatchString(k){
+						kvTags["预算金额"] = append(kvTags["预算金额"], &u.Tag{Key: k, Value: v1, Weight: -100})
+					}else {
+						kvTags["中标金额"] = append(kvTags["中标金额"], &u.Tag{Key: k, Value: v1, Weight: -100})
+					}
 
 				} /*else if filter_zbdw_jd.MatchString(k) && filter_zbdw_v.MatchString(v1) {
 					k1 = append(k1, "中标单位")
@@ -2386,7 +2392,6 @@ func (tn *Table) assemblePackage(k1, v1, key string, isSite bool, codeSite strin
 			if bp.TableKV.KvTags[k3] == nil {
 				bp.TableKV.KvTags[k3] = append(bp.TableKV.KvTags[k3], v3...)
 			}
-			break//取第一个标签
 		}
 	}
 	k1 = regReplAllSpace.ReplaceAllString(k1, "")