test.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package extract
  2. import (
  3. "data_ai/prompt"
  4. "data_ai/ul"
  5. "fmt"
  6. log "github.com/donnie4w/go-logger/logger"
  7. new_xlsx "github.com/tealeg/xlsx/v3"
  8. qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  9. "os"
  10. "sync"
  11. "unicode/utf8"
  12. )
  13. func TestSingleFieldInfo(name string, tmpid string) {
  14. tmp := ul.SourceMgo.FindById(name, tmpid)
  15. data := ResolveInfo(tmp)
  16. //最终结果...
  17. for k, v := range data {
  18. log.Debug(k, "~", v)
  19. }
  20. }
  21. func TestPackageInfo() {
  22. query := map[string]interface{}{
  23. "new_pkg": map[string]interface{}{
  24. "$exists": 1,
  25. },
  26. }
  27. dataArr, _ := ul.SourceMgo.Find("ai_41411_zhipu", query, nil, map[string]interface{}{})
  28. log.Debug("查询数量...", len(dataArr))
  29. os.Remove("test.xlsx")
  30. f := new_xlsx.NewFile()
  31. sheet, _ := f.AddSheet("数据信息")
  32. row := sheet.AddRow()
  33. writeRow(row, []string{"唯一标识", "站点", "剑鱼链接", "子包名称", "子包单位", "子包金额"})
  34. for _, v := range dataArr {
  35. tmpid := ul.BsonTOStringId(v["_id"])
  36. ttt := ul.SourceMgo.FindById("ai_41411", tmpid)
  37. site := qu.ObjToString(ttt["site"])
  38. jyhref := fmt.Sprintf(ul.Url, qu.CommonEncodeArticle("content", tmpid))
  39. p_info := *qu.ObjToMap(v["new_pkg"])
  40. p_arr := ul.IsMarkInterfaceMap(p_info["分包信息"])
  41. for _, v1 := range p_arr {
  42. row = sheet.AddRow()
  43. arr := []string{}
  44. arr = append(arr, tmpid)
  45. arr = append(arr, site)
  46. arr = append(arr, jyhref)
  47. arr = append(arr, qu.ObjToString(v1["包项目名称"]))
  48. arr = append(arr, qu.ObjToString(v1["中标单位"]))
  49. arr = append(arr, qu.ObjToString(v1["中标金额"]))
  50. writeRow(row, arr)
  51. }
  52. }
  53. if err := f.Save("test.xlsx"); err != nil {
  54. fmt.Println("保存xlsx失败:", err)
  55. } else {
  56. fmt.Println("保存xlsx成功:", err)
  57. }
  58. log.Debug("is over ...")
  59. return
  60. //分包判断,获取信息
  61. pool_mgo := make(chan bool, 80)
  62. wg_mgo := &sync.WaitGroup{}
  63. for k, v := range dataArr {
  64. if k%10 == 0 {
  65. log.Debug(k, "~", v["_id"])
  66. }
  67. pool_mgo <- true
  68. wg_mgo.Add(1)
  69. go func(v map[string]interface{}) {
  70. defer func() {
  71. <-pool_mgo
  72. wg_mgo.Done()
  73. }()
  74. tmpid := ul.BsonTOStringId(v["_id"])
  75. data := ul.SourceMgo.FindById("ai_41411", tmpid)
  76. if detail := qu.ObjToString(data["detail"]); utf8.RuneCountInString(detail) > 100 {
  77. pkg := prompt.AcquireMultiplePackageInfo(detail)
  78. //最终结果...
  79. ul.SourceMgo.UpdateById("ai_41411_zhipu", tmpid, map[string]interface{}{
  80. "$set": map[string]interface{}{
  81. "new_pkg": pkg,
  82. },
  83. })
  84. }
  85. }(v)
  86. }
  87. wg_mgo.Wait()
  88. }
  89. // 更新链接
  90. func TestUpdateJyhref(name string) {
  91. dataArr, _ := ul.SourceMgo.Find(name, map[string]interface{}{}, nil, map[string]interface{}{"_id": 1})
  92. for _, v := range dataArr {
  93. tmpid := ul.BsonTOStringId(v["_id"])
  94. jyhref := fmt.Sprintf(ul.Url, qu.CommonEncodeArticle("content", tmpid))
  95. ul.SourceMgo.UpdateById(name, tmpid, map[string]interface{}{
  96. "$set": map[string]interface{}{
  97. "jyhref": jyhref,
  98. },
  99. })
  100. }
  101. log.Debug("is over ...")
  102. }
  103. func writeRow(row *new_xlsx.Row, arr []string) {
  104. for _, v := range arr {
  105. row.AddCell().Value = v
  106. }
  107. }