123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- package main
- import (
- "fmt"
- "github.com/olivere/elastic/v7"
- "github.com/xuri/excelize/v2"
- util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
- "log"
- "strings"
- "time"
- )
- // lianTongData1 判断联通单一数据,后续是否有中标、成交
- func lianTongData1() {
- f, err := excelize.OpenFile("./2024.9.1-2024.12.1单一来源.xlsx")
- if err != nil {
- fmt.Println(err)
- return
- }
- defer func() {
- f.Save()
- if err := f.Close(); err != nil {
- fmt.Println(err)
- }
- }()
- //
- rows, err := f.GetRows("详细数据")
- if err != nil {
- fmt.Println(err)
- return
- }
- //85 项目数据
- MgoP := &mongodb.MongodbSim{
- MongodbAddr: "127.0.0.1:27080",
- //MongodbAddr: "172.17.4.85:27080",
- DbName: "qfw",
- Size: 10,
- Direct: true,
- }
- MgoP.InitPool()
- //
- se := util.SimpleEncrypt{Key: "topJYBX2019"}
- for i := 1; i < len(rows); i++ {
- if i%100 == 0 {
- log.Println("current:iiiiiiiiiiii", i)
- }
- //id := rows[i][19]
- id := se.DecodeString(strings.TrimSpace(rows[i][19]))
- where := map[string]interface{}{
- "ids": id,
- }
- p, _ := MgoP.FindOne("projectset_20230904", where)
- project := *p
- if list, ok := project["list"].([]interface{}); ok {
- for _, v := range list {
- if listData, ok := v.(map[string]interface{}); ok {
- if util.ObjToString(listData["subtype"]) == "中标" {
- f.SetCellValue("详细数据", fmt.Sprintf("%s%d", "U", i+1), "是")
- }
- if util.ObjToString(listData["subtype"]) == "成交" {
- f.SetCellValue("详细数据", fmt.Sprintf("%s%d", "V", i+1), "是")
- }
- }
- }
- }
- //if util.ObjToString(project["bidstatus"]) == "中标" {
- // f.SetCellValue("详细数据", fmt.Sprintf("%s%d", "U", i+1), "是")
- //}
- //if util.ObjToString(project["bidstatus"]) == "成交" {
- // f.SetCellValue("详细数据", fmt.Sprintf("%s%d", "V", i+1), "是")
- //}
- //if util.ObjToString(project["bidstatus"]) == "合同" {
- // f.SetCellValue("详细数据", fmt.Sprintf("%s%d", "W", i+1), "是")
- //}
- }
- log.Println("数据处理完毕")
- }
- // lianTongShouLu1 判断联通数据是否收录,是否推送
- func lianTongShouLu1() {
- //2024-12-23,赵慧磊 联通需求
- f, err := excelize.OpenFile("./省分新增标讯数据复核_研发.xlsx")
- if err != nil {
- fmt.Println(err)
- return
- }
- defer func() {
- f.Save()
- if err := f.Close(); err != nil {
- fmt.Println(err)
- }
- }()
- //2.专项债详情
- //rows, err := f.GetRows("基础数据")
- rows, err := f.GetRows("Sheet2")
- if err != nil {
- fmt.Println(err)
- return
- }
- //
- //url := "http://172.17.4.184:19908"
- url := "http://127.0.0.1:19908"
- username := "jybid"
- password := "Top2023_JEB01i@31"
- //index := "bidding" //索引名称
- // 创建 Elasticsearch 客户端
- client, err := elastic.NewClient(
- elastic.SetURL(url),
- elastic.SetBasicAuth(username, password),
- elastic.SetSniff(false),
- )
- if err != nil {
- log.Fatalf("创建 Elasticsearch 客户端失败:%s", err)
- }
- // 86 mongo
- Mgo := &mongodb.MongodbSim{
- //MongodbAddr: "172.17.4.86:27080",
- MongodbAddr: "127.0.0.1:27082",
- Size: 10,
- DbName: "jyqyfw",
- //UserName: "SJZY_RWbid_ES",
- //Password: "SJZY@B4i4D5e6S",
- Direct: true,
- }
- Mgo.InitPool()
- for i := 1; i < len(rows); i++ {
- projectName := strings.TrimSpace(rows[i][5])
- buyer := strings.TrimSpace(rows[i][4])
- winner := strings.TrimSpace(rows[i][2])
- money := strings.TrimSpace(rows[i][9])
- projectCode := util.ObjToString(rows[i][6])
- title := strings.TrimSpace(rows[i][7])
- publishTime := strings.TrimSpace(rows[i][10])
- layout := "2006-01-02"
- t, err := time.Parse(layout, publishTime)
- if err != nil {
- fmt.Println(err)
- return
- }
- timestamp := t.Unix()
- rangeQuery := elastic.NewRangeQuery("publishtime").Gte(timestamp).Lt(timestamp + 24*3600)
- if i%10 == 0 {
- log.Println("iiiiii", i, projectName)
- f.Save()
- }
- //判断1;标题+发布时间
- query1 := elastic.NewBoolQuery().
- Must(elastic.NewTermQuery("title.mtitle", title)).
- Must(rangeQuery)
- query3 := elastic.NewBoolQuery().
- Must(elastic.NewTermQuery("projectcode", projectCode)).
- Must(rangeQuery)
- //1.1 判断es 是否存在
- ex1, err, doc1 := checkBiddingData(client, query1)
- if err != nil {
- log.Println("checkBiddingData error", err)
- }
- //存在,已收录,判断是否推送
- if ex1 {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "AA", i+1), "是")
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "V", i+1), "是")
- id := util.ObjToString(doc1["id"])
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "X", i+1), id)
- where2 := map[string]interface{}{
- "id": id,
- "appid": "jyGQ1XQQsEAwNeSENOFR9D",
- }
- datas, _ := Mgo.Find("usermail", where2, nil, nil, false, -1, -1)
- isTui := false
- for _, dd := range *datas {
- if util.IntAll(dd["isOptimization"]) == 1 && util.IntAll(dd["earliestDay"]) == 0 {
- isTui = true
- }
- }
- //确实推送了
- if isTui {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "Z", i+1), "是")
- }
- }
- //3.1 判断es 是否存在
- ex3, err, doc3 := checkBiddingData(client, query3)
- if err != nil {
- log.Println("checkBiddingData error", err)
- }
- //存在,已收录,判断是否推送
- if ex3 {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "AB", i+1), "是")
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "V", i+1), "是")
- id := util.ObjToString(doc3["id"])
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "X", i+1), id)
- where3 := map[string]interface{}{
- "id": id,
- "appid": "jyGQ1XQQsEAwNeSENOFR9D",
- }
- datas, _ := Mgo.Find("usermail", where3, nil, nil, false, -1, -1)
- isTui := false
- for _, dd := range *datas {
- if util.IntAll(dd["isOptimization"]) == 1 && util.IntAll(dd["earliestDay"]) == 0 {
- isTui = true
- }
- }
- //确实推送了
- if isTui {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "Z", i+1), "是")
- }
- }
- //判断2;projectname+s_winner+bidamount+buyer
- query2 := elastic.NewBoolQuery().
- Must(elastic.NewTermQuery("projectname", projectName)).
- Must(elastic.NewTermQuery("s_winner", winner)).
- Must(elastic.NewTermQuery("bidamount", money)).
- Must(elastic.NewTermQuery("buyer", buyer))
- //判断es 是否存在
- ex, err, doc := checkBiddingData(client, query2)
- if err != nil {
- log.Println("checkBiddingData error", err)
- }
- //存在,已收录,判断是否推送
- if ex {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "V", i+1), "是")
- id := util.ObjToString(doc["id"])
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "X", i+1), id)
- where2 := map[string]interface{}{
- "id": id,
- "appid": "jyGQ1XQQsEAwNeSENOFR9D",
- }
- datas, _ := Mgo.Find("usermail", where2, nil, nil, false, -1, -1)
- isTui := false
- for _, dd := range *datas {
- if util.IntAll(dd["isOptimization"]) == 1 && util.IntAll(dd["earliestDay"]) == 0 {
- isTui = true
- }
- }
- //确实推送了
- if isTui {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "Z", i+1), "是")
- }
- }
- }
- }
- // lianTongShouLu2 判断联通是否推送
- func lianTongShouLu2() {
- //2024-12-23,赵慧磊 联通需求
- f, err := excelize.OpenFile("./副本省分新增标讯数据复核_研发.xlsx")
- if err != nil {
- fmt.Println(err)
- return
- }
- defer func() {
- f.Save()
- if err := f.Close(); err != nil {
- fmt.Println(err)
- }
- }()
- //2.专项债详情
- //rows, err := f.GetRows("基础数据")
- rows, err := f.GetRows("Sheet3")
- if err != nil {
- fmt.Println(err)
- return
- }
- //
- // 86 mongo
- Mgo := &mongodb.MongodbSim{
- //MongodbAddr: "172.17.4.86:27080",
- MongodbAddr: "127.0.0.1:27082",
- Size: 10,
- DbName: "jyqyfw",
- //UserName: "SJZY_RWbid_ES",
- //Password: "SJZY@B4i4D5e6S",
- Direct: true,
- }
- Mgo.InitPool()
- for i := 1; i < len(rows); i++ {
- projectName := strings.TrimSpace(rows[i][5])
- id := util.ObjToString(rows[i][28])
- if err != nil {
- fmt.Println(err)
- return
- }
- if i%10 == 0 {
- log.Println("iiiiii", i, projectName)
- f.Save()
- }
- where2 := map[string]interface{}{
- "id": id,
- "appid": "jyGQ1XQQsEAwNeSENOFR9D",
- }
- datas, _ := Mgo.Find("usermail", where2, nil, nil, false, -1, -1)
- isTui := false
- for _, dd := range *datas {
- if util.IntAll(dd["isOptimization"]) == 1 && util.IntAll(dd["earliestDay"]) == 0 {
- isTui = true
- }
- }
- //确实推送了
- if isTui {
- f.SetCellValue("Sheet2", fmt.Sprintf("%s%d", "Z", i+1), "是")
- }
- }
- }
|