123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- package main
- import (
- "github.com/spf13/viper"
- "github.com/xuri/excelize/v2"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
- "log"
- "strings"
- )
- var (
- yangMap = make(map[string]bool) //存储98家央企
- yangChildMap = make(map[string]bool) //存储央企 下属子公司
- codeZhu = make(map[string]string) //内外个私农合 标签
- codeZhu2 = make(map[string]string) //国企、外企、私企
- codeMap = make(map[string]string) //code-企业类型
- nameMap = make(map[string]string) //企业类型 -> code
- Mgo181 *mongodb.MongodbSim //
- MgoB *mongodb.MongodbSim //
- MgoQY *mongodb.MongodbSim // qyxy_std
- MgoP *mongodb.MongodbSim //
- GF GlobalConf
- )
- func InitConfig() (err error) {
- viper.SetConfigFile("config.toml") // 指定配置文件路径
- viper.SetConfigName("config") // 配置文件名称(无扩展名)
- viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
- viper.AddConfigPath("./")
- viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
- viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
- err = viper.ReadInConfig() // 查找并读取配置文件
- if err != nil { // 处理读取配置文件的错误
- return
- }
- err = viper.Unmarshal(&GF)
- return err
- }
- func InitMgo() {
- //181 凭安库
- Mgo181 = &mongodb.MongodbSim{
- MongodbAddr: GF.Mongo181.Host,
- Size: 10,
- DbName: GF.Mongo181.DB,
- UserName: GF.Mongo181.Username,
- Password: GF.Mongo181.Password,
- Direct: GF.Mongo181.Direct,
- }
- Mgo181.InitPool()
- //MgoP = &mongodb.MongodbSim{
- // MongodbAddr: GF.MongoP.Host,
- // Size: 10,
- // DbName: GF.MongoP.DB,
- // UserName: GF.MongoP.Username,
- // Password: GF.MongoP.Password,
- // Direct: GF.MongoP.Direct,
- //}
- //
- //MgoP.InitPool()
- //MgoB = &mongodb.MongodbSim{
- // MongodbAddr: GF.MongoB.Host,
- // Size: 10,
- // DbName: GF.MongoB.DB,
- // UserName: GF.MongoB.Username,
- // Password: GF.MongoB.Password,
- // Direct: GF.MongoB.Direct,
- //}
- //
- //MgoB.InitPool()
- MgoQY = &mongodb.MongodbSim{
- MongodbAddr: GF.MongoB.Host,
- Size: 10,
- DbName: "mixdata",
- UserName: GF.MongoB.Username,
- Password: GF.MongoB.Password,
- Direct: GF.MongoB.Direct,
- }
- MgoQY.InitPool()
- }
- // readXlsx 读取央企 央企下属
- func readXlsx() {
- filePath := "央企.xlsx"
- // 1. 读取 Excel(获取 A 列数据)
- f, err := excelize.OpenFile(filePath)
- if err != nil {
- log.Fatal("❌ 无法打开 Excel 文件:", err)
- }
- defer f.Close()
- //读取央企
- rows, err := f.GetRows("Sheet1")
- if err != nil {
- log.Fatal("❌ 无法读取 Sheet1:", err)
- }
- for i := 1; i < len(rows); i++ {
- name := rows[i][0]
- if name != "" {
- yangMap[name] = true
- }
- }
- log.Println("央企数量", len(yangMap))
- // 央企下属
- rows2, err := f.GetRows("Sheet4")
- if err != nil {
- log.Fatal("❌ 无法读取 Sheet2:", err)
- }
- for i := 1; i < len(rows2); i++ {
- row := rows2[i]
- if len(row) == 0 {
- continue
- }
- name := rows2[i][1]
- if name != "" {
- yangChildMap[name] = true
- }
- }
- log.Println("央企下属数量", len(yangChildMap))
- }
- //func readXlsx2() {
- // filePath := "企业经营主体代码表.xlsx"
- // // 1. 读取 Excel(获取 A 列数据)
- // f, err := excelize.OpenFile(filePath)
- // if err != nil {
- // log.Fatal("❌ 无法打开 Excel 文件:", err)
- // }
- // defer f.Close()
- //
- // //读取央企
- // rows, err := f.GetRows("市场主体类型代码")
- // if err != nil {
- // log.Fatal("❌ 无法读取 Sheet1:", err)
- // }
- // for i := 1; i < len(rows); i++ {
- // code := strings.TrimSpace(rows[i][2])
- // name := strings.TrimSpace(rows[i][3])
- // name = strings.ReplaceAll(name, "(", "(")
- // name = strings.ReplaceAll(name, ")", ")")
- // codeMap[name] = code
- // tab1 := strings.TrimSpace(rows[i][4])
- // tab2 := strings.TrimSpace(rows[i][6])
- // codeZhu[code] = tab1
- // codeZhu2[code] = tab2
- // }
- //
- // log.Println("readXlsx2", "企业经营主体代码表 处理完毕")
- //}
- // readXlsx2 读取整理的法人库 企业类型和对应代码
- func readXlsx2() {
- filePath := "法人类型代码表.xlsx"
- // 1. 读取 Excel(获取 A 列数据)
- f, err := excelize.OpenFile(filePath)
- if err != nil {
- log.Fatal("❌ 无法打开 Excel 文件:", err)
- }
- defer f.Close()
- //读取央企
- rows, err := f.GetRows("叶子节点")
- if err != nil {
- log.Fatal("❌ 无法读取 市场主体类型代码-叶子节点:", err)
- }
- for i := 1; i < len(rows); i++ {
- //if len(rows[i]) < 16 {
- // continue
- //}
- code := strings.TrimSpace(rows[i][2])
- name := strings.TrimSpace(rows[i][3])
- name = strings.ReplaceAll(name, "(", "(")
- name = strings.ReplaceAll(name, ")", ")")
- codeMap[name] = code
- nameMap[code] = name
- tab1 := strings.TrimSpace(rows[i][6])
- codeZhu[code] = tab1
- }
- log.Println("readXlsx2", "企业经营主体代码表 处理完毕")
- }
|