Kaynağa Gözat

wip:中标单位数量

wangshan 5 ay önce
ebeveyn
işleme
ca57b4a6b8
2 değiştirilmiş dosya ile 12 ekleme ve 5 silme
  1. 3 2
      marketanalysis/consts.go
  2. 9 3
      marketanalysis/marketanalysis.go

+ 3 - 2
marketanalysis/consts.go

@@ -16,13 +16,13 @@ const (
 	//时间分布统计
 	projectTimeDistribution = `"%s": {"range": { "field": "jgtime","ranges": [%s]},"aggs":{ "scale_amount": {"sum": {"field": "sortprice"}}, "scale_total": {"filter": {"match_all":{}}}}}`
 	//采购单位聚合查询
-	buyerProcurementScale = `"buyer_amount_distribution": {"terms": {"field": "buyer","order": [{"amount": "desc"}],"size":100000},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
+	buyerProcurementScale = `"buyer_amount_distribution": {"terms": {"field": "buyer","order": [{"amount": "desc"}],"size":%d},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}`
 	//采购单位top3(价格)buyer_sortprice
 	buyerSortprice = `"buyer_amount_top3": {"terms": {"field": "buyer","order": [{"buyer_amount": "desc"}],"size": %d},"aggs": {"buyer_amount": {"sum": {"field": "sortprice"}},"s_winner_top": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"buyer_winner_amount": "desc"}],"size": %d},"aggs": {"buyer_winner_amount": {"sum": {"field": "sortprice"}}}}}}`
 	//采购单位top3(数量)
 	buyerCount = `"buyer_count_top3": {"terms": {"field": "buyer","order": [{"buyer_count": "desc"}],"size": %d},"aggs": {"buyer_count": {"filter":{"match_all":{}}},"s_winner_top": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"buyer_winner_count": "desc"}],"size": %d},"aggs": { "buyer_winner_count": {"filter":{"match_all":{}}}}}}}`
 	//中标单位
-	winnerProcurementScale = `"winner_amount_distribution": {"filter": {"script": {"script": "doc['entidlist'].length == 1"}},"aggs": {"entidlist_terms": {"terms": {"field": "entidlist","order": {"amount": "desc"},"size": 100000},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}}}`
+	winnerProcurementScale = `"winner_amount_distribution": {"filter": {"script": {"script": "doc['entidlist'].length == 1"}},"aggs": {"entidlist_terms": {"terms": {"field": "entidlist","order": {"amount": "desc"},"size": %d},"aggs": {"amount": {"sum": {"field": "sortprice"}}}}}}`
 	//中标单位top3(价格)
 	winnerSortprice = `"winner_amount_top3": {"terms": {"field": "entidlist","exclude":["-"],"order": [{"s_winner_amount": "desc"}],"size": %d},"aggs": {"s_winner_amount": {"sum": {"field": "sortprice"}},"buyer_top": {"terms": {"field": "buyer","order": [{"buyer_winner_amount": "desc"}],"size": %d},"aggs": {"buyer_winner_amount": {"sum": {"field": "sortprice"}}}}}}`
 	//中标单位(数量)
@@ -67,6 +67,7 @@ const (
 	Top30                     = 30
 	Top50                     = 50
 	Top1000                   = 1000
+	BWDistribution            = 100000
 )
 
 var (

+ 9 - 3
marketanalysis/marketanalysis.go

@@ -30,9 +30,10 @@ var (
 	FieldsDetail      = `"purchasing","projectname.pname"`
 	Fields            = `"projectname.pname"`
 	BWCount           = Top1000
+	BWDCount          = BWDistribution
 )
 
-func MAInit(limit, timeOut, projectNumLimit, keyWordsCount, pCount, minKCount, maxPCount, bwc int, ptIndex, ptType string, fields []string) {
+func MAInit(limit, timeOut, projectNumLimit, keyWordsCount, pCount, minKCount, maxPCount, bwc, bwdc int, ptIndex, ptType string, fields []string) {
 	if limit == 0 {
 		limit = 5
 	}
@@ -77,6 +78,9 @@ func MAInit(limit, timeOut, projectNumLimit, keyWordsCount, pCount, minKCount, m
 	if bwc > 0 {
 		BWCount = bwc
 	}
+	if bwdc > 0 {
+		BWDCount = bwdc
+	}
 }
 
 // AnalysisRequestParam 接口原请求参数
@@ -1466,7 +1470,8 @@ func (a *AnalysisEntity) BuyerWinnerAnalysis() map[string]interface{} {
 		bc = fmt.Sprintf(buyerCount, BWCount, Top30)
 		bs = fmt.Sprintf(buyerSortprice, BWCount, Top30)
 	}
-	datas = append(datas, buyerProcurementScale, bc, bs)
+	bps := fmt.Sprintf(buyerProcurementScale, BWDCount)
+	datas = append(datas, bps, bc, bs)
 	//中标单位-规模分布
 	//winner_scalefmt := fmt.Sprintf(winner_procurement_scale, sortprice_str)
 
@@ -1477,7 +1482,8 @@ func (a *AnalysisEntity) BuyerWinnerAnalysis() map[string]interface{} {
 		wc = fmt.Sprintf(winnerCount, BWCount, Top30)
 		ws = fmt.Sprintf(winnerSortprice, BWCount, Top30)
 	}
-	datas = append(datas, winnerProcurementScale, wc, ws)
+	wps := fmt.Sprintf(winnerProcurementScale, BWDCount)
+	datas = append(datas, wps, wc, ws)
 	finalSql := fmt.Sprintf(a.GetCommonQuerySqlWithAggs(), strings.Join(datas, ","))
 	log.Printf("final PurchasingAnalysiseQuery sql: %s", finalSql)
 	t := time.Now()