|
@@ -3,6 +3,7 @@ package main
|
|
|
import (
|
|
|
"data_tidb/config"
|
|
|
"fmt"
|
|
|
+ "go.mongodb.org/mongo-driver/bson"
|
|
|
"go.uber.org/zap"
|
|
|
util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
|
|
|
"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
|
|
@@ -20,8 +21,8 @@ func taskP() {
|
|
|
ch := make(chan bool, 20)
|
|
|
wg := &sync.WaitGroup{}
|
|
|
|
|
|
- //q := map[string]interface{}{"_id": mongodb.StringTOBsonId("5c4044d4a5cb26b9b7b963cc")}
|
|
|
- query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(nil).Sort("_id").Iter()
|
|
|
+ //q := map[string]interface{}{"_id": mongodb.StringTOBsonId("64e5a63855d5406905c574e6")}
|
|
|
+ query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(nil).Sort("-_id").Skip(100000).Iter()
|
|
|
count := 0
|
|
|
for tmp := make(map[string]interface{}); query.Next(tmp); count++ {
|
|
|
if count%20000 == 0 {
|
|
@@ -47,6 +48,40 @@ func taskP() {
|
|
|
log.Info(fmt.Sprintf("over --- %d", count))
|
|
|
}
|
|
|
|
|
|
+func taskPAdd(pici int64) {
|
|
|
+ sess := MongoP.GetMgoConn()
|
|
|
+ defer MongoP.DestoryMongoConn(sess)
|
|
|
+
|
|
|
+ ch := make(chan bool, 20)
|
|
|
+ wg := &sync.WaitGroup{}
|
|
|
+
|
|
|
+ q := bson.M{"pici": bson.M{"$gt": pici}}
|
|
|
+ query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(q).Iter()
|
|
|
+ count := 0
|
|
|
+ for tmp := make(map[string]interface{}); query.Next(tmp); count++ {
|
|
|
+ if count%20000 == 0 {
|
|
|
+ log.Info(fmt.Sprintf("current --- %d", count))
|
|
|
+ }
|
|
|
+ ch <- true
|
|
|
+ wg.Add(1)
|
|
|
+ go func(tmp map[string]interface{}) {
|
|
|
+ defer func() {
|
|
|
+ <-ch
|
|
|
+ wg.Done()
|
|
|
+ }()
|
|
|
+ //taskPro(tmp)
|
|
|
+ //taskBusiness(tmp)
|
|
|
+ //taskProTag(tmp)
|
|
|
+
|
|
|
+ taskRelation2(tmp)
|
|
|
+
|
|
|
+ }(tmp)
|
|
|
+ tmp = make(map[string]interface{})
|
|
|
+ }
|
|
|
+ wg.Wait()
|
|
|
+ log.Info(fmt.Sprintf("over --- %d", count))
|
|
|
+}
|
|
|
+
|
|
|
var BidStatus = map[string]int{
|
|
|
"预告": 0,
|
|
|
"拟建": 1,
|
|
@@ -250,73 +285,202 @@ func taskRelation(tmp map[string]interface{}) {
|
|
|
ids := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
|
|
|
lid := ids[len(ids)-1]
|
|
|
|
|
|
- if b := util.ObjToString(tmp["buyer"]); b != "" {
|
|
|
- saveM := make(map[string]interface{})
|
|
|
- for _, f := range RelationField {
|
|
|
- if f == "projectid" {
|
|
|
- saveM[f] = pid
|
|
|
- } else if f == "infoid" {
|
|
|
- saveM[f] = lid
|
|
|
- } else if f == "name_id" {
|
|
|
- if code := redis.GetStr("qyxy_id", b); code != "" {
|
|
|
- saveM[f] = code
|
|
|
+ //if b := util.ObjToString(tmp["buyer"]); b != "" {
|
|
|
+ // saveM := make(map[string]interface{})
|
|
|
+ //
|
|
|
+ // saveM["projectid"] = pid
|
|
|
+ // saveM["infoid"] = lid
|
|
|
+ // saveM["identity_type"] = 1
|
|
|
+ // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ // if code := redis.GetStr("qyxy_id", b); code != "" {
|
|
|
+ // saveM["name_id"] = code
|
|
|
+ // if util.ObjToString(tmp["buyertel"]) != "" {
|
|
|
+ // q := make(map[string]interface{})
|
|
|
+ // q["name_id"] = code
|
|
|
+ // q["identity_type"] = 1
|
|
|
+ // q["contact_tel"] = util.ObjToString(tmp["buyertel"])
|
|
|
+ // if util.ObjToString(tmp["buyerperson"]) != "" {
|
|
|
+ // q["contact_name"] = util.ObjToString(tmp["buyerperson"])
|
|
|
+ // }
|
|
|
+ // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
|
|
|
+ // if cinfo != nil && len(*cinfo) > 0 {
|
|
|
+ // saveM["contact_id"] = (*cinfo)["id"]
|
|
|
+ // saveRelationPool <- saveM
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ //if a := util.ObjToString(tmp["agency"]); a != "" {
|
|
|
+ // saveM := make(map[string]interface{})
|
|
|
+ // saveM["projectid"] = pid
|
|
|
+ // saveM["infoid"] = lid
|
|
|
+ // saveM["identity_type"] = 4
|
|
|
+ // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ // if code := redis.GetStr("qyxy_id", a); code != "" {
|
|
|
+ // saveM["name_id"] = code
|
|
|
+ // if util.ObjToString(tmp["agencytel"]) != "" {
|
|
|
+ // q := make(map[string]interface{})
|
|
|
+ // q["name_id"] = code
|
|
|
+ // q["identity_type"] = 4 // 100
|
|
|
+ // q["contact_tel"] = util.ObjToString(tmp["agencytel"])
|
|
|
+ // if util.ObjToString(tmp["agencyperson"]) != "" {
|
|
|
+ // q["contact_name"] = util.ObjToString(tmp["agencyperson"])
|
|
|
+ // }
|
|
|
+ // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
|
|
|
+ // if cinfo != nil && len(*cinfo) > 0 {
|
|
|
+ // saveM["contact_id"] = (*cinfo)["id"]
|
|
|
+ // saveRelationPool <- saveM
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ for _, item := range tmp["list"].([]interface{}) {
|
|
|
+ item1 := item.(map[string]interface{})
|
|
|
+ sw := util.ObjToString(item1["s_winner"])
|
|
|
+ if !strings.Contains(sw, ",") {
|
|
|
+ if code := redis.GetStr("qyxy_id", sw); code != "" {
|
|
|
+ saveM := make(map[string]interface{})
|
|
|
+ saveM["projectid"] = pid
|
|
|
+ saveM["infoid"] = lid
|
|
|
+ saveM["identity_type"] = 2
|
|
|
+ saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ saveM["name_id"] = code
|
|
|
+ if util.ObjToString(item1["winnertel"]) != "" {
|
|
|
+ q := make(map[string]interface{})
|
|
|
+ q["name_id"] = code
|
|
|
+ q["identity_type"] = 2 // 010
|
|
|
+ q["contact_tel"] = util.ObjToString(item1["winnertel"])
|
|
|
+ if util.ObjToString(item1["winnerperson"]) != "" {
|
|
|
+ q["contact_name"] = util.ObjToString(item1["winnerperson"])
|
|
|
+ }
|
|
|
+ cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
|
|
|
+ if cinfo != nil && len(*cinfo) > 0 {
|
|
|
+ saveM["contact_id"] = (*cinfo)["id"]
|
|
|
+ saveRelationPool <- saveM
|
|
|
+ }
|
|
|
}
|
|
|
- } else if f == "contact_id" {
|
|
|
- // todo
|
|
|
- } else if f == "identity_type" {
|
|
|
- saveM[f] = 1 // 001
|
|
|
- } else if f == "createtime" {
|
|
|
- saveM[f] = time.Now().Format(util.Date_Full_Layout)
|
|
|
}
|
|
|
}
|
|
|
- saveRelationPool <- saveM
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- if a := util.ObjToString(tmp["agency"]); a != "" {
|
|
|
- saveM := make(map[string]interface{})
|
|
|
- for _, f := range RelationField {
|
|
|
- if f == "projectid" {
|
|
|
- saveM[f] = pid
|
|
|
- } else if f == "infoid" {
|
|
|
- saveM[f] = lid
|
|
|
- } else if f == "name_id" {
|
|
|
- if code := redis.GetStr("qyxy_id", a); code != "" {
|
|
|
- saveM[f] = code
|
|
|
- }
|
|
|
- } else if f == "contact_id" {
|
|
|
+func taskRelation2(tmp map[string]interface{}) {
|
|
|
|
|
|
- } else if f == "identity_type" {
|
|
|
- saveM[f] = 4 // 100
|
|
|
- } else if f == "createtime" {
|
|
|
- saveM[f] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ pid := mongodb.BsonIdToSId(tmp["_id"])
|
|
|
+ if tmp["ids"] == nil {
|
|
|
+ log.Info("taskRelation ids err", zap.Any("id", pid))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ info := MysqlTool.Find("dws_f_bpmc_relation", bson.M{"projectid": pid}, "", "", -1, -1)
|
|
|
+ if len(*info) > 0 {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ids := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
|
|
|
+ lid := ids[len(ids)-1]
|
|
|
+
|
|
|
+ if b := util.ObjToString(tmp["buyer"]); b != "" {
|
|
|
+ saveM := make(map[string]interface{})
|
|
|
+ for _, f := range RelationField {
|
|
|
+ if f == "projectid" {
|
|
|
+ saveM[f] = pid
|
|
|
+ } else if f == "infoid" {
|
|
|
+ saveM[f] = lid
|
|
|
+ } else if f == "name_id" {
|
|
|
+ if code := redis.GetStr("qyxy_id", b); code != "" {
|
|
|
+ saveM[f] = code
|
|
|
+ if util.ObjToString(tmp["buyertel"]) != "" {
|
|
|
+ q := make(map[string]interface{})
|
|
|
+ q["name_id"] = code
|
|
|
+ q["identity_type"] = 1
|
|
|
+ q["contact_tel"] = util.ObjToString(tmp["buyertel"])
|
|
|
+ if util.ObjToString(tmp["buyerperson"]) != "" {
|
|
|
+ q["contact_name"] = util.ObjToString(tmp["buyerperson"])
|
|
|
+ }
|
|
|
+ cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
|
|
|
+ if cinfo != nil && len(*cinfo) > 0 {
|
|
|
+ saveM["contact_id"] = (*cinfo)["id"]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if f == "identity_type" {
|
|
|
+ saveM[f] = 1 // 001
|
|
|
+ } else if f == "createtime" {
|
|
|
+ saveM[f] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ }
|
|
|
}
|
|
|
+ saveRelationPool <- saveM
|
|
|
}
|
|
|
- saveRelationPool <- saveM
|
|
|
- }
|
|
|
|
|
|
- warr := strings.Split(util.ObjToString(tmp["s_winner"]), ",")
|
|
|
- if BinarySearch(warr, util.ObjToString(tmp["winner"])) == -1 {
|
|
|
- warr = append(warr, util.ObjToString(tmp["winner"]))
|
|
|
- }
|
|
|
- for _, ws := range warr {
|
|
|
- saveM := make(map[string]interface{})
|
|
|
- for _, f := range RelationField {
|
|
|
- if f == "projectid" {
|
|
|
- saveM[f] = pid
|
|
|
- } else if f == "infoid" {
|
|
|
- saveM[f] = lid
|
|
|
- } else if f == "name_id" {
|
|
|
- if code := redis.GetStr("qyxy_id", ws); code != "" {
|
|
|
- saveM[f] = code
|
|
|
+ if a := util.ObjToString(tmp["agency"]); a != "" {
|
|
|
+ saveM := make(map[string]interface{})
|
|
|
+ for _, f := range RelationField {
|
|
|
+ if f == "projectid" {
|
|
|
+ saveM[f] = pid
|
|
|
+ } else if f == "infoid" {
|
|
|
+ saveM[f] = lid
|
|
|
+ } else if f == "name_id" {
|
|
|
+ if code := redis.GetStr("qyxy_id", a); code != "" {
|
|
|
+ saveM[f] = code
|
|
|
+ if util.ObjToString(tmp["buyertel"]) != "" {
|
|
|
+ q := make(map[string]interface{})
|
|
|
+ q["name_id"] = code
|
|
|
+ q["identity_type"] = 4
|
|
|
+ q["contact_tel"] = util.ObjToString(tmp["agencytel"])
|
|
|
+ if util.ObjToString(tmp["agencyperson"]) != "" {
|
|
|
+ q["contact_name"] = util.ObjToString(tmp["agencyperson"])
|
|
|
+ }
|
|
|
+ cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
|
|
|
+ if cinfo != nil && len(*cinfo) > 0 {
|
|
|
+ saveM["contact_id"] = (*cinfo)["id"]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if f == "identity_type" {
|
|
|
+ saveM[f] = 4 // 100
|
|
|
+ } else if f == "createtime" {
|
|
|
+ saveM[f] = time.Now().Format(util.Date_Full_Layout)
|
|
|
}
|
|
|
- } else if f == "contact_id" {
|
|
|
+ }
|
|
|
+ saveRelationPool <- saveM
|
|
|
+ }
|
|
|
|
|
|
- } else if f == "identity_type" {
|
|
|
- saveM[f] = 2 // 010
|
|
|
- } else if f == "createtime" {
|
|
|
- saveM[f] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ warr := strings.Split(util.ObjToString(tmp["s_winner"]), ",")
|
|
|
+ if BinarySearch(warr, util.ObjToString(tmp["winner"])) == -1 {
|
|
|
+ warr = append(warr, util.ObjToString(tmp["winner"]))
|
|
|
+ }
|
|
|
+ for _, ws := range warr {
|
|
|
+ saveM := make(map[string]interface{})
|
|
|
+ for _, f := range RelationField {
|
|
|
+ if f == "projectid" {
|
|
|
+ saveM[f] = pid
|
|
|
+ } else if f == "infoid" {
|
|
|
+ saveM[f] = lid
|
|
|
+ } else if f == "name_id" {
|
|
|
+ if code := redis.GetStr("qyxy_id", ws); code != "" {
|
|
|
+ saveM[f] = code
|
|
|
+ if util.ObjToString(tmp["buyertel"]) != "" {
|
|
|
+ q := make(map[string]interface{})
|
|
|
+ q["name_id"] = code
|
|
|
+ q["identity_type"] = 2
|
|
|
+ q["contact_tel"] = util.ObjToString(tmp["winnertel"])
|
|
|
+ if util.ObjToString(tmp["winnerperson"]) != "" {
|
|
|
+ q["contact_name"] = util.ObjToString(tmp["winnerperson"])
|
|
|
+ }
|
|
|
+ cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
|
|
|
+ if cinfo != nil && len(*cinfo) > 0 {
|
|
|
+ saveM["contact_id"] = (*cinfo)["id"]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if f == "identity_type" {
|
|
|
+ saveM[f] = 2 // 010
|
|
|
+ } else if f == "createtime" {
|
|
|
+ saveM[f] = time.Now().Format(util.Date_Full_Layout)
|
|
|
+ }
|
|
|
}
|
|
|
+ saveRelationPool <- saveM
|
|
|
}
|
|
|
- saveRelationPool <- saveM
|
|
|
}
|
|
|
}
|