project_test.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  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. url := "http://127.0.0.1:19908"
  61. username := "jybid"
  62. password := "Top2023_JEB01i@31"
  63. client, err := elastic.NewClient(
  64. elastic.SetURL(url),
  65. elastic.SetBasicAuth(username, password),
  66. elastic.SetSniff(false),
  67. )
  68. if err != nil {
  69. log.Fatal("创建 Elasticsearch 客户端失败", zap.Error(err))
  70. }
  71. MgoQY = &mongodb.MongodbSim{
  72. //MongodbAddr: "172.31.31.202:27081,172.20.45.128:27080",
  73. MongodbAddr: "127.0.0.1:27083",
  74. Size: 10,
  75. DbName: "mixdata",
  76. UserName: "SJZY_RWbid_ES",
  77. Password: "SJZY@B4i4D5e6S",
  78. Direct: true,
  79. }
  80. MgoQY.InitPool()
  81. //projectName := "年产100万瓶医疗食品工业气体充装项目"
  82. projectName := "年产100万瓶工业医疗食品气体充装项目"
  83. //projectName := "太和县乡镇政府驻地污水处理建设PPP工程监理项目"
  84. //results, err := getSearch(client, projectName, "", 0)
  85. results, err := getSearchNew(client, projectName, "", 1)
  86. //results, err := searchByTokenOther(client, projectName, "", "", 0)
  87. if err != nil {
  88. log.Info("TestSearchES23", zap.Error(err))
  89. }
  90. log.Info("aaa", zap.Any("results", results))
  91. }
  92. func TestSearchProjectFullScoring(t *testing.T) {
  93. url := "http://127.0.0.1:19908"
  94. username := "jybid"
  95. password := "Top2023_JEB01i@31"
  96. client, err := elastic.NewClient(
  97. elastic.SetURL(url),
  98. elastic.SetBasicAuth(username, password),
  99. elastic.SetSniff(false),
  100. )
  101. if err != nil {
  102. log.Fatal("创建 Elasticsearch 客户端失败", zap.Error(err))
  103. }
  104. MgoQY = &mongodb.MongodbSim{
  105. //MongodbAddr: "172.31.31.202:27081,172.20.45.128:27080",
  106. MongodbAddr: "127.0.0.1:27083",
  107. Size: 10,
  108. DbName: "mixdata",
  109. UserName: "SJZY_RWbid_ES",
  110. Password: "SJZY@B4i4D5e6S",
  111. Direct: true,
  112. }
  113. MgoQY.InitPool()
  114. f, err := excelize.OpenFile("./项目信息.xlsx")
  115. if err != nil {
  116. fmt.Println(err)
  117. return
  118. }
  119. defer func() {
  120. f.Save()
  121. if err := f.Close(); err != nil {
  122. fmt.Println(err)
  123. }
  124. }()
  125. rows, err := f.GetRows("Sheet1")
  126. if err != nil {
  127. fmt.Println(err)
  128. return
  129. }
  130. for i, row := range rows {
  131. if i == 0 {
  132. continue
  133. }
  134. if len(row) < 6 { // Ensure row has enough columns
  135. continue
  136. }
  137. investment, _ := strconv.ParseFloat(row[4], 64)
  138. dateStr := strings.TrimPrefix(row[5], "Y")
  139. baseDate, _ := time.Parse("200601", dateStr)
  140. target := InputData{
  141. ProjectCode: row[0],
  142. ProjectName: row[1],
  143. AreaCode: row[2],
  144. ConstructionUnit: row[3],
  145. PlannedInvestment: investment,
  146. BaseDate: baseDate,
  147. }
  148. //targets = append(targets, target)
  149. projectName := rows[i][1]
  150. areacode := rows[i][2]
  151. publish := rows[i][5]
  152. fmt.Println(i, projectName)
  153. res, err := SearchProjectFullScoring(client, target, projectName, areacode, publish, 0)
  154. if err != nil {
  155. fmt.Println(err)
  156. }
  157. dds := make([]string, 0)
  158. for k, v := range res {
  159. if k > 2 {
  160. break
  161. }
  162. id := util.ObjToString(v["id"])
  163. jyurl := GetJyURLByID(id)
  164. socre := v["score"]
  165. pname := v["projectname"]
  166. dd := fmt.Sprintf("%v,%v,%v", pname, socre, jyurl)
  167. dds = append(dds, dd)
  168. }
  169. ddda := strings.Join(dds, "\n")
  170. f.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "K", i+1), ddda)
  171. }
  172. }
  173. func TestSearchProjectFullScoring2(t *testing.T) {
  174. url := "http://127.0.0.1:19908"
  175. username := "jybid"
  176. password := "Top2023_JEB01i@31"
  177. client, err := elastic.NewClient(
  178. elastic.SetURL(url),
  179. elastic.SetBasicAuth(username, password),
  180. elastic.SetSniff(false),
  181. )
  182. if err != nil {
  183. log.Fatal("创建 Elasticsearch 客户端失败", zap.Error(err))
  184. }
  185. MgoQY = &mongodb.MongodbSim{
  186. //MongodbAddr: "172.31.31.202:27081,172.20.45.128:27080",
  187. MongodbAddr: "127.0.0.1:27083",
  188. Size: 10,
  189. DbName: "mixdata",
  190. UserName: "SJZY_RWbid_ES",
  191. Password: "SJZY@B4i4D5e6S",
  192. Direct: true,
  193. }
  194. MgoQY.InitPool()
  195. f, err := excelize.OpenFile("./剑鱼匹配疑似问题7月.xlsx")
  196. if err != nil {
  197. fmt.Println(err)
  198. return
  199. }
  200. defer func() {
  201. f.Save()
  202. if err := f.Close(); err != nil {
  203. fmt.Println(err)
  204. }
  205. }()
  206. rows, err := f.GetRows("Sheet1")
  207. if err != nil {
  208. fmt.Println(err)
  209. return
  210. }
  211. for i, row := range rows {
  212. if i == 0 {
  213. continue
  214. }
  215. target := InputData{
  216. ProjectName: row[0],
  217. }
  218. projectName := rows[i][0]
  219. if projectName == "" {
  220. continue
  221. }
  222. areacode := ""
  223. publish := ""
  224. fmt.Println(i, projectName)
  225. res, err := SearchProjectFullScoring(client, target, projectName, areacode, publish, 80)
  226. if err != nil {
  227. fmt.Println(err)
  228. }
  229. dds := make([]string, 0)
  230. for k, v := range res {
  231. if k > 2 {
  232. break
  233. }
  234. id := util.ObjToString(v["id"])
  235. jyurl := GetJyURLByID(id)
  236. socre := v["score"]
  237. pname := v["projectname"]
  238. dd := fmt.Sprintf("%v,%v,%v", pname, socre, jyurl)
  239. dds = append(dds, dd)
  240. }
  241. ddda := strings.Join(dds, "\n")
  242. f.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "J", i+1), ddda)
  243. }
  244. }