|
@@ -16,7 +16,7 @@ import (
|
|
|
|
|
|
const (
|
|
|
buyer_query_address = `{"query":{"bool":{"must":[{"term":{"buyer_name":"%s"}}]}},"size":1,"_source":["city","province","buyerclass"]}`
|
|
|
- buyerPortraitSearchSql = `{"query":{"bool":{"must":[%s]}},"aggs":{"year_bidamount":{"range":{"field":"jgtime","ranges":[%s]},"aggs":{"count":{"sum":{"field":"bidamount"}}}},"fail_count":{"filter":{"bool":{"must":[{"term":{"bidstatus":"流标"}}]}}},"winner_count":{"cardinality":{"field":"entidlist"}},"bidamount_count":{"sum":{"field":"bidamount"}},"moneyRange":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"moneyRangeValue":{"range":{"field":"bidamount","ranges":[%s]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"bidtypeData":{"filter":{"bool":{"must":{"terms":{"bidtype":["招标","邀标","询价","单一","竞价","竞谈"]}}}},"aggs":{"bidtype_group":{"terms":{"field":"bidtype"},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}}}},"bidamount_count":{"sum":{"field":"bidamount"}}}},"topScopeclassData":{"terms":{"field":"topscopeclass","size":12,"order":[{"bidamount_count":"desc"}]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"top_scopeclass_rate_time_avg":` + YearRate + `}},"allScopeclassData":` + YearRate + `,"topAgencyData":{"terms":{"field":"agency","size":10,"order":[{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}}}},"topWinner":{"terms":{"field":"entidlist","order":[{"count_bidamount":"desc"},{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}},"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"firstWinner":{"terms":{"field":"first_cooperation"}},"allWinnerList":{"terms":{"field":"entidlist","size":4000},"aggs":{"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":` + BaseRate + `}}},"size":0}`
|
|
|
+ buyerPortraitSearchSql = `{"query":{"bool":{"must":[%s]}},"aggs":{"year_bidamount":{"range":{"field":"jgtime","ranges":[%s]},"aggs":{"count":{"sum":{"field":"bidamount"}}}},"fail_count":{"filter":{"bool":{"must":[{"term":{"bidstatus":"流标"}}]}}},"winner_count":{"cardinality":{"field":"entidlist"}},"bidamount_count":{"sum":{"field":"bidamount"}},"moneyRange":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"moneyRangeValue":{"range":{"field":"bidamount","ranges":[%s]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"bidtypeData":{"filter":{"bool":{"must":{"terms":{"bidtype":["招标","邀标","询价","单一","竞价","竞谈"]}}}},"aggs":{"bidtype_group":{"terms":{"field":"bidtype"},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}}}},"bidamount_count":{"sum":{"field":"bidamount"}}}},"topScopeclassData":{"terms":{"field":"topscopeclass","size":12,"order":[{"bidamount_count":"desc"}]},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"top_scopeclass_rate_time_avg":` + YearRate + `}},"allScopeclassData":` + YearRate + `,"topAgencyData":{"terms":{"field":"agency","size":10,"order":[{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}}}},"topWinner":{"terms":{"field":"entidlist","order":[{"count_bidamount":"desc"},{"_count":"desc"},{"last_with_time":"desc"}]},"aggs":{"last_with_time":{"max":{"field":"jgtime"}},"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":{"filter":{"bool":{"must":{"range":{"project_rate":{"gte":0,"lte":0.6}}}}},"aggs":{"bidamount_count":{"sum":{"field":"bidamount"}},"budget_count":{"sum":{"field":"budget"}}}}}},"firstWinner":{"terms":{"field":"first_cooperation"}},"allWinnerList":{"terms":{"field":"entidlist","size":10000},"aggs":{"count_bidamount":{"sum":{"field":"bidamount"}},"avg_data":` + BaseRate + `}}},"size":0}`
|
|
|
queryTermByIdSql = `{"terms":{"_id":[%s]}}`
|
|
|
|
|
|
queryMustSql = `{"query":{"bool":{"must":[%s]}}}`
|
|
@@ -565,8 +565,17 @@ func GetWithEntPortraitData(listDataItf interface{}, province string, bidamountO
|
|
|
//根据注册资本聚合
|
|
|
var winnerIdList []string
|
|
|
allWinnerMap := map[string]AllWinner{}
|
|
|
+
|
|
|
+ capitalAggs := map[int][]string{} //注册资本
|
|
|
+ areaAggs := map[string][]string{} //地区
|
|
|
+ establishAggs := map[int][]string{} //成立日期
|
|
|
+ businessAggs := map[string][]string{} //企业标签
|
|
|
+
|
|
|
for _, winner := range *listData {
|
|
|
winnerIdList = append(winnerIdList, winner.WinnerId)
|
|
|
+ if winner.WinnerId == "" || winner.WinnerId == "-" {
|
|
|
+ businessAggs["其他"] = append(businessAggs["其他"], "-")
|
|
|
+ }
|
|
|
allWinnerMap[winner.WinnerId] = winner
|
|
|
}
|
|
|
tBegin := time.Now()
|
|
@@ -604,11 +613,6 @@ func GetWithEntPortraitData(listDataItf interface{}, province string, bidamountO
|
|
|
return nil, 0, errors.New("中标企业查询结果为空")
|
|
|
}
|
|
|
|
|
|
- capitalAggs := map[int][]string{} //注册资本
|
|
|
- areaAggs := map[string][]string{} //地区
|
|
|
- establishAggs := map[int][]string{} //成立日期
|
|
|
- businessAggs := map[string][]string{} //企业标签
|
|
|
-
|
|
|
for _, entMsg := range entMsgList {
|
|
|
if len(entMsg) < 2 {
|
|
|
continue
|
|
@@ -633,6 +637,8 @@ func GetWithEntPortraitData(listDataItf interface{}, province string, bidamountO
|
|
|
if businessStr := qutil.ObjToString(entMsg["tag_business"]); businessStr != "" {
|
|
|
firstTag := strings.Split(businessStr, ",")[0]
|
|
|
businessAggs[firstTag] = append(businessAggs[firstTag], companyId)
|
|
|
+ } else {
|
|
|
+ businessAggs["其他"] = append(businessAggs["其他"], companyId)
|
|
|
}
|
|
|
}
|
|
|
thisProvinceWinnerCount := 0
|