zhengfumingxi.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. list, _ := db.Find(cf.YusuanInfo, `{"handle":{"$exists":1}}`, nil, nil, false, -1, -1)
  12. //list, _ := db.Find(cf.YusuanInfo, `{"file_path" : "2024年/内蒙古/内蒙古/政府/2024_准格尔旗人民法院_14.xlsx"}`, nil, nil, false, -1, -1)
  13. pronum := 0
  14. for k, data := range *list {
  15. tmp, _ := data["procurementdetails_result"].([]interface{})
  16. if len(tmp) > 0 {
  17. for _, v := range tmp {
  18. t, _ := v.(map[string]interface{})
  19. tmp3, _ := t["sheetdata"].([]interface{})
  20. for _, v := range tmp3 {
  21. item, _ := v.(map[string]interface{})
  22. for _, f := range cf.Projectitem_field_mingxi {
  23. item[f] = data[f]
  24. }
  25. year := gconv.String(item["year"])
  26. projectname := gconv.String(item["projectname"])
  27. pro_code := gconv.String(item["pro_code"])
  28. pro_item := gconv.String(item["pro_item"])
  29. institution := gconv.String(item["institution"])
  30. number := gconv.Int64(item["number"])
  31. //生成hashcode
  32. str := fmt.Sprintf("%s%s%s%s%s%v", year, projectname, pro_code, pro_item, institution, number)
  33. hash_code := HashCode(str)
  34. item["hash_code"] = hash_code
  35. item["fileitem_id"] = mongodb.BsonIdToSId(data["_id"])
  36. pronum++
  37. db.Save(cf.Yusuan_mingxi, item)
  38. }
  39. }
  40. }
  41. if k%1000 == 0 {
  42. log.Printf("加载数据量为:%d,生成项目数据量为:%d", k, pronum)
  43. }
  44. }
  45. }