zhengfumingxi.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "app.yhyue.com/moapp/jybase/mongodb"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. )
  8. // 从解析文档中提取全部项目信息
  9. // 没有单位 1000一下 默认 *10000
  10. func getYusuanPurchasing() {
  11. query := map[string]interface{}{
  12. "handle": map[string]interface{}{
  13. "$exists": true,
  14. },
  15. "procurementdetails_result": map[string]interface{}{
  16. "$exists": true,
  17. "$ne": []map[string]interface{}{},
  18. },
  19. }
  20. list, _ := db.Find(cf.YusuanInfo, query, nil, nil, false, -1, -1)
  21. //list, _ := db.Find(cf.YusuanInfo, `{"file_path" : "2024年/内蒙古/内蒙古/政府/2024_准格尔旗人民法院_14.xlsx"}`, nil, nil, false, -1, -1)
  22. log.Println(len(*list))
  23. pronum := 0
  24. for k, data := range *list {
  25. tmp, _ := data["procurementdetails_result"].([]interface{})
  26. if len(tmp) > 0 {
  27. for _, v := range tmp {
  28. t, _ := v.(map[string]interface{})
  29. tmp3, _ := t["sheetdata"].([]interface{})
  30. for _, v := range tmp3 {
  31. item, _ := v.(map[string]interface{})
  32. for _, f := range cf.Projectitem_field_mingxi {
  33. item[f] = data[f]
  34. }
  35. year := gconv.String(item["year"])
  36. projectname := gconv.String(item["projectname"])
  37. pro_code := gconv.String(item["pro_code"])
  38. pro_item := gconv.String(item["pro_item"])
  39. institution := gconv.String(item["institution"])
  40. number := gconv.Int64(item["number"])
  41. //生成hashcode
  42. str := fmt.Sprintf("%s%s%s%s%s%v", year, projectname, pro_code, pro_item, institution, number)
  43. hash_code := HashCode(str)
  44. item["hash_code"] = hash_code
  45. item["fileitem_id"] = mongodb.BsonIdToSId(data["_id"])
  46. pronum++
  47. db.Save(cf.Yusuan_mingxi, item)
  48. }
  49. }
  50. }
  51. if k%1000 == 0 {
  52. log.Printf("加载数据量为:%d,生成项目数据量为:%d", k, pronum)
  53. }
  54. }
  55. }