package main import ( "fmt" "log" "app.yhyue.com/moapp/jybase/mongodb" "github.com/gogf/gf/v2/util/gconv" ) // 从解析文档中提取全部项目信息 // 没有单位 1000一下 默认 *10000 func getYusuanPurchasing() { list, _ := db.Find(cf.YusuanInfo, `{"handle":{"$exists":1}}`, nil, nil, false, -1, -1) //list, _ := db.Find(cf.YusuanInfo, `{"file_path" : "2024年/内蒙古/内蒙古/政府/2024_准格尔旗人民法院_14.xlsx"}`, nil, nil, false, -1, -1) pronum := 0 for k, data := range *list { tmp, _ := data["procurementdetails_result"].([]interface{}) if len(tmp) > 0 { for _, v := range tmp { t, _ := v.(map[string]interface{}) tmp3, _ := t["sheetdata"].([]interface{}) for _, v := range tmp3 { item, _ := v.(map[string]interface{}) for _, f := range cf.Projectitem_field_mingxi { item[f] = data[f] } year := gconv.String(item["year"]) projectname := gconv.String(item["projectname"]) pro_code := gconv.String(item["pro_code"]) pro_item := gconv.String(item["pro_item"]) institution := gconv.String(item["institution"]) number := gconv.Int64(item["number"]) //生成hashcode str := fmt.Sprintf("%s%s%s%s%s%v", year, projectname, pro_code, pro_item, institution, number) hash_code := HashCode(str) item["hash_code"] = hash_code item["fileitem_id"] = mongodb.BsonIdToSId(data["_id"]) pronum++ db.Save(cf.Yusuan_mingxi, item) } } } if k%1000 == 0 { log.Printf("加载数据量为:%d,生成项目数据量为:%d", k, pronum) } } }