project.go 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975
  1. package main
  2. //
  3. //import (
  4. // "data_tidb/config"
  5. // "fmt"
  6. // "go.mongodb.org/mongo-driver/bson"
  7. // "go.uber.org/zap"
  8. // util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  9. // "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  10. // "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  11. // "jygit.jydev.jianyu360.cn/data_processing/common_utils/redis"
  12. // "strings"
  13. // "sync"
  14. // "time"
  15. //)
  16. //
  17. //func taskP() {
  18. // sess := MongoP.GetMgoConn()
  19. // defer MongoP.DestoryMongoConn(sess)
  20. //
  21. // ch := make(chan bool, 20)
  22. // wg := &sync.WaitGroup{}
  23. //
  24. // //q := map[string]interface{}{"_id": mongodb.StringTOBsonId("64e5a63855d5406905c574e6")}
  25. // query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(nil).Sort("-_id").Skip(100000).Iter()
  26. // count := 0
  27. // for tmp := make(map[string]interface{}); query.Next(tmp); count++ {
  28. // if count%20000 == 0 {
  29. // log.Info(fmt.Sprintf("current --- %d", count))
  30. // }
  31. // ch <- true
  32. // wg.Add(1)
  33. // go func(tmp map[string]interface{}) {
  34. // defer func() {
  35. // <-ch
  36. // wg.Done()
  37. // }()
  38. // //taskPro(tmp)
  39. // //taskBusiness(tmp)
  40. // //taskProTag(tmp)
  41. // //taskRelation(tmp)
  42. //
  43. // }(tmp)
  44. // tmp = make(map[string]interface{})
  45. // }
  46. // wg.Wait()
  47. // log.Info(fmt.Sprintf("over --- %d", count))
  48. //}
  49. //
  50. //func taskPAdd(pici int64) {
  51. // sess := MongoP.GetMgoConn()
  52. // defer MongoP.DestoryMongoConn(sess)
  53. //
  54. // ch := make(chan bool, 20)
  55. // wg := &sync.WaitGroup{}
  56. //
  57. // q := bson.M{"pici": bson.M{"$gt": pici}}
  58. // query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(q).Iter()
  59. // count := 0
  60. // for tmp := make(map[string]interface{}); query.Next(tmp); count++ {
  61. // if count%20000 == 0 {
  62. // log.Info(fmt.Sprintf("current --- %d", count))
  63. // }
  64. // ch <- true
  65. // wg.Add(1)
  66. // go func(tmp map[string]interface{}) {
  67. // defer func() {
  68. // <-ch
  69. // wg.Done()
  70. // }()
  71. // //taskPro(tmp)
  72. // //taskBusiness(tmp)
  73. // //taskProTag(tmp)
  74. // //taskRelation2(tmp)
  75. //
  76. // }(tmp)
  77. // tmp = make(map[string]interface{})
  78. // }
  79. // wg.Wait()
  80. // log.Info(fmt.Sprintf("over --- %d", count))
  81. //}
  82. //
  83. //var BidStatus = map[string]int{
  84. // "预告": 0,
  85. // "拟建": 1,
  86. // "招标": 2,
  87. // "中标": 3,
  88. // "成交": 4,
  89. // "废标": 5,
  90. // "流标": 6,
  91. // "合同": 7,
  92. // "其它": 8,
  93. //}
  94. //var BidType = map[string]int{
  95. // "招标": 0,
  96. // "邀标": 1,
  97. // "单一": 2,
  98. // "竞价": 3,
  99. // "竞谈": 4,
  100. // "询价": 5,
  101. //}
  102. //
  103. //// @Description 基础信息
  104. //// @Author J 2022/9/22 18:32
  105. //func taskPro(tmp map[string]interface{}) {
  106. // saveM := make(map[string]interface{})
  107. // for _, f := range ProField {
  108. // if f == "projectid" {
  109. // saveM[f] = mongodb.BsonIdToSId(tmp["_id"])
  110. // } else if f == "area_code" {
  111. // if tmp["area"] != nil {
  112. // saveM[f] = AreaCode[util.ObjToString(tmp["area"])]
  113. // }
  114. // } else if f == "city_code" {
  115. // if tmp["area"] != nil && tmp["city"] != nil {
  116. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"])
  117. // saveM[f] = AreaCode[c]
  118. // }
  119. // } else if f == "district_code" {
  120. // if tmp["area"] != nil && tmp["city"] != nil && tmp["district"] != nil {
  121. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"]) + "," + util.ObjToString(tmp["district"])
  122. // saveM[f] = AreaCode[c]
  123. // }
  124. // } else if f == "updatetime" {
  125. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  126. // } else if f == "buyerclass_code" {
  127. // if obj := util.ObjToString(tmp["buyerclass"]); obj != "" {
  128. // saveM[f] = BuyerCode[obj]
  129. // }
  130. // } else if f == "firsttime" || f == "zbtime" || f == "jgtime" || f == "lasttime" || f == "bidopentime" || f == "createtime" {
  131. // if tmp[f] != nil && util.Int64All(tmp[f]) > 0 {
  132. // t := util.Int64All(tmp[f])
  133. // saveM[f] = util.FormatDateByInt64(&t, util.Date_Full_Layout)
  134. // }
  135. // } else if f == "bidstatus" {
  136. // if b := util.ObjToString(tmp[f]); b != "" {
  137. // tmp[f] = BidStatus[b]
  138. // }
  139. // } else if f == "bidtype" {
  140. // if b := util.ObjToString(tmp[f]); b != "" {
  141. // tmp[f] = BidType[b]
  142. // }
  143. // } else if f == "multipackage" {
  144. // if tmp[f] == nil {
  145. // saveM[f] = 0
  146. // } else {
  147. // saveM[f] = tmp[f]
  148. // }
  149. // } else if f == "buyer_id" {
  150. // if b := util.ObjToString(tmp["buyer"]); b != "" {
  151. // if code := redis.GetStr("qyxy_id", b); code != "" {
  152. // saveM[f] = code
  153. // }
  154. // }
  155. // } else if f == "agency_id" {
  156. // if b := util.ObjToString(tmp["agency"]); b != "" {
  157. // if code := redis.GetStr("qyxy_id", b); code != "" {
  158. // saveM[f] = code
  159. // }
  160. // }
  161. // } else {
  162. // if tmp[f] != nil {
  163. // if ProVMap[f] != nil {
  164. // saveM[f], _ = verifyF(f, tmp[f], ProVMap[f])
  165. // } else {
  166. // saveM[f] = tmp[f]
  167. // }
  168. // }
  169. // }
  170. // }
  171. // saveProPool <- saveM
  172. //}
  173. //
  174. //// @Description 项目业务表
  175. //// @Author J 2022/9/30 13:40
  176. //func taskBusiness(tmp map[string]interface{}) {
  177. // warr := strings.Split(util.ObjToString(tmp["s_winner"]), ",")
  178. // if BinarySearch(warr, util.ObjToString(tmp["winner"])) == -1 {
  179. // warr = append(warr, util.ObjToString(tmp["winner"]))
  180. // }
  181. // for _, s := range warr {
  182. // saveM := make(map[string]interface{})
  183. // for _, f := range ProBusField {
  184. // if f == "projectid" {
  185. // saveM[f] = mongodb.BsonIdToSId(tmp["_id"])
  186. // } else if f == "area_code" {
  187. // if tmp["area"] != nil {
  188. // saveM[f] = AreaCode[util.ObjToString(tmp["area"])]
  189. // }
  190. // } else if f == "city_code" {
  191. // if tmp["area"] != nil && tmp["city"] != nil {
  192. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"])
  193. // saveM[f] = AreaCode[c]
  194. // }
  195. // } else if f == "district_code" {
  196. // if tmp["area"] != nil && tmp["city"] != nil && tmp["district"] != nil {
  197. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"]) + "," + util.ObjToString(tmp["district"])
  198. // saveM[f] = AreaCode[c]
  199. // }
  200. // } else if f == "updatetime" {
  201. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  202. // } else if f == "buyerclass_code" {
  203. // if obj := util.ObjToString(tmp["buyerclass"]); obj != "" {
  204. // saveM[f] = BuyerCode[obj]
  205. // }
  206. // } else if f == "firsttime" || f == "zbtime" || f == "jgtime" || f == "lasttime" || f == "bidopentime" || f == "createtime" {
  207. // if tmp[f] != nil && util.Int64All(tmp[f]) > 0 {
  208. // t := util.Int64All(tmp[f])
  209. // saveM[f] = util.FormatDateByInt64(&t, util.Date_Full_Layout)
  210. // }
  211. // } else if f == "bidstatus" {
  212. // if b := util.ObjToString(tmp[f]); b != "" {
  213. // tmp[f] = BidStatus[b]
  214. // }
  215. // } else if f == "bidtype" {
  216. // if b := util.ObjToString(tmp[f]); b != "" {
  217. // tmp[f] = BidType[b]
  218. // }
  219. // } else if f == "buyer_id" {
  220. // if b := util.ObjToString(tmp["buyer"]); b != "" {
  221. // saveM["buyer"] = b
  222. // if code := redis.GetStr("qyxy_id", b); code != "" {
  223. // saveM[f] = code
  224. // }
  225. // }
  226. // } else if f == "agency_id" {
  227. // if b := util.ObjToString(tmp["agency"]); b != "" {
  228. // saveM["agency"] = b
  229. // if code := redis.GetStr("qyxy_id", b); code != "" {
  230. // saveM[f] = code
  231. // }
  232. // }
  233. // } else if f == "winner_id" {
  234. // if s != "" {
  235. // saveM["winner"] = s
  236. // if code := redis.GetStr("qyxy_id", s); code != "" {
  237. // saveM[f] = code
  238. // }
  239. // }
  240. // } else {
  241. // if tmp[f] != nil {
  242. // if ProBusVMap[f] != nil {
  243. // saveM[f], _ = verifyF(f, tmp[f], ProBusVMap[f])
  244. // } else {
  245. // saveM[f] = tmp[f]
  246. // }
  247. // }
  248. // }
  249. // }
  250. // saveProbPool <- saveM
  251. // }
  252. //
  253. //}
  254. //
  255. //// @Description 项目信息标签
  256. //// @Author J 2022/9/30 13:54
  257. //func taskProTag(tmp map[string]interface{}) {
  258. // id := mongodb.BsonIdToSId(tmp["_id"])
  259. // if topArr, ok := tmp["topscopeclass"].([]interface{}); ok {
  260. // for _, i2 := range topArr {
  261. // tclass := regLetter.ReplaceAllString(util.ObjToString(i2), "") // 去除字母
  262. // code := TopScopeCode[tclass]
  263. // saveProTagPool <- map[string]interface{}{"projectid": id, "labelcode": "1", "labelvalues": code, "labelweight": 1, "createtime": time.Now().Format(util.Date_Full_Layout)}
  264. // }
  265. // }
  266. // if subArr, ok := tmp["subscopeclass"].([]interface{}); ok {
  267. // for _, i2 := range subArr {
  268. // sc := strings.Split(util.ObjToString(i2), "_")
  269. // code := SubScopeCode[sc[1]]
  270. // saveProTagPool <- map[string]interface{}{"projectid": id, "labelcode": "2", "labelvalues": code, "labelweight": 1, "createtime": time.Now().Format(util.Date_Full_Layout)}
  271. // }
  272. // }
  273. //}
  274. //
  275. //// @Description 关系表
  276. //// @Author J 2022/9/30 13:56
  277. //func taskRelation(tmp map[string]interface{}) {
  278. // pid := mongodb.BsonIdToSId(tmp["_id"])
  279. // if tmp["ids"] == nil {
  280. // log.Info("taskRelation ids err", zap.Any("id", pid))
  281. // return
  282. // }
  283. // ids := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
  284. // lid := ids[len(ids)-1]
  285. //
  286. // //if b := util.ObjToString(tmp["buyer"]); b != "" {
  287. // // saveM := make(map[string]interface{})
  288. // //
  289. // // saveM["projectid"] = pid
  290. // // saveM["infoid"] = lid
  291. // // saveM["identity_type"] = 1
  292. // // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
  293. // // if code := redis.GetStr("qyxy_id", b); code != "" {
  294. // // saveM["name_id"] = code
  295. // // if util.ObjToString(tmp["buyertel"]) != "" {
  296. // // q := make(map[string]interface{})
  297. // // q["name_id"] = code
  298. // // q["identity_type"] = 1
  299. // // q["contact_tel"] = util.ObjToString(tmp["buyertel"])
  300. // // if util.ObjToString(tmp["buyerperson"]) != "" {
  301. // // q["contact_name"] = util.ObjToString(tmp["buyerperson"])
  302. // // }
  303. // // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  304. // // if cinfo != nil && len(*cinfo) > 0 {
  305. // // saveM["contact_id"] = (*cinfo)["id"]
  306. // // saveRelationPool <- saveM
  307. // // }
  308. // // }
  309. // // }
  310. // //}
  311. //
  312. // //if a := util.ObjToString(tmp["agency"]); a != "" {
  313. // // saveM := make(map[string]interface{})
  314. // // saveM["projectid"] = pid
  315. // // saveM["infoid"] = lid
  316. // // saveM["identity_type"] = 4
  317. // // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
  318. // // if code := redis.GetStr("qyxy_id", a); code != "" {
  319. // // saveM["name_id"] = code
  320. // // if util.ObjToString(tmp["agencytel"]) != "" {
  321. // // q := make(map[string]interface{})
  322. // // q["name_id"] = code
  323. // // q["identity_type"] = 4 // 100
  324. // // q["contact_tel"] = util.ObjToString(tmp["agencytel"])
  325. // // if util.ObjToString(tmp["agencyperson"]) != "" {
  326. // // q["contact_name"] = util.ObjToString(tmp["agencyperson"])
  327. // // }
  328. // // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  329. // // if cinfo != nil && len(*cinfo) > 0 {
  330. // // saveM["contact_id"] = (*cinfo)["id"]
  331. // // saveRelationPool <- saveM
  332. // // }
  333. // // }
  334. // // }
  335. // //}
  336. //
  337. // for _, item := range tmp["list"].([]interface{}) {
  338. // item1 := item.(map[string]interface{})
  339. // sw := util.ObjToString(item1["s_winner"])
  340. // if !strings.Contains(sw, ",") {
  341. // if code := redis.GetStr("qyxy_id", sw); code != "" {
  342. // saveM := make(map[string]interface{})
  343. // saveM["projectid"] = pid
  344. // saveM["infoid"] = lid
  345. // saveM["identity_type"] = 2
  346. // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
  347. // saveM["name_id"] = code
  348. // if util.ObjToString(item1["winnertel"]) != "" {
  349. // q := make(map[string]interface{})
  350. // q["name_id"] = code
  351. // q["identity_type"] = 2 // 010
  352. // q["contact_tel"] = util.ObjToString(item1["winnertel"])
  353. // if util.ObjToString(item1["winnerperson"]) != "" {
  354. // q["contact_name"] = util.ObjToString(item1["winnerperson"])
  355. // }
  356. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  357. // if cinfo != nil && len(*cinfo) > 0 {
  358. // saveM["contact_id"] = (*cinfo)["id"]
  359. // saveRelationPool <- saveM
  360. // }
  361. // }
  362. // }
  363. // }
  364. // }
  365. //}
  366. //
  367. //func taskRelation2(tmp map[string]interface{}) {
  368. //
  369. // pid := mongodb.BsonIdToSId(tmp["_id"])
  370. // if tmp["ids"] == nil {
  371. // log.Info("taskRelation ids err", zap.Any("id", pid))
  372. // return
  373. // }
  374. // info := MysqlTool.Find("dws_f_bpmc_relation", bson.M{"projectid": pid}, "", "", -1, -1)
  375. // if len(*info) > 0 {
  376. //
  377. // } else {
  378. // ids := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
  379. // lid := ids[len(ids)-1]
  380. //
  381. // if b := util.ObjToString(tmp["buyer"]); b != "" {
  382. // saveM := make(map[string]interface{})
  383. // for _, f := range RelationField {
  384. // if f == "projectid" {
  385. // saveM[f] = pid
  386. // } else if f == "infoid" {
  387. // saveM[f] = lid
  388. // } else if f == "name_id" {
  389. // if code := redis.GetStr("qyxy_id", b); code != "" {
  390. // saveM[f] = code
  391. // if util.ObjToString(tmp["buyertel"]) != "" {
  392. // q := make(map[string]interface{})
  393. // q["name_id"] = code
  394. // q["identity_type"] = 1
  395. // q["contact_tel"] = util.ObjToString(tmp["buyertel"])
  396. // if util.ObjToString(tmp["buyerperson"]) != "" {
  397. // q["contact_name"] = util.ObjToString(tmp["buyerperson"])
  398. // }
  399. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  400. // if cinfo != nil && len(*cinfo) > 0 {
  401. // saveM["contact_id"] = (*cinfo)["id"]
  402. // }
  403. // }
  404. // }
  405. // } else if f == "identity_type" {
  406. // saveM[f] = 1 // 001
  407. // } else if f == "createtime" {
  408. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  409. // }
  410. // }
  411. // saveRelationPool <- saveM
  412. // }
  413. //
  414. // if a := util.ObjToString(tmp["agency"]); a != "" {
  415. // saveM := make(map[string]interface{})
  416. // for _, f := range RelationField {
  417. // if f == "projectid" {
  418. // saveM[f] = pid
  419. // } else if f == "infoid" {
  420. // saveM[f] = lid
  421. // } else if f == "name_id" {
  422. // if code := redis.GetStr("qyxy_id", a); code != "" {
  423. // saveM[f] = code
  424. // if util.ObjToString(tmp["buyertel"]) != "" {
  425. // q := make(map[string]interface{})
  426. // q["name_id"] = code
  427. // q["identity_type"] = 4
  428. // q["contact_tel"] = util.ObjToString(tmp["agencytel"])
  429. // if util.ObjToString(tmp["agencyperson"]) != "" {
  430. // q["contact_name"] = util.ObjToString(tmp["agencyperson"])
  431. // }
  432. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  433. // if cinfo != nil && len(*cinfo) > 0 {
  434. // saveM["contact_id"] = (*cinfo)["id"]
  435. // }
  436. // }
  437. // }
  438. // } else if f == "identity_type" {
  439. // saveM[f] = 4 // 100
  440. // } else if f == "createtime" {
  441. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  442. // }
  443. // }
  444. // saveRelationPool <- saveM
  445. // }
  446. //
  447. // warr := strings.Split(util.ObjToString(tmp["s_winner"]), ",")
  448. // if BinarySearch(warr, util.ObjToString(tmp["winner"])) == -1 {
  449. // warr = append(warr, util.ObjToString(tmp["winner"]))
  450. // }
  451. // for _, ws := range warr {
  452. // saveM := make(map[string]interface{})
  453. // for _, f := range RelationField {
  454. // if f == "projectid" {
  455. // saveM[f] = pid
  456. // } else if f == "infoid" {
  457. // saveM[f] = lid
  458. // } else if f == "name_id" {
  459. // if code := redis.GetStr("qyxy_id", ws); code != "" {
  460. // saveM[f] = code
  461. // if util.ObjToString(tmp["buyertel"]) != "" {
  462. // q := make(map[string]interface{})
  463. // q["name_id"] = code
  464. // q["identity_type"] = 2
  465. // q["contact_tel"] = util.ObjToString(tmp["winnertel"])
  466. // if util.ObjToString(tmp["winnerperson"]) != "" {
  467. // q["contact_name"] = util.ObjToString(tmp["winnerperson"])
  468. // }
  469. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  470. // if cinfo != nil && len(*cinfo) > 0 {
  471. // saveM["contact_id"] = (*cinfo)["id"]
  472. // }
  473. // }
  474. // }
  475. // } else if f == "identity_type" {
  476. // saveM[f] = 2 // 010
  477. // } else if f == "createtime" {
  478. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  479. // }
  480. // }
  481. // saveRelationPool <- saveM
  482. // }
  483. // }
  484. //}
  485. //package main
  486. //
  487. //import (
  488. //"data_tidb/config"
  489. //"fmt"
  490. //"go.mongodb.org/mongo-driver/bson"
  491. //"go.uber.org/zap"
  492. //util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  493. //"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  494. //"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  495. //"jygit.jydev.jianyu360.cn/data_processing/common_utils/redis"
  496. //"strings"
  497. //"sync"
  498. //"time"
  499. //)
  500. //
  501. //func taskP() {
  502. // sess := MongoP.GetMgoConn()
  503. // defer MongoP.DestoryMongoConn(sess)
  504. //
  505. // ch := make(chan bool, 20)
  506. // wg := &sync.WaitGroup{}
  507. //
  508. // //q := map[string]interface{}{"_id": mongodb.StringTOBsonId("64e5a63855d5406905c574e6")}
  509. // query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(nil).Sort("-_id").Skip(100000).Iter()
  510. // count := 0
  511. // for tmp := make(map[string]interface{}); query.Next(tmp); count++ {
  512. // if count%20000 == 0 {
  513. // log.Info(fmt.Sprintf("current --- %d", count))
  514. // }
  515. // ch <- true
  516. // wg.Add(1)
  517. // go func(tmp map[string]interface{}) {
  518. // defer func() {
  519. // <-ch
  520. // wg.Done()
  521. // }()
  522. // //taskPro(tmp)
  523. // //taskBusiness(tmp)
  524. // //taskProTag(tmp)
  525. // //taskRelation(tmp)
  526. //
  527. // }(tmp)
  528. // tmp = make(map[string]interface{})
  529. // }
  530. // wg.Wait()
  531. // log.Info(fmt.Sprintf("over --- %d", count))
  532. //}
  533. //
  534. //func taskPAdd(pici int64) {
  535. // sess := MongoP.GetMgoConn()
  536. // defer MongoP.DestoryMongoConn(sess)
  537. //
  538. // ch := make(chan bool, 20)
  539. // wg := &sync.WaitGroup{}
  540. //
  541. // q := bson.M{"pici": bson.M{"$gt": pici}}
  542. // query := sess.DB(config.Conf.DB.MongoP.Dbname).C("projectset_20230407").Find(q).Iter()
  543. // count := 0
  544. // for tmp := make(map[string]interface{}); query.Next(tmp); count++ {
  545. // if count%20000 == 0 {
  546. // log.Info(fmt.Sprintf("current --- %d", count))
  547. // }
  548. // ch <- true
  549. // wg.Add(1)
  550. // go func(tmp map[string]interface{}) {
  551. // defer func() {
  552. // <-ch
  553. // wg.Done()
  554. // }()
  555. // //taskPro(tmp)
  556. // //taskBusiness(tmp)
  557. // //taskProTag(tmp)
  558. // //taskRelation2(tmp)
  559. //
  560. // }(tmp)
  561. // tmp = make(map[string]interface{})
  562. // }
  563. // wg.Wait()
  564. // log.Info(fmt.Sprintf("over --- %d", count))
  565. //}
  566. //
  567. //var BidStatus = map[string]int{
  568. // "预告": 0,
  569. // "拟建": 1,
  570. // "招标": 2,
  571. // "中标": 3,
  572. // "成交": 4,
  573. // "废标": 5,
  574. // "流标": 6,
  575. // "合同": 7,
  576. // "其它": 8,
  577. //}
  578. //var BidType = map[string]int{
  579. // "招标": 0,
  580. // "邀标": 1,
  581. // "单一": 2,
  582. // "竞价": 3,
  583. // "竞谈": 4,
  584. // "询价": 5,
  585. //}
  586. //
  587. //// @Description 基础信息
  588. //// @Author J 2022/9/22 18:32
  589. //func taskPro(tmp map[string]interface{}) {
  590. // saveM := make(map[string]interface{})
  591. // for _, f := range ProField {
  592. // if f == "projectid" {
  593. // saveM[f] = mongodb.BsonIdToSId(tmp["_id"])
  594. // } else if f == "area_code" {
  595. // if tmp["area"] != nil {
  596. // saveM[f] = AreaCode[util.ObjToString(tmp["area"])]
  597. // }
  598. // } else if f == "city_code" {
  599. // if tmp["area"] != nil && tmp["city"] != nil {
  600. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"])
  601. // saveM[f] = AreaCode[c]
  602. // }
  603. // } else if f == "district_code" {
  604. // if tmp["area"] != nil && tmp["city"] != nil && tmp["district"] != nil {
  605. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"]) + "," + util.ObjToString(tmp["district"])
  606. // saveM[f] = AreaCode[c]
  607. // }
  608. // } else if f == "updatetime" {
  609. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  610. // } else if f == "buyerclass_code" {
  611. // if obj := util.ObjToString(tmp["buyerclass"]); obj != "" {
  612. // saveM[f] = BuyerCode[obj]
  613. // }
  614. // } else if f == "firsttime" || f == "zbtime" || f == "jgtime" || f == "lasttime" || f == "bidopentime" || f == "createtime" {
  615. // if tmp[f] != nil && util.Int64All(tmp[f]) > 0 {
  616. // t := util.Int64All(tmp[f])
  617. // saveM[f] = util.FormatDateByInt64(&t, util.Date_Full_Layout)
  618. // }
  619. // } else if f == "bidstatus" {
  620. // if b := util.ObjToString(tmp[f]); b != "" {
  621. // tmp[f] = BidStatus[b]
  622. // }
  623. // } else if f == "bidtype" {
  624. // if b := util.ObjToString(tmp[f]); b != "" {
  625. // tmp[f] = BidType[b]
  626. // }
  627. // } else if f == "multipackage" {
  628. // if tmp[f] == nil {
  629. // saveM[f] = 0
  630. // } else {
  631. // saveM[f] = tmp[f]
  632. // }
  633. // } else if f == "buyer_id" {
  634. // if b := util.ObjToString(tmp["buyer"]); b != "" {
  635. // if code := redis.GetStr("qyxy_id", b); code != "" {
  636. // saveM[f] = code
  637. // }
  638. // }
  639. // } else if f == "agency_id" {
  640. // if b := util.ObjToString(tmp["agency"]); b != "" {
  641. // if code := redis.GetStr("qyxy_id", b); code != "" {
  642. // saveM[f] = code
  643. // }
  644. // }
  645. // } else {
  646. // if tmp[f] != nil {
  647. // if ProVMap[f] != nil {
  648. // saveM[f], _ = verifyF(f, tmp[f], ProVMap[f])
  649. // } else {
  650. // saveM[f] = tmp[f]
  651. // }
  652. // }
  653. // }
  654. // }
  655. // saveProPool <- saveM
  656. //}
  657. //
  658. //// @Description 项目业务表
  659. //// @Author J 2022/9/30 13:40
  660. //func taskBusiness(tmp map[string]interface{}) {
  661. // warr := strings.Split(util.ObjToString(tmp["s_winner"]), ",")
  662. // if BinarySearch(warr, util.ObjToString(tmp["winner"])) == -1 {
  663. // warr = append(warr, util.ObjToString(tmp["winner"]))
  664. // }
  665. // for _, s := range warr {
  666. // saveM := make(map[string]interface{})
  667. // for _, f := range ProBusField {
  668. // if f == "projectid" {
  669. // saveM[f] = mongodb.BsonIdToSId(tmp["_id"])
  670. // } else if f == "area_code" {
  671. // if tmp["area"] != nil {
  672. // saveM[f] = AreaCode[util.ObjToString(tmp["area"])]
  673. // }
  674. // } else if f == "city_code" {
  675. // if tmp["area"] != nil && tmp["city"] != nil {
  676. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"])
  677. // saveM[f] = AreaCode[c]
  678. // }
  679. // } else if f == "district_code" {
  680. // if tmp["area"] != nil && tmp["city"] != nil && tmp["district"] != nil {
  681. // c := util.ObjToString(tmp["area"]) + "," + util.ObjToString(tmp["city"]) + "," + util.ObjToString(tmp["district"])
  682. // saveM[f] = AreaCode[c]
  683. // }
  684. // } else if f == "updatetime" {
  685. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  686. // } else if f == "buyerclass_code" {
  687. // if obj := util.ObjToString(tmp["buyerclass"]); obj != "" {
  688. // saveM[f] = BuyerCode[obj]
  689. // }
  690. // } else if f == "firsttime" || f == "zbtime" || f == "jgtime" || f == "lasttime" || f == "bidopentime" || f == "createtime" {
  691. // if tmp[f] != nil && util.Int64All(tmp[f]) > 0 {
  692. // t := util.Int64All(tmp[f])
  693. // saveM[f] = util.FormatDateByInt64(&t, util.Date_Full_Layout)
  694. // }
  695. // } else if f == "bidstatus" {
  696. // if b := util.ObjToString(tmp[f]); b != "" {
  697. // tmp[f] = BidStatus[b]
  698. // }
  699. // } else if f == "bidtype" {
  700. // if b := util.ObjToString(tmp[f]); b != "" {
  701. // tmp[f] = BidType[b]
  702. // }
  703. // } else if f == "buyer_id" {
  704. // if b := util.ObjToString(tmp["buyer"]); b != "" {
  705. // saveM["buyer"] = b
  706. // if code := redis.GetStr("qyxy_id", b); code != "" {
  707. // saveM[f] = code
  708. // }
  709. // }
  710. // } else if f == "agency_id" {
  711. // if b := util.ObjToString(tmp["agency"]); b != "" {
  712. // saveM["agency"] = b
  713. // if code := redis.GetStr("qyxy_id", b); code != "" {
  714. // saveM[f] = code
  715. // }
  716. // }
  717. // } else if f == "winner_id" {
  718. // if s != "" {
  719. // saveM["winner"] = s
  720. // if code := redis.GetStr("qyxy_id", s); code != "" {
  721. // saveM[f] = code
  722. // }
  723. // }
  724. // } else {
  725. // if tmp[f] != nil {
  726. // if ProBusVMap[f] != nil {
  727. // saveM[f], _ = verifyF(f, tmp[f], ProBusVMap[f])
  728. // } else {
  729. // saveM[f] = tmp[f]
  730. // }
  731. // }
  732. // }
  733. // }
  734. // saveProbPool <- saveM
  735. // }
  736. //
  737. //}
  738. //
  739. //// @Description 项目信息标签
  740. //// @Author J 2022/9/30 13:54
  741. //func taskProTag(tmp map[string]interface{}) {
  742. // id := mongodb.BsonIdToSId(tmp["_id"])
  743. // if topArr, ok := tmp["topscopeclass"].([]interface{}); ok {
  744. // for _, i2 := range topArr {
  745. // tclass := regLetter.ReplaceAllString(util.ObjToString(i2), "") // 去除字母
  746. // code := TopScopeCode[tclass]
  747. // saveProTagPool <- map[string]interface{}{"projectid": id, "labelcode": "1", "labelvalues": code, "labelweight": 1, "createtime": time.Now().Format(util.Date_Full_Layout)}
  748. // }
  749. // }
  750. // if subArr, ok := tmp["subscopeclass"].([]interface{}); ok {
  751. // for _, i2 := range subArr {
  752. // sc := strings.Split(util.ObjToString(i2), "_")
  753. // code := SubScopeCode[sc[1]]
  754. // saveProTagPool <- map[string]interface{}{"projectid": id, "labelcode": "2", "labelvalues": code, "labelweight": 1, "createtime": time.Now().Format(util.Date_Full_Layout)}
  755. // }
  756. // }
  757. //}
  758. //
  759. //// @Description 关系表
  760. //// @Author J 2022/9/30 13:56
  761. //func taskRelation(tmp map[string]interface{}) {
  762. // pid := mongodb.BsonIdToSId(tmp["_id"])
  763. // if tmp["ids"] == nil {
  764. // log.Info("taskRelation ids err", zap.Any("id", pid))
  765. // return
  766. // }
  767. // ids := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
  768. // lid := ids[len(ids)-1]
  769. //
  770. // //if b := util.ObjToString(tmp["buyer"]); b != "" {
  771. // // saveM := make(map[string]interface{})
  772. // //
  773. // // saveM["projectid"] = pid
  774. // // saveM["infoid"] = lid
  775. // // saveM["identity_type"] = 1
  776. // // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
  777. // // if code := redis.GetStr("qyxy_id", b); code != "" {
  778. // // saveM["name_id"] = code
  779. // // if util.ObjToString(tmp["buyertel"]) != "" {
  780. // // q := make(map[string]interface{})
  781. // // q["name_id"] = code
  782. // // q["identity_type"] = 1
  783. // // q["contact_tel"] = util.ObjToString(tmp["buyertel"])
  784. // // if util.ObjToString(tmp["buyerperson"]) != "" {
  785. // // q["contact_name"] = util.ObjToString(tmp["buyerperson"])
  786. // // }
  787. // // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  788. // // if cinfo != nil && len(*cinfo) > 0 {
  789. // // saveM["contact_id"] = (*cinfo)["id"]
  790. // // saveRelationPool <- saveM
  791. // // }
  792. // // }
  793. // // }
  794. // //}
  795. //
  796. // //if a := util.ObjToString(tmp["agency"]); a != "" {
  797. // // saveM := make(map[string]interface{})
  798. // // saveM["projectid"] = pid
  799. // // saveM["infoid"] = lid
  800. // // saveM["identity_type"] = 4
  801. // // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
  802. // // if code := redis.GetStr("qyxy_id", a); code != "" {
  803. // // saveM["name_id"] = code
  804. // // if util.ObjToString(tmp["agencytel"]) != "" {
  805. // // q := make(map[string]interface{})
  806. // // q["name_id"] = code
  807. // // q["identity_type"] = 4 // 100
  808. // // q["contact_tel"] = util.ObjToString(tmp["agencytel"])
  809. // // if util.ObjToString(tmp["agencyperson"]) != "" {
  810. // // q["contact_name"] = util.ObjToString(tmp["agencyperson"])
  811. // // }
  812. // // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  813. // // if cinfo != nil && len(*cinfo) > 0 {
  814. // // saveM["contact_id"] = (*cinfo)["id"]
  815. // // saveRelationPool <- saveM
  816. // // }
  817. // // }
  818. // // }
  819. // //}
  820. //
  821. // for _, item := range tmp["list"].([]interface{}) {
  822. // item1 := item.(map[string]interface{})
  823. // sw := util.ObjToString(item1["s_winner"])
  824. // if !strings.Contains(sw, ",") {
  825. // if code := redis.GetStr("qyxy_id", sw); code != "" {
  826. // saveM := make(map[string]interface{})
  827. // saveM["projectid"] = pid
  828. // saveM["infoid"] = lid
  829. // saveM["identity_type"] = 2
  830. // saveM["createtime"] = time.Now().Format(util.Date_Full_Layout)
  831. // saveM["name_id"] = code
  832. // if util.ObjToString(item1["winnertel"]) != "" {
  833. // q := make(map[string]interface{})
  834. // q["name_id"] = code
  835. // q["identity_type"] = 2 // 010
  836. // q["contact_tel"] = util.ObjToString(item1["winnertel"])
  837. // if util.ObjToString(item1["winnerperson"]) != "" {
  838. // q["contact_name"] = util.ObjToString(item1["winnerperson"])
  839. // }
  840. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  841. // if cinfo != nil && len(*cinfo) > 0 {
  842. // saveM["contact_id"] = (*cinfo)["id"]
  843. // saveRelationPool <- saveM
  844. // }
  845. // }
  846. // }
  847. // }
  848. // }
  849. //}
  850. //
  851. //func taskRelation2(tmp map[string]interface{}) {
  852. //
  853. // pid := mongodb.BsonIdToSId(tmp["_id"])
  854. // if tmp["ids"] == nil {
  855. // log.Info("taskRelation ids err", zap.Any("id", pid))
  856. // return
  857. // }
  858. // info := MysqlTool.Find("dws_f_bpmc_relation", bson.M{"projectid": pid}, "", "", -1, -1)
  859. // if len(*info) > 0 {
  860. //
  861. // } else {
  862. // ids := util.ObjArrToStringArr(tmp["ids"].([]interface{}))
  863. // lid := ids[len(ids)-1]
  864. //
  865. // if b := util.ObjToString(tmp["buyer"]); b != "" {
  866. // saveM := make(map[string]interface{})
  867. // for _, f := range RelationField {
  868. // if f == "projectid" {
  869. // saveM[f] = pid
  870. // } else if f == "infoid" {
  871. // saveM[f] = lid
  872. // } else if f == "name_id" {
  873. // if code := redis.GetStr("qyxy_id", b); code != "" {
  874. // saveM[f] = code
  875. // if util.ObjToString(tmp["buyertel"]) != "" {
  876. // q := make(map[string]interface{})
  877. // q["name_id"] = code
  878. // q["identity_type"] = 1
  879. // q["contact_tel"] = util.ObjToString(tmp["buyertel"])
  880. // if util.ObjToString(tmp["buyerperson"]) != "" {
  881. // q["contact_name"] = util.ObjToString(tmp["buyerperson"])
  882. // }
  883. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  884. // if cinfo != nil && len(*cinfo) > 0 {
  885. // saveM["contact_id"] = (*cinfo)["id"]
  886. // }
  887. // }
  888. // }
  889. // } else if f == "identity_type" {
  890. // saveM[f] = 1 // 001
  891. // } else if f == "createtime" {
  892. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  893. // }
  894. // }
  895. // saveRelationPool <- saveM
  896. // }
  897. //
  898. // if a := util.ObjToString(tmp["agency"]); a != "" {
  899. // saveM := make(map[string]interface{})
  900. // for _, f := range RelationField {
  901. // if f == "projectid" {
  902. // saveM[f] = pid
  903. // } else if f == "infoid" {
  904. // saveM[f] = lid
  905. // } else if f == "name_id" {
  906. // if code := redis.GetStr("qyxy_id", a); code != "" {
  907. // saveM[f] = code
  908. // if util.ObjToString(tmp["buyertel"]) != "" {
  909. // q := make(map[string]interface{})
  910. // q["name_id"] = code
  911. // q["identity_type"] = 4
  912. // q["contact_tel"] = util.ObjToString(tmp["agencytel"])
  913. // if util.ObjToString(tmp["agencyperson"]) != "" {
  914. // q["contact_name"] = util.ObjToString(tmp["agencyperson"])
  915. // }
  916. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  917. // if cinfo != nil && len(*cinfo) > 0 {
  918. // saveM["contact_id"] = (*cinfo)["id"]
  919. // }
  920. // }
  921. // }
  922. // } else if f == "identity_type" {
  923. // saveM[f] = 4 // 100
  924. // } else if f == "createtime" {
  925. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  926. // }
  927. // }
  928. // saveRelationPool <- saveM
  929. // }
  930. //
  931. // warr := strings.Split(util.ObjToString(tmp["s_winner"]), ",")
  932. // if BinarySearch(warr, util.ObjToString(tmp["winner"])) == -1 {
  933. // warr = append(warr, util.ObjToString(tmp["winner"]))
  934. // }
  935. // for _, ws := range warr {
  936. // saveM := make(map[string]interface{})
  937. // for _, f := range RelationField {
  938. // if f == "projectid" {
  939. // saveM[f] = pid
  940. // } else if f == "infoid" {
  941. // saveM[f] = lid
  942. // } else if f == "name_id" {
  943. // if code := redis.GetStr("qyxy_id", ws); code != "" {
  944. // saveM[f] = code
  945. // if util.ObjToString(tmp["buyertel"]) != "" {
  946. // q := make(map[string]interface{})
  947. // q["name_id"] = code
  948. // q["identity_type"] = 2
  949. // q["contact_tel"] = util.ObjToString(tmp["winnertel"])
  950. // if util.ObjToString(tmp["winnerperson"]) != "" {
  951. // q["contact_name"] = util.ObjToString(tmp["winnerperson"])
  952. // }
  953. // cinfo := MysqlTool.FindOne("dws_f_ent_contact", q, "", "")
  954. // if cinfo != nil && len(*cinfo) > 0 {
  955. // saveM["contact_id"] = (*cinfo)["id"]
  956. // }
  957. // }
  958. // }
  959. // } else if f == "identity_type" {
  960. // saveM[f] = 2 // 010
  961. // } else if f == "createtime" {
  962. // saveM[f] = time.Now().Format(util.Date_Full_Layout)
  963. // }
  964. // }
  965. // saveRelationPool <- saveM
  966. // }
  967. // }
  968. //}
  969. //
  970. //
  971. //
  972. //
  973. //
  974. //