buyer_clickhouse.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "github.com/gogf/gf/v2/os/gctx"
  6. "github.com/xuri/excelize/v2"
  7. util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  9. "log"
  10. "strconv"
  11. "strings"
  12. )
  13. type Buyer struct {
  14. ID uint32 `gorm:"column:id;comment:'自增ID'"`
  15. CompanyID string `gorm:"column:company_id;comment:'公司ID'"`
  16. CompanyName string `gorm:"column:company_name;comment:'公司名称'"`
  17. OrgCode string `gorm:"column:org_code;comment:'组织机构代码'"`
  18. CompanyType string `gorm:"column:company_type;comment:'公司类型'"`
  19. CompanyAddress string `gorm:"column:company_address;comment:'通讯地址'"`
  20. CreditNo string `gorm:"column:credit_no;comment:'统一信用代码'"`
  21. Area string `gorm:"column:area;comment:'省份'"`
  22. City string `gorm:"column:city;comment:'城市'"`
  23. District string `gorm:"column:district;comment:'区县'"`
  24. CompanyShortname string `gorm:"column:company_shortname;comment:'企业简称'"`
  25. Capital string `gorm:"column:capital;comment:'注册资本'"`
  26. ProvinceShort string `gorm:"column:province_short;comment:'省份简称'"`
  27. Table string `gorm:"column:table;comment:'来源表'"`
  28. }
  29. // 操作类型 登记机关 经营范围 注册资本 地址 company_id company_status company_type credit_no organizer province_short
  30. func buyer() {
  31. //181
  32. Mgo2 := &mongodb.MongodbSim{
  33. MongodbAddr: "172.17.4.181:27001",
  34. //MongodbAddr: "127.0.0.1:27001",
  35. DbName: "mixdata",
  36. Size: 10,
  37. UserName: "",
  38. Password: "",
  39. //Direct: true,
  40. }
  41. Mgo2.InitPool()
  42. //mixdata.qyxy_std
  43. MgoS := &mongodb.MongodbSim{
  44. //MongodbAddr: "127.0.0.1:27083",
  45. MongodbAddr: "172.17.189.140:27080",
  46. DbName: "mixdata",
  47. Size: 10,
  48. UserName: "SJZY_RWbid_ES",
  49. Password: "SJZY@B4i4D5e6S",
  50. //Direct: true,
  51. }
  52. MgoS.InitPool()
  53. f, err := excelize.OpenFile("./buyers.xlsx")
  54. if err != nil {
  55. fmt.Println(err)
  56. return
  57. }
  58. defer func() {
  59. if err := f.Close(); err != nil {
  60. fmt.Println(err)
  61. }
  62. }()
  63. rows, err := f.GetRows("招标-采购单位名单")
  64. for i := 1; i < len(rows); i++ {
  65. if i%1000 == 0 {
  66. log.Println("current", i)
  67. }
  68. if len(rows[i]) == 0 {
  69. continue
  70. }
  71. name := strings.TrimSpace(rows[i][0])
  72. query := map[string]interface{}{
  73. "company_name": name,
  74. }
  75. data, _ := MgoS.FindOne("qyxy_std", query)
  76. if data != nil && len(*data) > 0 {
  77. buyer := Buyer{
  78. CompanyID: util.ObjToString((*data)["_id"]),
  79. CompanyName: name,
  80. OrgCode: util.ObjToString((*data)["org_code"]),
  81. CompanyType: util.ObjToString((*data)["company_type"]),
  82. CompanyAddress: util.ObjToString((*data)["company_address"]),
  83. CreditNo: util.ObjToString((*data)["credit_no"]),
  84. Area: util.ObjToString((*data)["company_area"]),
  85. City: util.ObjToString((*data)["company_city"]),
  86. District: util.ObjToString((*data)["company_district"]),
  87. CompanyShortname: util.ObjToString((*data)["company_shortname"]),
  88. Table: "qyxy_std",
  89. }
  90. if capital, ok := (*data)["capital"].(string); ok {
  91. buyer.Capital = capital
  92. } else {
  93. capital := util.Float64All((*data)["capital"])
  94. // 将 float64 转换为字符串,保留两位小数
  95. strValue := strconv.FormatFloat(capital, 'f', 2, 64)
  96. buyer.Capital = strValue
  97. }
  98. _, err := g.DB().Insert(gctx.New(), "buyers", buyer)
  99. if err != nil {
  100. log.Println("clickhouse 写入失败;", err, name)
  101. }
  102. continue
  103. } else {
  104. data, _ := Mgo2.FindOne("special_gov_unit", query)
  105. if data != nil && len(*data) > 0 {
  106. buyer := Buyer{
  107. CompanyID: util.ObjToString((*data)["company_id"]),
  108. CompanyType: util.ObjToString((*data)["company_type"]),
  109. CompanyAddress: util.ObjToString((*data)["company_address"]),
  110. CreditNo: util.ObjToString((*data)["credit_no"]),
  111. ProvinceShort: util.ObjToString((*data)["province_short"]),
  112. Table: "special_gov_unit",
  113. CompanyName: name,
  114. }
  115. _, err := g.DB().Insert(gctx.New(), "buyers", buyer)
  116. if err != nil {
  117. log.Println("clickhouse 写入失败;", err, name)
  118. }
  119. continue
  120. }
  121. data, _ = Mgo2.FindOne("special_enterprise", query)
  122. if data != nil && len(*data) > 0 {
  123. buyer := Buyer{
  124. CompanyID: util.ObjToString((*data)["company_id"]),
  125. CompanyType: util.ObjToString((*data)["company_type"]),
  126. CompanyAddress: util.ObjToString((*data)["company_address"]),
  127. CreditNo: util.ObjToString((*data)["credit_no"]),
  128. ProvinceShort: util.ObjToString((*data)["province_short"]),
  129. Table: "special_enterprise",
  130. CompanyName: name,
  131. Capital: util.ObjToString((*data)["capital"]),
  132. }
  133. _, err := g.DB().Insert(gctx.New(), "buyers", buyer)
  134. if err != nil {
  135. log.Println("clickhouse 写入失败;", err, name)
  136. }
  137. continue
  138. }
  139. data, _ = Mgo2.FindOne("special_social_organ", query)
  140. if data != nil && len(*data) > 0 {
  141. buyer := Buyer{
  142. CompanyID: util.ObjToString((*data)["company_id"]),
  143. CompanyType: util.ObjToString((*data)["company_type"]),
  144. CompanyAddress: util.ObjToString((*data)["company_address"]),
  145. CreditNo: util.ObjToString((*data)["credit_no"]),
  146. ProvinceShort: util.ObjToString((*data)["province_short"]),
  147. Table: "special_social_organ",
  148. CompanyName: name,
  149. Capital: util.ObjToString((*data)["capital"]),
  150. }
  151. _, err := g.DB().Insert(gctx.New(), "buyers", buyer)
  152. if err != nil {
  153. log.Println("clickhouse 写入失败;", err, name)
  154. }
  155. continue
  156. }
  157. }
  158. }
  159. log.Println("over")
  160. }