project_test.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/olivere/elastic/v7"
  5. "github.com/xuri/excelize/v2"
  6. "go.uber.org/zap"
  7. util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  9. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  10. "strconv"
  11. "strings"
  12. "testing"
  13. "time"
  14. )
  15. func TestBiddng(t *testing.T) {
  16. f, err := excelize.OpenFile("./6月份未匹配到剑鱼的项目清单.xlsx")
  17. if err != nil {
  18. fmt.Println(err)
  19. return
  20. }
  21. defer func() {
  22. f.Save()
  23. if err := f.Close(); err != nil {
  24. fmt.Println(err)
  25. }
  26. }()
  27. rows, err := f.GetRows("Sheet1")
  28. if err != nil {
  29. fmt.Println(err)
  30. return
  31. }
  32. //url := "http://172.17.4.184:19908"
  33. url := "http://127.0.0.1:19908"
  34. username := "jybid"
  35. password := "Top2023_JEB01i@31"
  36. //index := "bidding" //索引名称
  37. // 创建 Elasticsearch 客户端
  38. client, err := elastic.NewClient(
  39. elastic.SetURL(url),
  40. elastic.SetBasicAuth(username, password),
  41. elastic.SetSniff(false),
  42. )
  43. if err != nil {
  44. fmt.Printf("创建 Elasticsearch 客户端失败:%s", err)
  45. }
  46. for i := 1; i < len(rows); i++ {
  47. projectName := rows[i][1]
  48. res, err := searchES23(client, projectName, "", 60, 20)
  49. if err != nil {
  50. fmt.Println(projectName)
  51. log.Info("TestBiddng", zap.Error(err))
  52. }
  53. if len(res) > 0 {
  54. f.SetCellValue("Sheet1", fmt.Sprintf("F%v", i+1), 1)
  55. }
  56. fmt.Printf("%s 总数是:%d\n", projectName, len(res))
  57. }
  58. }
  59. func TestSearchES23(t *testing.T) {
  60. //client, err := elastic.NewClient(
  61. // elastic.SetURL(GF.Es.URL),
  62. // elastic.SetBasicAuth(GF.Es.Username, GF.Es.Password),
  63. // elastic.SetSniff(false),
  64. //)
  65. //if err != nil {
  66. // log.Fatal("创建 Elasticsearch 客户端失败", zap.Error(err))
  67. //}
  68. //
  69. //projectName := "卡秋生物生产研发中心建设项目"
  70. //results, err := searchES24(client, projectName, "", 20, 50)
  71. //results, err := searchESCommonQuery(client, projectName, "", 20, 30)
  72. //results, err := SearchProjectFullScoring(client, projectName, "", "", "")
  73. //log.Info("aaa", zap.Any("results", results))
  74. }
  75. func TestSearchProjectFullScoring(t *testing.T) {
  76. url := "http://127.0.0.1:19908"
  77. username := "jybid"
  78. password := "Top2023_JEB01i@31"
  79. client, err := elastic.NewClient(
  80. elastic.SetURL(url),
  81. elastic.SetBasicAuth(username, password),
  82. elastic.SetSniff(false),
  83. )
  84. if err != nil {
  85. log.Fatal("创建 Elasticsearch 客户端失败", zap.Error(err))
  86. }
  87. MgoQY = &mongodb.MongodbSim{
  88. //MongodbAddr: "172.31.31.202:27081,172.20.45.128:27080",
  89. MongodbAddr: "127.0.0.1:27083",
  90. Size: 10,
  91. DbName: "mixdata",
  92. UserName: "SJZY_RWbid_ES",
  93. Password: "SJZY@B4i4D5e6S",
  94. Direct: true,
  95. }
  96. MgoQY.InitPool()
  97. f, err := excelize.OpenFile("./项目信息.xlsx")
  98. if err != nil {
  99. fmt.Println(err)
  100. return
  101. }
  102. defer func() {
  103. f.Save()
  104. if err := f.Close(); err != nil {
  105. fmt.Println(err)
  106. }
  107. }()
  108. rows, err := f.GetRows("Sheet1")
  109. if err != nil {
  110. fmt.Println(err)
  111. return
  112. }
  113. for i, row := range rows {
  114. if i == 0 {
  115. continue
  116. }
  117. if len(row) < 6 { // Ensure row has enough columns
  118. continue
  119. }
  120. investment, _ := strconv.ParseFloat(row[4], 64)
  121. dateStr := strings.TrimPrefix(row[5], "Y")
  122. baseDate, _ := time.Parse("200601", dateStr)
  123. target := InputData{
  124. ProjectCode: row[0],
  125. ProjectName: row[1],
  126. AreaCode: row[2],
  127. ConstructionUnit: row[3],
  128. PlannedInvestment: investment,
  129. BaseDate: baseDate,
  130. }
  131. //targets = append(targets, target)
  132. projectName := rows[i][1]
  133. areacode := rows[i][2]
  134. publish := rows[i][5]
  135. fmt.Println(i, projectName)
  136. res, err := SearchProjectFullScoring(client, target, projectName, areacode, publish)
  137. if err != nil {
  138. fmt.Println(err)
  139. }
  140. dds := make([]string, 0)
  141. for k, v := range res {
  142. if k > 2 {
  143. break
  144. }
  145. id := util.ObjToString(v["id"])
  146. jyurl := GetJyURLByID(id)
  147. socre := v["score"]
  148. pname := v["projectname"]
  149. dd := fmt.Sprintf("%v,%v,%v", pname, socre, jyurl)
  150. dds = append(dds, dd)
  151. }
  152. ddda := strings.Join(dds, "\n")
  153. f.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "K", i+1), ddda)
  154. }
  155. }
  156. func TestSearchProjectFullScoring2(t *testing.T) {
  157. url := "http://127.0.0.1:19908"
  158. username := "jybid"
  159. password := "Top2023_JEB01i@31"
  160. client, err := elastic.NewClient(
  161. elastic.SetURL(url),
  162. elastic.SetBasicAuth(username, password),
  163. elastic.SetSniff(false),
  164. )
  165. if err != nil {
  166. log.Fatal("创建 Elasticsearch 客户端失败", zap.Error(err))
  167. }
  168. MgoQY = &mongodb.MongodbSim{
  169. //MongodbAddr: "172.31.31.202:27081,172.20.45.128:27080",
  170. MongodbAddr: "127.0.0.1:27083",
  171. Size: 10,
  172. DbName: "mixdata",
  173. UserName: "SJZY_RWbid_ES",
  174. Password: "SJZY@B4i4D5e6S",
  175. Direct: true,
  176. }
  177. MgoQY.InitPool()
  178. f, err := excelize.OpenFile("./剑鱼匹配疑似问题7月.xlsx")
  179. if err != nil {
  180. fmt.Println(err)
  181. return
  182. }
  183. defer func() {
  184. f.Save()
  185. if err := f.Close(); err != nil {
  186. fmt.Println(err)
  187. }
  188. }()
  189. rows, err := f.GetRows("Sheet1")
  190. if err != nil {
  191. fmt.Println(err)
  192. return
  193. }
  194. for i, row := range rows {
  195. if i == 0 {
  196. continue
  197. }
  198. target := InputData{
  199. ProjectName: row[0],
  200. }
  201. projectName := rows[i][0]
  202. if projectName == "" {
  203. continue
  204. }
  205. areacode := ""
  206. publish := ""
  207. fmt.Println(i, projectName)
  208. res, err := SearchProjectFullScoring(client, target, projectName, areacode, publish)
  209. if err != nil {
  210. fmt.Println(err)
  211. }
  212. dds := make([]string, 0)
  213. for k, v := range res {
  214. if k > 2 {
  215. break
  216. }
  217. id := util.ObjToString(v["id"])
  218. jyurl := GetJyURLByID(id)
  219. socre := v["score"]
  220. pname := v["projectname"]
  221. dd := fmt.Sprintf("%v,%v,%v", pname, socre, jyurl)
  222. dds = append(dds, dd)
  223. }
  224. ddda := strings.Join(dds, "\n")
  225. f.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "J", i+1), ddda)
  226. }
  227. }