Browse Source

Merge branch 'master' of https://jygit.jydev.jianyu360.cn/data_processing/timed_tasks

xuzhiheng 9 months ago
parent
commit
b5d33aaf19

+ 580 - 0
account_order/account_order_change.go

@@ -0,0 +1,580 @@
+package main
+
+import (
+	"encoding/json"
+	"errors"
+	"fmt"
+	"go.uber.org/zap"
+	"gorm.io/gorm"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
+	"time"
+)
+
+// dealAllDataAccountOrderChangeRecord 处理归集后-存量业绩表更表-dwd_f_account_order_change
+func dealAllDataAccountOrderChangeRecord() {
+	// 数据分为二部分;1、业绩变更表-jianyu.order_sale_record
+	//2、退款表 -data_analysis.refund_record
+	log.Info("dealAllDataAccountOrderChangeRecord ", zap.String("处理归集后的业绩变更表", "处理开始"))
+	allDataOrderSaleRecordForAccountOrderChange() //业绩变更表数据处理
+	allDataRefundRecordForAccountOrderChange()    //退款表数据处理
+	log.Info("dealAllDataAccountOrderChangeRecord ", zap.String("处理归集后的业绩变更表", "处理完毕"))
+}
+
+// allDataOrderSaleRecordForAccountOrderChange  业绩变更表数据处理-order_sale_record
+func allDataOrderSaleRecordForAccountOrderChange() {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+
+		log.Info("aaaaaaaaaaaa")
+	}()
+
+	var total int64
+	JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("state IN  ?", []string{"1", "-1"}).Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Any("OrderSaleRecord 总数是", total))
+
+	rowsPerPage := 100                           // 每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("state IN  ?", []string{"1", "-1"}).Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Any("current page ", page))
+		for rows.Next() {
+			var order_sale_record OrderSaleRecord           // 原来业绩表更
+			var account_order_change DwdFAccountOrderChange // 归集后的业绩变更表
+			var data_exOrder DataexportOrder                //原来的订单表
+			var account_order DwdFAccountOrder              //归集后的订单表
+			var user1 DwdFUserbaseBaseinfo                  //个人用户表
+			//var returnRecord ReturnMoneyRecord    //原来的回款表
+			var returnRecords []ReturnMoneyRecord //原来的回款表
+			var contract Contract                 //合同表
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = JianyuDB.ScanRows(rows, &order_sale_record)
+			if err != nil {
+				log.Info("allDataOrderSaleRecordForAccountOrderChange,ScanRows err ", zap.Error(err))
+			}
+
+			//订单编号不为空
+			if order_sale_record.Ordercode != "" {
+				// 业务逻辑...
+				account_order_change.OrderCode = order_sale_record.Ordercode
+				if order_sale_record.SalerName == "-" {
+					account_order_change.SalerName = "运营"
+				} else {
+					account_order_change.SalerName = order_sale_record.SalerName
+				}
+				account_order_change.SalerDept = order_sale_record.SalerDept
+
+				// 原来订单表
+				err = AnalysisDB.Model(DataexportOrder{}).Where("order_code =? ", order_sale_record.Ordercode).First(&data_exOrder).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Error(err))
+				}
+
+				// 处理后的订单归集表
+				err = AnalysisDB.Model(DwdFAccountOrder{}).Where("order_code =? ", order_sale_record.Ordercode).First(&account_order).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Error(err))
+				}
+
+				// 合同
+				err = AnalysisDB.Where("order_code = ? ", data_exOrder.OrderCode).First(&contract).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Error(err))
+				}
+
+				account_order_change.CompanyName = data_exOrder.CompanyName
+				if len(data_exOrder.UserID) > 20 { // 个人身份
+					err = JianyuSubjectDB.Where("userid = ? ", data_exOrder.UserID).First(&user1).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Error(err))
+					}
+					account_order_change.UserRegtime = user1.LRegistedate
+				} else {
+					// 企业身份
+					//企业身份
+					rs := new(struct {
+						PositionId   int        `gorm:"column:position_id"`
+						LRegistedate *time.Time `gorm:"column:l_registedate"`
+					})
+					if data_exOrder.UserID != "" {
+						sql := fmt.Sprintf(`SELECT im.position_id,ub.l_registedate FROM
+				(SELECT userid,position_id FROM Jianyu_subjectdb.dwd_f_userbase_id_mapping WHERE position_id = %s) im
+				LEFT JOIN Jianyu_subjectdb.dwd_f_userbase_baseinfo ub
+					ON im.userid=ub.userid`, data_exOrder.UserID)
+						err = JianyuSubjectDB.Raw(sql).Scan(&rs).Error
+						if err != nil {
+							log.Info("处理用户订单表数据", zap.String("查询企业用户注册时间失败", data_exOrder.UserID))
+						}
+						account_order_change.UserRegtime = rs.LRegistedate
+					}
+				}
+				//
+
+				account_order_change.CreateTime = data_exOrder.CreateTime
+				account_order_change.SaleTime = order_sale_record.StatisticsTime
+				account_order_change.ChangeReason = order_sale_record.ChangeReason
+				account_order_change.OriginalPrice = data_exOrder.OriginalPrice
+				filter := data_exOrder.Filter
+				filterMap := make(map[string]interface{})
+				err := json.Unmarshal([]byte(filter), &filterMap)
+				if err != nil {
+					log.Info("allDataOrderSaleRecordForAccountOrderChange, filter.json.Unmarshal", zap.Error(err))
+				}
+				account_order_change.ContractMoney = util.IntAll(filterMap["originalAmount"])
+				account_order_change.Commission = data_exOrder.Commission
+				account_order_change.ProceduresMoney = data_exOrder.ProceduresMoney
+				account_order_change.ReceivableAmount = account_order_change.ContractMoney - account_order_change.Commission - account_order_change.ProceduresMoney
+				account_order_change.ChangeValue = order_sale_record.ChangeValue
+
+				//累计已收
+				if data_exOrder.IsBackstageOrder == 0 {
+					account_order_change.TotalReceived = util.IntAll(filterMap["originalAmount"])
+				} else if data_exOrder.IsBackstageOrder == 1 {
+					err = AnalysisDB.Where("order_code = ? ", data_exOrder.OrderCode).Find(&returnRecords).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("allDataOrderSaleRecordForAccountOrderChange", zap.Error(err))
+					}
+					totalMoney := 0
+					if len(returnRecords) > 0 {
+						for _, v := range returnRecords {
+							totalMoney += v.ReturnMoney
+						}
+					}
+					account_order_change.TotalReceived = totalMoney
+				}
+				//
+				account_order_change.ProductType = data_exOrder.ProductType
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					switch util.IntAll(filterMap["level"]) {
+					case 1:
+						account_order_change.DataSpec = "专家版"
+					case 2:
+						account_order_change.DataSpec = "智慧版"
+					case 3:
+						account_order_change.DataSpec = "商机版"
+					case 4:
+						account_order_change.DataSpec = "试用版"
+					case 5:
+						account_order_change.DataSpec = "定制版"
+					case 6:
+						account_order_change.DataSpec = "商机版2.0"
+					case 7:
+						account_order_change.DataSpec = "专家版2.0"
+					}
+				} else {
+					account_order_change.DataSpec = data_exOrder.DataSpec
+				}
+
+				//订单状态
+				if data_exOrder.RefundStatus == 1 || data_exOrder.RefundStatus == 2 {
+					account_order_change.OrderStatus = "已完成"
+				} else {
+					switch data_exOrder.OrderStatus {
+					case 1:
+						account_order_change.OrderStatus = "已完成"
+					case -1:
+						account_order_change.OrderStatus = "逻辑删除"
+					case -2:
+						account_order_change.OrderStatus = "已取消"
+					case -3:
+						account_order_change.OrderStatus = "已取消"
+					case 0:
+						account_order_change.OrderStatus = "未完成"
+					}
+				}
+
+				// refund_status 回款状态
+				if data_exOrder.IsBackstageOrder == 0 {
+					if account_order.OrderStatus == "已支付" {
+						account_order_change.RefundStatus = "全额回款"
+					} else {
+						account_order_change.RefundStatus = "未回款"
+					}
+				} else if data_exOrder.IsBackstageOrder == 1 {
+					switch data_exOrder.ReturnStatus {
+					case 1:
+						account_order_change.ReturnStatus = "全额回款"
+					case 2:
+						account_order_change.ReturnStatus = "部分回款"
+					case 0:
+						account_order_change.ReturnStatus = "未回款"
+					}
+				}
+				//退款状态
+				switch data_exOrder.RefundStatus {
+				case 1:
+					account_order_change.ReturnStatus = "全额回款"
+				case 2:
+					account_order_change.ReturnStatus = "部分回款"
+				case 0:
+					account_order_change.ReturnStatus = "未回款"
+				}
+
+				//付费类型 vip_type
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					//付费类型  VipType
+					switch util.IntAll(filterMap["recordPayType"]) {
+					case 1:
+						account_order_change.VipType = "购买"
+					case 2:
+						account_order_change.VipType = "续费"
+					case 3:
+						account_order_change.VipType = "升级"
+					case 4:
+						account_order_change.VipType = "试用"
+					}
+				} else {
+					switch data_exOrder.VipType {
+					case 0:
+						account_order_change.VipType = "购买"
+					case 1:
+						account_order_change.VipType = "续费"
+					case 2:
+						account_order_change.VipType = "升级"
+					case 3:
+						account_order_change.VipType = "试用"
+					}
+				}
+				//
+				account_order_change.UserPhone = data_exOrder.UserPhone
+				account_order_change.UserID = data_exOrder.UserID
+				account_order_change.VipStarttime = data_exOrder.VipStarttime
+				account_order_change.VipEndtime = data_exOrder.VipEndtime
+				//合同
+				if contract.ContractStatus == 1 {
+					account_order_change.ContractStatus = "已签协议"
+				} else if contract.ContractStatus == 0 {
+					account_order_change.ContractStatus = "未签协议"
+				}
+				account_order_change.ContractCode = contract.ContractCode
+				account_order_change.ContractTime = contract.ContractTime
+				//签约主体
+				if data_exOrder.SigningSubject == "h01" {
+					account_order_change.SigningSubject = "北京剑鱼信息技术有限公司"
+				} else if data_exOrder.SigningSubject == "h02" {
+					account_order_change.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+				}
+				account_order_change.OrderChannel = data_exOrder.OrderChannel
+				account_order_change.DistributionChannel = data_exOrder.DistributionChannel
+				if data_exOrder.IsBackstageOrder == 0 {
+					account_order_change.IsBackstageOrder = "否"
+				} else if data_exOrder.IsBackstageOrder == 1 {
+					account_order_change.IsBackstageOrder = "是"
+				}
+
+				//付款方式
+				switch data_exOrder.PayWay {
+				case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+					account_order_change.PayWay = "支付宝"
+				case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+					account_order_change.PayWay = "微信"
+				case "transferAccounts":
+					account_order_change.PayWay = "对公转账"
+				default:
+					account_order_change.PayWay = data_exOrder.PayWay
+				}
+				//
+				account_order_change.OrderSaleRecordID = order_sale_record.ID
+				//生成订单数据
+				err = AnalysisDB.Create(&account_order_change).Error
+				if err != nil {
+					log.Info("allDataOrderSaleRecordForAccountOrderChange Create ", zap.Error(err))
+				}
+			}
+		}
+	}
+
+	log.Info("allDataOrderSaleRecordForAccountOrderChange 迭代结束", zap.Int64("数据总量", total))
+}
+
+// allDataRefundRecordForAccountOrderChange 退款表数据处理 -refund_record
+func allDataRefundRecordForAccountOrderChange() {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+
+		log.Info("aaaaaaaaaaaa")
+	}()
+
+	var total int64
+	AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Count(&total)
+	log.Info("allDataRefundRecordForAccountOrderChange", zap.Any("RefundRecord 退款表 总数是", total))
+
+	rowsPerPage := 100                           // 每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("allDataRefundRecordForAccountOrderChange", zap.Any("current page ", page))
+		for rows.Next() {
+			var refund_record RefundRecord                  //原来退款表
+			var order_sale_record OrderSaleRecord           // 原来业绩变更表
+			var account_order_change DwdFAccountOrderChange // 归集后的业绩变更表
+			var data_exOrder DataexportOrder                //原来的订单表
+			var account_order DwdFAccountOrder              //归集后的订单表
+			var user1 DwdFUserbaseBaseinfo                  //个人用户表
+			//var returnRecord ReturnMoneyRecord    //原来的回款表
+			var returnRecords []ReturnMoneyRecord //原来的回款表
+			var contract Contract                 //合同表
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = AnalysisDB.ScanRows(rows, &refund_record)
+			if err != nil {
+				log.Info("allDataRefundRecordForAccountOrderChange,ScanRows err ", zap.Error(err))
+			}
+
+			//退款表订单编号不为空
+			if refund_record.OrderCode != "" {
+				// 业务逻辑...
+				// 1.原来订单表
+				err = AnalysisDB.Model(DataexportOrder{}).Where("order_code =? ", refund_record.OrderCode).First(&data_exOrder).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+				}
+				//2.业绩变更表
+				err = JianyuDB.Debug().Where("ordercode = ? ", refund_record.OrderCode).Order("id desc").First(&order_sale_record).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+				}
+				//3. 处理后的订单归集表
+				err = AnalysisDB.Model(DwdFAccountOrder{}).Where("order_code =? ", refund_record.OrderCode).First(&account_order).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+				}
+				//4. 合同
+				err = AnalysisDB.Where("order_code = ? ", refund_record.OrderCode).First(&contract).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("dealAllDataOrderSaleRecord", zap.Error(err))
+				}
+
+				//订单编号
+				account_order_change.OrderCode = refund_record.OrderCode
+				if order_sale_record.SalerName == "-" {
+					account_order_change.SalerName = "运营"
+				} else {
+					account_order_change.SalerName = order_sale_record.SalerName
+				}
+				account_order_change.SalerDept = order_sale_record.SalerDept
+
+				account_order_change.CompanyName = data_exOrder.CompanyName //公司名称
+				if len(data_exOrder.UserID) > 20 {                          // 个人身份
+					err = JianyuSubjectDB.Where("userid = ? ", data_exOrder.UserID).First(&user1).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+					}
+					account_order_change.UserRegtime = user1.LRegistedate
+				} else {
+					// 企业身份
+					//企业身份
+					rs := new(struct {
+						PositionId   int        `gorm:"column:position_id"`
+						LRegistedate *time.Time `gorm:"column:l_registedate"`
+					})
+					if data_exOrder.UserID != "" {
+						sql := fmt.Sprintf(`SELECT im.position_id,ub.l_registedate FROM
+				(SELECT userid,position_id FROM Jianyu_subjectdb.dwd_f_userbase_id_mapping WHERE position_id = %s) im
+				LEFT JOIN Jianyu_subjectdb.dwd_f_userbase_baseinfo ub
+					ON im.userid=ub.userid`, data_exOrder.UserID)
+						err = JianyuSubjectDB.Raw(sql).Scan(&rs).Error
+						if err != nil {
+							log.Info("处理用户订单表数据", zap.String("查询企业用户注册时间失败", data_exOrder.UserID))
+						}
+						account_order_change.UserRegtime = rs.LRegistedate
+					}
+				}
+				//
+
+				account_order_change.CreateTime = data_exOrder.CreateTime
+				account_order_change.SaleTime = refund_record.RefundTime        //业绩统计日期
+				account_order_change.ChangeReason = refund_record.RefundReason  //变更类型
+				account_order_change.OriginalPrice = data_exOrder.OriginalPrice //标准售价
+				filter := data_exOrder.Filter
+				filterMap := make(map[string]interface{})
+				err := json.Unmarshal([]byte(filter), &filterMap)
+				if err != nil {
+					log.Info("allDataRefundRecordForAccountOrderChange, filter.json.Unmarshal", zap.Error(err))
+				}
+				account_order_change.ContractMoney = util.IntAll(filterMap["originalAmount"]) // 合同金额
+				account_order_change.Commission = data_exOrder.Commission                     //佣金
+				account_order_change.ProceduresMoney = data_exOrder.ProceduresMoney
+				account_order_change.ReceivableAmount = account_order_change.ContractMoney - account_order_change.Commission - account_order_change.ProceduresMoney
+				account_order_change.ChangeValue = 0 - refund_record.RefundMoney //业绩变动额
+
+				//累计已收
+				if data_exOrder.IsBackstageOrder == 0 {
+					account_order_change.TotalReceived = util.IntAll(filterMap["originalAmount"])
+				} else if data_exOrder.IsBackstageOrder == 1 {
+					err = AnalysisDB.Where("order_code = ? ", data_exOrder.OrderCode).Find(&returnRecords).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+					}
+					totalMoney := 0
+					if len(returnRecords) > 0 {
+						for _, v := range returnRecords {
+							totalMoney += v.ReturnMoney
+						}
+					}
+					account_order_change.TotalReceived = totalMoney
+				}
+				//
+				account_order_change.ProductType = data_exOrder.ProductType
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					switch util.IntAll(filterMap["level"]) {
+					case 1:
+						account_order_change.DataSpec = "专家版"
+					case 2:
+						account_order_change.DataSpec = "智慧版"
+					case 3:
+						account_order_change.DataSpec = "商机版"
+					case 4:
+						account_order_change.DataSpec = "试用版"
+					case 5:
+						account_order_change.DataSpec = "定制版"
+					case 6:
+						account_order_change.DataSpec = "商机版2.0"
+					case 7:
+						account_order_change.DataSpec = "专家版2.0"
+					}
+				} else {
+					account_order_change.DataSpec = data_exOrder.DataSpec
+				}
+
+				//订单状态
+				if data_exOrder.RefundStatus == 1 || data_exOrder.RefundStatus == 2 {
+					account_order_change.OrderStatus = "已支付"
+				} else {
+					switch data_exOrder.OrderStatus {
+					case 1:
+						account_order_change.OrderStatus = "已支付"
+					case -1:
+						account_order_change.OrderStatus = "逻辑删除"
+					case -2:
+						account_order_change.OrderStatus = "已取消"
+					case -3:
+						account_order_change.OrderStatus = "已退款"
+					case 0:
+						account_order_change.OrderStatus = "未支付"
+					}
+				}
+				// refund_status 回款状态
+				if data_exOrder.IsBackstageOrder == 0 {
+					if account_order.OrderStatus == "已支付" {
+						account_order_change.RefundStatus = "全额回款"
+					} else {
+						account_order_change.RefundStatus = "未回款"
+					}
+				} else if data_exOrder.IsBackstageOrder == 1 {
+					switch data_exOrder.ReturnStatus {
+					case 1:
+						account_order_change.ReturnStatus = "全额回款"
+					case 2:
+						account_order_change.ReturnStatus = "部分回款"
+					case 0:
+						account_order_change.ReturnStatus = "未回款"
+					}
+				}
+				//退款状态
+				switch data_exOrder.RefundStatus {
+				case 1:
+					account_order_change.ReturnStatus = "全额回款"
+				case 2:
+					account_order_change.ReturnStatus = "部分回款"
+				case 0:
+					account_order_change.ReturnStatus = "未回款"
+				}
+
+				//付费类型 vip_type
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					//付费类型  VipType
+					switch util.IntAll(filterMap["recordPayType"]) {
+					case 1:
+						account_order_change.VipType = "购买"
+					case 2:
+						account_order_change.VipType = "续费"
+					case 3:
+						account_order_change.VipType = "升级"
+					case 4:
+						account_order_change.VipType = "试用"
+					}
+				} else {
+					switch data_exOrder.VipType {
+					case 0:
+						account_order_change.VipType = "购买"
+					case 1:
+						account_order_change.VipType = "续费"
+					case 2:
+						account_order_change.VipType = "升级"
+					case 3:
+						account_order_change.VipType = "试用"
+					}
+				}
+				//
+				account_order_change.UserPhone = data_exOrder.UserPhone
+				account_order_change.UserID = data_exOrder.UserID
+				account_order_change.VipStarttime = data_exOrder.VipStarttime
+				account_order_change.VipEndtime = data_exOrder.VipEndtime
+				//合同
+				if contract.ContractStatus == 1 {
+					account_order_change.ContractStatus = "已签协议"
+				} else if contract.ContractStatus == 0 {
+					account_order_change.ContractStatus = "未签协议"
+				}
+				account_order_change.ContractCode = contract.ContractCode
+				account_order_change.ContractTime = contract.ContractTime
+				//签约主体
+				if data_exOrder.SigningSubject == "h01" {
+					account_order_change.SigningSubject = "北京剑鱼信息技术有限公司"
+				} else if data_exOrder.SigningSubject == "h02" {
+					account_order_change.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+				}
+				account_order_change.OrderChannel = data_exOrder.OrderChannel
+				account_order_change.DistributionChannel = data_exOrder.DistributionChannel
+				if data_exOrder.IsBackstageOrder == 0 {
+					account_order_change.IsBackstageOrder = "否"
+				} else if data_exOrder.IsBackstageOrder == 1 {
+					account_order_change.IsBackstageOrder = "是"
+				}
+
+				//付款方式
+				switch data_exOrder.PayWay {
+				case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+					account_order_change.PayWay = "支付宝"
+				case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+					account_order_change.PayWay = "微信"
+				case "transferAccounts":
+					account_order_change.PayWay = "对公转账"
+				default:
+					account_order_change.PayWay = data_exOrder.PayWay
+				}
+				//
+				account_order_change.RefundRecordID = refund_record.ID //退款表ID
+				//生成订单数据
+				err = AnalysisDB.Create(&account_order_change).Error
+				if err != nil {
+					log.Info("allDataRefundRecordForAccountOrderChange Create ", zap.Error(err))
+				}
+			}
+		}
+
+	}
+
+	log.Info("allDataRefundRecordForAccountOrderChange 迭代结束", zap.Int64("数据总量", total))
+
+}

+ 368 - 0
account_order/account_return.go

@@ -0,0 +1,368 @@
+package main
+
+import (
+	"encoding/json"
+	"errors"
+	"go.uber.org/zap"
+	"gorm.io/gorm"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
+	"time"
+)
+
+// dealAllDataAccountReturn 处理归集后-剑鱼回款表-dwd_f_account_return
+func dealAllDataAccountReturn() {
+	allDataReturnMoneyRecordForAccountReturn() //处理迭代回款表-data_analysis.return_money_record
+	allDataDataexportOrderForAccountReturn()   //处理迭代订单表-data_analysis.dataexport_order
+}
+
+// allDataReturnMoneyRecordForAccountReturn 回款表数据处理-return_money_record
+func allDataReturnMoneyRecordForAccountReturn() {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+		log.Info("aaaaaaaaaaaa")
+	}()
+
+	var total int64
+	AnalysisDB.Debug().Model(&ReturnMoneyRecord{}).Where("state = ?", 1).Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	log.Info("allDataReturnMoneyRecordForAccountReturn", zap.Any("RefundRecord 退款表 总数是", total))
+
+	rowsPerPage := 100                           // 每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := AnalysisDB.Debug().Model(&ReturnMoneyRecord{}).Where("state = ?", 1).Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("allDataReturnMoneyRecordForAccountReturn", zap.Any("current page ", page))
+		for rows.Next() {
+			var account_return DwdFAccountReturn      //归集后的剑鱼回款表
+			var return_money_record ReturnMoneyRecord //原来回款表
+			var order_sale_record OrderSaleRecord     // 原来业绩表更
+			//var account_order_change DwdFAccountOrderChange // 归集后的业绩变更表
+			var data_exOrder DataexportOrder //原来的订单表
+			//var account_order DwdFAccountOrder              //归集后的订单表
+			//var user1 DwdFUserbaseBaseinfo                  //个人用户表
+			//var returnRecords []ReturnMoneyRecord           //原来的回款表
+			//var contract Contract //合同表
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = AnalysisDB.ScanRows(rows, &return_money_record)
+			if err != nil {
+				log.Info("allDataRefundRecordForAccountOrderChange,ScanRows err ", zap.Error(err))
+			}
+
+			if return_money_record.OrderCode != "" {
+				// 1.原来订单表- dataexport_order
+				err = AnalysisDB.Model(DataexportOrder{}).Where("order_code =? ", return_money_record.OrderCode).First(&data_exOrder).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+				}
+				//2.业绩变更表- order_sale_record
+				err = JianyuDB.Where("ordercode =? ", return_money_record.OrderCode).Order("id asc").First(&order_sale_record).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountOrderChange", zap.Error(err))
+				}
+
+				account_return.OrderCode = return_money_record.OrderCode
+				if order_sale_record.SalerName == "-" {
+					account_return.SalerName = "运营"
+				} else {
+					account_return.SalerName = order_sale_record.SalerName
+				}
+				//
+				account_return.SalerDept = order_sale_record.SalerDept
+				account_return.UserPhone = data_exOrder.UserPhone
+				account_return.CompanyName = data_exOrder.CompanyName
+				account_return.ProductType = data_exOrder.ProductType
+
+				//
+				filter := data_exOrder.Filter
+				filterMap := make(map[string]interface{})
+				err = json.Unmarshal([]byte(filter), &filterMap)
+				if err != nil {
+					log.Info("allDataReturnMoneyRecordForAccountReturn, filter.json.Unmarshal", zap.Error(err), zap.Any("data_exOrder.Filter", data_exOrder.Filter), zap.String("OrderCode", return_money_record.OrderCode))
+				}
+				// 规格
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					switch util.IntAll(filterMap["level"]) {
+					case 1:
+						account_return.DataSpec = "专家版"
+					case 2:
+						account_return.DataSpec = "智慧版"
+					case 3:
+						account_return.DataSpec = "商机版"
+					case 4:
+						account_return.DataSpec = "试用版"
+					case 5:
+						account_return.DataSpec = "定制版"
+					case 6:
+						account_return.DataSpec = "商机版2.0"
+					case 7:
+						account_return.DataSpec = "专家版2.0"
+					}
+				} else {
+					account_return.DataSpec = data_exOrder.DataSpec
+				}
+				// 回款方式
+				if return_money_record.ReturnType == 1 {
+					account_return.ReturnType = "微信"
+				} else if return_money_record.ReturnType == 2 {
+					account_return.ReturnType = "支付宝"
+				} else if return_money_record.ReturnType == 3 {
+					account_return.ReturnType = "对公转账"
+				}
+				//业绩统计日期
+				account_return.SaleTime = data_exOrder.SaleTime              //业绩统计日期
+				account_return.ReturnTime = return_money_record.ReturnTime   //回款日期
+				account_return.ReturnMoney = return_money_record.ReturnMoney //回款金额
+				//签约主体
+				if data_exOrder.SigningSubject == "h01" {
+					account_return.SigningSubject = "北京剑鱼信息技术有限公司"
+				} else if data_exOrder.SigningSubject == "h02" {
+					account_return.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+				}
+				/**
+				回款表的(CASE
+				WHEN bank_name IN ('中国农业银行北京健德支行',"广发银行北京顺义支行","招商银行北三环支行")
+				THEN '北京拓普丰联信息科技股份有限公司'
+				WHEN bank_name = "中国光大银行北京分行"
+				THEN '北京剑鱼信息技术有限公司'
+				WHEN bank_name = "" AND return_time >= '2022-02-14 14:10:00'
+				THEN '北京剑鱼信息技术有限公司'
+				WHEN bank_name = "" AND return_time < '2022-02-14 14:10:00'
+				THEN '北京拓普丰联信息科技股份有限公司'
+				ELSE ""
+				END),订单表:回款主体均为“北京剑鱼信息技术有限公司”
+				*/
+				layout := "2006-01-02 15:04:05"
+				strTime := "2022-02-14 14:10:00"
+				parsedTime, err := time.Parse(layout, strTime)
+				if err != nil {
+					panic(err)
+				}
+				if return_money_record.BankName == "中国农业银行北京健德支行" || return_money_record.BankName == "广发银行北京顺义支行" || return_money_record.BankName == "招商银行北三环支行" {
+					account_return.ReturnSubject = "北京拓普丰联信息科技股份有限公司"
+				} else if return_money_record.BankName == "中国光大银行北京分行" {
+					account_return.ReturnSubject = "北京剑鱼信息技术有限公司"
+				} else if return_money_record.BankName == "" {
+					returnTime := return_money_record.ReturnTime
+					if returnTime != nil && (!returnTime.Before(parsedTime)) {
+						// returnTime 大于等于指定时间的处理逻辑
+						account_return.ReturnSubject = "北京剑鱼信息技术有限公司"
+					} else {
+						// returnTime 小于指定时间的处理逻辑
+						account_return.ReturnSubject = "北京拓普丰联信息科技股份有限公司"
+					}
+				}
+				//主体校验
+				if account_return.ReturnSubject == account_return.SigningSubject {
+					account_return.SubjectCheck = "一致"
+				} else {
+					account_return.SubjectCheck = "不一致"
+				}
+				account_return.BankFlow = return_money_record.BankFlow
+				account_return.BankName = return_money_record.BankName
+				account_return.OrderChannel = data_exOrder.OrderChannel //下单渠道
+				account_return.DistributionChannel = data_exOrder.DistributionChannel
+				//退款状态
+				switch data_exOrder.RefundStatus {
+				case 1:
+					account_return.RefundStatus = "全额回款"
+				case 2:
+					account_return.RefundStatus = "部分回款"
+				case 0:
+					account_return.RefundStatus = "未回款"
+				}
+				//关联方式,operate_type;1-手动回款 2-自动回款
+				if return_money_record.OperateType == 1 {
+					account_return.OperateType = "手动回款"
+				} else if return_money_record.OperateType == 2 {
+					account_return.OperateType = "自动回款"
+				}
+				//创建人
+				account_return.OperatePerson = return_money_record.OperatePerson
+				account_return.ReturnMoneyRecordID = return_money_record.ID //回款表ID
+				//account_return.DataexportOrderID = data_exOrder.ID// 订单表ID
+				//数据状态
+				account_return.ReturnMoneyRecordState = int(return_money_record.State)
+				//生成数据
+				err = AnalysisDB.Create(&account_return).Error
+				if err != nil {
+					log.Info("allDataReturnMoneyRecordForAccountReturn Create ", zap.Error(err))
+				}
+			}
+		}
+	}
+	log.Info("allDataReturnMoneyRecordForAccountReturn", zap.Any("return_money_record 退款表 迭代结束,总数是", total))
+}
+
+// allDataDataexportOrderForAccountReturn 订单表数据处理-dataexport_order
+func allDataDataexportOrderForAccountReturn() {
+	/**
+	增量、存量取数范围order_status=1 and is_backstage_order=0 ,
+	并排除pay_way=’transferAccounts’ and product_type=’VIP订阅’
+	*/
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+		log.Info("aaaaaaaaaaaa")
+	}()
+	var total int64
+	AnalysisDB.Debug().Model(&DataexportOrder{}).Where("order_status =? AND is_backstage_order =? AND NOT (pay_way =? AND product_type =?)", 1, 0, "transferAccounts", "VIP订阅").Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	log.Info("allDataDataexportOrderForAccountReturn", zap.Any("dataexport_order 订单表 ,order_status=1 and is_backstage_order=0 ,\n\t并排除pay_way=’transferAccounts’ and product_type=’VIP订阅’,总数是", total))
+
+	rowsPerPage := 100                           // 每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := AnalysisDB.Debug().Model(&DataexportOrder{}).Where("order_status =? AND is_backstage_order =? AND NOT (pay_way =? AND product_type =?)", 1, 0, "transferAccounts", "VIP订阅").Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("allDataDataexportOrderForAccountReturn", zap.Any("current page ", page))
+		for rows.Next() {
+			var data_exOrder DataexportOrder     //原来的订单表
+			var account_return DwdFAccountReturn //归集后的剑鱼回款表
+			//var return_money_record ReturnMoneyRecord //原来回款表
+			var order_sale_record OrderSaleRecord // 原来业绩表更
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = AnalysisDB.ScanRows(rows, &data_exOrder)
+			if err != nil {
+				log.Info("allDataDataexportOrderForAccountReturn,ScanRows err ", zap.Error(err))
+			}
+			if data_exOrder.OrderCode != "" {
+				//2.业绩变更表- order_sale_record
+				err = JianyuDB.Where("ordercode =? ", data_exOrder.OrderCode).Order("id asc").First(&order_sale_record).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataDataexportOrderForAccountReturn", zap.Error(err))
+				}
+				account_return.OrderCode = data_exOrder.OrderCode
+				if order_sale_record.SalerName == "-" {
+					account_return.SalerName = "运营"
+				} else {
+					account_return.SalerName = order_sale_record.SalerName
+				}
+				account_return.SalerDept = order_sale_record.SalerDept
+				account_return.UserPhone = data_exOrder.UserPhone
+				account_return.CompanyName = data_exOrder.CompanyName
+				account_return.ProductType = data_exOrder.ProductType
+				//
+				filter := data_exOrder.Filter
+				filterMap := make(map[string]interface{})
+				err = json.Unmarshal([]byte(filter), &filterMap)
+				if err != nil {
+					log.Info("allDataDataexportOrderForAccountReturn, filter.json.Unmarshal", zap.Error(err), zap.Any("data_exOrder.Filter", data_exOrder.Filter), zap.String("OrderCode", data_exOrder.OrderCode))
+				}
+				// 规格
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					switch util.IntAll(filterMap["level"]) {
+					case 1:
+						account_return.DataSpec = "专家版"
+					case 2:
+						account_return.DataSpec = "智慧版"
+					case 3:
+						account_return.DataSpec = "商机版"
+					case 4:
+						account_return.DataSpec = "试用版"
+					case 5:
+						account_return.DataSpec = "定制版"
+					case 6:
+						account_return.DataSpec = "商机版2.0"
+					case 7:
+						account_return.DataSpec = "专家版2.0"
+					}
+				} else {
+					account_return.DataSpec = data_exOrder.DataSpec
+				}
+				//回款方式
+				//account_return.ReturnType = data_exOrder.PayWay
+				switch data_exOrder.PayWay {
+				case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+					account_return.ReturnType = "支付宝"
+				case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+					account_return.ReturnType = "微信"
+				case "transferAccounts":
+					account_return.ReturnType = "对公转账"
+				default:
+					account_return.ReturnType = data_exOrder.PayWay
+				}
+				//
+
+				account_return.SaleTime = data_exOrder.SaleTime
+				account_return.ReturnTime = data_exOrder.PayTime
+				account_return.ReturnMoney = util.IntAll(filterMap["originalAmount"]) //回款金额
+				//签约主体
+				if data_exOrder.SigningSubject == "h01" {
+					account_return.SigningSubject = "北京剑鱼信息技术有限公司"
+				} else if data_exOrder.SigningSubject == "h02" {
+					account_return.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+				}
+				//回款主题-ReturnSubject
+				account_return.ReturnSubject = "北京剑鱼信息技术有限公司"
+				//主体校验
+				if account_return.ReturnSubject == account_return.SigningSubject {
+					account_return.SubjectCheck = "一致"
+				} else {
+					account_return.SubjectCheck = "不一致"
+				}
+				//支付单号
+				//该值是商户号,需要关联weixin_pay、ali_pay,关联条件是两个表中的 out_trade_no,取从表中的transtaction_id字段
+				if data_exOrder.OutTradeNo != "" {
+					//付款方式
+					switch data_exOrder.PayWay {
+					case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+						//account_order_change.PayWay = "支付宝"
+						var al_pay AliPay
+						err = AnalysisDB.Where("out_trade_no = ? ", data_exOrder.OutTradeNo).First(&al_pay).Error
+						if err != nil {
+							log.Info("allDataDataexportOrderForAccountReturn", zap.Error(err), zap.Any("out_trade_no", data_exOrder.OutTradeNo))
+						}
+						account_return.PaymentNumber = al_pay.TransactionID
+					case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+						//account_order_change.PayWay = "微信"
+						var wx_pay WeixinPay
+						err = AnalysisDB.Where("out_trade_no = ? ", data_exOrder.OutTradeNo).First(&wx_pay).Error
+						if err != nil {
+							log.Info("allDataDataexportOrderForAccountReturn", zap.Error(err), zap.Any("out_trade_no", data_exOrder.OutTradeNo))
+						}
+						account_return.PaymentNumber = wx_pay.TransactionID
+					}
+				}
+				//下单渠道
+				account_return.OrderCode = data_exOrder.OrderChannel
+				//销售渠道-distribution_channel
+				account_return.DistributionChannel = data_exOrder.DistributionChannel
+				//退款状态-refund_status
+				switch data_exOrder.RefundStatus {
+				case 1:
+					account_return.RefundStatus = "全额回款"
+				case 2:
+					account_return.RefundStatus = "部分回款"
+				case 0:
+					account_return.RefundStatus = "未回款"
+				}
+				account_return.OperateType = "自动回款"           //关联方式
+				account_return.OperatePerson = "jianyu@admin" //创建人
+				account_return.DataexportOrderID = data_exOrder.ID
+				account_return.ReturnMoneyRecordState = 1
+				//生成数据
+				err = AnalysisDB.Create(&account_return).Error
+				if err != nil {
+					log.Info("allDataDataexportOrderForAccountReturn Create ", zap.Error(err))
+				}
+			}
+		}
+
+	}
+
+}

+ 394 - 0
account_order/account_return_change.go

@@ -0,0 +1,394 @@
+package main
+
+import (
+	"encoding/json"
+	"errors"
+	"go.uber.org/zap"
+	"gorm.io/gorm"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
+	"time"
+)
+
+// dealAllDataAccountReturnChange 处理归集后-剑鱼回款变更表-dwd_f_account_return_change
+func dealAllDataAccountReturnChange() {
+	allDataOrderSaleRecordForAccountReturnChange() //迭代业绩变更表-order_sale_record
+	allDataRefundRecordForAccountReturnChange()    //迭代业绩变更表-order_sale_record
+
+}
+
+// allDataOrderSaleRecordForAccountReturnChange  业绩变更表数据处理-jianyu.order_sale_record
+func allDataOrderSaleRecordForAccountReturnChange() {
+	/**
+	业绩变更表中取变更类型change_reason是:业绩红冲、销售撞单、补录销售信息,
+	且state in (-1,1),且业绩变更时,订单已进行回款,即业绩变更时间大于回款时间
+	*/
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+		log.Info("allDataOrderSaleRecordForAccountReturnChange,数据处理完毕")
+	}()
+	var total int64
+	JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("autoUpdate < ?", "2024-10-16").Where("change_reason IN ? AND state IN ? ", []string{"业绩红冲", "销售撞单", "补录销售信息"}, []int{-1, 1}).Count(&total)
+	log.Info("allDataOrderSaleRecordForAccountReturnChange", zap.Any("业绩变更表中取变更类型change_reason是:业绩红冲、销售撞单、补录销售信息,且state in (-1,1),总数是", total))
+
+	rowsPerPage := 100                           //每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := JianyuDB.Debug().Model(&OrderSaleRecord{}).Where("autoUpdate < ?", "2024-10-16").Where("change_reason IN ? AND state IN ? ", []string{"业绩红冲", "销售撞单", "补录销售信息"}, []int{-1, 1}).Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("allDataOrderSaleRecordForAccountReturnChange", zap.Any("current page ", page))
+		//
+		for rows.Next() {
+			var account_return_change DwdFAccountReturnChange //归集后-剑鱼回款变更表
+			var order_sale_record OrderSaleRecord             //原来业绩表更
+			var data_exOrder DataexportOrder                  //原来的订单表
+			var return_money_record ReturnMoneyRecord         //原来回款表
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = AnalysisDB.ScanRows(rows, &order_sale_record)
+			if err != nil {
+				log.Info("allDataOrderSaleRecordForAccountReturnChange,ScanRows err ", zap.Error(err))
+			}
+			if order_sale_record.Ordercode != "" {
+				// 1.原来订单表- dataexport_order
+				err = AnalysisDB.Debug().Model(DataexportOrder{}).Where("order_code =? ", order_sale_record.Ordercode).First(&data_exOrder).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataOrderSaleRecordForAccountReturnChange", zap.Error(err))
+				}
+				//2.回款表-return_money_record
+				err = AnalysisDB.Debug().Model(ReturnMoneyRecord{}).Where("order_code =? ", order_sale_record.Ordercode).First(&return_money_record).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataOrderSaleRecordForAccountReturnChange", zap.Error(err))
+				}
+
+				//业绩变更时,订单已进行回款,即业绩变更时间大于回款时间;否则不处理
+				if order_sale_record.CreateTime.After(*return_money_record.ReturnTime) {
+					account_return_change.OrderCode = order_sale_record.Ordercode
+					account_return_change.SalerName = order_sale_record.SalerName
+					account_return_change.SalerDept = order_sale_record.SalerDept
+					//
+					account_return_change.UserPhone = data_exOrder.UserPhone
+					account_return_change.CompanyName = data_exOrder.CompanyName
+					account_return_change.ProductType = data_exOrder.ProductType
+					// 规格
+					filter := data_exOrder.Filter
+					filterMap := make(map[string]interface{})
+					err = json.Unmarshal([]byte(filter), &filterMap)
+					if err != nil {
+						log.Info("allDataOrderSaleRecordForAccountReturnChange, filter.json.Unmarshal", zap.Error(err), zap.Any("data_exOrder.Filter", data_exOrder.Filter), zap.String("OrderCode", data_exOrder.OrderCode))
+					}
+					if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+						switch util.IntAll(filterMap["level"]) {
+						case 1:
+							account_return_change.DataSpec = "专家版"
+						case 2:
+							account_return_change.DataSpec = "智慧版"
+						case 3:
+							account_return_change.DataSpec = "商机版"
+						case 4:
+							account_return_change.DataSpec = "试用版"
+						case 5:
+							account_return_change.DataSpec = "定制版"
+						case 6:
+							account_return_change.DataSpec = "商机版2.0"
+						case 7:
+							account_return_change.DataSpec = "专家版2.0"
+						}
+					} else {
+						account_return_change.DataSpec = data_exOrder.DataSpec
+					}
+					//回款方式
+					if return_money_record.ReturnType == 1 {
+						account_return_change.ReturnType = "微信"
+					} else if return_money_record.ReturnType == 2 {
+						account_return_change.ReturnType = "支付宝"
+					} else if return_money_record.ReturnType == 3 {
+						account_return_change.ReturnType = "对公转账"
+					} else {
+						switch data_exOrder.PayWay {
+						case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+							account_return_change.ReturnType = "支付宝"
+						case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+							account_return_change.ReturnType = "微信"
+						case "transferAccounts":
+							account_return_change.ReturnType = "对公转账"
+						default:
+							account_return_change.ReturnType = data_exOrder.PayWay
+						}
+					}
+
+					account_return_change.SaleTime = order_sale_record.StatisticsTime   //业绩变更日期
+					account_return_change.ReturnTime = return_money_record.ReturnTime   //回款日期
+					account_return_change.ReturnMoney = return_money_record.ReturnMoney //回款金额
+					account_return_change.ChangeValue = order_sale_record.ChangeValue   //回款变更额
+					account_return_change.ChangeReason = order_sale_record.ChangeReason //变更类型
+					//签约主体
+					if data_exOrder.SigningSubject == "h01" {
+						account_return_change.SigningSubject = "北京剑鱼信息技术有限公司"
+					} else if data_exOrder.SigningSubject == "h02" {
+						account_return_change.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+					}
+					//回款主体
+					/**
+					回款表的(CASE
+					WHEN bank_name IN ('中国农业银行北京健德支行',"广发银行北京顺义支行","招商银行北三环支行")
+					THEN '北京拓普丰联信息科技股份有限公司'
+					WHEN bank_name = "中国光大银行北京分行"
+					THEN '北京剑鱼信息技术有限公司'
+					WHEN bank_name = "" AND return_time >= '2022-02-14 14:10:00'
+					THEN '北京剑鱼信息技术有限公司'
+					WHEN bank_name = "" AND return_time < '2022-02-14 14:10:00'
+					THEN '北京拓普丰联信息科技股份有限公司'
+					ELSE ""
+					END),订单表:回款主体均为“北京剑鱼信息技术有限公司”
+					*/
+					layout := "2006-01-02 15:04:05"
+					strTime := "2022-02-14 14:10:00"
+					parsedTime, err := time.Parse(layout, strTime)
+					if err != nil {
+						panic(err)
+					}
+					if return_money_record.BankName == "中国农业银行北京健德支行" || return_money_record.BankName == "广发银行北京顺义支行" || return_money_record.BankName == "招商银行北三环支行" {
+						account_return_change.ReturnSubject = "北京拓普丰联信息科技股份有限公司"
+					} else if return_money_record.BankName == "中国光大银行北京分行" {
+						account_return_change.ReturnSubject = "北京剑鱼信息技术有限公司"
+					} else if return_money_record.BankName == "" {
+						returnTime := return_money_record.ReturnTime
+						if returnTime != nil && (!returnTime.Before(parsedTime)) {
+							// returnTime 大于等于指定时间的处理逻辑
+							account_return_change.ReturnSubject = "北京剑鱼信息技术有限公司"
+						} else {
+							// returnTime 小于指定时间的处理逻辑
+							account_return_change.ReturnSubject = "北京拓普丰联信息科技股份有限公司"
+						}
+					}
+					//主体校验
+					if account_return_change.ReturnSubject == account_return_change.SigningSubject {
+						account_return_change.SubjectCheck = "一致"
+					} else {
+						account_return_change.SubjectCheck = "不一致"
+					}
+					//银行流水号
+					account_return_change.BankFlow = return_money_record.BankFlow
+					account_return_change.BankName = return_money_record.BankName
+					account_return_change.OrderChannel = data_exOrder.OrderChannel
+					account_return_change.DistributionChannel = data_exOrder.DistributionChannel
+					//退款状态
+					switch data_exOrder.RefundStatus {
+					case 1:
+						account_return_change.RefundStatus = "全额回款"
+					case 2:
+						account_return_change.RefundStatus = "部分回款"
+					case 0:
+						account_return_change.RefundStatus = "未回款"
+					}
+					//关联方式,operate_type;1-手动回款 2-自动回款
+					if return_money_record.OperateType == 1 {
+						account_return_change.OperateType = "手动回款"
+					} else if return_money_record.OperateType == 2 {
+						account_return_change.OperateType = "自动回款"
+					}
+					//创建人
+					account_return_change.OperatePerson = return_money_record.OperatePerson
+					account_return_change.OrderSaleRecordID = order_sale_record.ID
+					//生成数据
+					err = AnalysisDB.Create(&account_return_change).Error
+					if err != nil {
+						log.Info("allDataOrderSaleRecordForAccountReturnChange Create ", zap.Error(err))
+					}
+				}
+			}
+		}
+	}
+
+	log.Info("allDataOrderSaleRecordForAccountReturnChange", zap.Any("数据处理完毕", total))
+}
+
+// allDataRefundRecordForAccountReturnChange 退款表数据处理-data_analysis.refund_record
+func allDataRefundRecordForAccountReturnChange() {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+		log.Info("allDataRefundRecordForAccountReturnChange", zap.String("数据处理完毕", ""))
+	}()
+	var total int64
+	AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Count(&total)
+	log.Info("allDataRefundRecordForAccountReturnChange", zap.Any("总数是", total))
+
+	rowsPerPage := 100                           //每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := AnalysisDB.Debug().Model(&RefundRecord{}).Where("refund_time < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("allDataRefundRecordForAccountReturnChange", zap.Any("current page ", page))
+		//
+		for rows.Next() {
+			var refund_record RefundRecord                    //原来退款表
+			var account_return_change DwdFAccountReturnChange //归集后-剑鱼回款变更表
+			var order_sale_record OrderSaleRecord             //原来业绩表更
+			var data_exOrder DataexportOrder                  //原来的订单表
+			var return_money_record ReturnMoneyRecord         //原来回款表
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = AnalysisDB.ScanRows(rows, &refund_record)
+			if refund_record.OrderCode != "" {
+				// 1.原来订单表- dataexport_order
+				err = AnalysisDB.Debug().Model(DataexportOrder{}).Where("order_code =? ", refund_record.OrderCode).First(&data_exOrder).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountReturnChange", zap.Error(err))
+				}
+				//2.回款表-return_money_record
+				err = AnalysisDB.Debug().Model(ReturnMoneyRecord{}).Where("order_code =? ", refund_record.OrderCode).First(&return_money_record).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountReturnChange;", zap.Error(err))
+				}
+				//3.业绩变更表-order_sale_record
+				err = JianyuDB.Debug().Model(OrderSaleRecord{}).Where("ordercode =? ", refund_record.OrderCode).Order("id desc").First(&order_sale_record).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("allDataRefundRecordForAccountReturnChange;", zap.Error(err))
+				}
+				account_return_change.OrderCode = refund_record.OrderCode
+				if order_sale_record.SalerName == "-" {
+					account_return_change.SalerName = "运营"
+				} else {
+					account_return_change.SalerName = order_sale_record.SalerName
+				}
+				account_return_change.SalerDept = order_sale_record.SalerDept
+				account_return_change.UserPhone = data_exOrder.UserPhone
+				account_return_change.CompanyName = data_exOrder.CompanyName
+				account_return_change.ProductType = data_exOrder.ProductType
+				// 规格
+				filter := data_exOrder.Filter
+				filterMap := make(map[string]interface{})
+				err = json.Unmarshal([]byte(filter), &filterMap)
+				if err != nil {
+					log.Info("allDataRefundRecordForAccountReturnChange, filter.json.Unmarshal", zap.Error(err), zap.Any("data_exOrder.Filter", data_exOrder.Filter), zap.String("OrderCode", data_exOrder.OrderCode))
+				}
+				if data_exOrder.ProductType == "大会员" || data_exOrder.ProductType == "大会员-子账号" || data_exOrder.ProductType == "大会员-补充包" {
+					switch util.IntAll(filterMap["level"]) {
+					case 1:
+						account_return_change.DataSpec = "专家版"
+					case 2:
+						account_return_change.DataSpec = "智慧版"
+					case 3:
+						account_return_change.DataSpec = "商机版"
+					case 4:
+						account_return_change.DataSpec = "试用版"
+					case 5:
+						account_return_change.DataSpec = "定制版"
+					case 6:
+						account_return_change.DataSpec = "商机版2.0"
+					case 7:
+						account_return_change.DataSpec = "专家版2.0"
+					}
+				} else {
+					account_return_change.DataSpec = data_exOrder.DataSpec
+				}
+				//回款方式
+				if return_money_record.ReturnType == 1 {
+					account_return_change.ReturnType = "微信"
+				} else if return_money_record.ReturnType == 2 {
+					account_return_change.ReturnType = "支付宝"
+				} else if return_money_record.ReturnType == 3 {
+					account_return_change.ReturnType = "对公转账"
+				} else {
+					switch data_exOrder.PayWay {
+					case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+						account_return_change.ReturnType = "支付宝"
+					case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+						account_return_change.ReturnType = "微信"
+					case "transferAccounts":
+						account_return_change.ReturnType = "对公转账"
+					default:
+						account_return_change.ReturnType = data_exOrder.PayWay
+					}
+				}
+				//
+				account_return_change.SaleTime = refund_record.RefundTime //业绩变更日期
+				account_return_change.ReturnTime = data_exOrder.PayTime   //回款日期
+				account_return_change.ReturnMoney = util.IntAll(filterMap["originalAmount"])
+				//回款变更额
+				account_return_change.ChangeValue = 0 - refund_record.RefundMoney
+				account_return_change.ChangeReason = refund_record.RefundReasonType
+				//签约主体
+				if data_exOrder.SigningSubject == "h01" {
+					account_return_change.SigningSubject = "北京剑鱼信息技术有限公司"
+				} else if data_exOrder.SigningSubject == "h02" {
+					account_return_change.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+				}
+				//回款主体
+				account_return_change.ReturnSubject = "北京剑鱼信息技术有限公司"
+				//主体校验
+				if account_return_change.ReturnSubject == account_return_change.SigningSubject {
+					account_return_change.SubjectCheck = "一致"
+				} else {
+					account_return_change.SubjectCheck = "不一致"
+				}
+				//支付单号
+				//account_return_change.PaymentNumber = data_exOrder.OutTradeNo
+				//该值是商户号,需要关联weixin_pay、ali_pay,关联条件是两个表中的 out_trade_no,取从表中的transtaction_id字段
+				if data_exOrder.OutTradeNo != "" {
+					//付款方式
+					switch data_exOrder.PayWay {
+					case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+						//account_order_change.PayWay = "支付宝"
+						var al_pay AliPay
+						err = AnalysisDB.Where("out_trade_no = ? ", data_exOrder.OutTradeNo).First(&al_pay).Error
+						if err != nil {
+							log.Info("allDataRefundRecordForAccountReturnChange", zap.Error(err), zap.Any("out_trade_no", data_exOrder.OutTradeNo))
+						}
+						account_return_change.PaymentNumber = al_pay.TransactionID
+					case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+						//account_order_change.PayWay = "微信"
+						var wx_pay WeixinPay
+						err = AnalysisDB.Where("out_trade_no = ? ", data_exOrder.OutTradeNo).First(&wx_pay).Error
+						if err != nil {
+							log.Info("allDataRefundRecordForAccountReturnChange", zap.Error(err), zap.Any("out_trade_no", data_exOrder.OutTradeNo))
+						}
+						account_return_change.PaymentNumber = wx_pay.TransactionID
+					}
+				}
+				//下单渠道
+				account_return_change.OrderChannel = data_exOrder.OrderChannel
+				//销售渠道
+				account_return_change.DistributionChannel = data_exOrder.DistributionChannel
+				//退款状态
+				switch data_exOrder.RefundStatus {
+				case 1:
+					account_return_change.RefundStatus = "全额回款"
+				case 2:
+					account_return_change.RefundStatus = "部分回款"
+				case 0:
+					account_return_change.RefundStatus = "未回款"
+				}
+				//关联方式,operate_type;1-手动回款 2-自动回款
+				account_return_change.OperateType = "自动回款"
+
+				//创建人
+				account_return_change.OperatePerson = "jianyu@admin"
+				account_return_change.RefundRecordID = refund_record.ID
+				//生成数据
+				err = AnalysisDB.Create(&account_return_change).Error
+				if err != nil {
+					log.Info("allDataRefundRecordForAccountReturnChange Create ", zap.Error(err))
+				}
+			}
+		}
+	}
+
+	log.Info("allDataRefundRecordForAccountReturnChange", zap.Any("数据处理完毕", total))
+}

+ 502 - 0
account_order/config.go

@@ -0,0 +1,502 @@
+package main
+
+import (
+	"time"
+)
+
+type GlobalConf struct {
+	Mongob      MgoConf
+	Cron        CronConf
+	Mongop      MgoConf
+	Mysql       MysqlConf
+	Log         Log
+	Mongospider MgoConf
+	Email       EmailConf
+}
+
+type MgoConf struct {
+	Host     string
+	DB       string
+	Coll     string // 查询表
+	Username string
+	Password string
+	Size     int
+}
+
+// CronConf 定时任务
+type CronConf struct {
+	Spec   string
+	Start  int
+	End    int
+	Delete int
+}
+
+type EspConf struct {
+	URL      string
+	Username string
+	Password string
+	Index    string
+}
+
+type MysqlConf struct {
+	Address  string
+	Dbname   string
+	Dbname2  string
+	Dbname3  string
+	Username string
+	Password string
+	Table    string
+	Table2   string
+	Table3   string
+	Table4   string
+	Table5   string
+	Table6   string
+	Table7   string
+}
+
+type Log struct {
+	LogPath    string
+	MaxSize    int
+	Compress   bool
+	MaxAge     int
+	MaxBackups int
+	LogLevel   string
+	Format     string
+}
+
+type EmailConf struct {
+	Api string
+	To  string
+}
+
+// DataexportOrder 原来的订单表
+type DataexportOrder struct {
+	ID                  int        `gorm:"primaryKey"`                  // 自增 ID
+	OrderCode           string     `gorm:"column:order_code"`           // 订单编号
+	PayMoney            int        `gorm:"column:pay_money"`            // 支付金额,精确到分
+	OrderMoney          int        `gorm:"column:order_money"`          // 订单金额,精确到分
+	UserNickname        string     `gorm:"column:user_nickname"`        // 昵称
+	PayTime             *time.Time `gorm:"column:pay_time"`             // 支付时间
+	OrderStatus         int        `gorm:"column:order_status"`         // 订单状态 0:未支付 1:已支付 -1:逻辑删除 -2:已取消 -3:已退款
+	CreateTime          *time.Time `gorm:"column:create_time"`          // 创建时间
+	UserOpenid          string     `gorm:"column:user_openid"`          // 用户 openid
+	ServiceStatus       uint       `gorm:"column:service_status"`       // 服务状态,1 已提供服务及已经下载,0 未服务
+	ServiceTime         *time.Time `gorm:"column:service_time"`         // 服务时间
+	Filter              string     `gorm:"column:filter"`               // 筛选条件
+	PrepayId            string     `gorm:"column:prepay_id"`            // 预支付交易会话标识
+	CodeUrl             string     `gorm:"column:code_url"`             // 二维码地址
+	OutTradeNo          string     `gorm:"column:out_trade_no"`         // 商户订单号
+	FilterKeys          string     `gorm:"column:filter_keys"`          // 筛选条件,所有的关键词
+	FilterPublishtime   string     `gorm:"column:filter_publishtime"`   // 筛选条件,发布时间
+	DataCount           int        `gorm:"column:data_count"`           // 匹配到的数据总数
+	UserMail            string     `gorm:"column:user_mail"`            // 用户邮箱
+	DataSpec            string     `gorm:"column:data_spec"`            // 数据规格 1-标准字段包 2-高级字段包
+	OriginalPrice       int        `gorm:"column:original_price"`       // 原价,精确到分
+	PrepayTime          *time.Time `gorm:"column:prepay_time"`          // 预订单生成时间
+	ProductType         string     `gorm:"column:product_type"`         // 订单类型 1-历史数据
+	FilterID            string     `gorm:"column:filter_id"`            // 过滤条件在 mongodb 中的 id
+	PayWay              string     `gorm:"column:pay_way"`              // 支付方式
+	UserPhone           string     `gorm:"column:user_phone"`           // 用户手机号
+	ApplybillStatus     int        `gorm:"column:applybill_status"`     // 0:默认未申请发票 1:申请发票 2:已开具
+	DownloadUrl         string     `gorm:"column:download_url"`         // 下载链接
+	ApplybillType       int        `gorm:"column:applybill_type"`       // 0:默认为个人 1:公司
+	ApplybillTaxnum     string     `gorm:"column:applybill_taxnum"`     // 公司申请发票-纳税人识别号
+	ApplybillCompany    string     `gorm:"column:applybill_company"`    // 公司申请发票 公司名称
+	UserID              string     `gorm:"column:user_id"`              // 用户 id
+	RemindStatus        int        `gorm:"column:remind_status"`        // 订单提醒 1-下单时间 2 小时提醒 2-剩余 2 小时自动关闭时再次提醒
+	VipStarttime        *time.Time `gorm:"column:vip_starttime"`        // vip 订阅-开始时间
+	VipEndtime          *time.Time `gorm:"column:vip_endtime"`          // vip 订阅-结束时间
+	VipType             int        `gorm:"column:vip_type"`             // vip 订阅-0:试用 1:续费 2:升级
+	CourseStatus        int        `gorm:"column:course_status"`        // 1:对公转账未上传凭证;2:对公转账审核中;3:对公转账审核未通过;4:对公转账审核通过(同时修改订单状态为已完成);5:退款审核中;6:已退款;(1,2,3 为订单未支付状态;4,5,6 为订单完成状态)
+	ApplyRefundName     string     `gorm:"column:apply_refund_name"`    // 退票申请人
+	ApplyRefundReason   string     `gorm:"column:apply_refund_reason"`  // 退票原因
+	ApplyRefundTime     int64      `gorm:"column:apply_refund_time"`    // 退票时间
+	DelStatus           int        `gorm:"column:del_status"`           // 删除状态:0:未删除; 1:已删除
+	DelTime             *time.Time `gorm:"column:del_time"`             // 删除时间
+	DisWord             string     `gorm:"column:dis_word"`             // 分销口令
+	DiscountPrice       int        `gorm:"column:discount_price"`       // 剑鱼折扣金额
+	DRelationID         string     `gorm:"column:d_relation_id"`        // 优惠关联 id;--用户领取卡卷的记录 id
+	ReturnStatus        int        `gorm:"column:return_status"`        // 回款状态,1-全额回款   2-部分回款  0-未回款
+	RefundStatus        int        `gorm:"column:refund_status"`        // 退款状态,1-全额退款   2-部分退款  0-未退款
+	IsBackstageOrder    int        `gorm:"column:is_backstage_order"`   // 是否后台创建订单,1-是 0-不是
+	Salesperson         string     `gorm:"column:salesperson"`          // 销售人员
+	CompanyName         string     `gorm:"column:company_name"`         // 公司名称
+	BillingMode         int        `gorm:"column:billingMode"`          // 计费模式:0-免费、1-收费
+	SaleTime            *time.Time `gorm:"column:sale_time"`            // 销售时间
+	Commission          int        `gorm:"column:commission"`           // 佣金(单位分)
+	ProceduresMoney     int        `gorm:"column:procedures_money"`     // 手续费(单位分)
+	OrderChannel        string     `gorm:"column:order_channel"`        // 下单渠道
+	DistributionChannel string     `gorm:"column:distribution_channel"` // 销售渠道
+	SalespersonID       string     `gorm:"column:salesperson_id"`       // 销售人员在剑鱼后台的用户 id
+	CreatePerson        string     `gorm:"column:create_person"`        // 创建人
+	LastUpdatePerson    string     `gorm:"column:last_update_person"`   // 最近一次更新人
+	LastUpdateTime      *time.Time `gorm:"column:last_update_time"`     // 最近一次更新时间
+	SigningSubject      string     `gorm:"column:signing_subject"`      // 签约主体
+	ExpirationTime      *time.Time `gorm:"column:expiration_time"`      // 到期时间 (活动有效)
+	AuditStatus         int        `gorm:"column:audit_status"`         // 审核状态 0:待提交 1:待审核 2:审核中 3:审核通过
+	BuySubject          int        `gorm:"column:buy_subject"`          // 购买主体;1:个人 2:企业
+	EntID               int        `gorm:"column:ent_id"`               // 企业 id
+	BuyCount            int        `gorm:"column:buy_count"`            // 购买数量
+	AutoUpdate          *time.Time `gorm:"column:autoUpdate"`           // 自动更新时间
+	SaleDep             string     `gorm:"column:saleDep"`              // 业绩归属部门
+	SaleMoney           string     `gorm:"column:saleMoney"`            // 销售业绩
+	ContractNature      int        `gorm:"column:contract_nature"`      // 合同性质
+}
+
+func (DataexportOrder) TableName() string {
+	return "dataexport_order"
+}
+
+// DwdFAccountOrder 归集后的订单表
+type DwdFAccountOrder struct {
+	ID                  int        `gorm:"primaryKey"`                       // 自增 ID
+	OrderCode           string     `gorm:"column:order_code"`                // 订单编号
+	SalerName           string     `gorm:"column:saler_name"`                // 销售人员
+	SalerDept           string     `gorm:"column:saler_dept"`                // 部门
+	CompanyName         string     `gorm:"column:company_name"`              // 公司名称
+	UserRegtime         *time.Time `gorm:"column:user_regtime"`              // 用户注册时间
+	CreateTime          *time.Time `gorm:"column:create_time"`               // 订单创建时间
+	ReturnTime          *time.Time `gorm:"column:return_time"`               // 回款时间
+	SaleTime            *time.Time `gorm:"column:sale_time"`                 // 业绩统计
+	RefundTime          *time.Time `gorm:"column:refund_time"`               // 退款日期
+	OriginalPrice       int        `gorm:"column:original_price"`            // 标准售价
+	ContractMoney       int        `gorm:"column:contract_money"`            // 合同金额
+	Commission          int        `gorm:"column:commission"`                // 佣金
+	ProceduresMoney     int        `gorm:"column:procedures_money"`          // 手续费
+	ReceivableAmount    int        `gorm:"column:receivable_amount"`         // 应收金额
+	TotalReceived       int        `gorm:"column:total_received"`            // 累计已收
+	ProductType         string     `gorm:"column:product_type"`              // 产品类型
+	DataSpec            string     `gorm:"column:data_spec"`                 // 规格
+	OrderStatus         string     `gorm:"column:order_status"`              // 订单状态
+	ReturnStatus        string     `gorm:"column:return_status"`             // 回款状态
+	RefundStatus        string     `gorm:"column:refund_status"`             // 退款状态
+	VipType             string     `gorm:"column:vip_type"`                  // 付费类型
+	UserPhone           string     `gorm:"column:user_phone"`                // 手机号
+	UserID              string     `gorm:"column:user_id"`                   // 用户 ID
+	VipStarttime        *time.Time `gorm:"column:vip_starttime"`             // 服务开始时间
+	VipEndtime          *time.Time `gorm:"column:vip_endtime"`               // 服务结束时间
+	ContractStatus      string     `gorm:"column:contract_status"`           // 合同状态
+	ContractCode        string     `gorm:"column:contract_code"`             // 合同编号
+	ContractTime        *time.Time `gorm:"column:contract_time"`             // 合同时间
+	SigningSubject      string     `gorm:"column:signing_subject"`           // 签约主体
+	OrderChannel        string     `gorm:"column:order_channel"`             // 下单渠道
+	DistributionChannel string     `gorm:"column:distribution_channel"`      // 销售渠道
+	IsBackstageOrder    string     `gorm:"column:is_backstage_order"`        // 是否是后台订单
+	PayWay              string     `gorm:"column:pay_way"`                   // 付款方式
+	Comeintime          *time.Time `gorm:"column:comeintime;autoCreateTime"` // 入库时间
+	Updatetime          *time.Time `gorm:"column:updatetime;autoUpdateTime"` // 更新时间
+}
+
+func (DwdFAccountOrder) TableName() string {
+	return "dwd_f_account_order"
+}
+
+// OrderSaleRecord  原来的业绩变更表
+type OrderSaleRecord struct {
+	ID             int        `gorm:"primaryKey;autoIncrement"`
+	Ordercode      string     `gorm:"column:ordercode;unique;comment:'订单编号'"`
+	State          int        `gorm:"column:state;comment:'1 生效业绩,2:待生效业绩 -2:作废业绩 -1:历史业绩变更'"`
+	SalerID        int        `gorm:"column:saler_Id;comment:'销售人员在剑鱼后台的用户 id'"`
+	SalerName      string     `gorm:"column:saler_name;comment:'销售人员名字'"`
+	SalerDept      string     `gorm:"column:saler_dept;comment:'销售部门'"`
+	SalerDeptID    int        `gorm:"column:saler_dept_id;comment:'销售部门 id'"`
+	Money          int        `gorm:"column:money;comment:'销售业绩,单位分'"`
+	ChangeValue    int        `gorm:"column:change_value;comment:'变更值'"`
+	GroupUUID      string     `gorm:"column:group_uuid;comment:'业绩组 id'"`
+	LastGroupUUID  string     `gorm:"column:last_group_uuid;comment:'上次业绩组 id'"`
+	ChangeReason   string     `gorm:"column:change_reason;comment:'变更原因'"`
+	Operator       string     `gorm:"column:operator;comment:'操作人'"`
+	StatisticsTime *time.Time `gorm:"column:statistics_time;comment:'业绩统计时间'"`
+	CreateTime     *time.Time `gorm:"column:create_time;comment:'创建时间'"`
+	AutoUpdate     *time.Time `gorm:"column:autoUpdate;comment:'自动更新时间'"`
+}
+
+func (OrderSaleRecord) TableName() string {
+	return "order_sale_record"
+}
+
+// DwdFUserbaseBaseinfo 剑鱼用户表-个人身份表
+type DwdFUserbaseBaseinfo struct {
+	ID                int        `gorm:"primaryKey"`
+	Uid               string     `gorm:"column:uid"`
+	Userid            string     `gorm:"column:userid"`
+	BaseUserID        int        `gorm:"column:base_user_id"`
+	Name              string     `gorm:"column:name"`
+	Nickname          string     `gorm:"column:nickname"`
+	Province          string     `gorm:"column:province"`
+	City              string     `gorm:"column:city"`
+	CompanyName       string     `gorm:"column:company_name"`
+	Phone             string     `gorm:"column:phone"`
+	ISpush            int        `gorm:"column:i_ispush"`
+	LRegistedate      *time.Time `gorm:"column:l_registedate"`
+	IAppid            int        `gorm:"column:i_appid"`
+	Rsource           string     `gorm:"column:rsource"`
+	SAppponetype      string     `gorm:"column:s_appponetype"`
+	ISex              int        `gorm:"column:i_sex"`
+	Email             string     `gorm:"column:email"`
+	SMOpenid          string     `gorm:"column:s_m_openid"`
+	AMOpenid          string     `gorm:"column:a_m_openid"`
+	Unionid           string     `gorm:"column:unionid"`
+	Status            int        `gorm:"column:status"`
+	LogOffCause       string     `gorm:"column:log_off_cause"`
+	LogOffTime        *time.Time `gorm:"column:log_off_time"`
+	Updatetime        *time.Time `gorm:"column:updatetime"`
+	Source            string     `gorm:"column:source"`
+	Createtime        *time.Time `gorm:"column:createtime"`
+	SRegsource        string     `gorm:"column:s_regsource"`
+	SSourceid         string     `gorm:"column:s_sourceid"`
+	BelongTo          string     `gorm:"column:belong_to"`
+	Remark            string     `gorm:"column:remark"`
+	Shuoming          string     `gorm:"column:shuoming"`
+	SPlatform         string     `gorm:"column:s_platform"`
+	LoginPositionid   int        `gorm:"column:login_positionid"`
+	ClueOperateStatus int        `gorm:"column:clue_operate_status"`
+}
+
+func (DwdFUserbaseBaseinfo) TableName() string {
+	return "dwd_f_userbase_baseinfo"
+}
+
+// DwdFUserbaseIdMapping 剑鱼用户表-企业身份
+type DwdFUserbaseIdMapping struct {
+	ID          int        `gorm:"primaryKey"`
+	Userid      string     `gorm:"column:userid"`
+	BaseUserID  int        `gorm:"column:base_user_id"`
+	PositionID  int        `gorm:"column:position_id"`
+	Type        int8       `gorm:"column:type"`
+	AccountID   int        `gorm:"column:account_id"`
+	EntID       int        `gorm:"column:ent_id"`
+	AccountName string     `gorm:"column:account_name"`
+	PersonName  string     `gorm:"column:person_name"`
+	Createtime  *time.Time `gorm:"column:createtime"`
+	Uid         string     `gorm:"column:uid"`
+	Shuoming    string     `gorm:"column:shuoming"`
+}
+
+func (DwdFUserbaseIdMapping) TableName() string {
+	return "dwd_f_userbase_id_mapping"
+}
+
+// ReturnMoneyRecord 回款记录表结构体
+type ReturnMoneyRecord struct {
+	ID                  int        `gorm:"primaryKey"`                   // 自增 id
+	OrderCode           string     `gorm:"column:order_code"`            // 订单编号
+	ReturnTime          *time.Time `gorm:"column:return_time"`           // 回款时间
+	ReturnMoney         int        `gorm:"column:return_money"`          // 回款金额,单位:分
+	ReturnType          int        `gorm:"column:return_type"`           // 回款方式,1-微信 2-支付宝 3-对公转账
+	ReturnRemark        string     `gorm:"column:return_remark"`         // 回款说明/备注
+	ReturnCode          string     `gorm:"column:return_code"`           // 回款单号
+	ReturnInvoiceStatus int        `gorm:"column:return_invoice_status"` // 回款发票状态,0-未申请 1-已申请 2-已开具
+	ReturnVoucherUrl    string     `gorm:"column:return_voucher_url"`    // 回款凭证地址
+	OperatePerson       string     `gorm:"column:operate_person"`        // 操作人
+	OperateTime         *time.Time `gorm:"column:operate_time"`          // 操作时间
+	FlowMoney           int        `gorm:"column:flow_money"`            // 流水金额
+	BankName            string     `gorm:"column:bank_name"`             // 银行名称
+	BankFlow            string     `gorm:"column:bank_flow"`             // 银行流水号
+	OperateType         int        `gorm:"column:operate_type"`          // 回款操作方式 1-手动回款 2-自动回款
+	FlowType            int        `gorm:"column:flow_type"`             // 流水方式 0cds 回款 1 手动录入
+	PayAccountName      string     `gorm:"column:pay_account_name"`      // 支付户名
+	State               int64      `gorm:"column:state"`                 // 回款状态 1 有效 0 无效
+	AutoUpdate          *time.Time `gorm:"column:autoUpdate"`            // 自动更新时间
+}
+
+func (ReturnMoneyRecord) TableName() string {
+	return "return_money_record"
+}
+
+// Contract 合同表结构体
+type Contract struct {
+	ID                    int        `gorm:"primaryKey"`                     // 自增 ID
+	OrderCode             string     `gorm:"column:order_code"`              // 订单编号
+	CustomerName          string     `gorm:"column:customer_name"`           // 客户名称
+	ContractCode          string     `gorm:"column:contract_code"`           // 协议编号
+	ContractTime          *time.Time `gorm:"column:contract_time"`           // 协议签订时间
+	ContractStatus        int        `gorm:"column:contract_status"`         // 协议状态 1-已签协议 0-未签协议
+	ContractMoney         int        `gorm:"column:contract_money"`          // 合同金额 单位:分
+	SealType              int        `gorm:"column:seal_type"`               // 1:有电子章,2:无电子章
+	PartyAType            int        `gorm:"column:partyA_type"`             // 1:个人,2:企业
+	PartyAName            string     `gorm:"column:partyA_name"`             // 甲方名称
+	PartyAPerson          string     `gorm:"column:partyA_person"`           // 甲方联系人
+	PartyATel             string     `gorm:"column:partyA_tel"`              // 甲方联系方式
+	PartyAAddress         string     `gorm:"column:partyA_address"`          // 甲方地址
+	PartyBPerson          string     `gorm:"column:partyB_person"`           // 乙方联系人
+	Remark                string     `gorm:"column:remark"`                  // 电子合同备注
+	ContractFileURL       string     `gorm:"column:contract_file_url"`       // 合同文件地址
+	ContractArchiveStatus int        `gorm:"column:contract_archive_status"` // 协议归档状态 0-未归档 1-已归档
+	ContractArchiveTime   *time.Time `gorm:"column:contract_archive_time"`   // 协议归档时间
+	ContractArchiveNum    int        `gorm:"column:contract_archive_num"`    // 协议归档份数
+	AutoUpdate            *time.Time `gorm:"column:autoUpdate"`              // 自动更新时间
+}
+
+func (Contract) TableName() string {
+	return "contract"
+}
+
+// DwdFAccountOrderChange 归集后的-剑鱼业绩变更表结构体;
+type DwdFAccountOrderChange struct {
+	ID                  int        `gorm:"primaryKey"`
+	OrderCode           string     `gorm:"column:order_code;not null;comment:'订单编号'"`
+	SalerName           string     `gorm:"column:saler_name;comment:'销售人员'"`
+	SalerDept           string     `gorm:"column:saler_dept;comment:'部门'"`
+	CompanyName         string     `gorm:"column:company_name;comment:'公司名称'"`
+	UserRegtime         *time.Time `gorm:"column:user_regtime;comment:'用户注册时间'"`
+	CreateTime          *time.Time `gorm:"column:create_time;comment:'订单创建时间'"`
+	SaleTime            *time.Time `gorm:"column:sale_time;comment:'业绩统计时间'"`
+	OriginalPrice       int        `gorm:"column:original_price;comment:'标准售价'"`
+	ContractMoney       int        `gorm:"column:contract_money;comment:'合同金额'"`
+	Commission          int        `gorm:"column:commission;comment:'佣金'"`
+	ProceduresMoney     int        `gorm:"column:procedures_money;comment:'手续费'"`
+	ReceivableAmount    int        `gorm:"column:receivable_amount;comment:'应收金额'"`
+	ChangeValue         int        `gorm:"column:change_value;comment:'业绩变动额'"`
+	ChangeReason        string     `gorm:"column:change_reason;comment:'变更类型'"`
+	TotalReceived       int        `gorm:"column:total_received;comment:'累计已收'"`
+	ProductType         string     `gorm:"column:product_type;comment:'产品类型'"`
+	DataSpec            string     `gorm:"column:data_spec;comment:'规格'"`
+	OrderStatus         string     `gorm:"column:order_status;comment:'订单状态'"`
+	ReturnStatus        string     `gorm:"column:return_status;comment:'回款状态'"`
+	RefundStatus        string     `gorm:"column:refund_status;comment:'退款状态'"`
+	VipType             string     `gorm:"column:vip_type;comment:'付费类型'"`
+	UserPhone           string     `gorm:"column:user_phone;comment:'手机号'"`
+	UserID              string     `gorm:"column:user_id;comment:'用户ID'"`
+	VipStarttime        *time.Time `gorm:"column:vip_starttime;comment:'服务开始时间'"`
+	VipEndtime          *time.Time `gorm:"column:vip_endtime;comment:'服务结束时间'"`
+	ContractStatus      string     `gorm:"column:contract_status;comment:'合同状态'"`
+	ContractCode        string     `gorm:"column:contract_code;comment:'合同编号'"`
+	ContractTime        *time.Time `gorm:"column:contract_time;comment:'合同时间'"`
+	SigningSubject      string     `gorm:"column:signing_subject;comment:'签约主体'"`
+	OrderChannel        string     `gorm:"column:order_channel;comment:'下单渠道'"`
+	DistributionChannel string     `gorm:"column:distribution_channel;comment:'销售渠道'"`
+	IsBackstageOrder    string     `gorm:"column:is_backstage_order;comment:'是否是后台订单'"`
+	PayWay              string     `gorm:"column:pay_way;comment:'付款方式'"`
+	Comeintime          *time.Time `gorm:"column:comeintime;default:CURRENT_TIMESTAMP;comment:'数据进入时间'"`
+	Updatetime          *time.Time `gorm:"column:updatetime;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:'更新时间'"`
+	OrderSaleRecordID   int        `gorm:"column:order_sale_record_id;comment:'业绩变更表ID'"`
+	RefundRecordID      int        `gorm:"column:refund_record_id;comment:'退款表ID'"`
+}
+
+func (DwdFAccountOrderChange) TableName() string {
+	return "dwd_f_account_order_change"
+}
+
+// RefundRecord 退款表结构体
+type RefundRecord struct {
+	ID               int        `gorm:"primaryKey"`
+	OrderCode        string     `gorm:"column:order_code;not null;comment:'订单编号'"`
+	RefundTime       *time.Time `gorm:"column:refund_time;comment:'退款时间'"`
+	RefundMoney      int        `gorm:"column:refund_money;not null;comment:'退款金额,单位:分'"`
+	RefundReason     string     `gorm:"column:refund_reason;comment:'退款原因'"`
+	RefundReasonType string     `gorm:"column:refund_reason_type;comment:'退款原因类型'"`
+}
+
+func (RefundRecord) TableName() string {
+	return "refund_record"
+}
+
+// DwdFAccountReturn 归集后的-剑鱼回款表结构体
+type DwdFAccountReturn struct {
+	ID                     int        `gorm:"primaryKey"`
+	OrderCode              string     `gorm:"column:order_code;comment:'订单编号'"`
+	SalerName              string     `gorm:"column:saler_name;comment:'销售人员'"`
+	SalerDept              string     `gorm:"column:saler_dept;comment:'部门'"`
+	UserPhone              string     `gorm:"column:user_phone;comment:'用户手机号'"`
+	CompanyName            string     `gorm:"column:company_name;comment:'公司名称'"`
+	ProductType            string     `gorm:"column:product_type;comment:'产品类型'"`
+	DataSpec               string     `gorm:"column:data_spec;comment:'规格'"`
+	ReturnType             string     `gorm:"column:return_type;comment:'回款方式'"`
+	SaleTime               *time.Time `gorm:"column:sale_time;comment:'业绩统计日期'"`
+	ReturnTime             *time.Time `gorm:"column:return_time;comment:'回款日期'"`
+	ReturnMoney            int        `gorm:"column:return_money;comment:'回款金额'"`
+	SigningSubject         string     `gorm:"column:signing_subject;comment:'签约主体'"`
+	ReturnSubject          string     `gorm:"column:return_subject;comment:'回款主体'"`
+	SubjectCheck           string     `gorm:"column:subject_check;comment:'主体校验'"`
+	PaymentNumber          string     `gorm:"column:payment_number;comment:'支付单号'"`
+	BankFlow               string     `gorm:"column:bank_flow;comment:'银行流水号'"`
+	BankName               string     `gorm:"column:bank_name;comment:'银行名称'"`
+	OrderChannel           string     `gorm:"column:order_channel;comment:'下单渠道'"`
+	DistributionChannel    string     `gorm:"column:distribution_channel;comment:'销售渠道'"`
+	RefundStatus           string     `gorm:"column:refund_status;comment:'退款状态'"`
+	OperateType            string     `gorm:"column:operate_type;comment:'关联方式'"`
+	OperatePerson          string     `gorm:"column:operate_person;comment:'创建人'"`
+	ReturnMoneyRecordState int        `gorm:"column:return_money_record_state;comment:'数据状态'"`
+	Comeintime             *time.Time `gorm:"column:comeintime;default:CURRENT_TIMESTAMP;comment:'入库时间'"`
+	Updatetime             *time.Time `gorm:"column:updatetime;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:'更新时间'"`
+	ReturnMoneyRecordID    int        `gorm:"column:return_money_record_id;comment:'回款表 id'"`
+	DataexportOrderID      int        `gorm:"column:dataexport_order_id;comment:'订单表 id'"`
+}
+
+func (DwdFAccountReturn) TableName() string {
+	return "dwd_f_account_return"
+}
+
+// AliPay 结构体表示支付宝支付记录表
+type AliPay struct {
+	ID            int        `gorm:"primaryKey;autoIncrement"`
+	TransactionID string     `gorm:"column:transaction_id;unique;comment:'支付订单号'"`    // TransactionID 是支付订单号,唯一索引
+	OutTradeNo    string     `gorm:"column:out_trade_no;index;comment:'商户订单号'"`       // OutTradeNo 是商户订单号,索引
+	CreateTime    *time.Time `gorm:"column:create_time;comment:'创建时间'"`               // CreateTime 是记录创建时间,在更新时自动更新为当前时间戳
+	TotalFee      int        `gorm:"column:total_fee;comment:'标价金额-订单总金额,单位为分'"`      // TotalFee 是标价金额-订单总金额,单位为分
+	CashFee       int        `gorm:"column:cash_fee;comment:'现金支付金额-现金支付金额订单现金支付金额'"` // CashFee 是现金支付金额-现金支付金额订单现金支付金额
+	TimeEnd       string     `gorm:"column:time_end;comment:'支付完成时间'"`                // TimeEnd 是支付完成时间
+}
+
+// TableName 返回表名
+func (AliPay) TableName() string {
+	return "ali_pay"
+}
+
+// WeixinPay 结构体表示微信支付记录表
+type WeixinPay struct {
+	ID            int        `gorm:"primaryKey;autoIncrement"`
+	TransactionID string     `gorm:"column:transaction_id;unique;comment:'微信支付订单号'"` // TransactionID 是微信支付订单号,唯一索引
+	OutTradeNo    string     `gorm:"column:out_trade_no;index;comment:'商户订单号'"`
+	UserOpenid    string     `gorm:"column:user_openid;comment:'用户 openid'"`
+	TotalFee      int        `gorm:"column:total_fee;comment:'标价金额-订单总金额,单位为分'"`
+	CreateTime    *time.Time `gorm:"column:create_time;comment:'创建时间'"`
+	CashFee       int        `gorm:"column:cash_fee;comment:'现金支付金额-现金支付金额订单现金支付金额'"`
+	TimeEnd       string     `gorm:"column:time_end;comment:'支付完成时间'"`
+	UserID        string     `gorm:"column:user_id;comment:'用户 ID'"`
+	PayChannel    int        `gorm:"column:pay_channel;comment:'0-微信;1-微信小店'"`
+}
+
+// TableName 返回表名
+func (WeixinPay) TableName() string {
+	return "weixin_pay"
+}
+
+// DwdFAccountReturnChange 归集后-剑鱼回款变更表
+type DwdFAccountReturnChange struct {
+	ID                  int        `gorm:"primaryKey;autoIncrement;comment:'自增唯一标识'"`
+	OrderCode           string     `gorm:"column:order_code;comment:'订单编号'"`
+	SalerName           string     `gorm:"column:saler_name;comment:'销售人员'"`
+	SalerDept           string     `gorm:"column:saler_dept;comment:'部门'"`
+	UserPhone           string     `gorm:"column:user_phone;comment:'用户手机号'"`
+	CompanyName         string     `gorm:"column:company_name;comment:'公司名称'"`
+	ProductType         string     `gorm:"column:product_type;comment:'产品类型'"`
+	DataSpec            string     `gorm:"column:data_spec;comment:'规格'"`
+	ReturnType          string     `gorm:"column:return_type;comment:'回款方式'"`
+	SaleTime            *time.Time `gorm:"column:sale_time;comment:'业绩变更日期'"`
+	ReturnTime          *time.Time `gorm:"column:return_time;comment:'回款日期'"`
+	ReturnMoney         int        `gorm:"column:return_money;comment:'回款金额'"`
+	ChangeValue         int        `gorm:"column:change_value;comment:'业绩变动额'"`
+	ChangeReason        string     `gorm:"column:change_reason;comment:'变更类型'"`
+	SigningSubject      string     `gorm:"column:signing_subject;comment:'签约主体'"`
+	ReturnSubject       string     `gorm:"column:return_subject;comment:'回款主体'"`
+	SubjectCheck        string     `gorm:"column:subject_check;comment:'主体校验'"`
+	PaymentNumber       string     `gorm:"column:payment_number;comment:'支付单号'"`
+	BankFlow            string     `gorm:"column:bank_flow;comment:'银行流水号'"`
+	BankName            string     `gorm:"column:bank_name;comment:'银行名称'"`
+	OrderChannel        string     `gorm:"column:order_channel;comment:'下单渠道'"`
+	DistributionChannel string     `gorm:"column:distribution_channel;comment:'销售渠道'"`
+	RefundStatus        string     `gorm:"column:refund_status;comment:'退款状态'"`
+	OperateType         string     `gorm:"column:operate_type;comment:'关联方式'"`
+	OperatePerson       string     `gorm:"column:operate_person;comment:'创建人'"`
+	OrderSaleRecordID   int        `gorm:"column:order_sale_record_id;comment:'业绩变更表 ID'"`
+	RefundRecordID      int        `gorm:"column:refund_record_id;comment:'退款表 ID'"`
+	Comeintime          *time.Time `gorm:"column:comeintime;default:CURRENT_TIMESTAMP;comment:'入库时间'"`
+	Updatetime          *time.Time `gorm:"column:updatetime;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:'更新时间'"`
+}
+
+// TableName 返回表名
+func (DwdFAccountReturnChange) TableName() string {
+	return "dwd_f_account_return_change"
+}

+ 77 - 0
account_order/config.toml

@@ -0,0 +1,77 @@
+[mongob]  ## bidding 链接
+    host = "127.0.0.1:27083"
+#    host = "192.168.3.207:29099"
+    db = "qfw"
+    coll = "bidding"
+    username = "SJZY_RWbid_ES"
+    password = "SJZY@B4i4D5e6S"
+
+
+[mongop] ## 项目信息
+    host = "127.0.0.1:27080"
+    #    host = "192.168.3.207:29099"
+    db = "qfw"
+    coll = "projectset_20230904"
+    username = ""
+    password = ""
+
+
+
+
+[cron] ## 定时任务
+#    spec = "0 */1 * * * *"  ## 5分钟执行一次
+    spec = "0 00 20 * * *"   ## 每天20点执行
+    start = -1               ## 表示开始时间昨天凌晨
+    end = 0                  ## 表示截止时间到今天凌晨
+    delete = -30              ## 删除30天之前的数据
+
+
+[mysql]
+    address = "127.0.0.1:4001" ## 本地
+#    address = "172.17.162.27:14000" ## 线上
+    dbname=   "data_analysis" ##
+    dbname2=   "jianyu" ## 业绩变更表 order_sale_record
+    dbname3=   "Jianyu_subjectdb" ## 用户归集表 dwd_f_userbase_baseinfo,dwd_f_userbase_id_mapping
+    username = "datascbi"
+    password= "Da#Bi20221111SC"
+    table = "dataexport_order" ## 订单表
+    table2 = "return_money_record" ## 回款表
+    table3 = "refund_record" ## 退款表
+    table4 = "contract" ## 合同表
+    table5 = "order_sale_record" ## 业绩变更表
+    table6 = "dwd_f_userbase_baseinfo" ## 用户归集表
+    table7 = "dwd_f_userbase_id_mapping" ## 用户归集表
+
+
+
+    ## 测试环境
+#    address = "192.168.3.14:4000"
+#    dbname=   "global_common_data"
+#    username = "root"
+#    password= "=PDT49#80Z!RVv52_z"
+#    table = "ods_datamonitoring_bidding"    ## 存储结果数据表
+
+[email]
+    api = "http://172.17.162.36:19281/_send/_mail"
+    to = "wangchengcheng@topnet.net.cn"
+
+## 日志
+# 日志
+[log]
+    # 日志路径,为空将输出控制台
+    logpath = ""
+#    logpath = "logs/log.out"
+    # log size (M)
+    maxsize = 10
+    # compress log
+    compress = true
+    # log save  time (day)
+    maxage =  7
+    # save total log file total
+    maxbackups = 10
+    # log level
+    loglevel  = "debug"
+    # text or json output
+    format = "json"
+
+

+ 52 - 0
account_order/go.mod

@@ -0,0 +1,52 @@
+module account_order
+
+go 1.22.6
+
+require (
+	github.com/spf13/viper v1.19.0
+	go.uber.org/zap v1.27.0
+	gorm.io/driver/mysql v1.5.7
+	gorm.io/gorm v1.25.12
+	jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3
+)
+
+require (
+	github.com/PuerkitoBio/goquery v1.8.0 // indirect
+	github.com/andybalholm/cascadia v1.3.1 // indirect
+	github.com/dchest/captcha v1.0.0 // indirect
+	github.com/fsnotify/fsnotify v1.7.0 // indirect
+	github.com/go-sql-driver/mysql v1.7.0 // indirect
+	github.com/golang/snappy v0.0.1 // indirect
+	github.com/hashicorp/hcl v1.0.0 // indirect
+	github.com/jinzhu/inflection v1.0.0 // indirect
+	github.com/jinzhu/now v1.1.5 // indirect
+	github.com/klauspost/compress v1.17.2 // indirect
+	github.com/magiconair/properties v1.8.7 // indirect
+	github.com/mitchellh/mapstructure v1.5.0 // indirect
+	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/pelletier/go-toml/v2 v2.2.2 // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/sagikazarmark/locafero v0.4.0 // indirect
+	github.com/sagikazarmark/slog-shim v0.1.0 // indirect
+	github.com/sourcegraph/conc v0.3.0 // indirect
+	github.com/spf13/afero v1.11.0 // indirect
+	github.com/spf13/cast v1.6.0 // indirect
+	github.com/spf13/pflag v1.0.5 // indirect
+	github.com/subosito/gotenv v1.6.0 // indirect
+	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
+	github.com/xdg-go/scram v1.1.1 // indirect
+	github.com/xdg-go/stringprep v1.0.3 // indirect
+	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
+	go.mongodb.org/mongo-driver v1.10.1 // indirect
+	go.uber.org/multierr v1.10.0 // indirect
+	golang.org/x/crypto v0.21.0 // indirect
+	golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
+	golang.org/x/net v0.23.0 // indirect
+	golang.org/x/sync v0.6.0 // indirect
+	golang.org/x/sys v0.18.0 // indirect
+	golang.org/x/text v0.14.0 // indirect
+	gopkg.in/ini.v1 v1.67.0 // indirect
+	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
+	gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+)

+ 266 - 0
account_order/go.sum

@@ -0,0 +1,266 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
+github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
+github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
+github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c=
+github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
+github.com/aws/aws-sdk-go v1.43.21/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dchest/captcha v1.0.0 h1:vw+bm/qMFvTgcjQlYVTuQBJkarm5R0YSsDKhm1HZI2o=
+github.com/dchest/captcha v1.0.0/go.mod h1:7zoElIawLp7GUMLcj54K9kbw+jEyvz2K0FDdRRYhvWo=
+github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
+github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
+github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
+github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
+github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4=
+github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
+github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
+github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
+github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/nsqio/go-nsq v1.1.0/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY=
+github.com/olivere/elastic/v7 v7.0.32/go.mod h1:c7PVmLe3Fxq77PIfY/bZmxY/TAamBhCzZ8xDOE09a9k=
+github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
+github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
+github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
+github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
+github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
+github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
+github.com/smartystreets/assertions v1.1.1/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
+github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=
+github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak=
+github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
+github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
+github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
+github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
+github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
+github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
+github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
+github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
+github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
+github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
+github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
+github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
+github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
+github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
+github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
+github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
+github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
+github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
+github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
+github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4=
+go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
+go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opentelemetry.io/otel v1.5.0/go.mod h1:Jm/m+rNp/z0eqJc74H7LPwQ3G87qkU/AnnAydAjSAHk=
+go.opentelemetry.io/otel/trace v1.5.0/go.mod h1:sq55kfhjXYr1zVSyexg0w1mpa03AYXR5eyTkB9NPPdE=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ=
+go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
+go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
+golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
+golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
+golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
+golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
+google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
+gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=
+gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo=
+gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
+gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
+gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
+gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3 h1:mTokQIoOu/oZ2oCSAPayIFfnglIHP0qbOw1Ez6biKDo=
+jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3/go.mod h1:1Rp0ioZBhikjXHYYXmnzL6RNfvTDM/2XvRB+vuPLurI=

+ 168 - 0
account_order/init.go

@@ -0,0 +1,168 @@
+package main
+
+import (
+	"fmt"
+	"github.com/spf13/viper"
+	"go.uber.org/zap"
+	"gorm.io/driver/mysql"
+	"gorm.io/gorm"
+	"gorm.io/gorm/logger"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"os"
+	"time"
+)
+
+var 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 init() {
+	err := InitConfig()
+	if err != nil {
+		fmt.Println("InitConfig err", err)
+		os.Exit(1)
+	}
+
+	InitLog()
+	//InitMgo()
+	//InitEs()
+	InitMysql()
+
+	//
+
+}
+
+func InitLog() {
+	now := time.Now()
+	err := log.InitLog(
+		log.Path(GF.Log.LogPath),
+		log.Level(GF.Log.LogLevel),
+		log.Compress(GF.Log.Compress),
+		log.MaxSize(GF.Log.MaxSize),
+		log.MaxBackups(GF.Log.MaxBackups),
+		log.MaxAge(GF.Log.MaxAge),
+		log.Format(GF.Log.Format),
+	)
+	if err != nil {
+		fmt.Printf("InitLog failed: %v\n", err)
+		os.Exit(1)
+	}
+
+	log.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
+}
+
+func InitMysql() {
+	now := time.Now()
+	username := GF.Mysql.Username
+	password := GF.Mysql.Password
+	host := GF.Mysql.Address // 本地
+	//host := "172.17.162.27:14000" //线上
+	database := GF.Mysql.Dbname
+	dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, database)
+	// 连接到数据库
+	var err error
+	AnalysisDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Error), //不打印日志
+	})
+	if err != nil {
+		log.Info("InitMysql", zap.String("初始化MySQL", "data_analysis数据库失败"), zap.Error(err))
+		return
+	} else {
+		log.Info("InitMysql", zap.String("初始化MySQL", "data_analysis数据库成功"))
+	}
+
+	dsn2 := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, GF.Mysql.Dbname2)
+	JianyuDB, err = gorm.Open(mysql.Open(dsn2), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Error), //不打印日志
+	})
+	if err != nil {
+		log.Info("InitMysql", zap.String("初始化MySQL", "jianyu 数据库失败"), zap.Error(err))
+		return
+	} else {
+		log.Info("InitMysql", zap.String("初始化MySQL", "jianyu 数据库成功"))
+	}
+
+	dsn3 := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, GF.Mysql.Dbname3)
+	JianyuSubjectDB, err = gorm.Open(mysql.Open(dsn3), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Error), //不打印日志
+	})
+	if err != nil {
+		log.Info("InitMysql", zap.String("初始化MySQL", "Jianyu_subjectdb 数据库失败"), zap.Error(err))
+		return
+	} else {
+		log.Info("InitMysql", zap.String("初始化MySQL", "Jianyu_subjectdb 数据库成功"))
+	}
+
+	log.Info("InitMysql", zap.Any("duration", time.Since(now).Seconds()))
+
+}
+
+//func InitEs() {
+//	now := time.Now()
+//	//Es = &elastic.Elastic{
+//	//	//S_esurl: "http://127.0.0.1:19805",
+//	//	S_esurl:  GF.EsP.URL,
+//	//	I_size:   5,
+//	//	Username: GF.EsP.Username,
+//	//	Password: GF.EsP.Password,
+//	//}
+//	//Es.InitElasticSize()
+//
+//	EsClient, _ = es.NewClient(
+//		es.SetURL(GF.EsP.URL),
+//		es.SetBasicAuth(GF.EsP.Username, GF.EsP.Password),
+//		es.SetSniff(false),
+//	)
+//
+//	log.Info("InitEs", zap.Any("duration", time.Since(now).Seconds()))
+//}
+
+func InitMgo() {
+	now := time.Now()
+	Mgo = &mongodb.MongodbSim{
+		MongodbAddr: GF.Mongob.Host,
+		DbName:      GF.Mongob.DB,
+		Size:        10,
+		UserName:    GF.Mongob.Username,
+		Password:    GF.Mongob.Password,
+	}
+	Mgo.InitPool()
+
+	MgoP = &mongodb.MongodbSim{
+		MongodbAddr: GF.Mongop.Host,
+		DbName:      GF.Mongop.DB,
+		Size:        10,
+		UserName:    GF.Mongop.Username,
+		Password:    GF.Mongop.Password,
+	}
+	MgoP.InitPool()
+
+	MgoSpider = &mongodb.MongodbSim{
+		MongodbAddr: GF.Mongospider.Host,
+		DbName:      GF.Mongospider.DB,
+		Size:        10,
+		UserName:    GF.Mongospider.Username,
+		Password:    GF.Mongospider.Password,
+	}
+	MgoSpider.InitPool()
+
+	log.Info("InitMgo", zap.Any("duration", time.Since(now).Seconds()))
+}

+ 285 - 0
account_order/main.go

@@ -0,0 +1,285 @@
+package main
+
+import (
+	"encoding/json"
+	"errors"
+	"fmt"
+	"go.uber.org/zap"
+	"gorm.io/gorm"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"time"
+)
+
+var (
+	Mgo             *mongodb.MongodbSim
+	MgoP            *mongodb.MongodbSim
+	MgoSpider       *mongodb.MongodbSim
+	AnalysisDB      *gorm.DB
+	JianyuDB        *gorm.DB
+	JianyuSubjectDB *gorm.DB
+)
+
+func main() {
+	//dealAllDataAccountOrder() // 1.处理归集后-存量剑鱼订单表-dwd_f_account_order
+	//dealAllDataAccountOrderChangeRecord() //2.处理归集后-存量业绩表更表-dwd_f_account_order_change
+	//dealAllDataAccountReturn() //3.处理归集后-存量剑鱼回款表-dwd_f_account_return
+	dealAllDataAccountReturnChange() //4.处理归集后-剑鱼回款变更表-dwd_f_account_return_change
+}
+
+// dealAllDataAccountOrder 处理归集后-存量剑鱼订单表-dwd_f_account_order
+func dealAllDataAccountOrder() {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Info("Panic recovered", zap.Any("reason", r))
+		}
+		log.Info("aaaaaaaaaaaa")
+	}()
+
+	var total int64
+	AnalysisDB.Debug().Model(&DataexportOrder{}).Where("autoUpdate < ?", "2024-10-16").Count(&total)
+	log.Info("dealAllDataAccountOrder", zap.Any("总数是", total))
+
+	rowsPerPage := 100                           // 每页的数量
+	totalPages := (int(total) / rowsPerPage) + 1 //总页数
+
+	for page := 0; page < totalPages; page++ {
+		offset := page * rowsPerPage
+		rows, err := AnalysisDB.Debug().Model(&DataexportOrder{}).Where("autoUpdate < ?", "2024-10-16").Order("id desc").Offset(offset).Limit(rowsPerPage).Rows()
+		defer func() {
+			err = rows.Close()
+			if err != nil {
+				log.Info("Err rows.Close", zap.Error(err))
+			}
+		}()
+		log.Info("dealAllDataAccountOrder", zap.Any("current page ", page))
+		for rows.Next() {
+			var dataExOrder DataexportOrder       //原来的订单表
+			var accountOrder DwdFAccountOrder     //归集后的订单表
+			var user1 DwdFUserbaseBaseinfo        //个人用户表
+			var returnRecord ReturnMoneyRecord    //原来的回款表
+			var returnRecords []ReturnMoneyRecord //原来的回款表
+			var contract Contract                 //合同表
+			// ScanRows 方法用于将一行记录扫描至结构体
+			err = AnalysisDB.ScanRows(rows, &dataExOrder)
+			if err != nil {
+				log.Info("dealAllDataAccountOrder,ScanRows err ", zap.Error(err))
+			}
+
+			filter := dataExOrder.Filter
+			filterMap := make(map[string]interface{})
+			err := json.Unmarshal([]byte(filter), &filterMap)
+			if err != nil {
+				log.Info("dealAllDataAccountOrder, filter.json.Unmarshal", zap.Error(err))
+			}
+			//订单编号不为空
+			if dataExOrder.OrderCode != "" {
+				// 业务逻辑...
+				accountOrder.OrderCode = dataExOrder.OrderCode
+				var osr OrderSaleRecord //原来的业绩变更表
+				err = JianyuDB.Order("id asc").Where("ordercode = ? ", dataExOrder.OrderCode).First(&osr).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("dealAllDataAccountOrder", zap.Error(err))
+				}
+				//有业绩表更表记录
+				if osr.ID > 0 {
+					if osr.SalerName == "-" {
+						accountOrder.SalerName = "运营"
+					} else {
+						accountOrder.SalerName = osr.SalerName
+					}
+					accountOrder.SalerDept = osr.SalerDept
+				}
+				accountOrder.CompanyName = dataExOrder.CompanyName
+				if len(dataExOrder.UserID) > 20 { //个人身份
+					err = JianyuSubjectDB.Where("userid = ? ", dataExOrder.UserID).First(&user1).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("dealAllDataAccountOrder", zap.Error(err))
+					}
+					accountOrder.UserRegtime = user1.LRegistedate
+				} else {
+					//企业身份
+					rs := new(struct {
+						PositionId   int        `gorm:"column:position_id"`
+						LRegistedate *time.Time `gorm:"column:l_registedate"`
+					})
+					if dataExOrder.UserID != "" {
+						sql := fmt.Sprintf(`SELECT im.position_id,ub.l_registedate FROM
+				(SELECT userid,position_id FROM Jianyu_subjectdb.dwd_f_userbase_id_mapping WHERE position_id = %s) im
+				LEFT JOIN Jianyu_subjectdb.dwd_f_userbase_baseinfo ub
+					ON im.userid=ub.userid`, dataExOrder.UserID)
+						err = JianyuSubjectDB.Raw(sql).Scan(&rs).Error
+						if err != nil {
+							log.Info("处理用户订单表数据", zap.String("查询企业用户注册时间失败", dataExOrder.UserID))
+						}
+						accountOrder.UserRegtime = rs.LRegistedate
+					}
+				}
+
+				accountOrder.CreateTime = dataExOrder.CreateTime
+				if dataExOrder.IsBackstageOrder == 0 {
+					accountOrder.ReturnTime = dataExOrder.PayTime
+					accountOrder.TotalReceived = util.IntAll(filterMap["originalAmount"]) //累计已收
+				} else if dataExOrder.IsBackstageOrder == 1 {
+					err = AnalysisDB.Where("order_code = ? ", dataExOrder.OrderCode).Where("state = 1").Order("return_time asc").First(&returnRecord).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("dealAllDataAccountOrder", zap.Error(err))
+					}
+					accountOrder.ReturnTime = returnRecord.ReturnTime
+					err = AnalysisDB.Where("order_code = ? ", dataExOrder.OrderCode).Find(&returnRecords).Error
+					if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+						log.Info("dealAllDataAccountOrder", zap.Error(err))
+					}
+					totalMoney := 0
+					if len(returnRecords) > 0 {
+						for _, v := range returnRecords {
+							totalMoney += v.ReturnMoney
+						}
+					}
+					accountOrder.TotalReceived = totalMoney
+				}
+				accountOrder.SaleTime = dataExOrder.SaleTime
+				accountOrder.OriginalPrice = dataExOrder.OriginalPrice
+				accountOrder.ContractMoney = util.IntAll(filterMap["originalAmount"])
+				accountOrder.Commission = dataExOrder.Commission
+				accountOrder.ProceduresMoney = dataExOrder.ProceduresMoney
+				accountOrder.ReceivableAmount = accountOrder.ContractMoney - accountOrder.Commission - accountOrder.ProceduresMoney
+				accountOrder.ProductType = dataExOrder.ProductType
+				if dataExOrder.ProductType == "大会员" || dataExOrder.ProductType == "大会员-子账号" || dataExOrder.ProductType == "大会员-补充包" {
+					switch util.IntAll(filterMap["level"]) {
+					case 1:
+						accountOrder.DataSpec = "专家版"
+					case 2:
+						accountOrder.DataSpec = "智慧版"
+					case 3:
+						accountOrder.DataSpec = "商机版"
+					case 4:
+						accountOrder.DataSpec = "试用版"
+					case 5:
+						accountOrder.DataSpec = "定制版"
+					case 6:
+						accountOrder.DataSpec = "商机版2.0"
+					case 7:
+						accountOrder.DataSpec = "专家版2.0"
+					}
+					//付费类型  VipType
+					switch util.IntAll(filterMap["recordPayType"]) {
+					case 1:
+						accountOrder.VipType = "购买"
+					case 2:
+						accountOrder.VipType = "续费"
+					case 3:
+						accountOrder.VipType = "升级"
+					case 4:
+						accountOrder.VipType = "试用"
+					}
+				} else {
+					accountOrder.DataSpec = dataExOrder.DataSpec
+					////付费类型  VipType
+					switch dataExOrder.VipType {
+					case 0:
+						accountOrder.VipType = "购买"
+					case 1:
+						accountOrder.VipType = "续费"
+					case 2:
+						accountOrder.VipType = "升级"
+					case 3:
+						accountOrder.VipType = "试用"
+					}
+				}
+				//OrderStatus 订单状态
+				if dataExOrder.RefundStatus == 1 || dataExOrder.RefundStatus == 2 {
+					accountOrder.OrderStatus = "已完成"
+				} else {
+					switch dataExOrder.OrderStatus {
+					case 1:
+						accountOrder.OrderStatus = "已完成"
+					case -1:
+						accountOrder.OrderStatus = "逻辑删除"
+					case -2:
+						accountOrder.OrderStatus = "已取消"
+					case -3:
+						accountOrder.OrderStatus = "已取消"
+					case 0:
+						accountOrder.OrderStatus = "未完成"
+					}
+				}
+				//回款状态
+				if dataExOrder.IsBackstageOrder == 0 {
+					if accountOrder.OrderStatus == "已支付" {
+						accountOrder.ReturnStatus = "全额回款"
+					} else {
+						accountOrder.ReturnStatus = "未支付"
+					}
+				} else if dataExOrder.IsBackstageOrder == 1 {
+					switch dataExOrder.ReturnStatus {
+					case 1:
+						accountOrder.ReturnStatus = "全额回款"
+					case 2:
+						accountOrder.ReturnStatus = "部分回款"
+					case 0:
+						accountOrder.ReturnStatus = "未回款"
+					}
+				}
+				//refund_status 回款状态
+				switch dataExOrder.RefundStatus {
+				case 0:
+					accountOrder.RefundStatus = "未退款"
+				case 1:
+					accountOrder.RefundStatus = "全额退款"
+				case 2:
+					accountOrder.RefundStatus = "部分退款"
+				}
+				//
+				accountOrder.UserPhone = dataExOrder.UserPhone
+				accountOrder.UserID = dataExOrder.UserID
+				accountOrder.VipStarttime = dataExOrder.VipStarttime
+				accountOrder.VipEndtime = dataExOrder.VipEndtime
+				// 合同状态
+				err = AnalysisDB.Where("order_code = ? ", dataExOrder.OrderCode).Find(&contract).Error
+				if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
+					log.Info("dealAllDataAccountOrder", zap.Error(err))
+				}
+				if contract.ContractStatus == 1 {
+					accountOrder.ContractStatus = "已签协议"
+				} else if contract.ContractStatus == 0 {
+					accountOrder.ContractStatus = "未签协议"
+				}
+				accountOrder.ContractCode = contract.ContractCode
+				accountOrder.ContractTime = contract.ContractTime
+				if dataExOrder.SigningSubject == "h01" {
+					accountOrder.SigningSubject = "北京剑鱼信息技术有限公司"
+				} else if dataExOrder.SigningSubject == "h02" {
+					accountOrder.SigningSubject = "北京拓普丰联信息科技股份有限公司"
+				}
+				accountOrder.OrderChannel = dataExOrder.OrderChannel
+				accountOrder.DistributionChannel = dataExOrder.DistributionChannel
+				if dataExOrder.IsBackstageOrder == 1 {
+					accountOrder.IsBackstageOrder = "是"
+				} else {
+					accountOrder.IsBackstageOrder = "否"
+				}
+				switch dataExOrder.PayWay {
+				case "ali", "ali_app", "ali_pc": //ali、ali_app、ali_pc 处理为“支付宝”
+					accountOrder.PayWay = "支付宝"
+				case "wx", "wx_app", "wx_js", "wx_pc": // wx、wx_app、wx_js、wx_pc 处理为“微信”
+					accountOrder.PayWay = "微信"
+				case "transferAccounts":
+					accountOrder.PayWay = "对公转账"
+				default:
+					accountOrder.PayWay = dataExOrder.PayWay
+				}
+				//生成订单数据
+				err = AnalysisDB.Create(&accountOrder).Error
+				if err != nil {
+					log.Info("dealAllDataAccountOrder Create ", zap.Error(err))
+				}
+			}
+		}
+
+	}
+
+	log.Info("dealAllDataAccountOrder 迭代结束", zap.Int64("数据总量", total))
+
+}

+ 189 - 0
account_order/readme.md

@@ -0,0 +1,189 @@
+
+## 本项目是为了处理订单账单相关数据,需要调用原有
+中文名	    数据库类型	数据库	            表名	                        权限
+订单表	    TIDB	    data_analysis	    dataexport_order	        只读
+回款表	    TIDB	    data_analysis	    return_money_record	        只读
+退款表	    TIDB	    data_analysis	    refund_record	            只读
+合同表	    TIDB	    data_analysis	    contract	                只读
+业绩变更表	TIDB	    jianyu	            order_sale_record	        只读
+用户归集表	TIDB	    Jianyu_subjectdb	dwd_f_userbase_baseinfo	    只读
+用户归集表	TIDB	    Jianyu_subjectdb	dwd_f_userbase_id_mapping   只读
+
+
+归集后的表:172.17.145.164:14000				
+中文名	        数据库类型	数据库	    表名	                        权限
+剑鱼订单表	    TIDB	data_analysis	dwd_f_account_order	        读写
+剑鱼业绩变更表	TIDB	data_analysis	dwd_f_account_order_change	读写
+剑鱼回款表	    TIDB	data_analysis	dwd_f_account_return	    读写
+剑鱼回款变更表	TIDB	data_analysis	dwd_f_account_return_change	读写
+
+
+
+
+##  _存量数据_ 范围
+autoUpdate < 2024-10-16 
+
+
+
+
+### 归集 剑鱼订单表 `dwd_f_account_order`
+```sql
+CREATE TABLE `dwd_f_account_order` (
+`id` int(11) NOT NULL AUTO_INCREMENT,
+`order_code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单编号',
+`saler_name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售人员',
+`saler_dept` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '部门',
+`company_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公司名称',
+`user_regtime` datetime DEFAULT NULL COMMENT '用户注册时间',
+`create_time` datetime DEFAULT NULL COMMENT '订单创建时间',
+`return_time` datetime DEFAULT NULL COMMENT '回款时间',
+`sale_time` datetime DEFAULT NULL COMMENT '业绩统计',
+`refund_time` datetime DEFAULT NULL COMMENT '退款日期',
+`original_price` int(10) DEFAULT NULL COMMENT '标准售价',
+`contract_money` int(10) DEFAULT NULL COMMENT '合同金额',
+`commission` int(10) DEFAULT NULL COMMENT '佣金',
+`procedures_money` int(10) DEFAULT NULL COMMENT '手续费',
+`receivable_amount` int(10) DEFAULT NULL COMMENT '应收金额',
+`total_received` int(10) DEFAULT NULL COMMENT '累计已收',
+`product_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品类型',
+`data_spec` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '规格',
+`order_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '订单状态',
+`return_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '回款状态',
+`refund_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退款状态',
+`vip_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '付费类型',
+`user_phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号',
+`user_id` varchar(255) DEFAULT NULL COMMENT '用户ID',
+`vip_starttime` datetime DEFAULT NULL COMMENT '服务开始时间',
+`vip_endtime` datetime DEFAULT NULL COMMENT '服务结束时间',
+`contract_status` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同状态',
+`contract_code` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同编号',
+`contract_time` datetime DEFAULT NULL COMMENT '合同时间',
+`signing_subject` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签约主体',
+`order_channel` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '下单渠道',
+`distribution_channel` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售渠道',
+`is_backstage_order` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否是后台订单',
+`pay_way` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '付款方式',
+`comeintime` datetime DEFAULT CURRENT_TIMESTAMP,
+`updatetime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
+KEY `order_code` (`order_code`),
+UNIQUE KEY `order_code_2` (`order_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='剑鱼订单表';
+
+```
+### 归集 剑鱼业绩变更表  `dwd_f_account_order_change`
+```sql
+CREATE TABLE `dwd_f_account_order_change` (
+`id` int(11) NOT NULL AUTO_INCREMENT,
+`order_code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单编号',
+`saler_name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售人员',
+`saler_dept` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '部门',
+`company_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公司名称',
+`user_regtime` datetime DEFAULT NULL COMMENT '用户注册时间',
+`create_time` datetime DEFAULT NULL COMMENT '订单创建时间',
+`sale_time` datetime DEFAULT NULL COMMENT '业绩统计时间',
+`original_price` int(10) DEFAULT NULL COMMENT '标准售价',
+`contract_money` int(10) DEFAULT NULL COMMENT '合同金额',
+`commission` int(10) DEFAULT NULL COMMENT '佣金',
+`procedures_money` int(10) DEFAULT NULL COMMENT '手续费',
+`receivable_amount` int(10) DEFAULT NULL COMMENT '应收金额',
+`change_value` int(10) DEFAULT NULL COMMENT '业绩变动额',
+`change_reason` varchar(255) DEFAULT NULL COMMENT '变更类型',
+`total_received` int(10) DEFAULT NULL COMMENT '累计已收',
+`product_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品类型',
+`data_spec` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '规格',
+`order_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '订单状态',
+`return_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '回款状态',
+`refund_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退款状态',
+`vip_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '付费类型',
+`user_phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号',
+`user_id` varchar(255) DEFAULT NULL COMMENT '用户ID',
+`vip_starttime` datetime DEFAULT NULL COMMENT '服务开始时间',
+`vip_endtime` datetime DEFAULT NULL COMMENT '服务结束时间',
+`contract_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同状态',
+`contract_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同编号',
+`contract_time` datetime DEFAULT NULL COMMENT '合同时间',
+`signing_subject` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签约主体',
+`order_channel` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '下单渠道',
+`distribution_channel` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售渠道',
+`is_backstage_order` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '是否是后台订单',
+`pay_way` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '付款方式',
+`comeintime` datetime DEFAULT CURRENT_TIMESTAMP,
+`updatetime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+`order_sale_record_id` int(11) DEFAULT NULL COMMENT '业绩变更表ID',
+`refund_record_id` int(11) DEFAULT NULL COMMENT '退款表ID',
+PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
+KEY `order_code` (`order_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='剑鱼业绩变更表';
+```
+
+### 归集 剑鱼回款表 `dwd_f_account_return`
+```sql
+CREATE TABLE `dwd_f_account_return` (
+`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增唯一标识',
+`order_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '订单编号',
+`saler_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售人员',
+`saler_dept` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '部门',
+`user_phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户手机号',
+`company_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公司名称',
+`product_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品类型',
+`data_spec` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '规格',
+`return_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '回款方式',
+`sale_time` datetime DEFAULT NULL COMMENT '业绩统计日期',
+`return_time` datetime DEFAULT NULL COMMENT '回款日期',
+`return_money` int(10) DEFAULT NULL COMMENT '回款金额',
+`signing_subject` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签约主体',
+`return_subject` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '回款主体',
+`subject_check` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '主体校验',
+`payment_number` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付单号',
+`bank_flow` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '银行流水号',
+`bank_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '银行名称',
+`order_channel` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '下单渠道',
+`distribution_channel` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售渠道',
+`refund_status` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退款状态',
+`operate_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联方式',
+`operate_person` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
+`return_money_record_state` int(11) DEFAULT NULL COMMENT '数据状态',
+`comeintime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间',
+`updatetime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+`return_money_record_id` int(11) DEFAULT NULL COMMENT '回款表id',
+`dataexport_order_id` int(11) DEFAULT NULL COMMENT '订单表id',
+PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='剑鱼回款表';
+```
+
+### 归集 剑鱼回款变更表 `dwd_f_account_return_change`
+```sql
+CREATE TABLE `dwd_f_account_return_change` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增唯一标识',
+  `order_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '订单编号',
+  `saler_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售人员',
+  `saler_dept` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '部门',
+  `user_phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户手机号',
+  `company_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公司名称',
+  `product_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品类型',
+  `data_spec` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '规格',
+  `return_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '回款方式',
+  `sale_time` datetime DEFAULT NULL COMMENT '业绩变更日期',
+  `return_time` datetime DEFAULT NULL COMMENT '回款日期',
+  `return_money` int(10) DEFAULT NULL COMMENT '回款金额',
+  `change_value` int(10) DEFAULT NULL COMMENT '业绩变动额',
+  `change_reason` varchar(100) DEFAULT NULL COMMENT '变更类型',
+  `signing_subject` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签约主体',
+  `return_subject` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '回款主体',
+  `subject_check` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '主体校验',
+  `payment_number` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付单号',
+  `bank_flow` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '银行流水号',
+  `bank_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '银行名称',
+  `order_channel` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '下单渠道',
+  `distribution_channel` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售渠道',
+  `refund_status` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退款状态',
+  `operate_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联方式',
+  `operate_person` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
+  `order_sale_record_id` int(11) DEFAULT NULL COMMENT '业绩变更表ID',
+  `refund_record_id` int(11) DEFAULT NULL COMMENT '退款表ID',
+  `comeintime` datetime DEFAULT CURRENT_TIMESTAMP,
+  `updatetime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='剑鱼回款变更表';
+```

+ 15 - 0
bidding_tags/config.go

@@ -5,6 +5,7 @@ type GlobalConf struct {
 	Env   EnvConf
 	Esa   EsConf
 	Esb   EsConf
+	Log   LogConf
 }
 
 type MgoConf struct {
@@ -23,10 +24,14 @@ type EnvConf struct {
 	Start         int
 	End           int
 	Spec          string
+	Esindex       string
 	Rulea         string
 	Ruleb         string
 	Rulec         string
 	Ruled         string
+	Rulee         string
+	Rulef         string
+	Doai          bool
 }
 
 type EsConf struct {
@@ -35,3 +40,13 @@ type EsConf struct {
 	Password string
 	Index    string
 }
+
+type LogConf struct {
+	LogPath    string
+	MaxSize    int
+	Compress   bool
+	MaxAge     int
+	MaxBackups int
+	LogLevel   string
+	Format     string
+}

+ 41 - 6
bidding_tags/config.toml

@@ -1,13 +1,18 @@
 [mongo]  ## 标讯地址
     host = "127.0.0.1:27083"
-    #        host = "172.17.189.140:27080"
+    #host = "172.17.189.140:27080"
     db = "qfw"
-    coll = ""
+    coll = "wcc_bidding_test_1029"
     username = "SJZY_RWbid_ES"
     password = "SJZY@B4i4D5e6S"
     direct = true  ## 本地代理时需要打开,
 
-
+## 测试环境
+#    host = "192.168.3.149:27102"
+#    db = "qfw_data"
+#    coll = "bidding"
+#    username = "root"
+#    password = "root"
 
 [esa] ## 华为云集群2
 #    url = "http://172.17.4.184:19908" ## 线上地址
@@ -15,17 +20,43 @@
     username = "jybid"
     password = "Top2023_JEB01i@31"
 
+##
+#    url = "http://192.168.3.149:9201"
+#    username = ""
+#    password = ""
+
+
+
 [esb] ## 华为云集群1
 #    url = "http://172.17.4.184:19905" ## 线上地址
     url = "http://127.0.0.1:19905"
     username = "jybid"
     password = "Top2023_JEB01i@31"
 
-[env]
+# 日志
+[log]
+# 日志路径,为空将输出控制台
+logpath = ""
+#    logpath = "logs/log.out"
+# log size (M)
+maxsize = 10
+# compress log
+compress = true
+# log save  time (day)
+maxage =  7
+# save total log file total
+maxbackups = 10
+# log level
+loglevel  = "debug"
+# text or json output
+format = "json"
 
-    start = -2 ## 开始取2天前的数据,
-    end = -1 ## 截止取1天前的数据,
+[env]
+    start = -1 ## 开始取2天前的数据,
+    end = 0 ## 截止取1天前的数据,
     spec = "0 00 01 * * *"  ## 定时任务,每天凌晨1点执行
+    esindex = "bidding"
+    doai = true  ## 是否启用调用大模型标记
     ## 情报_环境采购
     rulea = "A021004\nA021006\nA021018\nA021019\nA021027\nA021205\nA021304\nA021305\nA021401\nA021402\nA021403\nA022211\nA023600\nA023601\nA023602\nA023603\nA023604\nA023605\nA023606\nA023607\nA023608\nA023609\nA023699\nA070801\nC010319\nC070000\nC070100\nC070101\nC070102\nC070103\nC070104\nC070199\nC070200\nC070201\nC070202\nC070203\nC070204\nC070205\nC070206\nC070207\nC070208\nC070209\nC070299\nC079900\nC110517\nC120200\nC120201\nC120202\nC120203\nC120204\nC120299\nC200208\nC240500"
     ## 情报_印务商机
@@ -34,3 +65,7 @@
     rulec = "A050101\nA050102\nA050103\nA050104\nA050105\nA050106\nA050107\nA050108\nA050199"
     ## 情报_车辆租赁
     ruled = "C23110300"
+    ## 情报_安防
+    rulee ="A02091107\nA023704\nA023705\nA023709\nB0510\nB0601\nB060101\nB060102\nB060103\nB060104\nB060199\nB0602\nB060201\nB060202\nB060203\nB060204\nB060205\nB060206\nB060207\nB060208\nB060299\nC160201\nC160202\nC160204\nC160701"
+    ## 情报_法务;使用中标单位,标题匹配
+    rulef = "律师\n事务所\n法律服务\n法律顾问\n法律咨询\n法律尽职调查\n法律援助"

+ 8 - 3
bidding_tags/go.mod

@@ -1,10 +1,14 @@
 module bidding_tags
 
-go 1.20
+go 1.21.1
+
+toolchain go1.22.6
 
 require (
-	github.com/robfig/cron v1.2.0
+	github.com/itcwc/go-zhipu v0.0.0-20241009091621-5cc379cf0ada
+	github.com/robfig/cron/v3 v3.0.1
 	github.com/spf13/viper v1.19.0
+	go.uber.org/zap v1.22.0
 	jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3
 )
 
@@ -13,6 +17,7 @@ require (
 	github.com/andybalholm/cascadia v1.3.1 // indirect
 	github.com/dchest/captcha v1.0.0 // indirect
 	github.com/fsnotify/fsnotify v1.7.0 // indirect
+	github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
 	github.com/golang/snappy v0.0.1 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
@@ -24,7 +29,6 @@ require (
 	github.com/olivere/elastic/v7 v7.0.32 // indirect
 	github.com/pelletier/go-toml/v2 v2.2.2 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
-	github.com/robfig/cron/v3 v3.0.1 // indirect
 	github.com/sagikazarmark/locafero v0.4.0 // indirect
 	github.com/sagikazarmark/slog-shim v0.1.0 // indirect
 	github.com/sourcegraph/conc v0.3.0 // indirect
@@ -47,5 +51,6 @@ require (
 	golang.org/x/text v0.14.0 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
+	gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )

+ 17 - 2
bidding_tags/go.sum

@@ -1,11 +1,13 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
 github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
 github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
 github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
 github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c=
 github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
 github.com/aws/aws-sdk-go v1.43.21/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
 github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
@@ -13,6 +15,7 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dchest/captcha v1.0.0 h1:vw+bm/qMFvTgcjQlYVTuQBJkarm5R0YSsDKhm1HZI2o=
 github.com/dchest/captcha v1.0.0/go.mod h1:7zoElIawLp7GUMLcj54K9kbw+jEyvz2K0FDdRRYhvWo=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -22,11 +25,14 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
 github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
 github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
 github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
 github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
+github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -52,9 +58,12 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/itcwc/go-zhipu v0.0.0-20241009091621-5cc379cf0ada h1:zNcSPmPckACx60xc8N3MtK7uUcZDL14ig8VrSg/o4dg=
+github.com/itcwc/go-zhipu v0.0.0-20241009091621-5cc379cf0ada/go.mod h1:z7QZm7ol2nikFFGHwArJr1NTtBSE0M0g9MvHKxm1Sw0=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
@@ -64,9 +73,11 @@ github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/
 github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
 github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
 github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
@@ -86,12 +97,12 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
-github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
 github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
 github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
 github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
 github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
 github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
 github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
@@ -142,10 +153,12 @@ go.opentelemetry.io/otel/trace v1.5.0/go.mod h1:sq55kfhjXYr1zVSyexg0w1mpa03AYXR5
 go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
 go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
 go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
 go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
 go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
 go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
+go.uber.org/zap v1.22.0 h1:Zcye5DUgBloQ9BaT4qc9BnjOFog5TvBSAGkJ3Nf70c0=
 go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -234,10 +247,12 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
 gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=
 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
 gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=

+ 874 - 62
bidding_tags/main.go

@@ -1,15 +1,21 @@
 package main
 
 import (
-	"log"
-	"strings"
-	"time"
-
+	"encoding/json"
+	"fmt"
 	"github.com/robfig/cron/v3"
 	"github.com/spf13/viper"
+	"go.uber.org/zap"
 	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
 	es "jygit.jydev.jianyu360.cn/data_processing/common_utils/elastic"
+	jlog "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"log"
+	"os"
+	"regexp"
+	"strings"
+	"sync"
+	"time"
 )
 
 var (
@@ -21,8 +27,29 @@ var (
 	RuleB = make([]string, 0)
 	RuleC = make([]string, 0)
 	RuleD = make([]string, 0)
+	RuleE = make([]string, 0)
+	RuleF = make([]string, 0)
+	//更新es
+	updateEsPool = make(chan []map[string]interface{}, 5000)
+	updateEsSp   = make(chan bool, 3) //保存协程
+	hasWyMap     = sync.Map{}
+	titleMap     = sync.Map{}
+	FawuMap      = sync.Map{}
+	// 更新mongo
+	updatePool = make(chan []map[string]interface{}, 5000)
+	updateSp   = make(chan bool, 5)
+	key        = "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	model      = "glm-4-flash"
+	re         = regexp.MustCompile(`title:(.*?),projectname:(.*?),id:(.*?),class:(.*?)(?:\s*$|\n)`)
 )
 
+type RequestData struct {
+	Title       string
+	Projectname string
+	Class       []string
+	ID          string
+}
+
 const timeTypeAll = 1
 const timeTypeInc = 2
 
@@ -46,7 +73,12 @@ func InitConfig() (err error) {
 }
 
 func Init() {
-	InitConfig()
+	err := InitConfig()
+	if err != nil {
+		log.Println("配置文件错误", err)
+		return
+	}
+
 	Mgo = &mongodb.MongodbSim{
 		MongodbAddr: GF.Mongo.Host,
 		//MongodbAddr: "127.0.0.1:27083",
@@ -66,23 +98,56 @@ func Init() {
 	}
 	Esa.InitElasticSize()
 
-	Esb = &es.Elastic{
-		S_esurl:  GF.Esb.URL,
-		I_size:   5,
-		Username: GF.Esb.Username,
-		Password: GF.Esb.Password,
+	if GF.Esb.URL != "" {
+		Esb = &es.Elastic{
+			S_esurl:  GF.Esb.URL,
+			I_size:   5,
+			Username: GF.Esb.Username,
+			Password: GF.Esb.Password,
+		}
+		Esb.InitElasticSize()
 	}
-	Esb.InitElasticSize()
 
+	InitLog()
 	RuleA = strings.Split(GF.Env.Rulea, "\n")
 	RuleB = strings.Split(GF.Env.Ruleb, "\n")
 	RuleC = strings.Split(GF.Env.Rulec, "\n")
 	RuleD = strings.Split(GF.Env.Ruled, "\n")
+	RuleE = strings.Split(GF.Env.Rulee, "\n")
+	RuleF = strings.Split(GF.Env.Rulef, "\n")
+}
+
+func InitLog() {
+	now := time.Now()
+	err := jlog.InitLog(
+		jlog.Path(GF.Log.LogPath),
+		jlog.Level(GF.Log.LogLevel),
+		jlog.Compress(GF.Log.Compress),
+		jlog.MaxSize(GF.Log.MaxSize),
+		jlog.MaxBackups(GF.Log.MaxBackups),
+		jlog.MaxAge(GF.Log.MaxAge),
+		jlog.Format(GF.Log.Format),
+	)
+	if err != nil {
+		fmt.Printf("InitLog failed: %v\n", err)
+		os.Exit(1)
+	}
+
+	jlog.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
 }
 
 func main() {
 	Init()
-	// dealAll() //存量数据
+
+	go updateEsMethod()
+	go updateMethod()
+	//dealAll() //规则处理存量数据
+	//dealInc()
+	//dealAllAi() //大模型
+
+	//dealInc()
+
+	//dealTopInformationAi7(nil)
 
 	local, _ := time.LoadLocation("Asia/Shanghai")
 	c := cron.New(cron.WithLocation(local), cron.WithSeconds())
@@ -93,12 +158,13 @@ func main() {
 
 	c.Start()
 	defer c.Stop()
-
+	////
 	select {}
 }
 
 // dealInc 处理增量数据
 func dealInc() {
+	jlog.Info("dealInc", zap.String("开始处理增量数据", ""))
 	now := time.Now()
 	start := time.Date(now.Year(), now.Month(), now.Day()+GF.Env.Start, 0, 0, 0, 0, now.Location())
 	end := time.Date(now.Year(), now.Month(), now.Day()+GF.Env.End, 0, 0, 0, 0, now.Location())
@@ -109,105 +175,851 @@ func dealInc() {
 			"$lt":  end.Unix(),
 		},
 	}
-	dealTopInformation(where, timeTypeInc)
+	jlog.Info("dealInc", zap.Any("开始处理增量数据", where))
+
+	//dealTopInformation(where, timeTypeInc)
+	////大模型处理,保存字段 tag_topinformation_zp
+	//if GF.Env.Doai {
+	//	log.Println("开始处理大模型结果")
+	//	go dealTopInformationAi4(where)
+	//}
+
+	// 暂时只使用大模型
+	//dealTopInformationAi6(where)
+	dealTopInformationAi7(where)
+
+	jlog.Info("dealInc", zap.Any("开始处理增量数据", "数据处理完毕"))
 }
 
 // dealAll 处理存量数据
 func dealAll() {
 	where := map[string]interface{}{
 		"comeintime": map[string]interface{}{
-			"$gte": 1726070400,
-			"$lt":  1726156800,
+			"$gte": 1711900800,
+			"$lt":  1726851634,
 		},
+		//"comeintime": map[string]interface{}{
+		//	//"$gte": 1704038400,
+		//	"$lt": 1704038400,
+		//},
+
+		//"title": "门诊大楼中医特色诊疗中心改造项目结算审计招标公告",
 	}
 
 	dealTopInformation(where, timeTypeAll) //处理情报标签一级
 }
 
-// dealTopInformation  处理情报标签一级
+// dealAllAi 大模型处理存量数据
+func dealAllAi() {
+	where := map[string]interface{}{
+		"comeintime": map[string]interface{}{
+			//"$gte": 1726070400,
+			"$lt": 1728316800,
+		},
+	}
+
+	log.Println("开始处理数据")
+	//dealTopInformationAi(where) //处理情报标签一级
+	//dealTopInformationAi2(where) //处理情报标签一级;50个一组调用
+	//dealTopInformationAi3(where) //单个数据调用
+	dealTopInformationAi4(where) //5一组,开启携程
+	//dealTopInformationAi5(nil) //单条调用智普,开启携程
+	log.Println("存量数据处理完毕")
+}
+
+// dealTopInformation  处理情报标签一级;剑鱼码 处理方式
 func dealTopInformation(where interface{}, timeType int) {
 	if where == nil {
 		log.Println("查询条件为空")
-		return
 	}
+
+	log.Println(where)
 	defer util.Catch()
 	sess := Mgo.GetMgoConn()
 	defer Mgo.DestoryMongoConn(sess)
 	count := 0
-	it := sess.DB("qfw").C("bidding").Find(where).Select(nil).Iter()
+	ch := make(chan bool, 15)
+	wg := &sync.WaitGroup{}
+	it := sess.DB(GF.Mongo.DB).C("bidding").Find(where).Select(nil).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
-		if count%5000 == 0 {
-			log.Println("current:", count, tmp["title"])
+		if count%1000 == 0 {
+			log.Println("dealTopInformation,current:", count, tmp["title"], tmp["_id"])
 		}
-
-		if gov_classify, ok := tmp["gov_classify"]; !ok {
-			continue
-		} else {
+		ch <- true
+		wg.Add(1)
+		go func(tmp map[string]interface{}) {
+			defer func() {
+				<-ch
+				wg.Done()
+			}()
+			//
 			topinformation := make([]string, 0) //
-			hasNew := false
+			//hasNew := false
 			if existTop, okk := tmp["tag_topinformation"]; okk {
 				if tops, ok2 := existTop.([]interface{}); ok2 {
 					for _, v := range tops {
-						topinformation = append(topinformation, util.ObjToString(v))
+						if util.ObjToString(v) == "情报_安防" {
+							continue
+						} else {
+							topinformation = append(topinformation, util.ObjToString(v))
+						}
 					}
 				}
 			}
 
-			if govMap, ok3 := gov_classify.(map[string]interface{}); ok3 {
+			if govMap, ok3 := tmp["gov_classify"].(map[string]interface{}); ok3 {
 				zc_code := util.ObjToString(govMap["zc_code"])
 				if IsInStringArray(zc_code, RuleA) {
-					hasNew = true
+					//hasNew = true
 					topinformation = append(topinformation, "情报_环境采购")
-				} else if IsInStringArray(zc_code, RuleB) {
-					hasNew = true
+				}
+				if IsInStringArray(zc_code, RuleB) {
+					//hasNew = true
 					topinformation = append(topinformation, "情报_印务商机")
-				} else if IsInStringArray(zc_code, RuleC) {
-					hasNew = true
+				}
+				if IsInStringArray(zc_code, RuleC) {
+					//hasNew = true
 					topinformation = append(topinformation, "情报_家具招投标")
-				} else if IsInStringArray(zc_code, RuleD) {
-					hasNew = true
+				}
+				if IsInStringArray(zc_code, RuleD) {
+					//hasNew = true
 					topinformation = append(topinformation, "情报_车辆租赁")
 				}
+				if IsInStringArray(zc_code, RuleE) {
+					//hasNew = true
+					topinformation = append(topinformation, "情报_安防")
+				}
 			}
 
 			// 有匹配新的标签,需要更新MongoDB以及ES 数据
-			if hasNew {
-				topinformation = removeDuplicates(topinformation) //去重
-				//ToDo 1.更新MongoDB
-				biddingID := mongodb.BsonIdToSId(tmp["_id"])
-				updateMgo := map[string]interface{}{
-					"tag_topinformation":  topinformation,
-					"topinformation_time": time.Now().Unix(),
+			//if hasNew {
+			topinformation = removeDuplicates(topinformation) //去重
+			//ToDo 1.更新MongoDB
+			biddingID := mongodb.BsonIdToSId(tmp["_id"])
+			updateMgo := map[string]interface{}{
+				"tag_topinformation":  topinformation,
+				"topinformation_time": time.Now().Unix(),
+			}
+
+			updateEs := map[string]interface{}{
+				"tag_topinformation": topinformation,
+			}
+
+			//log.Println("hasNew", " ====== ", biddingID)
+			Mgo.UpdateById("bidding", biddingID, map[string]interface{}{"$set": updateMgo})
+			//ToDo 2.更新es
+
+			//// 更新es
+			updateEsPool <- []map[string]interface{}{
+				{"_id": biddingID},
+				updateEs,
+			}
+
+			//if GF.Esa.URL != "" {
+			//_ = Esa.UpdateDocument("bidding", biddingID, updateEs)
+			//}
+			//
+			//if GF.Esb.URL != "" {
+			//	_ = Esb.UpdateDocument("bidding", biddingID, updateEs)
+			//}
+			//}
+
+		}(tmp)
+		tmp = make(map[string]interface{})
+	}
+
+	wg.Wait()
+	log.Println("剑鱼码规则处理数据处理完毕")
+}
+
+// dealTopInformationAi2的基础上,开启协程
+func dealTopInformationAi4(where interface{}) {
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	count := 0
+
+	var lines = make([]string, 0)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(where).Select(nil).Sort("-_id").Iter()
+	sem := make(chan struct{}, 50) // 控制并发数量
+
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			log.Println("current:", count, tmp["title"], tmp["_id"])
+		}
+		title := util.ObjToString(tmp["title"])
+		projectname := util.ObjToString(tmp["projectname"])
+		biddingID := mongodb.BsonIdToSId(tmp["_id"])
+		lines = append(lines, fmt.Sprintf("title:%s,projectname:%s,id:%s", title, projectname, biddingID))
+		if len(lines) == 5 {
+			sem <- struct{}{} // 增加并发控制
+			go func(lines []string) {
+				defer func() { <-sem }() // 释放并发控制
+				report := strings.Join(lines, "\n")
+				resu, err := ZpAI4(key, model, report)
+				lines = make([]string, 0)
+				if err != nil {
+					log.Println("智普请求失败,", err)
+					return
 				}
-				updateEs := map[string]interface{}{
-					"tag_topinformation": topinformation,
-				}
-				//log.Println("hasNew", " ====== ", biddingID)
-				Mgo.UpdateById("bidding", biddingID, map[string]interface{}{"$set": updateMgo})
-				//ToDo 2.更新es
-				// 存量数据
-				if timeType == timeTypeAll {
-					if util.IntAll(tmp["extracttype"]) != 1 {
-						continue
+				splitLines := strings.Split(resu, `;`)
+				for _, line := range splitLines {
+					matches := re.FindStringSubmatch(line)
+					if len(matches) == 5 {
+						class := matches[4]
+						id := matches[3]
+						tags := make([]string, 0)
+						if class == "其他分类" || class == "" || id == "" {
+							continue
+						}
+						for _, v2 := range strings.Split(class, ",") {
+							if v2 == "车辆领域" {
+								tags = append(tags, "情报_车辆租赁")
+							} else if v2 == "安防领域" {
+								tags = append(tags, "情报_安防")
+							} else if v2 == "印务领域" {
+								tags = append(tags, "情报_印务商机")
+							} else if v2 == "环境领域" {
+								tags = append(tags, "情报_环境采购")
+							} else if v2 == "家具领域" {
+								tags = append(tags, "情报_家具招投标")
+							}
+						}
+						if len(tags) > 0 {
+							updateMgo := map[string]interface{}{
+								"tag_topinformation_zp": tags,
+							}
+							Mgo.UpdateById("bidding", id, map[string]interface{}{"$set": updateMgo})
+							updateEs := map[string]interface{}{
+								"tag_topinformation_zp": tags,
+							}
+							if count%1000 == 0 {
+								log.Println("update es", id, tags)
+							}
+							// 更新es
+							updateEsPool <- []map[string]interface{}{
+								{"_id": id},
+								updateEs,
+							}
+						}
+					}
+				}
+			}(lines)
+			// 清空 lines 切片而不是 reportBuilder
+			lines = make([]string, 0)
+		}
+	}
+
+	if len(lines) > 0 {
+		report := strings.Join(lines, "\n")
+		resu, err := ZpAI4(key, model, report)
+		lines = make([]string, 0)
+		if err != nil {
+			log.Println("智普请求失败,", err, report)
+			return
+		}
+		splitLines := strings.Split(resu, `;`)
+		for _, line := range splitLines {
+			matches := re.FindStringSubmatch(line)
+			if len(matches) == 5 {
+				class := matches[4]
+				id := matches[3]
+				tags := make([]string, 0)
+				if class == "其他分类" || class == "" || id == "" {
+					continue
+				}
+				for _, v2 := range strings.Split(class, ",") {
+					if v2 == "车辆领域" {
+						tags = append(tags, "情报_车辆租赁")
+					} else if v2 == "安防领域" {
+						tags = append(tags, "情报_安防")
+					} else if v2 == "印务领域" {
+						tags = append(tags, "情报_印务商机")
+					} else if v2 == "环境领域" {
+						tags = append(tags, "情报_环境采购")
+					} else if v2 == "家具领域" {
+						tags = append(tags, "情报_家具招投标")
+					}
+				}
+				if len(tags) > 0 {
+					updateMgo := map[string]interface{}{
+						"tag_topinformation_zp": tags,
+					}
+					Mgo.UpdateById("bidding", id, map[string]interface{}{"$set": updateMgo})
+					updateEs := map[string]interface{}{
+						"tag_topinformation_zp": tags,
+					}
+					if count%1000 == 0 {
+						log.Println("update es", id, tags)
+					}
+					// 更新es
+					updateEsPool <- []map[string]interface{}{
+						{"_id": id},
+						updateEs,
+					}
+				}
+			}
+		}
+	}
+
+	log.Println("大模型处理数据处理完毕")
+}
+
+// dealTopInformationAi5 单个调用ZpAI4,多协程
+func dealTopInformationAi5(where interface{}) {
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	count := 0
+
+	key := "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	model := "glm-4-flash"
+	re := regexp.MustCompile(`title:(.*?),projectname:(.*?),id:(.*?),class:(.*?)(?:\s*$|\n)`)
+	ch := make(chan bool, 50)
+	wg := &sync.WaitGroup{}
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(where).Select(nil).Sort("-_id").Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			log.Println("current:", count, tmp["title"], tmp["_id"])
+		}
+
+		ch <- true
+		wg.Add(1)
+
+		go func(tmp map[string]interface{}) {
+			defer func() {
+				<-ch
+				wg.Done()
+			}()
+			////
+			title := util.ObjToString(tmp["title"])
+			projectname := util.ObjToString(tmp["projectname"])
+			biddingID := mongodb.BsonIdToSId(tmp["_id"])
+			text := fmt.Sprintf("title:%s,projectname:%s,id:%s\n", title, projectname, biddingID)
+			resu, err := ZpAI4(key, model, text)
+			if len(resu) > 0 && err != nil {
+				splitLines := strings.Split(resu, `;`)
+				for _, line := range splitLines {
+					matches := re.FindStringSubmatch(line)
+					if len(matches) == 5 {
+						class := matches[4]
+						if class != "" && class != "其他分类" {
+							tags := make([]string, 0)
+							for _, v2 := range strings.Split(class, ",") {
+								if v2 == "车辆领域" {
+									tags = append(tags, "情报_车辆租赁")
+								} else if v2 == "安防领域" {
+									tags = append(tags, "情报_安防")
+								} else if v2 == "印务领域" {
+									tags = append(tags, "情报_印务商机")
+								} else if v2 == "环境领域" {
+									tags = append(tags, "情报_环境采购")
+								} else if v2 == "家具领域" {
+									tags = append(tags, "情报_家具招投标")
+								}
+							}
+							if len(tags) > 0 {
+								if biddingID != "" {
+									updateMgo := map[string]interface{}{
+										"tag_topinformation_zp": tags,
+										"topinformation_time":   time.Now().Unix(),
+									}
+									Mgo.UpdateById("bidding", biddingID, map[string]interface{}{"$set": updateMgo})
+
+									if count%100 == 0 {
+										log.Println("update es", biddingID, tags)
+									}
+									updateEs := map[string]interface{}{
+										"tag_topinformation_zp": tags,
+									}
+									if GF.Esa.URL != "" {
+										log.Println("更新es ,", biddingID)
+										err := Esa.UpdateDocument("bidding", biddingID, updateEs)
+										if err != nil && err.Error() != "Document not updated: noop" {
+											log.Println("esa update err", biddingID, err)
+										}
+									}
+
+									if GF.Esb.URL != "" {
+										err := Esb.UpdateDocument("bidding", biddingID, updateEs)
+										if err != nil && err.Error() != "Document not updated: noop" {
+											log.Println("esb update err", biddingID, err)
+										}
+									}
+								}
+							}
+						}
 					}
-				} else {
-					// 增量数据
-					if util.IntAll(tmp["dataprocess"]) != 8 {
+				}
+			}
+		}(tmp)
+
+		wg.Wait()
+		tmp = make(map[string]interface{})
+
+	}
+
+	log.Println("数据处理完毕")
+}
+
+// dealTopInformationAi6  更新提示语后的大模型调用
+func dealTopInformationAi6(where interface{}) {
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	count := 0
+	ch := make(chan bool, 50)
+	wg := &sync.WaitGroup{}
+	var lines = make([]interface{}, 0)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(where).Select(nil).Sort("-_id").Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			jlog.Info("dealTopInformationAi6", zap.Any("current", count), zap.Any("title", tmp["title"]), zap.Any("_id", tmp["_id"]))
+		}
+
+		da := map[string]interface{}{
+			"id":    mongodb.BsonIdToSId(tmp["_id"]),
+			"title": util.ObjToString(tmp["title"]),
+		}
+		rs, err := json.Marshal(&da)
+		if err != nil {
+			log.Println(err, da)
+		}
+		ra := string(rs)
+		lines = append(lines, ra)
+		if len(lines) == 5 {
+			ch <- true
+			wg.Add(1)
+
+			go func(lines []interface{}) {
+				defer func() {
+					<-ch
+					wg.Done()
+				}()
+				resu, err := ZpAI6(key, model, lines)
+				if err != nil {
+					jlog.Info("dealTopInformationAi6,第一次请求失败", zap.Error(err))
+					resu, err = ZpAI6(key, model, lines)
+					if err != nil {
+						jlog.Info("dealTopInformationAi6", zap.Any("再次请求失败", err))
+					}
+				}
+
+				for _, item := range resu["result"] {
+					tags := make([]string, 0)
+					class := util.ObjToString(item["class"])
+					id := util.ObjToString(item["id"])
+					if class == "其他分类" || class == "" || id == "" {
 						continue
 					}
+					oldBid, _ := Mgo.FindById(GF.Mongo.Coll, id, nil)
+					if existTop, okk := (*oldBid)["tag_topinformation"]; okk {
+						if tops, ok2 := existTop.([]interface{}); ok2 {
+							for _, v := range tops {
+								if util.ObjToString(v) == "情报_物业" {
+									tags = append(tags, util.ObjToString(v))
+								}
+							}
+						}
+					}
+
+					//
+					for _, v2 := range strings.Split(class, ",") {
+						if v2 == "车辆领域" {
+							tags = append(tags, "情报_车辆租赁")
+						} else if v2 == "安防领域" {
+							tags = append(tags, "情报_安防")
+						} else if v2 == "印务领域" {
+							tags = append(tags, "情报_印务商机")
+						} else if v2 == "环境领域" {
+							tags = append(tags, "情报_环境采购")
+						} else if v2 == "家具领域" {
+							tags = append(tags, "情报_家具招投标")
+						} else if v2 == "法务领域" {
+							tags = append(tags, "情报_法务")
+						} else if v2 == "财务审计领域" {
+							tags = append(tags, "情报_财务审计")
+						} else if v2 == "招标代理领域" {
+							tags = append(tags, "情报_招标代理")
+						} else if v2 == "管理咨询领域" {
+							tags = append(tags, "情报_管理咨询")
+						} else if v2 == "保险领域" {
+							tags = append(tags, "情报_保险")
+						} else if v2 == "工程设计咨询领域" {
+							tags = append(tags, "情报_工程设计咨询")
+						}
+					}
+
+					if len(tags) > 0 {
+						updateMgo := map[string]interface{}{
+							"tag_topinformation":      removeDuplicates(tags),
+							"tag_topinformation_time": time.Now().Unix(),
+						}
+						Mgo.UpdateById(GF.Mongo.Coll, id, map[string]interface{}{"$set": updateMgo})
+						updateEs := map[string]interface{}{
+							"tag_topinformation": tags,
+						}
+						updateEsPool <- []map[string]interface{}{
+							{"_id": id},
+							updateEs,
+						}
+					}
+				}
+			}(lines)
+
+			lines = make([]interface{}, 0)
+		}
+	}
+
+	wg.Wait()
+
+	if len(lines) > 0 {
+		resu, err := ZpAI6(key, model, lines)
+		if err != nil {
+			log.Println(err)
+		}
+
+		for _, item := range resu["result"] {
+			tags := make([]string, 0)
+			class := util.ObjToString(item["class"])
+			id := util.ObjToString(item["id"])
+			if class == "其他分类" || class == "" || id == "" {
+				continue
+			}
+			oldBid, _ := Mgo.FindById("bidding", id, nil)
+			if existTop, okk := (*oldBid)["tag_topinformation"]; okk {
+				if tops, ok2 := existTop.([]interface{}); ok2 {
+					for _, v := range tops {
+						if util.ObjToString(v) == "情报_物业" {
+							tags = append(tags, util.ObjToString(v))
+						}
+					}
+				}
+			}
+			for _, v2 := range strings.Split(class, ",") {
+				if v2 == "车辆领域" {
+					tags = append(tags, "情报_车辆租赁")
+				} else if v2 == "安防领域" {
+					tags = append(tags, "情报_安防")
+				} else if v2 == "印务领域" {
+					tags = append(tags, "情报_印务商机")
+				} else if v2 == "环境领域" {
+					tags = append(tags, "情报_环境采购")
+				} else if v2 == "家具领域" {
+					tags = append(tags, "情报_家具招投标")
+				} else if v2 == "法务领域" {
+					tags = append(tags, "情报_法务")
+				} else if v2 == "财务审计领域" {
+					tags = append(tags, "情报_财务审计")
+				} else if v2 == "招标代理领域" {
+					tags = append(tags, "情报_招标代理")
+				} else if v2 == "管理咨询领域" {
+					tags = append(tags, "情报_管理咨询")
+				} else if v2 == "保险领域" {
+					tags = append(tags, "情报_保险")
+				} else if v2 == "工程设计咨询领域" {
+					tags = append(tags, "情报_工程设计咨询")
 				}
+			}
 
-				err := Esa.UpdateDocument("bidding", biddingID, updateEs)
-				if err != nil && err.Error() != "Document not updated: noop" {
-					log.Println("esa update err", biddingID, err)
+			if len(tags) > 0 {
+				updateMgo := map[string]interface{}{
+					"tag_topinformation": removeDuplicates(tags),
+				}
+				Mgo.UpdateById(GF.Mongo.Coll, id, map[string]interface{}{"$set": updateMgo})
+				updateEs := map[string]interface{}{
+					"tag_topinformation": tags,
 				}
-				err = Esb.UpdateDocument("bidding", biddingID, updateEs)
-				if err != nil && err.Error() != "Document not updated: noop" {
-					log.Println("esb update err", biddingID, err)
+				updateEsPool <- []map[string]interface{}{
+					{"_id": id},
+					updateEs,
 				}
 			}
 		}
 	}
+	jlog.Info("dealTopInformationAi6", zap.Any("数据处理完毕", count))
+}
+
+func dealTopInformationAi7(where interface{}) {
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	count := 0
+	ch := make(chan bool, 50)
+	wg := &sync.WaitGroup{}
+	var lines = make([]interface{}, 0)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(where).Select(nil).Sort("-_id").Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			jlog.Info("dealTopInformationAi6", zap.Any("current", count), zap.Any("title", tmp["title"]), zap.Any("_id", tmp["_id"]))
+		}
+
+		// 判断之前物业标签是否有无
+		hasWy := 0
+		if existTop, okk := (tmp)["tag_topinformation"]; okk {
+			if tops, ok2 := existTop.([]interface{}); ok2 {
+				for _, v := range tops {
+					if util.ObjToString(v) == "情报_物业" {
+						hasWy = 1
+						break
+					}
+				}
+			}
+		}
+
+		title := util.ObjToString(tmp["title"])
+		projectName := util.ObjToString(tmp["projectname"])
+		winner := util.ObjToString(tmp["s_winner"])
+		for _, v := range RuleF {
+			if strings.Contains(winner, v) {
+				FawuMap.Store(title, 1)
+				break
+			}
+			if strings.Contains(title, v) {
+				FawuMap.Store(title, 1)
+				break
+			}
+			if strings.Contains(projectName, v) {
+				FawuMap.Store(title, 1)
+				break
+			}
+		}
+
+		hasWyMap.Store(title, hasWy)
+		titleMap.Store(title, mongodb.BsonIdToSId(tmp["_id"]))
+
+		da := map[string]interface{}{
+			"id":    mongodb.BsonIdToSId(tmp["_id"]),
+			"title": util.ObjToString(tmp["title"]),
+		}
+		rs, err := json.Marshal(&da)
+		if err != nil {
+			log.Println(err, da)
+		}
+		ra := string(rs)
+		lines = append(lines, ra)
+		if len(lines) == 5 {
+			ch <- true
+			wg.Add(1)
+
+			go func(lines []interface{}) {
+				defer func() {
+					<-ch
+					wg.Done()
+				}()
+				resu, err := ZpAI7(key, model, lines)
+				if err != nil {
+					jlog.Info("dealTopInformationAi7,第一次请求失败", zap.Error(err))
+					resu, err = ZpAI7(key, model, lines)
+					if err != nil {
+						jlog.Info("dealTopInformationAi7", zap.Any("再次请求失败", err))
+					}
+				}
+				dealResu(resu)
+
+			}(lines)
+
+			lines = make([]interface{}, 0)
+		}
+	}
+
+	wg.Wait()
+
+	if len(lines) > 0 {
+		resu, err := ZpAI7(key, model, lines)
+		if err != nil {
+			log.Println(err)
+		}
+		dealResu(resu)
+	}
+	jlog.Info("dealTopInformationAi6", zap.Any("数据处理完毕", count))
+}
+
+func dealAi(datas []RequestData) {
+
+	// 有匹配新的标签,需要更新MongoDB以及ES 数据
+	//if hasNew {
+	//	topinformation = removeDuplicates(topinformation) //去重
+	//	//ToDo 1.更新MongoDB
+	//	updateMgo := map[string]interface{}{
+	//		"tag_topinformation":  topinformation,
+	//		"topinformation_time": time.Now().Unix(),
+	//	}
+	//	updateEs := map[string]interface{}{
+	//		"tag_topinformation": topinformation,
+	//	}
+	//	//log.Println("hasNew", " ====== ", biddingID)
+	//	Mgo.UpdateById("bidding", biddingID, map[string]interface{}{"$set": updateMgo})
+	//	//ToDo 2.更新es
+	//
+	//	if GF.Esa.URL != "" {
+	//		err := Esa.UpdateDocument("bidding", biddingID, updateEs)
+	//		if err != nil && err.Error() != "Document not updated: noop" {
+	//			log.Println("esa update err", biddingID, err)
+	//		}
+	//	}
+	//
+	//	if GF.Esb.URL != "" {
+	//		err := Esb.UpdateDocument("bidding", biddingID, updateEs)
+	//		if err != nil && err.Error() != "Document not updated: noop" {
+	//			log.Println("esb update err", biddingID, err)
+	//		}
+	//	}
+	//}
+}
+
+// updateEsMethod 更新es
+func updateEsMethod() {
+	arru := make([][]map[string]interface{}, 200) //200条一组更新es
+	indexu := 0
+	for {
+		select {
+		case v := <-updateEsPool:
+			arru[indexu] = v
+			indexu++
+			if indexu == 200 {
+				updateEsSp <- true
+				go func(arru [][]map[string]interface{}) {
+					defer func() {
+						<-updateEsSp
+					}()
+					Esa.UpdateBulk(GF.Env.Esindex, arru...)
+					if Esb.S_esurl != "" {
+						Esb.UpdateBulk(GF.Env.Esindex, arru...)
+					}
+				}(arru)
+				arru = make([][]map[string]interface{}, 200)
+				indexu = 0
+			}
+		case <-time.After(1000 * time.Millisecond):
+			if indexu > 0 {
+				updateEsSp <- true
+				go func(arru [][]map[string]interface{}) {
+					defer func() {
+						<-updateEsSp
+					}()
+					Esa.UpdateBulk(GF.Env.Esindex, arru...)
+					if Esb.S_esurl != "" {
+						Esb.UpdateBulk(GF.Env.Esindex, arru...)
+					}
+				}(arru[:indexu])
+				arru = make([][]map[string]interface{}, 200)
+				indexu = 0
+			}
+		}
+	}
+}
+
+// updateMethod 更新MongoDB
+func updateMethod() {
+	arru := make([][]map[string]interface{}, 50)
+	indexu := 0
+	for {
+		select {
+		case v := <-updatePool:
+			arru[indexu] = v
+			indexu++
+			if indexu == 50 {
+				updateSp <- true
+				go func(arru [][]map[string]interface{}) {
+					defer func() {
+						<-updateSp
+					}()
+					Mgo.UpdateBulk(GF.Mongo.Coll, arru...)
+				}(arru)
+				arru = make([][]map[string]interface{}, 50)
+				indexu = 0
+			}
+		case <-time.After(1000 * time.Millisecond):
+			if indexu > 0 {
+				updateSp <- true
+				go func(arru [][]map[string]interface{}) {
+					defer func() {
+						<-updateSp
+					}()
+					Mgo.UpdateBulk(GF.Mongo.Coll, arru...)
+				}(arru[:indexu])
+				arru = make([][]map[string]interface{}, 50)
+				indexu = 0
+			}
+		}
+	}
+}
+
+// dealResu 处理大模型返回结果,放入通道更新
+func dealResu(resu map[string][]map[string]interface{}) {
+	for _, item := range resu["result"] {
+		tags := make([]string, 0)
+		class := util.ObjToString(item["class"])
+		title := util.ObjToString(item["title"])
+		if class == "" || title == "" {
+			continue
+		}
+
+		hasWy, _ := hasWyMap.Load(title)
+		id, _ := titleMap.Load(title)
+		fawu, _ := FawuMap.Load(title)
+		idStr := util.ObjToString(id)
+		if idStr == "" || title == "" {
+			continue
+		}
+
+		if util.IntAll(hasWy) > 0 {
+			tags = append(tags, "情报_物业")
+		}
+		if util.IntAll(fawu) > 0 {
+			tags = append(tags, "情报_法务")
+		}
+		hasWyMap.Delete(title)
+		titleMap.Delete(title)
+		FawuMap.Delete(title)
+
+		for _, v2 := range strings.Split(class, ",") {
+			if v2 == "车辆领域" {
+				tags = append(tags, "情报_车辆租赁")
+			} else if v2 == "安防领域" {
+				tags = append(tags, "情报_安防")
+			} else if v2 == "印务领域" {
+				tags = append(tags, "情报_印务商机")
+			} else if v2 == "环境领域" {
+				tags = append(tags, "情报_环境采购")
+			} else if v2 == "家具领域" {
+				tags = append(tags, "情报_家具招投标")
+			} else if v2 == "法务领域" {
+				tags = append(tags, "情报_法务")
+			} else if v2 == "财务审计领域" {
+				tags = append(tags, "情报_财务审计")
+			} else if v2 == "招标代理领域" {
+				tags = append(tags, "情报_招标代理")
+			} else if v2 == "管理咨询领域" {
+				tags = append(tags, "情报_管理咨询")
+			} else if v2 == "保险领域" {
+				tags = append(tags, "情报_保险")
+			} else if v2 == "工程设计咨询领域" {
+				tags = append(tags, "情报_工程设计咨询")
+			}
+		}
+		tags = removeDuplicates(tags)
+
+		if len(tags) > 0 {
+			updateMgo := map[string]interface{}{
+				"tag_topinformation": tags,
+			}
+			//更新MongoDB
+			updatePool <- []map[string]interface{}{
+				{"_id": mongodb.StringTOBsonId(idStr)},
+				{"$set": updateMgo},
+			}
+		}
+
+		//更新es
+		updateES := map[string]interface{}{
+			"tag_topinformation": tags,
+		}
+		updateEsPool <- []map[string]interface{}{
+			{"_id": id},
+			updateES,
+		}
+	}
 
-	log.Println("数据处理完毕")
 }

+ 4 - 3
bidding_tags/readme.md

@@ -1,8 +1,9 @@
 # 给bidding 标讯数据打标签
 
-## 补充 tag_topinformation 
+## 补充 tag_topinformation
 
 - 说明:
-  `tag_topinformation` 字段是一个字符串数组,目前分类程序打的有 `情报_物业` ,现在要根据 李俊良 那边字段 `gov_classify.zc_code`,
-去扩充 `tag_topinformation`,需要追加 `情报_环境采购`,`情报_印务商机`,`情报_家具招投标`,`情报_车辆租赁`。
+  `tag_topinformation` 字段是一个字符串数组,目前分类程序打的有 `情报_物业` ,现在要根据 李俊良
+  那边字段 `gov_classify.zc_code`,
+  去扩充 `tag_topinformation`,需要追加 `情报_环境采购`,`情报_印务商机`,`情报_家具招投标`,`情报_车辆租赁`,`情报_安防`。
 

+ 412 - 0
bidding_tags/tag_test.go

@@ -0,0 +1,412 @@
+package main
+
+import (
+	"fmt"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"log"
+	"regexp"
+	"strings"
+	"sync"
+	"testing"
+	"time"
+)
+
+func TestZpAI(t *testing.T) {
+	InitConfig()
+	Init()
+	//key := "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	key := "6c86cea8659ff1d33b161ea7213ea97c.m4OcENaRan8NeLSZ" //我自己的key
+	model := "glm-4-flash"
+
+	//	data := `标题:海南陵水黎安国际教育创新试验区置地有限公司公务车租赁和垃圾处理项目,项目名称:海南陵水黎安国际教育创新试验区置地有限公司公务车租赁和垃圾处理项目
+	//标题:2024年广西柳城北区块桂融地3井野外车辆租赁项目,项目名称:2024年广西柳城北区块桂融地3井野外车辆租赁项目
+	//标题:泰山玻璃纤维有限公司-车队-班车客车租赁,项目名称:泰山玻璃纤维有限公司-车队-班车客车租赁`
+	//
+	//	res := ZpAI(key, model, data)
+	//	log.Println(res)
+
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	//requestData := make([]string, 0)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(nil).Select(nil).Sort("-_id").Limit(20).Iter()
+	count := 0
+	var lines []string
+	var reportBuilder strings.Builder
+	// 正则表达式用于提取数据
+	//re := regexp.MustCompile(`title:(.*?),projectname:(.*?),id:(.*?),class:(.*?)`)
+	re := regexp.MustCompile(`title:(.*?),projectname:(.*?),id:(.*?),class:(.*?)(?:\s*$|\n)`)
+
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		title := util.ObjToString(tmp["title"])
+		projectname := util.ObjToString(tmp["projectname"])
+		biddingID := mongodb.BsonIdToSId(tmp["_id"])
+		lines = append(lines, fmt.Sprintf("title:%s,projectname:%s,id:%s\n", title, projectname, biddingID))
+		if len(lines)%10 == 0 {
+			// 将 lines 的内容写入 reportBuilder
+			for _, line := range lines {
+				reportBuilder.WriteString(line)
+			}
+			report := reportBuilder.String()
+			resu, _ := ZpAI4(key, model, report)
+
+			splitLines := strings.Split(resu, `;`)
+			//results := []map[string]string{}
+			for _, line := range splitLines {
+				matches := re.FindStringSubmatch(line)
+				if len(matches) == 5 {
+					//result := map[string]string{
+					//	"title":       matches[1],
+					//	"projectname": matches[2],
+					//	"id":          matches[3],
+					//	"class":       matches[4],
+					//}
+					tags := make([]string, 0)
+					class := matches[4]
+					id := matches[3]
+					if id == "" || class == "" || class == "其他分类" {
+						continue
+					}
+
+					oldBid, _ := Mgo.FindById(GF.Mongo.Coll, id, nil)
+					if existTop, okk := (*oldBid)["tag_topinformation"]; okk {
+						if tops, ok2 := existTop.([]interface{}); ok2 {
+							for _, v := range tops {
+								if util.ObjToString(v) == "情报_物业" {
+									tags = append(tags, util.ObjToString(v))
+								}
+							}
+						}
+					}
+
+					for _, v2 := range strings.Split(class, ",") {
+						if v2 == "车辆领域" {
+							tags = append(tags, "情报_车辆租赁")
+						} else if v2 == "安防领域" {
+							tags = append(tags, "情报_安防")
+						} else if v2 == "印务领域" {
+							tags = append(tags, "情报_印务商机")
+						} else if v2 == "环境领域" {
+							tags = append(tags, "情报_环境采购")
+						} else if v2 == "家具领域" {
+							tags = append(tags, "情报_家具招投标")
+						} else if v2 == "法务领域" {
+							tags = append(tags, "情报_法务")
+						} else if v2 == "财务审计领域" {
+							tags = append(tags, "情报_财务审计")
+						} else if v2 == "招标代理领域" {
+							tags = append(tags, "情报_招标代理")
+						}
+					}
+					if len(tags) > 0 {
+						log.Println(tags, matches[1])
+					}
+				}
+			}
+			lines = lines[:0]
+		}
+	}
+	//
+	if len(lines) > 0 {
+		for _, line := range lines {
+			reportBuilder.WriteString(line)
+		}
+		report := reportBuilder.String()
+		resu, _ := ZpAI4(key, model, report)
+		splitLines := strings.Split(resu, "\n")
+		results := []map[string]string{}
+
+		for _, line := range splitLines {
+			matches := re.FindStringSubmatch(line)
+			if len(matches) == 5 {
+				result := map[string]string{
+					"title":       matches[1],
+					"projectname": matches[2],
+					"id":          matches[3],
+					"class":       matches[4],
+				}
+				results = append(results, result)
+			}
+		}
+
+		// 打印结果
+		for _, r := range results {
+			fmt.Println(r)
+		}
+	}
+
+}
+
+func TestZpAI4(t *testing.T) {
+	InitConfig()
+	Init()
+	key := "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	//key := "6c86cea8659ff1d33b161ea7213ea97c.m4OcENaRan8NeLSZ" //我自己的key
+	model := "glm-4-flash"
+
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	where := map[string]interface{}{
+		"title": "数字警务安防设备招标公告",
+	}
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(where).Select(nil).Sort("-_id").Iter()
+	count := 0
+	re := regexp.MustCompile(`title:(.*?),projectname:(.*?),id:(.*?),class:(.*?)(?:\s*$|\n)`)
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			log.Println("current:", count, tmp["title"])
+		}
+
+		title := util.ObjToString(tmp["title"])
+		projectname := util.ObjToString(tmp["projectname"])
+		biddingID := mongodb.BsonIdToSId(tmp["_id"])
+		text := fmt.Sprintf("title:%s,projectname:%s,id:%s\n", title, projectname, biddingID)
+		resu, err := ZpAI4(key, model, text)
+		if err != nil {
+			log.Println(err)
+			continue
+		}
+		if err == nil {
+			splitLines := strings.Split(resu, `;`)
+			for _, line := range splitLines {
+				matches := re.FindStringSubmatch(line)
+				if len(matches) == 5 {
+					class := matches[4]
+					if class != "" && class != "其他分类" {
+						tags := make([]string, 0)
+						for _, v2 := range strings.Split(class, ",") {
+							if v2 == "车辆领域" {
+								tags = append(tags, "情报_车辆租赁")
+							} else if v2 == "安防领域" {
+								tags = append(tags, "情报_安防")
+							} else if v2 == "印务领域" {
+								tags = append(tags, "情报_印务商机")
+							} else if v2 == "环境领域" {
+								tags = append(tags, "情报_环境采购")
+							} else if v2 == "家具领域" {
+								tags = append(tags, "情报_家具招投标")
+							}
+						}
+						if len(tags) > 0 {
+							if biddingID != "" {
+								updateMgo := map[string]interface{}{
+									"tag_topinformation_zp": tags,
+									"topinformation_time":   time.Now().Unix(),
+								}
+								Mgo.UpdateById("bidding", biddingID, map[string]interface{}{"$set": updateMgo})
+								//更新es
+								updateEs := map[string]interface{}{
+									"tag_topinformation_zp": tags,
+								}
+								if GF.Esa.URL != "" {
+									err := Esa.UpdateDocument("bidding", biddingID, updateEs)
+									if err != nil && err.Error() != "Document not updated: noop" {
+										log.Println("esa update err", biddingID, err)
+									}
+								}
+
+								if GF.Esb.URL != "" {
+									err := Esb.UpdateDocument("bidding", biddingID, updateEs)
+									if err != nil && err.Error() != "Document not updated: noop" {
+										log.Println("esb update err", biddingID, err)
+									}
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+}
+
+func TestZpAI6(t *testing.T) {
+	InitConfig()
+	Init()
+
+	key := "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	model := "glm-4-flash"
+
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	count := 0
+	ch := make(chan bool, 1)
+	wg := &sync.WaitGroup{}
+	var lines = make([]string, 0)
+	//where := map[string]interface{}{
+	//	"title": "中共木垒哈萨克自治县纪律检查委员会的合同公告",
+	//}
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(nil).Select(nil).Sort("-_id").Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			log.Println(GF.Mongo.Coll)
+			log.Println("current:", count, tmp["title"], tmp["_id"])
+		}
+
+		// 判断之前物业标签是否有无
+		hasWy := 0
+		if existTop, okk := (tmp)["tag_topinformation"]; okk {
+			if tops, ok2 := existTop.([]interface{}); ok2 {
+				for _, v := range tops {
+					if util.ObjToString(v) == "情报_物业" {
+						hasWy = 1
+						break
+					}
+				}
+			}
+		}
+
+		lines = append(lines, fmt.Sprintf("id:%s,title:%s,hasWy:%v", mongodb.BsonIdToSId(tmp["_id"]), util.ObjToString(tmp["title"]), hasWy))
+
+		//da := map[string]interface{}{
+		//	"id":    mongodb.BsonIdToSId(tmp["_id"]),
+		//	"title": util.ObjToString(tmp["title"]),
+		//	"hasWy": hasWy,
+		//}
+		//
+		//rs, err := json.Marshal(&da)
+		//if err != nil {
+		//	log.Println(err, da)
+		//}
+		//ra := string(rs)
+		//lines = append(lines, ra)
+
+		if len(lines) == 5 {
+			ch <- true
+			wg.Add(1)
+
+			go func(lines []string) {
+				defer func() {
+					<-ch
+					wg.Done()
+				}()
+				report := strings.Join(lines, "\n")
+				resu, err := ZpAI6(key, model, report)
+				if err != nil {
+					log.Println("第一次请求大模型失败", err)
+					resu, err = ZpAI6(key, model, lines)
+					if err != nil {
+						log.Println("再次尝试请求失败", err)
+					}
+				}
+
+				//log.Println(resu)
+				//for _, item := range resu {
+				//	log.Println(item)
+				//}
+
+				for _, item := range resu["result"] {
+					tags := make([]string, 0)
+					class := util.ObjToString(item["class"])
+					id := util.ObjToString(item["id"])
+					hasWy2 := util.IntAll(item["hasWy"])
+					if class == "其他分类" || class == "" || id == "" {
+						continue
+					}
+
+					if hasWy2 > 0 {
+						tags = append(tags, "情报_物业")
+					}
+
+					for _, v2 := range strings.Split(class, ",") {
+						if v2 == "车辆领域" {
+							tags = append(tags, "情报_车辆租赁")
+						} else if v2 == "安防领域" {
+							tags = append(tags, "情报_安防")
+						} else if v2 == "印务领域" {
+							tags = append(tags, "情报_印务商机")
+						} else if v2 == "环境领域" {
+							tags = append(tags, "情报_环境采购")
+						} else if v2 == "家具领域" {
+							tags = append(tags, "情报_家具招投标")
+						} else if v2 == "法务领域" {
+							tags = append(tags, "情报_法务")
+						} else if v2 == "财务审计领域" {
+							tags = append(tags, "情报_财务审计")
+						} else if v2 == "招标代理领域" {
+							tags = append(tags, "情报_招标代理")
+						} else if v2 == "管理咨询领域" {
+							tags = append(tags, "情报_管理咨询")
+						} else if v2 == "保险领域" {
+							tags = append(tags, "情报_保险")
+						} else if v2 == "工程设计咨询领域" {
+							tags = append(tags, "情报_工程设计咨询")
+						}
+					}
+
+				}
+			}(lines)
+
+			lines = make([]string, 0)
+		}
+	}
+
+	wg.Wait()
+
+	if len(lines) > 0 {
+		resu, err := ZpAI6(key, model, lines)
+		if err != nil {
+			log.Println(err)
+		}
+
+		for _, item := range resu["result"] {
+			tags := make([]string, 0)
+			class := util.ObjToString(item["class"])
+			reasen := util.ObjToString(item["reasen"])
+			id := util.ObjToString(item["id"])
+			if class == "其他分类" || class == "" || id == "" {
+				continue
+			}
+			oldBid, _ := Mgo.FindById(GF.Mongo.Coll, id, nil)
+			if existTop, okk := (*oldBid)["tag_topinformation"]; okk {
+				if tops, ok2 := existTop.([]interface{}); ok2 {
+					for _, v := range tops {
+						if util.ObjToString(v) == "情报_物业" {
+							tags = append(tags, util.ObjToString(v))
+						}
+					}
+				}
+			}
+
+			for _, v2 := range strings.Split(class, ",") {
+				if v2 == "车辆领域" {
+					tags = append(tags, "情报_车辆租赁")
+				} else if v2 == "安防领域" {
+					tags = append(tags, "情报_安防")
+				} else if v2 == "印务领域" {
+					tags = append(tags, "情报_印务商机")
+				} else if v2 == "环境领域" {
+					tags = append(tags, "情报_环境采购")
+				} else if v2 == "家具领域" {
+					tags = append(tags, "情报_家具招投标")
+				} else if v2 == "法务领域" {
+					tags = append(tags, "情报_法务")
+				} else if v2 == "财务审计领域" {
+					tags = append(tags, "情报_财务审计")
+				} else if v2 == "招标代理领域" {
+					tags = append(tags, "情报_招标代理")
+				} else if v2 == "管理咨询领域" {
+					tags = append(tags, "情报_管理咨询")
+				} else if v2 == "保险领域" {
+					tags = append(tags, "情报_保险")
+				} else if v2 == "工程设计咨询领域" {
+					tags = append(tags, "情报_工程设计咨询")
+				}
+			}
+
+			if len(tags) > 0 {
+				updateMgo := map[string]interface{}{
+					"tag_topinformation_1029": removeDuplicates(tags),
+					"reasen":                  reasen,
+					"tag_wcc":                 1,
+				}
+				Mgo.UpdateById(GF.Mongo.Coll, id, map[string]interface{}{"$set": updateMgo})
+			}
+		}
+	}
+
+	log.Println("数据处理完毕")
+}

+ 532 - 0
bidding_tags/tools.go

@@ -1,7 +1,12 @@
 package main
 
 import (
+	"encoding/json"
+	"fmt"
+	zhipu "github.com/itcwc/go-zhipu/model_api"
+	"log"
 	"strings"
+	"time"
 )
 
 // IsInStringArray 判断数组中是否存在字符串
@@ -33,3 +38,530 @@ func removeDuplicates(strs []string) []string {
 	}
 	return result
 }
+
+// ZpAI 调用智普大模型
+func ZpAI(apiKey, model, data string) (rest map[string]interface{}) {
+	expireAtTime := int64(1719803252) // token 过期时间
+	//	sys := `
+	//	你是一位招投标行业的信息分类专家
+	//# 安防信息定义
+	//请根据以下定义,判断文本内容是否属于安防领域。安防领域涉及但不限于以下方面:
+	//视频监控:使用摄像头进行实时监控或录像存储;
+	//入侵检测:通过传感器或探测器检测非法入侵;
+	//安全警报:安装警报系统,如声音警报器或报警按钮;
+	//门禁系统:控制物理访问的门禁控制技术;
+	//防盗报警:安装用于检测盗窃行为的报警装置;
+	//周界防护:保护周界免受非法侵入的措施;
+	//智能安防解决方案:集成多种技术提供全面的安全解决方案;
+	//火灾报警与应急处理:火灾探测与警报系统,以及紧急应对措施;
+	//人员识别与追踪:使用生物识别或技术手段对人员进行识别和追踪;
+	//安全巡逻:定期或随机对区域进行安全巡逻;
+	//数据分析与风险评估:对安全数据进行分析以评估风险和制定策略。
+	//应急响应:在紧急情况下,如火灾、入侵等,进行快速响应和处置。
+	//安全咨询与服务:提供安全评估、风险评估、安全培训、安全系统设计等咨询服务。
+	//网络安全:保护计算机系统、网络和数据免受未经授权的访问和攻击。
+	//若文本内容明确提及或描述了上述任一安防相关概念、技术、设备、工程、应用或服务,请输出“true”。
+	//若文本内容不涉及上述任何一点,或信息不明确无法判断,请输出“false”。请确保仅基于文本内容直接判断,不进行任何联想或推测。
+	//文本内容如下:
+	//标题:`
+	//	text := sys + title
+	//
+	//	if projectName != "" {
+	//		text = text + ";项目名称:" + projectName
+	//	}
+	//
+	//	text = text + `#输出格式严格使用json(不用解释是或否的原因,直接输出结果):
+	//{"result":"true/false"}`
+
+	text := `我有以下类别:
+1. 车辆领域:根车辆相关的内容,车辆租赁、车辆购买等;
+2. 安防领域:跟安全防护相关的内容,如电子栅栏、安全锁、监控系统等;
+3. 印务领域:跟印刷、广告服务相关的内容;
+4. 环境领域:跟环境保护相关的内容,如电子废物处理、垃圾处理、生态污水处理等
+5. 家具领域:跟家具相关的内容,如办公桌、电脑桌、文件柜、人体工学椅等
+请根据以上分类,对我提供的文本内容的每一行数据进行分类。
+请根据以上类别定义,对我提供的文本内容的每一行数据进行分类;可以适当联想;但不要联网,不要发散,不要解释,你判断不准的,可以标识为其他分类,但不能有空缺。
+输出结果以JSON格式返回,格式如下:
+{
+  "result":[
+      {"title":"文本","projectname":"class","class":"分类1,分类2"},
+      {"title":"制造业","projectname":"食品制造业","class":"罐头食品制造"}
+    ]
+};
+同一个文本内容分到多个类别,class 用英文逗号拼接
+以下是文本内容:
+==============================
+`
+
+	text = text + data
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+func ZpAI2(apiKey, model, data string) (rest map[string]interface{}) {
+	expireAtTime := int64(1719803252) // token 过期时间
+
+	text := `我有以下类别:
+1. 车辆领域:根车辆相关的内容,车辆租赁、车辆购买等;
+2. 安防领域:跟安全防护相关的内容,如电子栅栏、安全锁、监控系统等;
+3. 印务领域:跟印刷、广告服务相关的内容;
+4. 环境领域:跟环境保护相关的内容,如电子废物处理、垃圾处理、生态污水处理等
+5. 家具领域:跟家具相关的内容,如办公桌、电脑桌、文件柜、人体工学椅等
+请根据以上分类,对我提供的文本内容的每一行数据进行分类。
+请根据以上类别定义,对我提供的文本内容的每一行数据进行分类;可以适当联想;但不要联网,不要发散,不要解释,你判断不准的,可以标识为其他分类,但不能有空缺。
+输出结果以JSON格式返回,格式如下:
+{
+  "result":[
+      {"title":"文本","projectname":"class","id":"11111111111111111111",class":"分类1,分类2"},
+      {"title":"制造业","projectname":"食品制造业","id":"22222222222222222222","class":"罐头食品制造"}
+    ]
+};
+同一个文本内容分到多个类别,class 用英文逗号拼接
+以下是文本内容:
+==============================
+`
+
+	text = text + data
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI3 单个文本调用
+func ZpAI3(apiKey, model, data string) (rest map[string]interface{}) {
+	expireAtTime := int64(1719803252) // token 过期时间
+
+	text := `我有以下类别:
+1. 车辆领域:根车辆相关的内容,车辆租赁、车辆购买等;
+2. 安防领域:跟安全防护相关的内容,如电子栅栏、安全锁、监控系统等;
+3. 印务领域:跟印刷、广告服务相关的内容;
+4. 环境领域:跟环境保护相关的内容,如电子废物处理、垃圾处理、生态污水处理等
+5. 家具领域:跟家具相关的内容,如办公桌、电脑桌、文件柜、人体工学椅等
+请根据以上分类,对我提供的文本内容的每一行数据进行分类。
+请根据以上类别定义,对我提供的文本内容的进行分类;可以适当联想;但不要联网,不要发散,不要解释,你判断不准的,可以标识为其他分类,但不能有空缺。
+输出结果以JSON格式返回,格式如下:
+ {"title":"制造业","projectname":"食品制造业","class":"罐头食品制造"}
+;
+同一个文本内容分到多个类别,class 用英文逗号拼接,例如:
+ {"title":"制造业","projectname":"食品制造业","class":"罐头食品制造,食品加工"}
+以下是文本内容:
+==============================
+`
+
+	text = text + data
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI4 文本格式返回
+func ZpAI4(apiKey, model, data string) (rest string, err error) {
+	expireAtTime := int64(1735660800) // token 过期时间
+
+	text := `我有以下类别:
+1. 车辆领域:根车辆相关的内容,车辆租赁、车辆购买等;
+2. 安防领域:跟安全防护相关的内容,如电子栅栏、安全锁、监控系统等;
+3. 印务领域:跟印刷、广告服务相关的内容;
+4. 环境领域:跟环境保护相关的内容,如电子废物处理、垃圾处理、生态污水处理等
+5. 家具领域:跟家具相关的内容,如办公桌、电脑桌、文件柜、人体工学椅等
+6. 其他分类:不属于以上分类或者判断不出来的分类属于其他分类
+请根据以上分类,对我提供的文本内容的每一行数据进行分类;不要联想,不要联网,不要发散,不要解释,你判断不准的,可以标识为其他分类。
+请根据以上类别定义,对我提供的文本内容的每一行数据进行分类;可以适当联想;但不要联网,不要发散,不要解释,你判断不准的,可以标识为其他分类,但不能有空缺。
+请按照文本形式输出,每一条数据用\n换行符分割,没有到class结束前不要给我换行,class内容结尾用英文分号";"。每条数据只要返回一个结果就好,不要重复返回;并且一条完整的数据要放在一行,不要拆分开。输出内容包括:
+title:文本,projectname:文本,id:13123123,class:文本;
+title:文本,projectname:文本,id:13123123,class:文本;
+同一个文本内容分到多个类别,类别用逗号拼接
+以下是文本内容:
+==============================
+
+`
+
+	text = text + data
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey, time.Minute*10)
+	if err != nil {
+		log.Println("请求智普失败", err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					return content, nil
+					//content = strings.ReplaceAll(content, "\n", "")
+					//content = strings.ReplaceAll(content, "json", "")
+					//content = strings.ReplaceAll(content, "`", "")
+					//err = json.Unmarshal([]byte(content), &rest)
+					//if err != nil {
+					//	log.Println("Unmarshal err", err, "content:", content)
+					//}
+				}
+			}
+		}
+	}
+	return
+}
+
+func ZpAI5(apiKey, model string, data interface{}) (rest map[string][]map[string]string, err error) {
+	expireAtTime := int64(1735660800) // token 过期时间
+
+	text := fmt.Sprintf(`你是一个全行业领域的专家,对招投标行业领域分类了如指掌
+
+公告start
+%v,
+
+公告end
+
+任务如下:
+
+# 目标:
+我在处理招投标公告数据,我需要车辆领域、安防领域、印务领域、环境领域、家具领域的数据,公告数量庞大,请帮我打上对应的领域标签
+
+# 领域定义:
+1. 车辆领域:涉及所有与车辆相关的业务和服务,包括但不限于新车购买、二手车交易、车辆租赁、汽车维修保养、汽车配件销售、车辆保险、驾驶培训等;
+2. 安防领域:安防领域通常包括但不限于视频监控、入侵检测、安全警报、门禁系统、防盗报警、周界防护、智能安防解决方案、火灾报警与应急处理、人员识别与追踪、安全巡逻、数据分析与风险评估等,例如:安防监控、安防产品、周界防范、安防监控系统、信息安全、数据安全等;
+3. 印务领域:跟印刷或出版相关的行业和活动,包括印刷技术、印刷材料、印刷设备与维护、广告服务、出版服务、包装设计等,还包括打印机、印刷机、油墨、打印纸张等印刷相关材料和配件的内容,如印刷、打印复印、打印设备、云打印、印刷服务等。
+4. 环境领域:跟环境保护或环境治理相关的内容,如电子废物处理、垃圾处理、生态污水处理、生态修复、环境监管体系、废物管理与资源化等
+5. 家具领域:跟家具相关的内容,包括家用家具、办公家具、教学家具、医院家具、宿舍家具、定制家具、家具采购、家具设计与安装、家具维修与翻新等,如办公桌、电脑桌、文件柜、人体工学椅、欧式家具、木质家具、木地板、家具饰品等;
+6. 其他分类:通常包含农副产品以及不属于以上分类或者判断不出来的分类属于其他分类
+
+A、依次获取公告title中采购的内容判断数据那些领域,请按照下方json格式输出结果:
+
+{
+  "result":[
+      {"id":"11111111111111111111",class":"分类1,分类2"(领域名称,如果公告属于多个领域请用','分割)},
+      {"id":"22222222222222222222","class":"罐头食品制造"}
+    ]
+};
+
+B、审查结果
+1、审查A的结果输出,判断输出领域与公告采购内容是否强相关,否则输出"其他分类"
+
+C、修正结果,输出最终答案
+
+答(干净利落,不解释,只要C结果,严格按照JSON格式返回数据,不需要多余的解释说明):
+
+`, data)
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey, time.Minute*10)
+	if err != nil {
+		log.Println("请求智普失败", err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI6 添加新的分类领域
+func ZpAI6(apiKey, model string, data interface{}) (rest map[string][]map[string]interface{}, err error) {
+	expireAtTime := int64(1735660800) // token 过期时间
+	text := fmt.Sprintf(`你是一个全行业领域的专家,对招投标行业领域分类了如指掌
+
+公告start
+%v,
+
+公告end
+
+任务如下:
+
+# 目标:
+我在处理招投标公告数据,我需要车辆领域、安防领域、印务领域、环境领域、家具领域的数据,公告数量庞大,请帮我打上对应的领域标签
+
+# 领域定义:
+1. 车辆领域:涉及所有与车辆相关的业务和服务,包括但不限于新车购买、二手车交易、车辆租赁、汽车维修保养、汽车配件销售、车辆保险、驾驶培训等;
+2. 安防领域:安防领域通常包括但不限于视频监控、入侵检测、安全警报、门禁系统、防盗报警、周界防护、智能安防解决方案、火灾报警与应急处理、人员识别与追踪、安全巡逻、数据分析与风险评估等,例如:安防监控、安防产品、周界防范、安防监控系统、信息安全、数据安全等;
+3. 印务领域:跟印刷或出版相关的行业和活动,包括印刷技术、印刷材料、印刷设备与维护、广告服务、出版服务、包装设计等,还包括打印机、印刷机、油墨、打印纸张等印刷相关材料和配件的内容,如印刷、打印复印、打印设备、云打印、印刷服务等。
+4. 环境领域:跟环境保护或环境治理相关的内容,如电子废物处理、垃圾处理、生态污水处理、生态修复、环境监管体系、废物管理与资源化等
+5. 家具领域:跟家具相关的内容,包括家用家具、办公家具、教学家具、医院家具、宿舍家具、定制家具、家具采购、家具设计与安装、家具维修与翻新等,如办公桌、电脑桌、文件柜、人体工学椅、欧式家具、木质家具、木地板、家具饰品等;
+7. 财务审计领域:涉及财务和审计相关的业务和服务,包括但不限于财务报表审计、内部控制审计、税务审计、经济责任审计、财务咨询、会计服务、风险评估与管理、企业并购财务尽职调查等。
+8. 招标代理领域:涉及招标代理相关的业务和服务,包括但不限于招标文件的编制、招标公告的发布、投标文件的接收与评审、中标通知书的发放、合同谈判与签订、招标过程咨询、招标代理服务规范、电子招标投标、政府采购代理、工程项目招标代理、服务项目招标代理等。
+9. 管理咨询领域:涵盖为企业或个人提供专业管理建议和解决方案的服务,包括但不限于战略规划、组织架构设计、人力资源管理、财务管理、市场营销策划、业务流程优化、企业绩效提升、数字化转型等,如企业管理咨询、管理培训、战略顾问、人力资源咨询等。
+10. 保险领域:涉及保险产品的销售、服务及管理,包括但不限于人寿保险、财产保险、健康保险、意外伤害保险、责任保险、再保险、保险理赔、风险管理、保险产品设计与开发等,如保险代理、保险经纪、保险咨询服务、保险解决方案等。
+11. 工程设计咨询领域:包括为各类工程项目提供专业设计咨询服务,涉及建筑、结构、机电、景观、规划、环保等设计领域,以及工程项目的可行性研究、成本控制、项目管理、施工监理等,如建筑设计、工程咨询、项目策划、环境工程设计、工程技术支持等。
+6. 其他分类:通常包含农副产品以及不属于以上分类或者判断不出来的分类属于其他分类
+
+A、依次获取公告title中采购的内容判断数据那些领域,请按照下方json格式输出结果:
+
+{
+  "result":[
+      {"id":"11111111111111111111","class":"分类1,分类2"(领域名称,如果公告属于多个领域请用','分割)},
+      {"id":"22222222222222222222","class":"罐头食品制造"}
+    ]
+}
+
+B、审查结果
+1、审查A的结果输出,判断输出领域与公告采购内容是否强相关,否则输出"其他分类"
+
+C、修正结果,输出最终答案
+
+答(干净利落,不解释,只要C结果,严格按照JSON格式返回数据,不需要多余的解释说明):
+
+`, data)
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey, time.Minute*10)
+	if err != nil {
+		log.Println("请求智普失败", err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+func ZpAI7(apiKey, model string, data interface{}) (rest map[string][]map[string]interface{}, err error) {
+	expireAtTime := int64(1735660800) // token 过期时间
+	text := fmt.Sprintf(`你是一个全行业领域的专家,对招投标行业领域分类了如指掌
+
+公告start
+%v,
+
+公告end
+
+任务如下:
+
+# 目标:
+我在处理招投标公告数据,我需要车辆领域、安防领域、印务领域、环境领域、家具领域的数据,公告数量庞大,请帮我打上对应的领域标签
+
+# 领域定义:
+1. 车辆领域:涉及所有与车辆相关的业务和服务,包括但不限于新车购买、二手车交易、车辆租赁、汽车维修保养、汽车配件销售、车辆保险、驾驶培训等;
+2. 安防领域:安防领域通常包括但不限于视频监控、入侵检测、安全警报、门禁系统、防盗报警、周界防护、智能安防解决方案、火灾报警与应急处理、人员识别与追踪、安全巡逻、数据分析与风险评估等,例如:安防监控、安防产品、周界防范、安防监控系统、信息安全、数据安全等;
+3. 印务领域:跟印刷或出版相关的行业和活动,包括印刷技术、印刷材料、印刷设备与维护、广告服务、出版服务、包装设计等,还包括打印机、印刷机、油墨、打印纸张等印刷相关材料和配件的内容,如印刷、打印复印、打印设备、云打印、印刷服务等。
+4. 环境领域:跟环境保护或环境治理相关的内容,如电子废物处理、垃圾处理、生态污水处理、生态修复、环境监管体系、废物管理与资源化等
+5. 家具领域:跟家具相关的内容,包括家用家具、办公家具、教学家具、医院家具、宿舍家具、定制家具、家具采购、家具设计与安装、家具维修与翻新等,如办公桌、电脑桌、文件柜、人体工学椅、欧式家具、木质家具、木地板、家具饰品等;
+7. 财务审计领域:涉及财务和审计相关的业务和服务,包括但不限于财务报表审计、内部控制审计、税务审计、经济责任审计、财务咨询、会计服务、风险评估与管理、企业并购财务尽职调查等。
+8. 招标代理领域:涉及招标代理相关的业务和服务,包括但不限于招标文件的编制、招标公告的发布、投标文件的接收与评审、中标通知书的发放、合同谈判与签订、招标过程咨询、招标代理服务规范、电子招标投标、政府采购代理、工程项目招标代理、服务项目招标代理等。
+9. 管理咨询领域:涵盖为企业或个人提供专业管理建议和解决方案的服务,包括但不限于战略规划、组织架构设计、人力资源管理、财务管理、市场营销策划、业务流程优化、企业绩效提升、数字化转型等,如企业管理咨询、管理培训、战略顾问、人力资源咨询等。
+10. 保险领域:涉及保险产品的销售、服务及管理,包括但不限于人寿保险、财产保险、健康保险、意外伤害保险、责任保险、再保险、保险理赔、风险管理、保险产品设计与开发等,如保险代理、保险经纪、保险咨询服务、保险解决方案等。
+11. 工程设计咨询领域:包括为各类工程项目提供专业设计咨询服务,涉及建筑、结构、机电、景观、规划、环保等设计领域,以及工程项目的可行性研究、成本控制、项目管理、施工监理等,如建筑设计、工程咨询、项目策划、环境工程设计、工程技术支持等。
+6. 其他分类:通常包含农副产品以及不属于以上分类或者判断不出来的分类属于其他分类
+
+A、依次获取公告title中采购的内容判断数据那些领域,请按照下方json格式输出结果:
+
+{
+  "result":[
+      {"title":"title1","class":"分类1,分类2"(领域名称,如果公告属于多个领域请用','分割)},
+      {"title":"title2","class":"罐头食品制造"}
+    ]
+}
+
+B、审查结果
+1、审查A的结果输出,判断输出领域与公告采购内容是否强相关,否则输出"其他分类"
+
+C、修正结果,输出最终答案
+
+答(干净利落,不解释,只要C结果,严格按照JSON格式返回数据,不需要多余的解释说明):
+
+`, data)
+
+	originalValue := 0.01
+	originalValue2 := 0.7
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+		Temperature: &originalValue,
+		TopP:        &originalValue2,
+	}
+
+	postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey, time.Minute*10)
+	if err != nil {
+		log.Println("请求智普失败", err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					//if err != nil {
+					//	log.Println("Unmarshal err", err, "content:", content)
+					//}
+				}
+			}
+		}
+	}
+	return
+}

+ 1 - 0
company_invest/config.toml

@@ -29,6 +29,7 @@
 
 
 [clickhouse] ## clickhouse 数据库
+## 正式环境-法人库
 #    host = "cc-2ze9tv451wov14w9e.clickhouse.ads.aliyuncs.com:9000"
 #    username = "biservice"
 #    password = "Bi_top95215#"

+ 34 - 37
company_invest/main.go

@@ -2,12 +2,9 @@ package main
 
 import (
 	"fmt"
-	"github.com/robfig/cron/v3"
 	"github.com/spf13/viper"
-	"go.uber.org/zap"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
-	"time"
 )
 
 var (
@@ -99,41 +96,41 @@ func main() {
 	//biddingAllData()//交易关系存量数据
 	//organizeData() //管辖关系
 
-	//updateInfoId()
+	updateInfoId() // 更新映射表法库人ID
 	//areaData()
-	//return
-
-	local, _ := time.LoadLocation("Asia/Shanghai")
-	c := cron.New(cron.WithLocation(local), cron.WithSeconds())
-	//1.处理投资关系,增量数据,凭安每周推送数据;每周三定时执行
-
-	if GF.Env.Spec1 != "" {
-		_, err := c.AddFunc(GF.Env.Spec1, increInvest)
-		if err != nil {
-			log.Info("main", zap.Error(err))
-		}
-	}
-
-	//2. 处理bidding标讯 交易关系数据
-	if GF.Env.Spec2 != "" {
-		_, err := c.AddFunc(GF.Env.Spec2, increBidding)
-		if err != nil {
-			log.Info("main", zap.Error(err))
-		}
-	}
-
-	//3. 更新法人库表ID,更新映射表对应的法人库ID
-	if GF.Env.Spec3 != "" {
-		_, err := c.AddFunc(GF.Env.Spec3, updateInfoId)
-		if err != nil {
-			log.Info("main", zap.Error(err))
-		}
-	}
-
-	c.Start()
-	defer c.Stop()
-
-	select {}
+	return
+
+	//local, _ := time.LoadLocation("Asia/Shanghai")
+	//c := cron.New(cron.WithLocation(local), cron.WithSeconds())
+	////1.处理投资关系,增量数据,凭安每周推送数据;每周三定时执行
+	//
+	//if GF.Env.Spec1 != "" {
+	//	_, err := c.AddFunc(GF.Env.Spec1, increInvest)
+	//	if err != nil {
+	//		log.Info("main", zap.Error(err))
+	//	}
+	//}
+	//
+	////2. 处理bidding标讯 交易关系数据
+	//if GF.Env.Spec2 != "" {
+	//	_, err := c.AddFunc(GF.Env.Spec2, increBidding)
+	//	if err != nil {
+	//		log.Info("main", zap.Error(err))
+	//	}
+	//}
+	//
+	////3. 更新法人库表ID,更新映射表对应的法人库ID
+	//if GF.Env.Spec3 != "" {
+	//	_, err := c.AddFunc(GF.Env.Spec3, updateInfoId)
+	//	if err != nil {
+	//		log.Info("main", zap.Error(err))
+	//	}
+	//}
+	//
+	//c.Start()
+	//defer c.Stop()
+	//
+	//select {}
 }
 
 type EntInfo struct {

+ 22 - 0
org_tags/README.md

@@ -0,0 +1,22 @@
+## 法人库打标签
+
+> | 为了更加精准的标记单位行业类型,方便售后交付数据时更加精准的导出数据,需要对机构单位标签进行优化 ; 数据分为三部分数据:
+> 政府机关、事业单位和企业;
+
+
+
+政府机关数据 使用总结的标签规则标记
+
+事业单位数据 同样使用标签规则标记
+
+企业数据 优先使用凭安库的标签,如果凭安标签不完整或者为空,使用大模型结果作为补充。
+
+政府机关和事业单位的存量数据,已经保存在 qfw.wcc_special_enterprise 和 wcc_special_gov_unit
+
+企业数据:需要迭代 181的company_base 数据表,然后更新clickhouse 对应数据
+
+clickhouse 需要添加一个新字段,标签结果采用  `国标一级-国标二级-国标三级-国标四级` 方式存放,
+es 添加字段 `org_tags`;clickhouse 添加新字段`org_tags` 
+
+
+

+ 103 - 0
org_tags/config.go

@@ -0,0 +1,103 @@
+package main
+
+type GlobalConf struct {
+	Mongo      MgoConf
+	MongoQy    MgoConf
+	Env        EnvConf
+	Esa        EsConf
+	Esb        EsConf
+	Clickhouse CkConf
+	Labels     map[string]LabelData
+}
+
+type CkConf struct {
+	Host     string
+	Username string
+	Password string
+}
+
+type MgoConf struct {
+	Host     string
+	DB       string
+	Coll     string // 查询表
+	Username string
+	Password string
+	Size     int
+	Direct   bool
+}
+
+type EnvConf struct {
+	PortraitIndex string
+	PortraitMgo   string
+	Start         int
+	End           int
+	Spec          string
+	Isw           bool //是否保存标签里的权重
+	Esindex       string
+}
+
+type EsConf struct {
+	URL      string
+	Username string
+	Password string
+	Index    string
+}
+
+// LabelData  标签配置
+type LabelData struct {
+	Name        string        // 标签名称
+	Field       []string      //识别字段
+	Sfield      string        //保存字段
+	Rule        []string      // 具体规则
+	RegRule     []interface{} //规则的DFA
+	Weight      []float64     // 权重
+	TotalWeight float64       // 最终合并后的权重
+}
+
+type EntInfo struct {
+	ID                 string  `gorm:"primaryKey"`
+	CompanyID          *string `gorm:"column:company_id"`
+	CompanyName        *string `gorm:"column:company_name"`
+	CompanyLabel       uint64  `gorm:"column:company_label"` // Needs clarification on GORM handling of AggregateFunction
+	CompanyCode        *string `gorm:"column:company_code"`
+	CreditNo           *string `gorm:"column:credit_no"`
+	OrgCode            *string `gorm:"column:org_code"`
+	TaxCode            *string `gorm:"column:tax_code"`
+	EstablishDate      *int64  `gorm:"column:establish_date"`
+	LegalPerson        *string `gorm:"column:legal_person"`
+	LegalPersonCaption *string `gorm:"column:legal_person_caption"`
+	CompanyStatus      *string `gorm:"column:company_status"`
+	CompanyType        *string `gorm:"column:company_type"`
+	Authority          *string `gorm:"column:authority"`
+	IssueDate          *int64  `gorm:"column:issue_date"`
+	OperationStartDate *string `gorm:"column:operation_startdate"`
+	OperationEndDate   *string `gorm:"column:operation_enddate"`
+	Capital            *string `gorm:"column:capital"`
+	CompanyAddress     *string `gorm:"column:company_address"`
+	BusinessScope      *string `gorm:"column:business_scope"`
+	CancelDate         *int64  `gorm:"column:cancel_date"`
+	CancelReason       *string `gorm:"column:cancel_reason"`
+	RevokeDate         *int64  `gorm:"column:revoke_date"`
+	RevokeReason       *string `gorm:"column:revoke_reason"`
+	Comeintime         *int64  `gorm:"column:comeintime"`
+	Updatetime         *int64  `gorm:"column:updatetime"`
+	LegalPersonType    *int8   `gorm:"column:legal_person_type"`
+	RealCapital        *string `gorm:"column:real_capital"`
+	EnName             *string `gorm:"column:en_name"`
+	CompanyArea        *string `gorm:"column:company_area"`
+	ListCode           *string `gorm:"column:list_code"`
+	EmployeeNo         *int32  `gorm:"column:employee_no"`
+	Website            *string `gorm:"column:website"`
+	BusinessType       *int8   `gorm:"column:business_type"`
+	Sourcetype         *int8   `gorm:"column:sourcetype"`
+	CompanyPhone       *string `gorm:"column:company_phone"`
+	CompanyEmail       *string `gorm:"column:company_email"`
+	CompanyUnitType    *int8   `gorm:"column:company_unit_type"`
+	LongitudeLatitude  *string `gorm:"column:longitude_latitude"`
+	AdminLevel         *string `gorm:"column:admin_level"`
+	OrgTags            *string `gorm:"column:org_tags"`
+}
+
+func (EntInfo) TableName() string {
+	return "ent_info"
+}

+ 848 - 0
org_tags/config.toml

@@ -0,0 +1,848 @@
+[mongo]  ## 标讯地址
+#    host = "127.0.0.1:27083"
+#    #        host = "172.17.189.140:27080"
+#    db = "qfw"
+#    coll = "wcc_special_gov_unit"
+#    username = "SJZY_RWbid_ES"
+#    password = "SJZY@B4i4D5e6S"
+#    direct = true  ## 本地代理时需要打开,
+
+## 测试环境
+    host = "192.168.3.149:27102"
+    db = "qfw_data"
+    coll = "wcc_special_gov_unit"
+#    coll = "wcc_special_enterprise"
+    username = "root"
+    password = "root"
+
+
+#    host = "127.0.0.1:27017"
+#    #        host = "172.17.189.140:27080"
+#    db = "wcc"
+#    coll = "wcc_special_enterprise"
+#    username = ""
+#    password = ""
+#    direct = true  ## 本地代理时需要打开,
+
+[mongoqy]
+#    host = "172.17.4.181:27001"
+    host = "127.0.0.1:27001"
+    db = "mixdata"
+    username = ""
+    password = ""
+    direct = true  ## 本地代理时需要打开,
+
+
+[esa] ## 华为云集群2
+#    url = "http://172.17.4.184:19908" ## 线上地址
+#    url = "http://127.0.0.1:19908"
+#    username = "jybid"
+#    password = "Top2023_JEB01i@31"
+
+url = "http://192.168.3.149:9201"
+username = ""
+password = ""
+
+[esb] ## 华为云集群1
+#    url = "http://172.17.4.184:19905" ## 线上地址
+#    url = "http://127.0.0.1:19905"
+#    username = "jybid"
+#    password = "Top2023_JEB01i@31"
+
+[clickhouse] ## clickhouse 数据库
+#    host = "cc-2ze9tv451wov14w9e.clickhouse.ads.aliyuncs.com:9000"
+#    host = "localhost:18124"
+#    username = "biservice"
+#    password = "Bi_top95215#"
+### 测试环境
+    host = "192.168.3.207:19000"
+    username = "jytop"
+    password = "pwdTopJy123"
+
+
+[env]
+    start = -2 ## 开始取2天前的数据,
+    end = -1 ## 截止取1天前的数据,
+    spec = "0 00 01 * * *"  ## 定时任务,每天凌晨1点执行
+    esindex = "ent_info" ## 更新索引的数据表
+
+
+
+[[labels]] ## 标签规则
+
+    [labels.1]
+    name = "外交" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(外交)"]
+    weight =[1,0.8]  ## 权重
+
+
+    [labels.2]
+    name = "发展和改革" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(发展和改革|发展治理委员会|发展治理委员会|发展治理服务局|统筹发展局|发展和改革委员会|发展改革局)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.2a]
+    name = "发展和改革" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(服务业发展局|建设管理局|经济发展部|计划经贸局|投资合作部|经济发展局|科技创新局|经济发展服务局|发展局|开发区创新发展部)"]
+    weight =[0.9,0.6]   ## 权重
+
+
+    [labels.3]
+    name = "科学技术" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(科学技术|科技|工业和科技信息化)"]
+    weight =[1,0.7]  ## 权重
+
+    [labels.4]
+    name = "民族事务" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(民族事务|民族宗教事务|民族宗教局)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.5]
+    name = "保密局" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(国家保密局|机要保密局|保密局|机要局|保密工作局|密码管理局)"]
+    weight =[1,1]  ## 权重
+
+
+    [labels.6]
+    name = "国安局" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(国家安全局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.7]
+    name = "司法" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(司法|政法委员会|法律援助中心|行政执法局|法制办|纪检监察)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.7a]
+    name = "司法" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(公证处|价格成本调查)"]
+    weight =[0.8,0.6]  ## 权重
+
+
+    [labels.8]
+    name = "法院" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(人民法院)"]
+    weight =[1,1]  ## 权重
+
+
+    [labels.9]
+    name = "检察院" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(检察院)"]
+    weight =[1,1]  ## 权重
+
+    [labels.11]
+    name = "人力资源和社会保障" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(人力资源和社会保障|社会事业局|人力资源社会保障局|人力资源和社人保障局|人事和社会保障|人力资源管理局|劳动就业服务中心|人事劳动和社会保障局|人事劳动局|人力资源和社会劳动保障|劳动保障事务所|社会保障服务中心)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.11a]
+    name = "人力资源和社会保障" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(民间组织管理局|社会事务局|总工会|组织人事局|人员服务管理工作组|社会保险中心|社会保险事业管理局|劳动保障监察大队|养老保险中心|人才和知识分子工作|社会保险管理处|人才服务中心)"]
+    weight =[0.9,0.6]  ## 权重
+
+    [labels.12]
+    name = "生态环境" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(生态环境|环保局|环境督查中心|规划建设环境保护所|自然保护区)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.13]
+    name = "交通运输" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(交通运输|交通局|交通管理局)"]
+    weight =[1,0.6]  ## 权重
+
+    [labels.13a]
+    name = "交通运输" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(公路事业发展中心|船业发展中心|道路运输业|公路质量检测中心|公路管理所|公路联网管理中心|道路运输服务中心)"]
+    weight =[0.8,0.5]  ## 权重
+
+
+    [labels.14]
+    name = "农业农村" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(农业农村|畜牧局|农业局|农林和农机局|农牧局|农业|农林水牧局|农村工作|乡村振兴|农场|蚕种场)"]
+    weight =[1,0.6]  ## 权重
+
+    [labels.14a]
+    name = "农业农村" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(畜牧规划设计|畜牧兽医站)"]
+    weight =[0.8,0.5]  ## 权重
+
+    [labels.15]
+    name = "退役军人事务" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(退役军人事务|老干部局|老干部管理局|退役军人)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.16]
+    name = "人民银行" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(人民银行)"]
+    weight =[1,1]  ## 权重
+
+    [labels.17]
+    name = "国防" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(国防|统一战线工作部|统战部|国防科技工业|国防科技|国防动员)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.18]
+    name = "教育" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(教育|教体局|小学|中学|幼儿园|技校|大学|学校|学院|图书馆)"]
+    weight =[1,1]  ## 权重
+
+    [labels.18a]
+    name = "教育" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(青少年发展中心)"]
+    weight =[0.8,0.7]  ## 权重
+
+    [labels.19]
+    name = "党校" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(党校|干部学院)"]
+    weight =[1,1]  ## 权重
+
+    [labels.20]
+    name = "工业和信息化" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(工业和信息化|工业信息化局|信息化和科技局|科技工信局|工业信息化和科技局|工业信息化|工业和科技信息化|通信管理局)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.21]
+    name = "公安" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(公安|拘留所|人民警察|看守大队|出入境边防检查)"]
+    weight =[1,1]  ## 权重
+
+    [labels.22]
+    name = "民政" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(民政|民主促进会|民主同盟|国民党革命委员|民主建国会|农工民主党|民间组织管理局)^(人民政府)"]
+    weight =[1,1]  ## 权重
+
+    [labels.23]
+    name = "财政" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(财政)"]
+    weight =[1,1]  ## 权重
+
+    [labels.24]
+    name = "自然资源" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(自然资源|环境保护局|煤炭管理局|资源规划|资源局|规划局|农林水牧局|国土资源管理局|规划管理局|开发区规划建设部|规划建设筹备处|测绘地理信息技术中心|地图院)^(医院)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.24a]
+    name = "自然资源" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(地质|煤业)"]
+    weight =[0.7,0.5]  ## 权重
+
+    [labels.25]
+    name = "住建" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(住房和城乡建设|建设局|房屋征收事务局|建筑业管理局|住房和城乡规划建设管理局|建设指挥部|住建|房保障和房地产管理|住房保障和房屋管理|住房保障局|房产服务中心|住房保障中心|不动产登记和交易中心|房产管理经营|房屋管理事务中心|房产管理局|不动产登记中心)"]
+    weight =[1,0.7]  ## 权重
+
+
+    [labels.25a]
+    name = "住建" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(城市改造服务局|建设工程质量检测室|房地产监察大队)"]
+    weight =[0.8,0.5]  ## 权重
+
+    [labels.26]
+    name = "水利" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(水利|农林水牧局|水文水资源测报中心|水库管理局|黄河河务局|水库事务中心|水库保障所|水管所|水文水资源|南水北调工程)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.27]
+    name = "商务" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(商务|招商融资促进局|商业联合会|投资服务局|招商局|发展服务中心|融资服务局|招商引资局|协同发展服务中心|城市发展服务局|市场发展中心)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.28]
+    name = "卫生健康" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(卫生健康|卫生和计划生育|中医管理局|卫生局|人口和计划生育|卫生运动|健康委员会|卫生服务中心|市容环卫|市容卫生|计划生育|卫生所|市容环境卫生|血站)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.29]
+    name = "应急管理" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(应急管理|安全生产监督管理局|应急救护)"]
+    weight =[1,1]  ## 权重
+
+    [labels.30]
+    name = "审计" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(审计|督察局|督查局|监督局|监督稽查|监管局|监督检查|监察厅|纪律检查委员会|监察委员会)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.31]
+    name = "国有资产监督管理" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(国有资产监督管理|国有资产管理局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.32]
+    name = "海关" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(海关|港航管理局|海事局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.33]
+    name = "市场监督" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(市场监督|监察局|监督稽查|监管局|监督检查|监察厅|督查局|监督局|物价检查所|调查监审局|12315|投诉举报维权中心|价格成本调查监审队|稽查大队|市价格成本监测所|物价局)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.33a]
+    name = "市场监督" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(物价管理办公室|盐业管理局)"]
+    weight =[0.8,0.5]  ## 权重
+
+    [labels.34]
+    name = "证券监督管理" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(证券监督)"]
+    weight =[1,1]  ## 权重
+
+    [labels.35]
+    name = "体育" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(体育)"]
+    weight =[1,1]  ## 权重
+
+    [labels.36]
+    name = "统计" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(统计|经济社会调查队)"]
+    weight =[1,1]  ## 权重
+
+    [labels.37]
+    name = "国际发展合作" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(国际发展合作|旅游和外事侨务局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.38]
+    name = "税务" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(税务)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.39]
+    name = "金融" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(金融监督|金融|商品交易所)"]
+    weight =[1,1]  ## 权重
+
+    [labels.40]
+    name = "广播电视" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(广播电视|广播局|电视台|广播电影|电视局|广电|广电科技局|旅游和文化广电局|文化和广播影视局|文化广电局|融媒体中心|转播台|新闻传媒中心)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.41]
+    name = "信访" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(信访)"]
+    weight =[1,1]  ## 权重
+
+    [labels.42]
+    name = "知识产权" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(知识产权)"]
+    weight =[1,1]  ## 权重
+
+    [labels.43]
+    name = "医疗保障" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(医疗保障)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.44]
+    name = "新华通讯社" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(新华通讯社|新华社|新闻出版局|杂志社)"]
+    weight =[1,1]  ## 权重
+
+    [labels.45]
+    name = "气象" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(气象)"]
+    weight =[1,1]  ## 权重
+
+    [labels.46]
+    name = "科学院" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(科学院)"]
+    weight =[1,1]  ## 权重
+
+    [labels.47]
+    name = "工程院" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(工程院)"]
+    weight =[1,1]  ## 权重
+
+    [labels.48]
+    name = "粮食和物资储备" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(粮食和物资储备|粮食局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.49]
+    name = "数据" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(数据)"]
+    weight =[1,0.6]  ## 权重
+
+    [labels.50]
+    name = "烟草专卖" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(烟草专卖|烟草|香烟)"]
+    weight =[1,1]  ## 权重
+
+    [labels.51]
+    name = "林业和草原" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(林业和草原|林业|草原|畜牧产业服务中心|农林局|林场)"]
+    weight =[1,0.6]  ## 权重
+
+    [labels.52]
+    name = "民用航空" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(民用航空)"]
+    weight =[1,1]  ## 权重
+
+    [labels.53]
+    name = "文物" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(文物|世界文化遗产)"]
+    weight =[1,1]  ## 权重
+
+    [labels.54]
+    name = "疾病预防控制" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(疾病预防控制|疾控中心|疾病预防|检疫局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.55]
+    name = "消防救援" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(消防救援|消防队)"]
+    weight =[1,1]  ## 权重
+
+    [labels.56]
+    name = "药品监督" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(药品监督|药品检验所)"]
+    weight =[1,1]  ## 权重
+
+    [labels.57]
+    name = "能源" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(能源|煤炭管理局|煤炭工业管理局|煤炭工业局)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.58]
+    name = "移民" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(移民)"]
+    weight =[1,1]  ## 权重
+
+    [labels.59]
+    name = "铁路" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(铁路)"]
+    weight =[1,1]  ## 权重
+
+    [labels.60]
+    name = "邮政" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(邮政)"]
+    weight =[1,1]  ## 权重
+
+    [labels.61]
+    name = "中医药" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(中医药)"]
+    weight =[1,1]  ## 权重
+
+    [labels.62]
+    name = "外汇" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(外汇)"]
+    weight =[1,1]  ## 权重
+
+    [labels.63]
+    name = "供销合作社" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(供销合作社)"]
+    weight =[1,1]  ## 权重
+
+    [labels.64]
+    name = "公共资源交易中心" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(公共资源交易中心)"]
+    weight =[1,1]  ## 权重
+
+    [labels.65]
+    name = "监狱" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(监狱|戒毒所|看守所|犯管教所|罪犯遣送)"]
+    weight =[1,1]  ## 权重
+
+    [labels.66]
+    name = "城乡建设" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(城乡建设|城乡规划管理局|城乡发展|住房和城乡建设|建设局|房屋征收事务局|建筑业管理局|住房和城乡规划建设管理局|建设指挥部|城乡规划设计)"]
+    weight =[1,0.6]  ## 权重
+
+    [labels.67]
+    name = "文旅" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(广电科技局|旅游和文化广电局|文化和广播影视局|旅游局|文化厅|文化局|旅游委员会|旅游发展委|旅游管理区|文化广电局|文化和旅游|文旅|文化服务中心|日报社|博物馆|博物院)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.68]
+    name = "人民防空" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(人民防空|人防办)"]
+    weight =[1,1]  ## 权重
+
+    [labels.69]
+    name = "园林" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(园林)"]
+    weight =[1,1]  ## 权重
+
+    [labels.70]
+    name = "物流口岸" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(物流口岸)"]
+    weight =[1,1]  ## 权重
+
+    [labels.71]
+    name = "大数据" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(大数据)"]
+    weight =[1,0.6]  ## 权重
+
+    [labels.72]
+    name = "政务服务" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(政务服务|综合行政执法|行政服务中心|登记管理局|行政审批和政务信息|行政管理局|政务信息|事业服务中心|福利院|地震局|退休干部)"]
+    weight =[1,0.7]  ## 权重
+
+    [labels.72a]
+    name = "政务服务" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(检查委员会|行政审批|办事处)"]
+    weight =[0.8,0.5]  ## 权重
+
+    [labels.73]
+    name = "地方史志" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(地方史志)"]
+    weight =[1,1]  ## 权重
+
+    [labels.74]
+    name = "住房公积金管理中心" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(住房公积金管理中心|住房公积金)"]
+    weight =[1,1]  ## 权重
+
+    [labels.75]
+    name = "仲裁" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(仲裁)"]
+    weight =[1,1]  ## 权重
+
+    [labels.76]
+    name = "招商" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(建设投资|投资促进局|招商发展局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.76a]
+    name = "招商" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(开发区建设管理部)"]
+    weight =[0.8,0.5]  ## 权重
+
+    [labels.77]
+    name = "社保中心" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(社保)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.78]
+    name = "管委会" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(管委会|风景区开发建设委员会|香山湖管理区|管理区管理委员会|景区管理委员会|公园管理委员会)^(中共|政协|人大)","(示范区|开发区|产业集聚区)(委员会)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.79]
+    name = "人民政府" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(人民政府|公务员局|公务员管理局|镇政府|街道办事处|国务院研究室|发展研究中心|机关事务|参事室|乡政府|县政府|便民服务中心|区政府)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.79a]
+    name = "人民政府" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(委巡察办|巡察工作保障中心|食品安全委员会|平安建设办公室|社会治安综合治理中心|敬老院)"]
+    weight =[0.8,0.5]  ## 权重
+
+    [labels.80]
+    name = "工商联" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(工商联合会|工商业联合会)"]
+    weight =[1,1]  ## 权重
+
+    [labels.81]
+    name = "残联" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(残疾人联合会|关心下一代工作委员会)"]
+    weight =[1,1]  ## 权重
+
+    [labels.82]
+    name = "妇联" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(妇女联合会|妇联)"]
+    weight =[1,1]  ## 权重
+
+    [labels.83]
+    name = "艺术联" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(艺术界联合会|艺术联合会)"]
+    weight =[1,1]  ## 权重
+
+    [labels.84]
+    name = "侨联" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(侨眷联合会|华侨联合会)"]
+    weight =[1,1]  ## 权重
+
+    [labels.85]
+    name = "台联" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(台胞台属联谊会)"]
+    weight =[1,1]  ## 权重
+
+    [labels.86]
+    name = "城管" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(城市管理|城市综合执法局|市场综合执法队|车站地区管理处|社会治理和社区服务局)"]
+    weight =[1,1]  ## 权重
+
+    [labels.87]
+    name = "编办" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(编制委员会|事业单位登记管理)"]
+    weight =[1,1]  ## 权重
+
+    [labels.88]
+    name = "政协" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(政治协商|政协)"]
+    weight =[1,1]  ## 权重
+
+    [labels.89]
+    name = "民主党派" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(九三学社|致公党)"]
+    weight =[1,1]  ## 权重
+
+    [labels.90]
+    name = "党委" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(共产党|中共)(委员会|研究室|办公室|宣传部|办公厅|招待所|县委)","(群众工作部|直属机关委员会|党群工作部|巡察组|精神文明建设指导委员会|市委办公室|县委|委员会宣传部|市委宣传部)"]
+    weight =[1,1]  ## 权重
+
+    [labels.90a]
+    name = "党委" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(区委重点工作|接待办公室|市委政法委)"]
+    weight =[0.9,0.9]  ## 权重
+
+    [labels.91]
+    name = "团委" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(共产主义青年团|共青团|青年团)(委员会|县委)"]
+    weight =[1,1]  ## 权重
+
+    [labels.91a]
+    name = "团委" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(希望工程办公室)"]
+    weight =[0.8,0.8]  ## 权重
+
+    [labels.92]
+    name = "人大" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(人大常委会|人大工作联络处|人民代表大会|人大)"]
+    weight =[1,0.8]  ## 权重
+
+    [labels.93]
+    name = "档案局" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(档案局|档案馆)"]
+    weight =[1,1]  ## 权重
+
+    [labels.94]
+    name = "武装" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(武装部)"]
+    weight =[1,1]  ## 权重
+
+    [labels.95]
+    name = "医院" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(医院|卫生院)"]
+    weight =[1,1]  ## 权重
+
+    [labels.96]
+    name = "渔业" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(渔业办|鱼种场)"]
+    weight =[1,1]  ## 权重
+
+    [labels.97]
+    name = "学校" ## 标签名称
+    field = ["company_name","organizer"] ## 识别字段
+    sfield = "company_types" ## 标签保存字段
+    rule =["(小学|中学|幼儿园|技校|大学|学校|初中|高中)"]
+    weight =[1,1]  ## 权重

+ 67 - 0
org_tags/go.mod

@@ -0,0 +1,67 @@
+module org_tags
+
+go 1.22.6
+
+require (
+	github.com/itcwc/go-zhipu v0.0.0-20241011031808-578f9ce4381c
+	github.com/olivere/elastic/v7 v7.0.32
+	github.com/spf13/viper v1.19.0
+	gorm.io/driver/clickhouse v0.6.1
+	gorm.io/gorm v1.25.12
+	jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3
+)
+
+require (
+	github.com/ClickHouse/ch-go v0.61.5 // indirect
+	github.com/ClickHouse/clickhouse-go/v2 v2.23.2 // indirect
+	github.com/PuerkitoBio/goquery v1.8.0 // indirect
+	github.com/andybalholm/brotli v1.1.0 // indirect
+	github.com/andybalholm/cascadia v1.3.1 // indirect
+	github.com/dchest/captcha v1.0.0 // indirect
+	github.com/fsnotify/fsnotify v1.7.0 // indirect
+	github.com/go-faster/city v1.0.1 // indirect
+	github.com/go-faster/errors v0.7.1 // indirect
+	github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
+	github.com/golang/snappy v0.0.4 // indirect
+	github.com/google/uuid v1.6.0 // indirect
+	github.com/hashicorp/go-version v1.6.0 // indirect
+	github.com/hashicorp/hcl v1.0.0 // indirect
+	github.com/jinzhu/inflection v1.0.0 // indirect
+	github.com/jinzhu/now v1.1.5 // indirect
+	github.com/josharian/intern v1.0.0 // indirect
+	github.com/klauspost/compress v1.17.8 // indirect
+	github.com/magiconair/properties v1.8.7 // indirect
+	github.com/mailru/easyjson v0.7.7 // indirect
+	github.com/mitchellh/mapstructure v1.5.0 // indirect
+	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/paulmach/orb v0.11.1 // indirect
+	github.com/pelletier/go-toml/v2 v2.2.2 // indirect
+	github.com/pierrec/lz4/v4 v4.1.21 // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/sagikazarmark/locafero v0.4.0 // indirect
+	github.com/sagikazarmark/slog-shim v0.1.0 // indirect
+	github.com/segmentio/asm v1.2.0 // indirect
+	github.com/shopspring/decimal v1.4.0 // indirect
+	github.com/sourcegraph/conc v0.3.0 // indirect
+	github.com/spf13/afero v1.11.0 // indirect
+	github.com/spf13/cast v1.6.0 // indirect
+	github.com/spf13/pflag v1.0.5 // indirect
+	github.com/subosito/gotenv v1.6.0 // indirect
+	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
+	github.com/xdg-go/scram v1.1.1 // indirect
+	github.com/xdg-go/stringprep v1.0.3 // indirect
+	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
+	go.mongodb.org/mongo-driver v1.11.4 // indirect
+	go.opentelemetry.io/otel v1.26.0 // indirect
+	go.opentelemetry.io/otel/trace v1.26.0 // indirect
+	go.uber.org/multierr v1.11.0 // indirect
+	golang.org/x/crypto v0.21.0 // indirect
+	golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
+	golang.org/x/net v0.23.0 // indirect
+	golang.org/x/sync v0.6.0 // indirect
+	golang.org/x/sys v0.19.0 // indirect
+	golang.org/x/text v0.14.0 // indirect
+	gopkg.in/ini.v1 v1.67.0 // indirect
+	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+)

+ 311 - 0
org_tags/go.sum

@@ -0,0 +1,311 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/ClickHouse/ch-go v0.61.5 h1:zwR8QbYI0tsMiEcze/uIMK+Tz1D3XZXLdNrlaOpeEI4=
+github.com/ClickHouse/ch-go v0.61.5/go.mod h1:s1LJW/F/LcFs5HJnuogFMta50kKDO0lf9zzfrbl0RQg=
+github.com/ClickHouse/clickhouse-go/v2 v2.23.2 h1:+DAKPMnxLS7pduQZsrJc8OhdLS2L9MfDEJ2TS+hpYDM=
+github.com/ClickHouse/clickhouse-go/v2 v2.23.2/go.mod h1:aNap51J1OM3yxQJRgM+AlP/MPkGBCL8A74uQThoQhR0=
+github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
+github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
+github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
+github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
+github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c=
+github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
+github.com/aws/aws-sdk-go v1.43.21/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dchest/captcha v1.0.0 h1:vw+bm/qMFvTgcjQlYVTuQBJkarm5R0YSsDKhm1HZI2o=
+github.com/dchest/captcha v1.0.0/go.mod h1:7zoElIawLp7GUMLcj54K9kbw+jEyvz2K0FDdRRYhvWo=
+github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
+github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
+github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw=
+github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw=
+github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg=
+github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
+github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
+github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
+github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/itcwc/go-zhipu v0.0.0-20241011031808-578f9ce4381c h1:kFzrtxnDaIsb9ecsMO0hlLFfi7NDxWJXwNPs1wF6rMo=
+github.com/itcwc/go-zhipu v0.0.0-20241011031808-578f9ce4381c/go.mod h1:z7QZm7ol2nikFFGHwArJr1NTtBSE0M0g9MvHKxm1Sw0=
+github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
+github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
+github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
+github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
+github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
+github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
+github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/nsqio/go-nsq v1.1.0/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY=
+github.com/olivere/elastic/v7 v7.0.32 h1:R7CXvbu8Eq+WlsLgxmKVKPox0oOwAE/2T9Si5BnvK6E=
+github.com/olivere/elastic/v7 v7.0.32/go.mod h1:c7PVmLe3Fxq77PIfY/bZmxY/TAamBhCzZ8xDOE09a9k=
+github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
+github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU=
+github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU=
+github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY=
+github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
+github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
+github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
+github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
+github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
+github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
+github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
+github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
+github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys=
+github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
+github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
+github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
+github.com/smartystreets/assertions v1.1.1/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
+github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=
+github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak=
+github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
+github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
+github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
+github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
+github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
+github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
+github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
+github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
+github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
+github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
+github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
+github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
+github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
+github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
+github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
+github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
+github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
+github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
+github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
+github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
+go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas=
+go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
+go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opentelemetry.io/otel v1.5.0/go.mod h1:Jm/m+rNp/z0eqJc74H7LPwQ3G87qkU/AnnAydAjSAHk=
+go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs=
+go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4=
+go.opentelemetry.io/otel/trace v1.5.0/go.mod h1:sq55kfhjXYr1zVSyexg0w1mpa03AYXR5eyTkB9NPPdE=
+go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA=
+go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
+go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
+golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
+golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
+golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
+golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
+google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
+gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=
+gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gorm.io/driver/clickhouse v0.6.1 h1:t7JMB6sLBXxN8hEO6RdzCbJCwq/jAEVZdwXlmQs1Sd4=
+gorm.io/driver/clickhouse v0.6.1/go.mod h1:riMYpJcGZ3sJ/OAZZ1rEP1j/Y0H6cByOAnwz7fo2AyM=
+gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
+gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3 h1:mTokQIoOu/oZ2oCSAPayIFfnglIHP0qbOw1Ez6biKDo=
+jygit.jydev.jianyu360.cn/data_processing/common_utils v0.0.0-20240412074219-927f3f682cb3/go.mod h1:1Rp0ioZBhikjXHYYXmnzL6RNfvTDM/2XvRB+vuPLurI=

+ 116 - 0
org_tags/init.go

@@ -0,0 +1,116 @@
+package main
+
+import (
+	"encoding/json"
+	"fmt"
+	"github.com/spf13/viper"
+	"io/ioutil"
+	es "jygit.jydev.jianyu360.cn/data_processing/common_utils/elastic"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"os"
+)
+
+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() {
+	Mgo = &mongodb.MongodbSim{
+		MongodbAddr: GF.Mongo.Host,
+		//MongodbAddr: "127.0.0.1:27083",
+		Size:     10,
+		DbName:   GF.Mongo.DB,
+		UserName: GF.Mongo.Username,
+		Password: GF.Mongo.Password,
+		Direct:   GF.Mongo.Direct,
+	}
+	Mgo.InitPool()
+
+}
+
+func InitEs() {
+	if GF.Esa.URL != "" {
+		Esa = &es.Elastic{
+			S_esurl:  GF.Esa.URL,
+			I_size:   5,
+			Username: GF.Esa.Username,
+			Password: GF.Esa.Password,
+		}
+		Esa.InitElasticSize()
+	}
+
+	if GF.Esb.URL != "" {
+		Esb = &es.Elastic{
+			S_esurl:  GF.Esb.URL,
+			I_size:   5,
+			Username: GF.Esb.Username,
+			Password: GF.Esb.Password,
+		}
+		Esb.InitElasticSize()
+	}
+
+}
+
+// IndustryClassification 国标行业分类的结构体
+type IndustryClassification struct {
+	Code     string                   `json:"code"`
+	Name     string                   `json:"name"`
+	Children []IndustryClassification `json:"children"`
+}
+
+// 读取行业分类数据
+func readIndustryClassifications(filePath string) ([]IndustryClassification, error) {
+	// 打开文件
+	file, err := os.Open(filePath)
+	if err != nil {
+		return nil, err
+	}
+	defer file.Close()
+
+	// 读取文件内容
+	bytes, err := ioutil.ReadAll(file)
+	if err != nil {
+		return nil, err
+	}
+
+	// 解析 JSON
+	var classifications []IndustryClassification
+	err = json.Unmarshal(bytes, &classifications)
+	if err != nil {
+		return nil, err
+	}
+
+	return classifications, nil
+}
+
+func ReadIndustry() {
+	// 读取 JSON 文件
+	filePath := "./国民经济行业分类_2017.json"
+	classifications, err := readIndustryClassifications(filePath)
+	if err != nil {
+		fmt.Println("Error reading industry classifications:", err)
+		return
+	}
+
+	// 创建 map 来存储所有级别的分类
+	classificationMap = make(map[string]bool)
+	// 遍历分类并将它们添加到 map 中
+	industryNames = populateClassificationMap(classifications, classificationMap)
+
+	//log.Println(classifications)
+}

+ 641 - 0
org_tags/main.go

@@ -0,0 +1,641 @@
+package main
+
+import (
+	"fmt"
+	"gorm.io/driver/clickhouse"
+	"gorm.io/gorm"
+	"gorm.io/gorm/logger"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	es "jygit.jydev.jianyu360.cn/data_processing/common_utils/elastic"
+	"jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
+	"log"
+	"net/url"
+	"regexp"
+	"time"
+	"unicode/utf8"
+)
+
+var (
+	Mgo *mongodb.MongodbSim
+	GF  GlobalConf
+	Esa *es.Elastic
+	Esb *es.Elastic
+	//更新es
+	updateEsPool = make(chan []map[string]interface{}, 5000)
+	updateEsSp   = make(chan bool, 3) //保存协程
+	key          = "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	model        = "glm-4-flash"
+	// 创建 map 来存储所有级别的分类
+	classificationMap = make(map[string]bool)
+	industryNames     = make([]string, 0)
+)
+
+type DataRes struct {
+	Name   string
+	Weight float64
+}
+
+func main() {
+	InitConfig()
+	InitMgo()
+	InitEs()
+
+	ReadIndustry() //读取国标行业分类
+
+	go updateEsMethod() //更新es
+
+	//dealLabels() //组织机构和事业单位 规则标签,在MongoDB上标记
+	//esLabels2() // 组织机构和事业单位数据标签,更新es+clickhouse
+	getIndustry2()
+	select {}
+}
+
+// dealLabels 根据配置文件标签规则,处理组织机构标签,更新到对应MongoDB数据表
+// 主要用来处理政府机关和事业单位的数据
+func dealLabels() {
+	REG, _ = regexp.Compile(`\(.*?\)\d*`)
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(nil).Select(nil).Iter()
+	fmt.Println("taskRun 开始")
+	count := 0
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		ResMap := make([]LabelData, 0)
+		//id := mongodb.BsonIdToSId(tmp["_id"])
+		if count%1000 == 0 {
+			log.Println("current:", count, tmp["company_name"])
+		}
+		for _, v := range GF.Labels {
+			v.RegRule = DealRules(v.Rule)
+			//匹配规则,返回规则内匹配的关键词
+			//根据识别字段,开始各个字段匹配
+			for kk, vv := range v.Field {
+				text := util.ObjToString(tmp[vv])
+				if text == "" {
+					continue
+				}
+				rs, _ := DFAAnalyRules(text, v.RegRule)
+				if rs {
+					//多个不同识别字段,多个权重值
+					v.TotalWeight = round(v.TotalWeight+v.Weight[kk], 2)
+					ResMap = append(ResMap, v)
+				}
+			}
+			v.TotalWeight = 0
+		}
+
+		if len(ResMap) > 0 {
+			// 处理有重复的标签
+			mergedMap := MergeLabelData(ResMap)
+			for key, values := range mergedMap {
+				//fmt.Printf("Sfield: %s\n", key)
+				datas := make([]DataRes, 0)
+				resTypes := make([]string, 0)
+				for _, value := range values {
+					//fmt.Printf("  Name: %s, Weight: %f\n", value.Name, value.TotalWeight)
+					dar := DataRes{
+						Name:   value.Name,
+						Weight: value.TotalWeight,
+					}
+					datas = append(datas, dar)
+					resTypes = append(resTypes, value.Name)
+				}
+				// 更新对应字段
+				update := map[string]interface{}{
+					key:              datas,
+					"company_labels": resTypes, // 标签结果,字符串数组
+				}
+				where := map[string]interface{}{
+					"company_name": tmp["company_name"],
+				}
+				Mgo.Update(GF.Mongo.Coll, where, map[string]interface{}{"$set": update}, true, false)
+			}
+		}
+	}
+
+	log.Println("over")
+}
+
+// esLabels 组织机构标签生索引和更新clickhouse
+func esLabels() {
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(nil).Select(nil).Iter()
+	fmt.Println("taskRun 开始")
+
+	username := GF.Clickhouse.Username
+	password := GF.Clickhouse.Password
+	host := GF.Clickhouse.Host
+
+	encodedPassword := url.QueryEscape(password)
+	dn := fmt.Sprintf("clickhouse://%s:%s@%s/information?dial_timeout=10s&read_timeout=20s", username, encodedPassword, host)
+
+	db, err := gorm.Open(clickhouse.Open(dn), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Silent),
+	})
+	if err != nil {
+		log.Fatal("打开数据库失败:", err)
+	} else {
+		log.Println("连接数据库成功", db.Name())
+	}
+
+	count := 0
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%1000 == 0 {
+			log.Println("current:", count, tmp["company_name"])
+		}
+		// 存在组织机构标签
+		if _, ok := tmp["company_labels"]; ok {
+			companyName := util.ObjToString(tmp["company_name"])
+			AInfo := EntInfo{}
+			db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Select("company_name", "id").First(&AInfo)
+			if AInfo.ID != "" {
+				update := map[string]interface{}{
+					"tag_labels": tmp["company_labels"],
+				}
+				err = Esa.UpdateDocument(GF.Env.Esindex, AInfo.ID, update)
+				if err != nil {
+					log.Println(AInfo.ID, "更新", update, "错误")
+				}
+			}
+		}
+	}
+	log.Println("over")
+}
+
+// esLabels2 根据组织机构标记好的标签,更新clickhouse es
+func esLabels2() {
+	defer util.Catch()
+	sess := Mgo.GetMgoConn()
+	defer Mgo.DestoryMongoConn(sess)
+	it := sess.DB(GF.Mongo.DB).C(GF.Mongo.Coll).Find(nil).Select(nil).Iter()
+	fmt.Println("taskRun 开始")
+
+	username := GF.Clickhouse.Username
+	password := GF.Clickhouse.Password
+	host := GF.Clickhouse.Host
+
+	encodedPassword := url.QueryEscape(password)
+	dn := fmt.Sprintf("clickhouse://%s:%s@%s/information?dial_timeout=10s&read_timeout=20s", username, encodedPassword, host)
+
+	db, err := gorm.Open(clickhouse.Open(dn), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Silent),
+	})
+	if err != nil {
+		log.Fatal("打开数据库失败:", err)
+	} else {
+		log.Println("连接数据库成功", db.Name())
+	}
+	//
+	count := 0
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%100 == 0 {
+			log.Println("current:", count, tmp["company_name"])
+		}
+		// 存在组织机构标签
+		if labels, ok := tmp["company_labels"]; ok {
+			companyName := util.ObjToString(tmp["company_name"])
+			AInfo := EntInfo{}
+			db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Select("company_name", "id").First(&AInfo)
+			if AInfo.ID != "" {
+				if lls, ok := labels.([]interface{}); ok {
+					if util.ObjToString(lls[0]) != "" {
+						tag := util.ObjToString(lls[0])
+						update := map[string]interface{}{
+							"org_tags": &tag,
+						}
+						// 更新clickhouse es
+						result := db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Updates(update)
+						if result.Error != nil {
+							// 处理错误,例如打印错误信息
+							log.Println("更新数据出错:", result.Error, companyName)
+							continue
+						}
+						//更新es
+						updateEsPool <- []map[string]interface{}{
+							{"_id": AInfo.ID},
+							update,
+						}
+					}
+				}
+			}
+		}
+	}
+
+	log.Println("over")
+}
+
+// getIndustry 获取凭安企业标签
+func getIndustry() {
+	//开始调用
+	//MgoB := &mongodb.MongodbSim{
+	//	//MongodbAddr: "172.17.189.140:27080",
+	//	MongodbAddr: "127.0.0.1:27083",
+	//	DbName:      "qfw",
+	//	Size:        10,
+	//	UserName:    "SJZY_RWbid_ES",
+	//	Password:    "SJZY@B4i4D5e6S",
+	//	Direct:      true,
+	//}
+	//MgoB.InitPool()
+
+	username := GF.Clickhouse.Username
+	password := GF.Clickhouse.Password
+	host := GF.Clickhouse.Host
+
+	encodedPassword := url.QueryEscape(password)
+	dn := fmt.Sprintf("clickhouse://%s:%s@%s/information?dial_timeout=10s&read_timeout=20s", username, encodedPassword, host)
+
+	db, err := gorm.Open(clickhouse.Open(dn), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Silent),
+	})
+	if err != nil {
+		log.Fatal("打开数据库失败:", err)
+	} else {
+		log.Println("连接数据库成功", db.Name())
+	}
+
+	//181 凭安库
+	MgoQY := &mongodb.MongodbSim{
+		//MongodbAddr: "172.17.4.181:27001",
+		MongodbAddr: "127.0.0.1:27001",
+		DbName:      "mixdata",
+		Size:        10,
+		UserName:    "",
+		Password:    "",
+		Direct:      true,
+	}
+	MgoQY.InitPool()
+
+	key := "4d5206b1b297c1e7b77f9578edcb2cf7.TNU2i8G1oUNdR02i"
+	model := "glm-4-flash"
+
+	defer util.Catch()
+	sess := MgoQY.GetMgoConn()
+	defer MgoQY.DestoryMongoConn(sess)
+
+	it := sess.DB("mixdata").C("company_base").Find(nil).Select(nil).Sort("_id").Iter()
+	fmt.Println("taskRun 开始")
+	count := 0
+
+	for tmp := make(map[string]interface{}); it.Next(&tmp); count++ {
+		if count%1000 == 0 {
+			log.Println("current:", count)
+		}
+		//
+		companyID := util.ObjToString(tmp["company_id"])
+		companyName := util.ObjToString(tmp["company_name"])
+		if companyName == "" || companyID == "" {
+			continue
+		}
+
+		hasTag := false
+		//1.公司ID不为空,直接使用凭安标签
+		if companyID != "" && companyName != "" {
+			AInfo := EntInfo{}
+			db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Select("company_name", "id").First(&AInfo)
+
+			whereIndustry := map[string]interface{}{
+				"company_id": companyID,
+			}
+			industry, _ := MgoQY.FindOne("company_industry", whereIndustry)
+			if industry != nil && len(*industry) > 0 {
+				label := ""
+				if util.ObjToString((*industry)["industry_l1_name"]) != "" {
+					label = util.ObjToString((*industry)["industry_l1_name"])
+				}
+				//二级名称
+				if util.ObjToString((*industry)["industry_l2_name"]) != "" {
+					label = label + "-" + util.ObjToString((*industry)["industry_l2_name"])
+				}
+				if util.ObjToString((*industry)["industry_l3_name"]) != "" {
+					label = label + "-" + util.ObjToString((*industry)["industry_l3_name"])
+				}
+				if util.ObjToString((*industry)["industry_l4_name"]) != "" {
+					label = label + "-" + util.ObjToString((*industry)["industry_l4_name"])
+				}
+
+				if label != "" {
+					hasTag = true
+					update := map[string]interface{}{
+						"org_tags": &label,
+					}
+					// 更新clickhouse es
+					result := db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Updates(update)
+					if result.Error != nil {
+						// 处理错误,例如打印错误信息
+						log.Println("更新数据出错:", result.Error, companyName)
+						continue
+					}
+					////更新es
+					//updateEsPool <- []map[string]interface{}{
+					//	{"_id": AInfo.ID},
+					//	update,
+					//}
+				}
+			}
+		}
+		// 凭安没有标签
+		if !hasTag {
+			//3.凭安不存在,直接使用大模型
+			//2.company_base 表存在,但是没有对应标签,需要调用大模型
+			business := util.ObjToString(tmp["businessScope"])
+			if utf8.RuneCountInString(business) > 50 {
+				r := []rune(business)
+				business = string(r[:50])
+			}
+			res := ZpAI1(key, model, companyName, business)
+			if len(res) > 0 {
+				if resD, ok := res["result"].([]interface{}); ok {
+					labels := make([]interface{}, 0)
+					for _, resDa := range resD {
+						if v, ok := resDa.(map[string]interface{}); ok {
+							//log.Println(v)
+							label := ""
+							if util.ObjToString(v["label1"]) != "" {
+								label = util.ObjToString(v["label1"])
+							}
+							if util.ObjToString(v["label2"]) != "" {
+								label = label + "-" + util.ObjToString(v["label2"])
+							}
+							if util.ObjToString(v["label3"]) != "" {
+								label = label + "-" + util.ObjToString(v["label3"])
+							}
+							if len(label) > 0 && util.Float64All(v["score"]) > 0 {
+								tm := map[string]interface{}{
+									"name":  label,
+									"score": v["score"],
+								}
+								labels = append(labels, tm)
+							}
+						}
+					}
+					//if len(labels) > 0 {
+					//	update := map[string]interface{}{
+					//		"totalIndustry": labels,
+					//		"industry_type": 2, //通过大模型
+					//	}
+					//	MgoB.UpdateById("ent_info_buyer_912", id, map[string]interface{}{"$set": update})
+					//}
+				}
+			}
+		}
+	}
+
+	log.Println("1234444444")
+}
+
+// getIndustry2 处理企业数据
+func getIndustry2() {
+	username := GF.Clickhouse.Username
+	password := GF.Clickhouse.Password
+	host := GF.Clickhouse.Host
+
+	encodedPassword := url.QueryEscape(password)
+	dn := fmt.Sprintf("clickhouse://%s:%s@%s/information?dial_timeout=10s&read_timeout=20s", username, encodedPassword, host)
+
+	db, err := gorm.Open(clickhouse.Open(dn), &gorm.Config{
+		Logger: logger.Default.LogMode(logger.Silent),
+	})
+	if err != nil {
+		log.Fatal("打开数据库失败:", err)
+	} else {
+		log.Println("连接数据库成功", db.Name())
+	}
+
+	//181 凭安库
+	MgoQY := &mongodb.MongodbSim{
+		//MongodbAddr: "172.17.4.181:27001",
+		MongodbAddr: GF.MongoQy.Host,
+		DbName:      GF.MongoQy.DB,
+		Size:        10,
+		UserName:    GF.MongoQy.Username,
+		Password:    GF.MongoQy.Password,
+		Direct:      GF.MongoQy.Direct,
+	}
+	MgoQY.InitPool()
+
+	// 执行原始 SQL 查询
+	batchSize := 100
+	page := 1
+	count := 0
+	for {
+		log.Println("current page ", page)
+		var entInfos []EntInfo
+		if err := db.Raw("SELECT company_name,company_id,id,company_type  FROM ent_info where org_tags = ''  ORDER BY comeintime LIMIT ? OFFSET ? ", batchSize, (page-1)*batchSize).Scan(&entInfos).Error; err != nil {
+			if err == gorm.ErrRecordNotFound {
+				break
+			}
+			log.Fatal("failed to fetch data:", err)
+		}
+
+		// 处理查询到的数据
+		for _, info := range entInfos {
+			count++
+			companyName := *info.CompanyName
+			if len(companyName) < 4 {
+				continue
+			}
+
+			if info.OrgTags != nil && *info.OrgTags != "" {
+				continue
+			}
+			// 1.凭安有对应企业
+			hasTag := false
+			if *info.CompanyID == "" {
+				//凭安库没有数据,需要调用大模型
+				companyID := util.ObjToString(*info.CompanyID)
+				whereIndustry := map[string]interface{}{
+					"company_id": companyID,
+				}
+				industry, _ := MgoQY.FindOne("company_industry", whereIndustry)
+				if industry != nil && len(*industry) > 0 {
+					label := ""
+					if util.ObjToString((*industry)["industry_l1_name"]) != "" {
+						label = util.ObjToString((*industry)["industry_l1_name"])
+					} else {
+						continue
+					}
+					//二级名称
+					if util.ObjToString((*industry)["industry_l2_name"]) != "" {
+						label = label + "-" + util.ObjToString((*industry)["industry_l2_name"])
+					}
+					if util.ObjToString((*industry)["industry_l3_name"]) != "" {
+						label = label + "-" + util.ObjToString((*industry)["industry_l3_name"])
+					}
+					if util.ObjToString((*industry)["industry_l4_name"]) != "" {
+						label = label + "-" + util.ObjToString((*industry)["industry_l4_name"])
+					}
+
+					if label != "" {
+						//hasTag = true
+						update := map[string]interface{}{
+							"org_tags": &label,
+						}
+						// 更新clickhouse es
+						result := db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Updates(update)
+						if result.Error != nil {
+							// 处理错误,例如打印错误信息
+							log.Println("更新数据出错:", result.Error, companyName)
+						}
+						////更新es
+						updateEsPool <- []map[string]interface{}{
+							{"_id": info.ID},
+							update,
+						}
+					}
+				}
+
+			}
+
+			//2.凭安没有找到对应标签,需要调用大模型
+			if !hasTag {
+				res := ZpAI4(key, model, companyName, "", industryNames)
+				if len(res) > 0 {
+					label := ""
+					if resD, ok := res["result"].([]interface{}); ok {
+						if len(resD) > 0 {
+							if v, ok := resD[0].(map[string]interface{}); ok {
+								//log.Println(v)
+								label1 := util.ObjToString(v["label1"])
+								//1.一级分类不属于国标一级
+								if !classificationMap[label1] {
+									sys := `根据提供的行业标签名称,返回对应的国标行业分类一级名称;按照JSON的格式返回,比如:{"name":"xxx"} 我提供的行业标签是:` + label1
+									res1 := ZpName(key, model, sys)
+									if classificationMap[util.ObjToString(res1["name"])] {
+										label1 = util.ObjToString(res1["name"])
+									} else {
+										res11 := ZpName(key, model, sys)
+										if classificationMap[util.ObjToString(res11["name"])] {
+											label1 = util.ObjToString(res11["name"])
+										}
+									}
+								}
+								label2 := util.ObjToString(v["label2"])
+								//2.二级分类不属于国标二级
+								if !classificationMap[label2] && label2 != "" {
+									sys := `根据我提供的行业标签名称,返回对应的国标行业分类二级名称;按照JSON的格式返回,比如:{"name":"xxx"} 我提供的行业标签是:` + label2
+									res2 := ZpName(key, model, sys)
+									if classificationMap[util.ObjToString(res2["name"])] {
+										label2 = util.ObjToString(res2["name"])
+									} else {
+										res21 := ZpName(key, model, sys)
+										if classificationMap[util.ObjToString(res21["name"])] {
+											label2 = util.ObjToString(res21["name"])
+										}
+									}
+								}
+								// 3.三级分类
+								label3 := util.ObjToString(v["label3"])
+								if !!classificationMap[label3] && label3 != "" {
+									sys := `根据我提供的行业标签名称,返回对应的国标行业分类三级名称;按照JSON的格式返回,比如:{"name":"xxx"} 我提供的行业标签是:` + label3
+									res3 := ZpName(key, model, sys)
+									if classificationMap[util.ObjToString(res3["name"])] {
+										label3 = util.ObjToString(res3["name"])
+									} else {
+										res31 := ZpName(key, model, sys)
+										if classificationMap[util.ObjToString(res31["name"])] {
+											label3 = util.ObjToString(res31["name"])
+										}
+									}
+								}
+								label4 := util.ObjToString(v["label4"])
+
+								if label1 != "" {
+									label = label1
+								} else {
+									continue
+								}
+								if label2 != "" {
+									label = label + "-" + label2
+								}
+								if label3 != "" {
+									label = label + "-" + label3
+								}
+								if label4 != "" {
+									label = label + "-" + label4
+								}
+
+								if count%100 == 0 {
+									log.Println("current:", count, companyName, label)
+								}
+								update := map[string]interface{}{
+									"org_tags": &label,
+								}
+								// 更新clickhouse es
+								result := db.Model(&EntInfo{}).Where("company_name = ? ", companyName).Updates(update)
+								if result.Error != nil {
+									// 处理错误,例如打印错误信息
+									log.Println("更新数据出错:", result.Error, companyName)
+								}
+								////更新es
+								updateEsPool <- []map[string]interface{}{
+									{"_id": info.ID},
+									update,
+								}
+							}
+						}
+
+					}
+				}
+			}
+		}
+
+		// 如果查询结果为空,则退出循环
+		if len(entInfos) < batchSize {
+			break
+		}
+
+		log.Println("current page:", page)
+		page++
+
+	}
+
+	log.Println("迭代结束")
+
+	log.Println("1234444444")
+}
+
+// updateEsMethod 更新es
+func updateEsMethod() {
+	arru := make([][]map[string]interface{}, 200) //200条一组更新es
+	indexu := 0
+	for {
+		select {
+		case v := <-updateEsPool:
+			arru[indexu] = v
+			indexu++
+			if indexu == 200 {
+				updateEsSp <- true
+				go func(arru [][]map[string]interface{}) {
+					defer func() {
+						<-updateEsSp
+					}()
+					Esa.UpdateBulk(GF.Env.Esindex, arru...)
+					if GF.Esb.URL != "" {
+						Esb.UpdateBulk(GF.Env.Esindex, arru...)
+					}
+				}(arru)
+				arru = make([][]map[string]interface{}, 200)
+				indexu = 0
+			}
+		case <-time.After(1000 * time.Millisecond):
+			if indexu > 0 {
+				updateEsSp <- true
+				go func(arru [][]map[string]interface{}) {
+					defer func() {
+						<-updateEsSp
+					}()
+					Esa.UpdateBulk(GF.Env.Esindex, arru...)
+					if GF.Esb.URL != "" {
+						Esb.UpdateBulk(GF.Env.Esindex, arru...)
+					}
+				}(arru[:indexu])
+				arru = make([][]map[string]interface{}, 200)
+				indexu = 0
+			}
+		}
+	}
+}

+ 14 - 0
org_tags/org_test.go

@@ -0,0 +1,14 @@
+package main
+
+import (
+	"log"
+	"testing"
+)
+
+func TestZpName(t *testing.T) {
+	//sys := "根据投提供的行业标签名称,返回对应的国标行业分类一级名称,我提供的行业标签是:"+""
+	sys2 := `根据我提供的行业标签名称,返回对应的国标行业分类二级名称;按照JSON的格式返回,比如:{"name":"xxx"} 我提供的行业标签是:` + "建筑服务业"
+
+	res := ZpName(key, model, sys2)
+	log.Println(res)
+}

+ 882 - 0
org_tags/tools.go

@@ -0,0 +1,882 @@
+package main
+
+import (
+	"bytes"
+	"context"
+	"encoding/json"
+	"fmt"
+	zhipu "github.com/itcwc/go-zhipu/model_api"
+	"github.com/itcwc/go-zhipu/utils"
+	"github.com/olivere/elastic/v7"
+	"io/ioutil"
+	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
+	"log"
+	"math"
+	"net/http"
+	"reflect"
+	"regexp"
+	"sort"
+	"strconv"
+	"strings"
+	"time"
+	"unicode/utf8"
+)
+
+var REG *regexp.Regexp
+
+type RuleDFA struct {
+	Match       []DFA //包含的敏感词
+	MatchNum    []int //包含敏感词匹配个数
+	MisMatch    DFA   //不包含的敏感词
+	MisMatchNum int   //不包含敏感词匹配个数
+}
+
+type DFA struct {
+	Link map[string]interface{}
+}
+
+// DealRules 处理识别规则
+func DealRules(rules []string) (i_rule []interface{}) {
+	for _, r := range rules {
+		if strings.HasPrefix(r, "'") && strings.HasSuffix(r, "'") { //正则
+			rs := []rune(r)
+			ru := string(rs[1 : len(rs)-1])
+			rureg, err := regexp.Compile(ru)
+			if err != nil {
+				log.Println("error---rule:", r)
+				continue
+			}
+			i_rule = append(i_rule, []interface{}{rureg}...)
+		} else { //规则,加入到敏感词匹配
+			matchnum := 0
+			mismatchnum := 0
+			isnum1 := false
+			isnum2 := false
+			numArr := make([]int, 0)
+			ruleDFA := &RuleDFA{
+				Match:    []DFA{},
+				MisMatch: DFA{},
+			}
+			tmpArr := strings.Split(r, "^")
+			matchTmp := tmpArr[0]
+			ruleTextArr := REG.FindAllString(matchTmp, -1)
+			for _, match := range ruleTextArr {
+				matchnum, isnum1 = GetNum(match)
+				numArr = append(numArr, matchnum)
+				matchArr := GetRule(match, isnum1)
+				tmpDFA := DFA{
+					Link: make(map[string]interface{}),
+				}
+				tmpDFA.AddWord(matchArr...)
+				ruleDFA.Match = append(ruleDFA.Match, tmpDFA)
+			}
+			if len(tmpArr) == 2 {
+				mismatch := tmpArr[1]
+				mismatchnum, isnum2 = GetNum(mismatch)
+				mismatchArr := GetRule(mismatch, isnum2)
+				ruleDFA.MisMatch.AddWord(mismatchArr...)
+			}
+			ruleDFA.MatchNum = numArr
+			ruleDFA.MisMatchNum = mismatchnum
+			i_rule = append(i_rule, []interface{}{ruleDFA}...)
+		}
+	}
+	return
+}
+
+func (d *DFA) AddWord(keys ...string) {
+	d.AddWordAll(true, keys...)
+}
+
+func (d *DFA) AddWordAll(haskey bool, keys ...string) {
+	if d.Link == nil {
+		d.Link = make(map[string]interface{})
+	}
+	for _, key := range keys {
+		nowMap := &d.Link
+		for i := 0; i < len(key); i++ {
+			kc := key[i : i+1]
+			if v, ok := (*nowMap)[kc]; ok {
+				nowMap, _ = v.(*map[string]interface{})
+			} else {
+				newMap := map[string]interface{}{}
+				newMap["YN"] = "0"
+				(*nowMap)[kc] = &newMap
+				nowMap = &newMap
+			}
+			if i == len(key)-1 {
+				(*nowMap)["YN"] = "1"
+				if haskey {
+					(*nowMap)["K"] = key
+				}
+			}
+		}
+	}
+}
+
+func (d *DFA) CheckSensitiveWord(src string, n int) (bool, []string) {
+	res := make([]string, 0)
+	tmpMap := make(map[string]int)
+	for j := 0; j < len(src); j++ {
+		nowMap := &d.Link
+		for i := j; i < len(src); i++ {
+			word := src[i : i+1]
+			nowMap, _ = (*nowMap)[word].(*map[string]interface{})
+			if nowMap != nil { // 存在,则判断是否为最后一个
+				if "1" == util.ObjToString((*nowMap)["YN"]) {
+					s := util.ObjToString((*nowMap)["K"])
+					tmpMap[s] = 1
+					//nowMap = &d.Link //匹配到之后继续匹配后边的内容
+				}
+			} else {
+				//nowMap = &d.Link
+				break
+			}
+		}
+	}
+	if len(tmpMap) >= n {
+		for k, _ := range tmpMap {
+			res = append(res, k)
+		}
+		return true, res
+	}
+	return false, []string{}
+}
+
+// ObjArrToStringArr interface 数组转string 数组
+func ObjArrToStringArr(old []interface{}) []string {
+	defer func() {
+		if r := recover(); r != nil {
+			// 在此处添加错误处理逻辑,例如记录错误日志
+		}
+	}()
+	if old != nil {
+		new := make([]string, 0)
+		for _, v := range old {
+			if strValue, ok := v.(string); ok {
+				new = append(new, strValue)
+			} else {
+				// 在此处添加对非字符串类型值的处理逻辑,例如记录错误日志
+			}
+		}
+		return new
+	} else {
+		return nil
+	}
+}
+
+// GetRule 获取规则
+func GetRule(text string, isnum bool) (matchArr []string) {
+	if isnum { //最后一个不是数字
+		if strings.HasPrefix(text, "(") && strings.HasSuffix(text, ")") {
+			text = text[1 : len(text)-1]
+			matchArr = strings.Split(text, "|")
+		}
+	} else if strings.HasPrefix(text, "(") && !isnum {
+		text = text[1 : len(text)-2]
+		matchArr = strings.Split(text, "|")
+	}
+	return matchArr
+}
+
+// GetNum 获取匹配或不匹配的个数
+func GetNum(rule string) (int, bool) {
+	num := 1
+	isnum := strings.HasSuffix(rule, ")")
+	if !isnum { //是数字
+		s := []rune(rule)
+		last := string(s[len(s)-1:])
+		num = IntAll(last)
+	}
+	return num, isnum
+}
+
+func IntAll(num interface{}) int {
+	return IntAllDef(num, 0)
+}
+
+func IntAllDef(num interface{}, defaultNum int) int {
+	if i, ok := num.(int); ok {
+		return int(i)
+	} else if i0, ok0 := num.(int32); ok0 {
+		return int(i0)
+	} else if i1, ok1 := num.(float64); ok1 {
+		return int(i1)
+	} else if i2, ok2 := num.(int64); ok2 {
+		return int(i2)
+	} else if i3, ok3 := num.(float32); ok3 {
+		return int(i3)
+	} else if i4, ok4 := num.(string); ok4 {
+		in, _ := strconv.Atoi(i4)
+		return int(in)
+	} else if i5, ok5 := num.(int16); ok5 {
+		return int(i5)
+	} else if i6, ok6 := num.(int8); ok6 {
+		return int(i6)
+	} else {
+		return defaultNum
+	}
+}
+
+// TagDFAAnalyRules 单独的标签识别规则
+func TagDFAAnalyRules(text string, rules []interface{}) (res []string) {
+	defer util.Catch()
+	for _, r := range rules {
+		rDFA, b := r.(*RuleDFA)
+		//util.Debug(j, "规则===", b, rDFA.Match, rDFA.MatchNum, rDFA.MisMatch, rDFA.MisMatchNum)
+		if b { //规则DFA
+			//util.Debug("res========", res, len(rDFA.MatchNum) == len(rDFA.Match), len(rDFA.MatchNum))
+			if len(rDFA.MatchNum) == len(rDFA.Match) {
+				for i, matchnum := range rDFA.MatchNum {
+					if matchnum >= 1 {
+						btmp, restmp := rDFA.Match[i].CheckSensitiveWord(text, matchnum)
+						if !btmp { //逗号隔开的每条规则不匹配,继续匹配下一条
+							//log.Println("继续匹配")
+							break
+						}
+						res = append(res, restmp...)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// DFAAnalyRules DFA识别规则
+func DFAAnalyRules(text string, rules []interface{}) (bool, []string) {
+	var arr []string
+	//log.Println("len===", len(rules))
+	for _, r := range rules {
+		//log.Println("i--------------", i)
+		ruleReg, ok := r.(*regexp.Regexp)
+		if ok { //正则
+			//log.Println("正则===", ruleReg)
+			textArr := ruleReg.FindAllString(text, -1)
+			if len(textArr) > 0 {
+				regStr := []string{ruleReg.String()}
+				return true, regStr
+			}
+		} else {
+			rDFA, b := r.(*RuleDFA)
+			//log.Println(j, "规则===", b, rDFA.Match, rDFA.MatchNum, rDFA.MisMatch, rDFA.MisMatchNum)
+			if b { //规则DFA
+				//b1, b2 := false, false
+				b1, b2 := false, true
+				var res []string
+				//log.Println("res========", res, len(rDFA.MatchNum) == len(rDFA.Match), len(rDFA.MatchNum))
+				if len(rDFA.MatchNum) == len(rDFA.Match) {
+					for i, matchnum := range rDFA.MatchNum {
+						if matchnum >= 1 {
+							btmp, restmp := rDFA.Match[i].CheckSensitiveWord(text, matchnum)
+							//log.Println("btmp====", btmp, restmp)
+							if !btmp { //逗号隔开的每条规则不匹配,继续匹配下一条
+								//log.Println("继续匹配")
+								b2 = false
+								break
+							}
+							res = append(res, restmp...)
+						}
+					}
+				}
+				if !b2 {
+					continue
+				}
+				//走到这一步证明需要匹配的词正确个数满足要求,下面判断不需要匹配的词的情况
+				mismatchnum := rDFA.MisMatchNum
+				if mismatchnum >= 1 { //有排除词,排除词不应该出现在匹配的文本中
+					b1, _ = rDFA.MisMatch.CheckSensitiveWord(text, mismatchnum)
+				} else {
+					b1 = false
+				}
+				if !b1 { //不要匹配的词满足情况,跳出
+					return true, res
+				} else {
+					continue
+				}
+			}
+		}
+	}
+	return false, arr
+}
+
+// MergeLabelData 处理标记权重
+func MergeLabelData(labelDatas []LabelData) map[string][]LabelData {
+	result := make(map[string][]LabelData)
+
+	for _, data := range labelDatas {
+		// 检查是否已存在相同 Sfield 的数据
+		if existingDatas, ok := result[data.Sfield]; ok {
+			merged := false
+			for i, existingData := range existingDatas {
+				// 如果 Name 和 Sfield 都相同,合并 Weight
+				if existingData.Name == data.Name && existingData.Sfield == data.Sfield {
+					existingDatas[i].TotalWeight = round(existingData.TotalWeight+data.TotalWeight, 2)
+					merged = true
+					break
+				}
+			}
+			// 如果未合并,添加新数据
+			if !merged {
+				result[data.Sfield] = append(result[data.Sfield], data)
+			}
+		} else {
+			result[data.Sfield] = []LabelData{data}
+		}
+	}
+
+	return result
+}
+
+// 对浮点数进行四舍五入保留指定位数小数
+func round(num float64, decimalPlaces int) float64 {
+	var multiplier float64 = 1
+	for i := 0; i < decimalPlaces; i++ {
+		multiplier *= 10
+	}
+	return math.Round(num*multiplier) / multiplier
+}
+
+// UpdateIndexByID 根据 ID 更新索引
+func UpdateIndexByID(client *elastic.Client, indexName string, id string, updatedData map[string]interface{}) error {
+	// 执行更新操作
+	_, err := client.Update().
+		Index(indexName).
+		Id(id).
+		Doc(updatedData).
+		Do(context.Background())
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+// ZpAI 智普AI
+func ZpAI(apiKey, model, name string) (rest map[string]interface{}) {
+	expireAtTime := int64(1719803252) // token 过期时间
+	sys := "请根据我给出的公司名称,依据其单位性质、业务范围和单位职能,准确给出最符合的一个国标行业分类标签,分别给出大类、中类和小类。输出结果以JSON格式返回,格式如下:{\"label1\":\"大类\",\"label2\":\"中类\",\"label3\":\"小类\"}。我只要最匹配 的一个标签,不要返回多个字段;如果无法识别出类别,直接给我空字符串。按照以上要求输出,不要联想,不要无中生有,不要生成解释。单位名称是:"
+	text := fmt.Sprintf(sys, name)
+
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+	}
+	token, _ := utils.GenerateToken(apiKey, expireAtTime)
+	postResponse, err := zhipu.BeCommonModel(mssage, token)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI1 智普问答,附带业务范围
+func ZpAI1(apiKey, model, name string, businessScope string) (rest map[string]interface{}) {
+	expireAtTime := int64(1751339252) // token 过期时间
+	sys := `请根据我给出的公司名称,依据其单位性质、单位职能和业务范围,准确给出最符合的一个国标行业分类标签,分别给出一级标签、二级标签、三级标签和四级标签,结果以JSON格式返回,格式如下:{"label1":"制造业","label2":"食品制造业","label3":"罐头食品制造","label4":"蔬菜、水果罐头制造"}。我只要最匹配 的一个标签,不要返回多个字段;如果无法识别出类别,直接给我空字符串。按照以上要求输出,不要联想,不要无中生有,不要生成解释。单位名称是:`
+	text := sys + name
+
+	if businessScope != "" {
+		text = text + ";业务范围是:" + businessScope
+	}
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+	}
+	token, _ := utils.GenerateToken(apiKey, expireAtTime)
+	postResponse, err := zhipu.BeCommonModel(mssage, token)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI2 ZpAI2
+func ZpAI2(apiKey, model, text string) (rest map[string]interface{}) {
+	expireAtTime := int64(1751339252) // token 过期时间
+
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+	}
+	token, _ := utils.GenerateToken(apiKey, expireAtTime)
+	postResponse, err := zhipu.BeCommonModel(mssage, token)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI3 传参主营业务
+func ZpAI3(apiKey, model, name string, businessScope string) (rest map[string]interface{}) {
+	expireAtTime := int64(1751339252) // token 过期时间
+	sys := `请根据我给出的公司名称,依据其单位性质、单位职能和业务范围,准确给出最符合的二个国标行业分类标签,分别给出大类、中类和小类,并给出每一个的可靠性,可靠性用浮点数表示,比如:0.85,输出结果以JSON格式返回,格式如下:{
+  "result":[
+      {"label1":"制造业","label2":"金属制品业","label3":"金属结构制造","score":0.83},
+      {"label1":"制造业","label2":"金属制品业","label3":"工具制造","score":0.80}
+    ]
+};返回结果按照score 降序排序。我只要最匹配的二个国标行业标签,只需要返回对应的中文。如果无法识别出类别,直接给我空字符串。按照以上要求输出,不要联想,不要无中生有,不要生成解释。`
+
+	text := fmt.Sprintf("%s%s", sys, name)
+
+	if businessScope != "" {
+		text = text + ";主营业务是:" + businessScope
+	}
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+	}
+	token, _ := utils.GenerateToken(apiKey, expireAtTime)
+	postResponse, err := zhipu.BeCommonModel(mssage, token)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpAI4 传参主营业务
+func ZpAI4(apiKey, model, name string, businessScope string, names []string) (rest map[string]interface{}) {
+	expireAtTime := int64(1751339252) // token 过期时间
+	sys := `请根据我给出的公司名称,依据其单位性质、单位职能和业务范围,准确给出最符合的二个国标行业分类标签;分别给出一级标签、二级标签、三级标签和四级标签,并给出每一个的可靠性,可靠性用浮点数表示,比如:0.85,输出结果以JSON格式返回,格式如下:
+{
+  "result":[
+      {"label1":"制造业","label2":"通用设备制造业","label3":"通用零部件制造","label4":"机械零部件加工","score":0.83},
+      {"label1":"制造业","label2":"食品制造业","label3":"罐头食品制造","label4":"蔬菜、水果罐头制造","score":0.80}
+    ]
+};返回结果按照score 降序排序。我只要最匹配的二个国标行业标签,只需要返回对应的中文。如果无法识别出类别,直接给我空字符串。按照以上要求输出,不要联想,不要无中生有,不要生成解释。公司是:`
+
+	text := fmt.Sprintf("%s,%s", sys, name)
+	text = text + "请在我提供的国标行标签里返回,国标行业标签有:" + strings.Join(names, ",")
+
+	if businessScope != "" {
+		text = text + ";主营业务是:" + businessScope
+	}
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+	}
+	token, _ := utils.GenerateToken(apiKey, expireAtTime)
+	postResponse, err := zhipu.BeCommonModel(mssage, token)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+	return
+}
+
+// ZpName  根据国标名称,调用大模型,返回符合标准的国标行业分类名称
+func ZpName(apiKey, model, text string) (rest map[string]interface{}) {
+	expireAtTime := int64(1751339252) // token 过期时间
+	mssage := zhipu.PostParams{
+		Model: model,
+		Messages: []zhipu.Message{
+			{
+				Role:    "user", // 消息的角色信息 详见文档
+				Content: text,
+			},
+		},
+	}
+	token, _ := utils.GenerateToken(apiKey, expireAtTime)
+	postResponse, err := zhipu.BeCommonModel(mssage, token)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	if choices, ok := postResponse["choices"].([]interface{}); ok {
+		if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
+			if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
+				if content, ok4 := message["content"].(string); ok4 {
+					//rest = content
+					content = strings.ReplaceAll(content, "\n", "")
+					content = strings.ReplaceAll(content, "json", "")
+					content = strings.ReplaceAll(content, "`", "")
+					err = json.Unmarshal([]byte(content), &rest)
+					if err != nil {
+						log.Println("Unmarshal err", err, "content:", content)
+					}
+				}
+			}
+		}
+	}
+
+	return
+}
+
+func checkString(s string) bool {
+	for _, char := range s {
+		if ('a' <= char && char <= 'z') || ('A' <= char && char <= 'Z') || strings.ContainsAny(string(char), "12345678910") {
+			return true
+		}
+	}
+	return false
+}
+
+// extractMainBusiness 根据营业范围提取主营业务
+func extractMainBusiness(business string) (res string) {
+	// 清除开头的 "许可项目:" 或 "一般项目:"
+	if strings.HasPrefix(business, "许可项目:") {
+		business = strings.TrimPrefix(business, "许可项目:")
+	} else if strings.HasPrefix(business, "一般项目:") {
+		business = strings.TrimPrefix(business, "一般项目:")
+	}
+
+	if business == "" {
+		return ""
+	}
+
+	business = extractByDelimiter(business, "。", 1) + "。"
+	firstPunctuation := findFirstPunctuation(business)
+	switch firstPunctuation {
+	case "。":
+		res = extractByDelimiter(business, "。", 1)
+	case "、":
+		secondPunctuation := findSecondPunctuation(business)
+		if secondPunctuation == "、" {
+			if strings.Count(business, ",") > strings.Count(business, ";") {
+				res = extractByDelimiter(business, ",", 2)
+			} else {
+				res = extractByDelimiter(business, ";", 2)
+			}
+		} else if secondPunctuation == ";" {
+			res = extractByDelimiter(business, ";", 2)
+		} else if secondPunctuation == "。" {
+			res = extractByDelimiter(business, "。", 1)
+		} else {
+			res = extractByDelimiter(business, ",", 2)
+		}
+	case ",":
+		res = extractByDelimiter(business, ",", 2)
+	case ";":
+		res = extractByDelimiter(business, ";", 2)
+	default:
+		res = business
+	}
+	if utf8.RuneCountInString(res) > 50 {
+		r := []rune(res)
+		res = string(r[:50])
+	}
+	return
+}
+
+// extractByDelimiter 根据指定的分隔符和数量提取字符串
+func extractByDelimiter(s, delimiter string, count int) string {
+	parts := strings.Split(s, delimiter)
+	if len(parts) > count {
+		return strings.Join(parts[:count], delimiter)
+	}
+	return s
+}
+
+// findFirstPunctuation 查找第一个标点符号
+func findFirstPunctuation(s string) string {
+	for _, r := range s {
+		if strings.ContainsRune("。、,;", r) {
+			return string(r)
+		}
+	}
+	return ""
+}
+
+// findSecondPunctuation 查找第二个标点符号
+func findSecondPunctuation(s string) string {
+	firstPunct := findFirstPunctuation(s)
+	if firstPunct == "" {
+		return ""
+	}
+	return findFirstPunctuation(s[strings.Index(s, firstPunct)+1:])
+}
+
+// structToMap 结构体转map
+func structToMap(obj interface{}) map[string]interface{} {
+	result := make(map[string]interface{})
+	v := reflect.ValueOf(obj)
+	t := reflect.TypeOf(obj)
+
+	// Ensure the input is a struct
+	if t.Kind() == reflect.Ptr {
+		t = t.Elem()
+		v = v.Elem()
+	}
+
+	if t.Kind() != reflect.Struct {
+		return nil
+	}
+
+	for i := 0; i < t.NumField(); i++ {
+		field := t.Field(i)
+		value := v.Field(i)
+
+		// Use the JSON tag if available
+		tag := field.Tag.Get("json")
+		if tag == "" {
+			tag = field.Name
+		}
+
+		result[tag] = value.Interface()
+	}
+
+	return result
+}
+
+// HTTPRequest 封装 HTTP 请求并处理请求和响应为 map 类型
+func HTTPRequest(method, url string, headers map[string]string, body map[string]interface{}) (map[string]interface{}, error) {
+	// 创建 HTTP 客户端
+	client := &http.Client{
+		Timeout: 10 * time.Second, // 设置超时时间
+	}
+
+	// 将请求体转换为 JSON 格式
+	jsonBody, err := json.Marshal(body)
+	if err != nil {
+		return nil, fmt.Errorf("请求体序列化失败: %v", err)
+	}
+
+	// 创建 HTTP 请求
+	req, err := http.NewRequest(method, url, bytes.NewBuffer(jsonBody))
+	if err != nil {
+		return nil, fmt.Errorf("创建请求失败: %v", err)
+	}
+
+	// 设置请求头
+	for key, value := range headers {
+		req.Header.Set(key, value)
+	}
+
+	// 发送请求
+	resp, err := client.Do(req)
+	if err != nil {
+		return nil, fmt.Errorf("请求发送失败: %v", err)
+	}
+	defer resp.Body.Close()
+
+	// 读取响应体
+	respBody, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return nil, fmt.Errorf("读取响应体失败: %v", err)
+	}
+
+	// 解析响应体为 map
+	var result map[string]interface{}
+	err = json.Unmarshal(respBody, &result)
+	if err != nil {
+		return nil, fmt.Errorf("解析响应体失败: %v", err)
+	}
+
+	// 返回响应的 map
+	return result, nil
+}
+
+// removeLastElement 去除最后一个元素
+func removeLastElement(s string) string {
+	parts := strings.Split(s, "-")
+	if len(parts) > 1 {
+		return strings.Join(parts[:len(parts)-1], "-")
+	}
+	return s
+}
+
+// intersectSlices 求字符串数组交集
+func intersectSlices(slice1, slice2 []string) []string {
+	m := make(map[string]bool)
+	result := []string{}
+
+	for _, item := range slice1 {
+		m[item] = true
+	}
+
+	for _, item := range slice2 {
+		if m[item] {
+			result = append(result, item)
+		}
+	}
+
+	return result
+}
+
+// findIntersection 针对拓扑标签,名称和营业范围求交集
+func findIntersection(data map[string]interface{}) []string {
+	topLabelsName, ok1 := data["top_labels_name"].([]interface{})
+	topLabelsBusinessScope, ok2 := data["top_labels_businessScope"].([]interface{})
+	if !ok1 || !ok2 {
+		return []string{}
+	}
+
+	if len(topLabelsName) == 1 || len(topLabelsBusinessScope) == 1 {
+		return []string{}
+	}
+
+	var processedName, processedScope []string
+	for _, name := range topLabelsName {
+		if nameStr, ok := name.(string); ok {
+			processedName = append(processedName, removeLastElement(nameStr))
+		}
+	}
+
+	for _, scope := range topLabelsBusinessScope {
+		if scopeStr, ok := scope.(string); ok {
+			processedScope = append(processedScope, scopeStr)
+		}
+	}
+
+	return intersectSlices(processedName, processedScope)
+}
+
+// removeDuplicates 去除重复字符串
+func removeDuplicates(arr []string) []string {
+	uniqueMap := make(map[string]bool)
+	var result []string
+	for _, str := range arr {
+		if !uniqueMap[str] {
+			uniqueMap[str] = true
+			result = append(result, str)
+		}
+	}
+	return result
+}
+
+// IsInStringArray 判断数组中是否存在字符串
+func IsInStringArray(str string, arr []string) bool {
+	// 先对字符串数组进行排序
+	sort.Strings(arr)
+	// 使用二分查找算法查找字符串
+	pos := sort.SearchStrings(arr, str)
+	// 如果找到了则返回 true,否则返回 false
+	return pos < len(arr) && arr[pos] == str
+}
+
+// findSubClassifications 根据分类名称查找下级分类
+func findSubClassifications(classifications []IndustryClassification, classificationName string) ([]IndustryClassification, bool) {
+	for _, classification := range classifications {
+		if classification.Name == classificationName {
+			return classification.Children, true
+		}
+		// 递归查找子分类
+		children, found := findSubClassifications(classification.Children, classificationName)
+		if found {
+			return children, true
+		}
+	}
+	return nil, false
+}
+
+// 递归函数,将分类数据填充到 map 中,返回所有的name
+func populateClassificationMap(classifications []IndustryClassification, classificationMap map[string]bool) (names []string) {
+	for _, classification := range classifications {
+		classificationMap[classification.Name] = true
+		names = append(names, classification.Name)
+		if len(classification.Children) > 0 {
+			populateClassificationMap(classification.Children, classificationMap)
+		}
+	}
+	return
+}

+ 10447 - 0
org_tags/国民经济行业分类_2017.json

@@ -0,0 +1,10447 @@
+[
+    {
+        "code": "A",
+        "name": "农、林、牧、渔业",
+        "children": [
+            {
+                "code": "01",
+                "name": "农业",
+                "children": [
+                    {
+                        "code": "011",
+                        "name": "谷物种植",
+                        "children": [
+                            {
+                                "code": "0111",
+                                "name": "稻谷种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0112",
+                                "name": "小麦种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0113",
+                                "name": "玉米种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0119",
+                                "name": "其他谷物种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "012",
+                        "name": "豆类、油料和薯类种植",
+                        "children": [
+                            {
+                                "code": "0121",
+                                "name": "豆类种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0122",
+                                "name": "油料种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0123",
+                                "name": "薯类种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "013",
+                        "name": "棉、麻、糖、烟草种植",
+                        "children": [
+                            {
+                                "code": "0131",
+                                "name": "棉花种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0132",
+                                "name": "麻类种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0133",
+                                "name": "糖料种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0134",
+                                "name": "烟草种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "014",
+                        "name": "蔬菜、食用菌及园艺作物种植",
+                        "children": [
+                            {
+                                "code": "0141",
+                                "name": "蔬菜种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0142",
+                                "name": "食用菌种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0143",
+                                "name": "花卉种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0149",
+                                "name": "其他园艺作物种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "015",
+                        "name": "水果种植",
+                        "children": [
+                            {
+                                "code": "0151",
+                                "name": "仁果类和核果类水果种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0152",
+                                "name": "葡萄种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0153",
+                                "name": "柑橘类种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0154",
+                                "name": "香蕉等亚热带水果种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0159",
+                                "name": "其他水果种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "016",
+                        "name": "坚果、含油果、香料和饮料作物种植",
+                        "children": [
+                            {
+                                "code": "0161",
+                                "name": "坚果种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0162",
+                                "name": "含油果种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0163",
+                                "name": "香料作物种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0164",
+                                "name": "茶叶种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0169",
+                                "name": "其他饮料作物种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "017",
+                        "name": "中药材种植",
+                        "children": [
+                            {
+                                "code": "0171",
+                                "name": "中草药种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0179",
+                                "name": "其他中药材种植",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "018",
+                        "name": "草种植及割草",
+                        "children": [
+                            {
+                                "code": "0181",
+                                "name": "草种植",
+                                "children": []
+                            },
+                            {
+                                "code": "0182",
+                                "name": "天然草原割草",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "019",
+                        "name": "其他农业",
+                        "children": [
+                            {
+                                "code": "0190",
+                                "name": "其他农业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "02",
+                "name": "林业",
+                "children": [
+                    {
+                        "code": "021",
+                        "name": "林木育种和育苗",
+                        "children": [
+                            {
+                                "code": "0211",
+                                "name": "林木育种",
+                                "children": []
+                            },
+                            {
+                                "code": "0212",
+                                "name": "林木育苗",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "022",
+                        "name": "造林和更新",
+                        "children": [
+                            {
+                                "code": "0220",
+                                "name": "造林和更新",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "023",
+                        "name": "森林经营、管护和改培",
+                        "children": [
+                            {
+                                "code": "0231",
+                                "name": "森林经营和管护",
+                                "children": []
+                            },
+                            {
+                                "code": "0232",
+                                "name": "森林改培",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "024",
+                        "name": "木材和竹材采运",
+                        "children": [
+                            {
+                                "code": "0241",
+                                "name": "木材采运",
+                                "children": []
+                            },
+                            {
+                                "code": "0242",
+                                "name": "竹材采运",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "025",
+                        "name": "林产品采集",
+                        "children": [
+                            {
+                                "code": "0251",
+                                "name": "木竹材林产品采集",
+                                "children": []
+                            },
+                            {
+                                "code": "0252",
+                                "name": "非木竹材林产品采集",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "03",
+                "name": "畜牧业",
+                "children": [
+                    {
+                        "code": "031",
+                        "name": "牲畜饲养",
+                        "children": [
+                            {
+                                "code": "0311",
+                                "name": "牛的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0312",
+                                "name": "马的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0313",
+                                "name": "猪的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0314",
+                                "name": "羊的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0315",
+                                "name": "骆驼饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0319",
+                                "name": "其他牲畜饲养",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "032",
+                        "name": "家禽饲养",
+                        "children": [
+                            {
+                                "code": "0321",
+                                "name": "鸡的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0322",
+                                "name": "鸭的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0323",
+                                "name": "鹅的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0329",
+                                "name": "其他家禽饲养",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "033",
+                        "name": "狩猎和捕捉动物",
+                        "children": [
+                            {
+                                "code": "0330",
+                                "name": "狩猎和捕捉动物",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "039",
+                        "name": "其他畜牧业",
+                        "children": [
+                            {
+                                "code": "0391",
+                                "name": "兔的饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0392",
+                                "name": "蜜蜂饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "0399",
+                                "name": "其他未列明畜牧业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "04",
+                "name": "渔业",
+                "children": [
+                    {
+                        "code": "041",
+                        "name": "水产养殖",
+                        "children": [
+                            {
+                                "code": "0411",
+                                "name": "海水养殖",
+                                "children": []
+                            },
+                            {
+                                "code": "0412",
+                                "name": "内陆养殖",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "042",
+                        "name": "水产捕捞",
+                        "children": [
+                            {
+                                "code": "0421",
+                                "name": "海水捕捞",
+                                "children": []
+                            },
+                            {
+                                "code": "0422",
+                                "name": "内陆捕捞",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "05",
+                "name": "农、林、牧、渔专业及辅助性活动",
+                "children": [
+                    {
+                        "code": "051",
+                        "name": "农业专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "0511",
+                                "name": "种子种苗培育活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0512",
+                                "name": "农业机械活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0513",
+                                "name": "灌溉活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0514",
+                                "name": "农产品初加工活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0515",
+                                "name": "农作物病虫害防治活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0519",
+                                "name": "其他农业专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "052",
+                        "name": "林业专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "0521",
+                                "name": "林业有害生物防治活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0522",
+                                "name": "森林防火活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0523",
+                                "name": "林产品初级加工活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0529",
+                                "name": "其他林业专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "053",
+                        "name": "畜牧专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "0531",
+                                "name": "畜牧良种繁殖活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0532",
+                                "name": "畜禽粪污处理活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0539",
+                                "name": "其他畜牧专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "054",
+                        "name": "渔业专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "0541",
+                                "name": "鱼苗及鱼种场活动",
+                                "children": []
+                            },
+                            {
+                                "code": "0549",
+                                "name": "其他渔业专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "B",
+        "name": "采矿业",
+        "children": [
+            {
+                "code": "06",
+                "name": "煤炭开采和洗选业",
+                "children": [
+                    {
+                        "code": "061",
+                        "name": "烟煤和无烟煤开采洗选",
+                        "children": [
+                            {
+                                "code": "0610",
+                                "name": "烟煤和无烟煤开采洗选",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "062",
+                        "name": "褐煤开采洗选",
+                        "children": [
+                            {
+                                "code": "0620",
+                                "name": "褐煤开采洗选",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "069",
+                        "name": "其他煤炭采选",
+                        "children": [
+                            {
+                                "code": "0690",
+                                "name": "其他煤炭采选",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "07",
+                "name": "石油和天然气开采业",
+                "children": [
+                    {
+                        "code": "071",
+                        "name": "石油开采",
+                        "children": [
+                            {
+                                "code": "0711",
+                                "name": "陆地石油开采",
+                                "children": []
+                            },
+                            {
+                                "code": "0712",
+                                "name": "海洋石油开采",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "072",
+                        "name": "天然气开采",
+                        "children": [
+                            {
+                                "code": "0721",
+                                "name": "陆地天然气开采",
+                                "children": []
+                            },
+                            {
+                                "code": "0722",
+                                "name": "海洋天然气及可燃冰开采",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "08",
+                "name": "黑色金属矿采选业",
+                "children": [
+                    {
+                        "code": "081",
+                        "name": "铁矿采选",
+                        "children": [
+                            {
+                                "code": "0810",
+                                "name": "铁矿采选",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "082",
+                        "name": "锰矿、铬矿采选",
+                        "children": [
+                            {
+                                "code": "0820",
+                                "name": "锰矿、铬矿采选",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "089",
+                        "name": "其他黑色金属矿采选",
+                        "children": [
+                            {
+                                "code": "0890",
+                                "name": "其他黑色金属矿采选",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "09",
+                "name": "有色金属矿采选业",
+                "children": [
+                    {
+                        "code": "091",
+                        "name": "常用有色金属矿采选",
+                        "children": [
+                            {
+                                "code": "0911",
+                                "name": "铜矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0912",
+                                "name": "铅锌矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0913",
+                                "name": "镍钴矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0914",
+                                "name": "锡矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0915",
+                                "name": "锑矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0916",
+                                "name": "铝矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0917",
+                                "name": "镁矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0919",
+                                "name": "其他常用有色金属矿采选",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "092",
+                        "name": "贵金属矿采选",
+                        "children": [
+                            {
+                                "code": "0921",
+                                "name": "金矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0922",
+                                "name": "银矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0929",
+                                "name": "其他贵金属矿采选",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "093",
+                        "name": "稀有稀土金属矿采选",
+                        "children": [
+                            {
+                                "code": "0931",
+                                "name": "钨钼矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0932",
+                                "name": "稀土金属矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0933",
+                                "name": "放射性金属矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "0939",
+                                "name": "其他稀有金属矿采选",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "10",
+                "name": "非金属矿采选业",
+                "children": [
+                    {
+                        "code": "101",
+                        "name": "土砂石开采",
+                        "children": [
+                            {
+                                "code": "1011",
+                                "name": "石灰石、石膏开采",
+                                "children": []
+                            },
+                            {
+                                "code": "1012",
+                                "name": "建筑装饰用石开采",
+                                "children": []
+                            },
+                            {
+                                "code": "1013",
+                                "name": "耐火土石开采",
+                                "children": []
+                            },
+                            {
+                                "code": "1019",
+                                "name": "粘土及其他土砂石开采",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "102",
+                        "name": "化学矿开采",
+                        "children": [
+                            {
+                                "code": "1020",
+                                "name": "化学矿开采",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "103",
+                        "name": "采盐",
+                        "children": [
+                            {
+                                "code": "1030",
+                                "name": "采盐",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "109",
+                        "name": "石棉及其他非金属矿采选",
+                        "children": [
+                            {
+                                "code": "1091",
+                                "name": "石棉、云母矿采选",
+                                "children": []
+                            },
+                            {
+                                "code": "1092",
+                                "name": "石墨、滑石采选",
+                                "children": []
+                            },
+                            {
+                                "code": "1093",
+                                "name": "宝石、玉石采选",
+                                "children": []
+                            },
+                            {
+                                "code": "1099",
+                                "name": "其他未列明非金属矿采选",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "11",
+                "name": "开采专业及辅助性活动",
+                "children": [
+                    {
+                        "code": "111",
+                        "name": "煤炭开采和洗选专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "1110",
+                                "name": "煤炭开采和洗选专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "112",
+                        "name": "石油和天然气开采专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "1120",
+                                "name": "石油和天然气开采专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "119",
+                        "name": "其他开采专业及辅助性活动",
+                        "children": [
+                            {
+                                "code": "1190",
+                                "name": "其他开采专业及辅助性活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "12",
+                "name": "其他采矿业",
+                "children": [
+                    {
+                        "code": "120",
+                        "name": "其他采矿业",
+                        "children": [
+                            {
+                                "code": "1200",
+                                "name": "其他采矿业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "C",
+        "name": "制造业",
+        "children": [
+            {
+                "code": "13",
+                "name": "农副食品加工业",
+                "children": [
+                    {
+                        "code": "131",
+                        "name": "谷物磨制",
+                        "children": [
+                            {
+                                "code": "1311",
+                                "name": "稻谷加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1312",
+                                "name": "小麦加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1313",
+                                "name": "玉米加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1314",
+                                "name": "杂粮加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1319",
+                                "name": "其他谷物磨制",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "132",
+                        "name": "饲料加工",
+                        "children": [
+                            {
+                                "code": "1321",
+                                "name": "宠物饲料加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1329",
+                                "name": "其他饲料加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "133",
+                        "name": "植物油加工",
+                        "children": [
+                            {
+                                "code": "1331",
+                                "name": "食用植物油加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1332",
+                                "name": "非食用植物油加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "134",
+                        "name": "制糖业",
+                        "children": [
+                            {
+                                "code": "1340",
+                                "name": "制糖业",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "135",
+                        "name": "屠宰及肉类加工",
+                        "children": [
+                            {
+                                "code": "1351",
+                                "name": "牲畜屠宰",
+                                "children": []
+                            },
+                            {
+                                "code": "1352",
+                                "name": "禽类屠宰",
+                                "children": []
+                            },
+                            {
+                                "code": "1353",
+                                "name": "肉制品及副产品加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "136",
+                        "name": "水产品加工",
+                        "children": [
+                            {
+                                "code": "1361",
+                                "name": "水产品冷冻加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1362",
+                                "name": "鱼糜制品及水产品干腌制加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1363",
+                                "name": "鱼油提取及制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1369",
+                                "name": "其他水产品加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "137",
+                        "name": "蔬菜、菌类、水果和坚果加工",
+                        "children": [
+                            {
+                                "code": "1371",
+                                "name": "蔬菜加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1372",
+                                "name": "食用菌加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1373",
+                                "name": "水果和坚果加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "139",
+                        "name": "其他农副食品加工",
+                        "children": [
+                            {
+                                "code": "1391",
+                                "name": "淀粉及淀粉制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1392",
+                                "name": "豆制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1393",
+                                "name": "蛋品加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1399",
+                                "name": "其他未列明农副食品加工",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "14",
+                "name": "食品制造业",
+                "children": [
+                    {
+                        "code": "141",
+                        "name": "焙烤食品制造",
+                        "children": [
+                            {
+                                "code": "1411",
+                                "name": "糕点、面包制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1419",
+                                "name": "饼干及其他焙烤食品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "142",
+                        "name": "糖果、巧克力及蜜饯制造",
+                        "children": [
+                            {
+                                "code": "1421",
+                                "name": "糖果、巧克力制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1422",
+                                "name": "蜜饯制作",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "143",
+                        "name": "方便食品制造",
+                        "children": [
+                            {
+                                "code": "1431",
+                                "name": "米、面制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1432",
+                                "name": "速冻食品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1433",
+                                "name": "方便面制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1439",
+                                "name": "其他方便食品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "144",
+                        "name": "乳制品制造",
+                        "children": [
+                            {
+                                "code": "1441",
+                                "name": "液体乳制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1442",
+                                "name": "乳粉制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1449",
+                                "name": "其他乳制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "145",
+                        "name": "罐头食品制造",
+                        "children": [
+                            {
+                                "code": "1451",
+                                "name": "肉、禽类罐头制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1452",
+                                "name": "水产品罐头制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1453",
+                                "name": "蔬菜、水果罐头制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1459",
+                                "name": "其他罐头食品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "146",
+                        "name": "调味品、发酵制品制造",
+                        "children": [
+                            {
+                                "code": "1461",
+                                "name": "味精制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1462",
+                                "name": "酱油、食醋及类似制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1469",
+                                "name": "其他调味品、发酵制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "149",
+                        "name": "其他食品制造",
+                        "children": [
+                            {
+                                "code": "1491",
+                                "name": "营养食品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1492",
+                                "name": "保健食品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1493",
+                                "name": "冷冻饮品及食用冰制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1494",
+                                "name": "盐加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1495",
+                                "name": "食品及饲料添加剂制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1499",
+                                "name": "其他未列明食品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "15",
+                "name": "酒、饮料和精制茶制造业",
+                "children": [
+                    {
+                        "code": "151",
+                        "name": "酒的制造",
+                        "children": [
+                            {
+                                "code": "1511",
+                                "name": "酒精制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1512",
+                                "name": "白酒制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1513",
+                                "name": "啤酒制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1514",
+                                "name": "黄酒制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1515",
+                                "name": "葡萄酒制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1519",
+                                "name": "其他酒制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "152",
+                        "name": "饮料制造",
+                        "children": [
+                            {
+                                "code": "1521",
+                                "name": "碳酸饮料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1522",
+                                "name": "瓶(罐)装饮用水制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1523",
+                                "name": "果菜汁及果菜汁饮料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1524",
+                                "name": "含乳饮料和植物蛋白饮料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1525",
+                                "name": "固体饮料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1529",
+                                "name": "茶饮料及其他饮料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "153",
+                        "name": "精制茶加工",
+                        "children": [
+                            {
+                                "code": "1530",
+                                "name": "精制茶加工",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "16",
+                "name": "烟草制品业",
+                "children": [
+                    {
+                        "code": "161",
+                        "name": "烟叶复烤",
+                        "children": [
+                            {
+                                "code": "1610",
+                                "name": "烟叶复烤",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "162",
+                        "name": "卷烟制造",
+                        "children": [
+                            {
+                                "code": "1620",
+                                "name": "卷烟制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "169",
+                        "name": "其他烟草制品制造",
+                        "children": [
+                            {
+                                "code": "1690",
+                                "name": "其他烟草制品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "17",
+                "name": "纺织业",
+                "children": [
+                    {
+                        "code": "171",
+                        "name": "棉纺织及印染精加工",
+                        "children": [
+                            {
+                                "code": "1711",
+                                "name": "棉纺纱加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1712",
+                                "name": "棉织造加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1713",
+                                "name": "棉印染精加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "172",
+                        "name": "毛纺织及染整精加工",
+                        "children": [
+                            {
+                                "code": "1721",
+                                "name": "毛条和毛纱线加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1722",
+                                "name": "毛织造加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1723",
+                                "name": "毛染整精加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "173",
+                        "name": "麻纺织及染整精加工",
+                        "children": [
+                            {
+                                "code": "1731",
+                                "name": "麻纤维纺前加工和纺纱",
+                                "children": []
+                            },
+                            {
+                                "code": "1732",
+                                "name": "麻织造加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1733",
+                                "name": "麻染整精加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "174",
+                        "name": "丝绢纺织及印染精加工",
+                        "children": [
+                            {
+                                "code": "1741",
+                                "name": "缫丝加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1742",
+                                "name": "绢纺和丝织加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1743",
+                                "name": "丝印染精加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "175",
+                        "name": "化纤织造及印染精加工",
+                        "children": [
+                            {
+                                "code": "1751",
+                                "name": "化纤织造加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1752",
+                                "name": "化纤织物染整精加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "176",
+                        "name": "针织或钩针编织物及其制品制造",
+                        "children": [
+                            {
+                                "code": "1761",
+                                "name": "针织或钩针编织物织造",
+                                "children": []
+                            },
+                            {
+                                "code": "1762",
+                                "name": "针织或钩针编织物印染精加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1763",
+                                "name": "针织或钩针编织品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "177",
+                        "name": "家用纺织制成品制造",
+                        "children": [
+                            {
+                                "code": "1771",
+                                "name": "床上用品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1772",
+                                "name": "毛巾类制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1773",
+                                "name": "窗帘、布艺类产品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1779",
+                                "name": "其他家用纺织制成品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "178",
+                        "name": "产业用纺织制成品制造",
+                        "children": [
+                            {
+                                "code": "1781",
+                                "name": "非织造布制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1782",
+                                "name": "绳、索、缆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1783",
+                                "name": "纺织带和帘子布制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1784",
+                                "name": "篷、帆布制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1789",
+                                "name": "其他产业用纺织制成品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "18",
+                "name": "纺织服装、服饰业",
+                "children": [
+                    {
+                        "code": "181",
+                        "name": "机织服装制造",
+                        "children": [
+                            {
+                                "code": "1811",
+                                "name": "运动机织服装制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1819",
+                                "name": "其他机织服装制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "182",
+                        "name": "针织或钩针编织服装制造",
+                        "children": [
+                            {
+                                "code": "1821",
+                                "name": "运动休闲针织服装制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1829",
+                                "name": "其他针织或钩针编织服装制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "183",
+                        "name": "服饰制造",
+                        "children": [
+                            {
+                                "code": "1830",
+                                "name": "服饰制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "19",
+                "name": "皮革、毛皮、羽毛及其制品和制鞋业",
+                "children": [
+                    {
+                        "code": "191",
+                        "name": "皮革鞣制加工",
+                        "children": [
+                            {
+                                "code": "1910",
+                                "name": "皮革鞣制加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "192",
+                        "name": "皮革制品制造",
+                        "children": [
+                            {
+                                "code": "1921",
+                                "name": "皮革服装制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1922",
+                                "name": "皮箱、包(袋)制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1923",
+                                "name": "皮手套及皮装饰制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1929",
+                                "name": "其他皮革制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "193",
+                        "name": "毛皮鞣制及制品加工",
+                        "children": [
+                            {
+                                "code": "1931",
+                                "name": "毛皮鞣制加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1932",
+                                "name": "毛皮服装加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1939",
+                                "name": "其他毛皮制品加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "194",
+                        "name": "羽毛(绒)加工及制品制造",
+                        "children": [
+                            {
+                                "code": "1941",
+                                "name": "羽毛(绒)加工",
+                                "children": []
+                            },
+                            {
+                                "code": "1942",
+                                "name": "羽毛(绒)制品加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "195",
+                        "name": "制鞋业",
+                        "children": [
+                            {
+                                "code": "1951",
+                                "name": "纺织面料鞋制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1952",
+                                "name": "皮鞋制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1953",
+                                "name": "塑料鞋制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1954",
+                                "name": "橡胶鞋制造",
+                                "children": []
+                            },
+                            {
+                                "code": "1959",
+                                "name": "其他制鞋业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "20",
+                "name": "木材加工和木、竹、藤、棕、草制品业",
+                "children": [
+                    {
+                        "code": "201",
+                        "name": "木材加工",
+                        "children": [
+                            {
+                                "code": "2011",
+                                "name": "锯材加工",
+                                "children": []
+                            },
+                            {
+                                "code": "2012",
+                                "name": "木片加工",
+                                "children": []
+                            },
+                            {
+                                "code": "2013",
+                                "name": "单板加工",
+                                "children": []
+                            },
+                            {
+                                "code": "2019",
+                                "name": "其他木材加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "202",
+                        "name": "人造板制造",
+                        "children": [
+                            {
+                                "code": "2021",
+                                "name": "胶合板制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2022",
+                                "name": "纤维板制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2023",
+                                "name": "刨花板制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2029",
+                                "name": "其他人造板制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "203",
+                        "name": "木质制品制造",
+                        "children": [
+                            {
+                                "code": "2031",
+                                "name": "建筑用木料及木材组件加工",
+                                "children": []
+                            },
+                            {
+                                "code": "2032",
+                                "name": "木门窗制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2033",
+                                "name": "木楼梯制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2034",
+                                "name": "木地板制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2035",
+                                "name": "木制容器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2039",
+                                "name": "软木制品及其他木制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "204",
+                        "name": "竹、藤、棕、草等制品制造",
+                        "children": [
+                            {
+                                "code": "2041",
+                                "name": "竹制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2042",
+                                "name": "藤制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2043",
+                                "name": "棕制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2049",
+                                "name": "草及其他制品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "21",
+                "name": "家具制造业",
+                "children": [
+                    {
+                        "code": "211",
+                        "name": "木质家具制造",
+                        "children": [
+                            {
+                                "code": "2110",
+                                "name": "木质家具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "212",
+                        "name": "竹、藤家具制造",
+                        "children": [
+                            {
+                                "code": "2120",
+                                "name": "竹、藤家具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "213",
+                        "name": "金属家具制造",
+                        "children": [
+                            {
+                                "code": "2130",
+                                "name": "金属家具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "214",
+                        "name": "塑料家具制造",
+                        "children": [
+                            {
+                                "code": "2140",
+                                "name": "塑料家具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "219",
+                        "name": "其他家具制造",
+                        "children": [
+                            {
+                                "code": "2190",
+                                "name": "其他家具制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "22",
+                "name": "造纸和纸制品业",
+                "children": [
+                    {
+                        "code": "221",
+                        "name": "纸浆制造",
+                        "children": [
+                            {
+                                "code": "2211",
+                                "name": "木竹浆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2212",
+                                "name": "非木竹浆制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "222",
+                        "name": "造纸",
+                        "children": [
+                            {
+                                "code": "2221",
+                                "name": "机制纸及纸板制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2222",
+                                "name": "手工纸制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2223",
+                                "name": "加工纸制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "223",
+                        "name": "纸制品制造",
+                        "children": [
+                            {
+                                "code": "2231",
+                                "name": "纸和纸板容器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2239",
+                                "name": "其他纸制品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "23",
+                "name": "印刷和记录媒介复制业",
+                "children": [
+                    {
+                        "code": "231",
+                        "name": "印刷",
+                        "children": [
+                            {
+                                "code": "2311",
+                                "name": "书、报刊印刷",
+                                "children": []
+                            },
+                            {
+                                "code": "2312",
+                                "name": "本册印制",
+                                "children": []
+                            },
+                            {
+                                "code": "2319",
+                                "name": "包装装潢及其他印刷",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "232",
+                        "name": "装订及印刷相关服务",
+                        "children": [
+                            {
+                                "code": "2320",
+                                "name": "装订及印刷相关服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "233",
+                        "name": "记录媒介复制",
+                        "children": [
+                            {
+                                "code": "2330",
+                                "name": "记录媒介复制",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "24",
+                "name": "文教、工美、体育和娱乐用品制造业",
+                "children": [
+                    {
+                        "code": "241",
+                        "name": "文教办公用品制造",
+                        "children": [
+                            {
+                                "code": "2411",
+                                "name": "文具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2412",
+                                "name": "笔的制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2413",
+                                "name": "教学用模型及教具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2414",
+                                "name": "墨水、墨汁制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2419",
+                                "name": "其他文教办公用品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "242",
+                        "name": "乐器制造",
+                        "children": [
+                            {
+                                "code": "2421",
+                                "name": "中乐器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2422",
+                                "name": "西乐器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2423",
+                                "name": "电子乐器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2429",
+                                "name": "其他乐器及零件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "243",
+                        "name": "工艺美术及礼仪用品制造",
+                        "children": [
+                            {
+                                "code": "2431",
+                                "name": "雕塑工艺品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2432",
+                                "name": "金属工艺品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2433",
+                                "name": "漆器工艺品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2434",
+                                "name": "花画工艺品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2435",
+                                "name": "天然植物纤维编织工艺品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2436",
+                                "name": "抽纱刺绣工艺品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2437",
+                                "name": "地毯、挂毯制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2438",
+                                "name": "珠宝首饰及有关物品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2439",
+                                "name": "其他工艺美术及礼仪用品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "244",
+                        "name": "体育用品制造",
+                        "children": [
+                            {
+                                "code": "2441",
+                                "name": "球类制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2442",
+                                "name": "专项运动器材及配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2443",
+                                "name": "健身器材制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2444",
+                                "name": "运动防护用具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2449",
+                                "name": "其他体育用品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "245",
+                        "name": "玩具制造",
+                        "children": [
+                            {
+                                "code": "2451",
+                                "name": "电玩具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2452",
+                                "name": "塑胶玩具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2453",
+                                "name": "金属玩具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2454",
+                                "name": "弹射玩具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2455",
+                                "name": "娃娃玩具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2456",
+                                "name": "儿童乘骑玩耍的童车类产品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2459",
+                                "name": "其他玩具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "246",
+                        "name": "游艺器材及娱乐用品制造",
+                        "children": [
+                            {
+                                "code": "2461",
+                                "name": "露天游乐场所游乐设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2462",
+                                "name": "游艺用品及室内游艺器材制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2469",
+                                "name": "其他娱乐用品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "25",
+                "name": "石油、煤炭及其他燃料加工业",
+                "children": [
+                    {
+                        "code": "251",
+                        "name": "精炼石油产品制造",
+                        "children": [
+                            {
+                                "code": "2511",
+                                "name": "原油加工及石油制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2519",
+                                "name": "其他原油制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "252",
+                        "name": "煤炭加工",
+                        "children": [
+                            {
+                                "code": "2521",
+                                "name": "炼焦",
+                                "children": []
+                            },
+                            {
+                                "code": "2522",
+                                "name": "煤制合成气生产",
+                                "children": []
+                            },
+                            {
+                                "code": "2523",
+                                "name": "煤制液体燃料生产",
+                                "children": []
+                            },
+                            {
+                                "code": "2524",
+                                "name": "煤制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2529",
+                                "name": "其他煤炭加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "253",
+                        "name": "核燃料加工",
+                        "children": [
+                            {
+                                "code": "2530",
+                                "name": "核燃料加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "254",
+                        "name": "生物质燃料加工",
+                        "children": [
+                            {
+                                "code": "2541",
+                                "name": " 生物质液体燃料生产",
+                                "children": []
+                            },
+                            {
+                                "code": "2542",
+                                "name": "生物质致密成型燃料加工",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "26",
+                "name": "化学原料和化学制品制造业",
+                "children": [
+                    {
+                        "code": "261",
+                        "name": "基础化学原料制造",
+                        "children": [
+                            {
+                                "code": "2611",
+                                "name": "无机酸制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2612",
+                                "name": "无机碱制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2613",
+                                "name": "无机盐制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2614",
+                                "name": "有机化学原料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2619",
+                                "name": "其他基础化学原料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "262",
+                        "name": "肥料制造",
+                        "children": [
+                            {
+                                "code": "2621",
+                                "name": "氮肥制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2622",
+                                "name": "磷肥制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2623",
+                                "name": "钾肥制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2624",
+                                "name": "复混肥料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2625",
+                                "name": "有机肥料及微生物肥料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2629",
+                                "name": "其他肥料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "263",
+                        "name": "农药制造",
+                        "children": [
+                            {
+                                "code": "2631",
+                                "name": "化学农药制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2632",
+                                "name": "生物化学农药及微生物农药制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "264",
+                        "name": "涂料、油墨、颜料及类似产品制造",
+                        "children": [
+                            {
+                                "code": "2641",
+                                "name": "涂料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2642",
+                                "name": "油墨及类似产品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2643",
+                                "name": "工业颜料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2644",
+                                "name": "工艺美术颜料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2645",
+                                "name": "染料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2646",
+                                "name": "密封用填料及类似品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "265",
+                        "name": "合成材料制造",
+                        "children": [
+                            {
+                                "code": "2651",
+                                "name": "初级形态塑料及合成树脂制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2652",
+                                "name": "合成橡胶制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2653",
+                                "name": "合成纤维单(聚合)体制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2659",
+                                "name": "其他合成材料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "266",
+                        "name": "专用化学产品制造",
+                        "children": [
+                            {
+                                "code": "2661",
+                                "name": "化学试剂和助剂制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2662",
+                                "name": "专项化学用品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2663",
+                                "name": "林产化学产品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2664",
+                                "name": "文化用信息化学品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2665",
+                                "name": "医学生产用信息化学品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2666",
+                                "name": "环境污染处理专用药剂材料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2667",
+                                "name": "动物胶制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2669",
+                                "name": "其他专用化学产品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "267",
+                        "name": "炸药、火工及焰火产品制造",
+                        "children": [
+                            {
+                                "code": "2671",
+                                "name": "炸药及火工产品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2672",
+                                "name": "焰火、鞭炮产品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "268",
+                        "name": "日用化学产品制造",
+                        "children": [
+                            {
+                                "code": "2681",
+                                "name": "肥皂及洗涤剂制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2682",
+                                "name": "化妆品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2683",
+                                "name": "口腔清洁用品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2684",
+                                "name": "香料、香精制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2689",
+                                "name": "其他日用化学产品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "27",
+                "name": "医药制造业",
+                "children": [
+                    {
+                        "code": "271",
+                        "name": "化学药品原料药制造",
+                        "children": [
+                            {
+                                "code": "2710",
+                                "name": "化学药品原料药制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "272",
+                        "name": "化学药品制剂制造",
+                        "children": [
+                            {
+                                "code": "2720",
+                                "name": "化学药品制剂制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "273",
+                        "name": "中药饮片加工",
+                        "children": [
+                            {
+                                "code": "2730",
+                                "name": "中药饮片加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "274",
+                        "name": "中成药生产",
+                        "children": [
+                            {
+                                "code": "2740",
+                                "name": "中成药生产",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "275",
+                        "name": "兽用药品制造",
+                        "children": [
+                            {
+                                "code": "2750",
+                                "name": "兽用药品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "276",
+                        "name": "生物药品制品制造",
+                        "children": [
+                            {
+                                "code": "2761",
+                                "name": "生物药品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2762",
+                                "name": "基因工程药物和疫苗制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "277",
+                        "name": "卫生材料及医药用品制造",
+                        "children": [
+                            {
+                                "code": "2770",
+                                "name": "卫生材料及医药用品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "278",
+                        "name": "药用辅料及包装材料",
+                        "children": [
+                            {
+                                "code": "2780",
+                                "name": "药用辅料及包装材料",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "28",
+                "name": "化学纤维制造业",
+                "children": [
+                    {
+                        "code": "281",
+                        "name": "纤维素纤维原料及纤维制造",
+                        "children": [
+                            {
+                                "code": "2811",
+                                "name": "化纤浆粕制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2812",
+                                "name": "人造纤维(纤维素纤维)制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "282",
+                        "name": "合成纤维制造",
+                        "children": [
+                            {
+                                "code": "2821",
+                                "name": "锦纶纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2822",
+                                "name": "涤纶纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2823",
+                                "name": "腈纶纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2824",
+                                "name": "维纶纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2825",
+                                "name": "丙纶纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2826",
+                                "name": "氨纶纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2829",
+                                "name": "其他合成纤维制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "283",
+                        "name": "生物基材料制造",
+                        "children": [
+                            {
+                                "code": "2831",
+                                "name": "生物基化学纤维制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2832",
+                                "name": "生物基、淀粉基新材料制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "29",
+                "name": "橡胶和塑料制品业",
+                "children": [
+                    {
+                        "code": "291",
+                        "name": "橡胶制品业",
+                        "children": [
+                            {
+                                "code": "2911",
+                                "name": "轮胎制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2912",
+                                "name": "橡胶板、管、带制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2913",
+                                "name": "橡胶零件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2914",
+                                "name": "再生橡胶制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2915",
+                                "name": "日用及医用橡胶制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2916",
+                                "name": "运动场地用塑胶制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2919",
+                                "name": "其他橡胶制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "292",
+                        "name": "塑料制品业",
+                        "children": [
+                            {
+                                "code": "2921",
+                                "name": "塑料薄膜制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2922",
+                                "name": "塑料板、管、型材制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2923",
+                                "name": "塑料丝、绳及编织品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2924",
+                                "name": "泡沫塑料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2925",
+                                "name": "塑料人造革、合成革制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2926",
+                                "name": "塑料包装箱及容器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2927",
+                                "name": "日用塑料制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2928",
+                                "name": "人造草坪制造",
+                                "children": []
+                            },
+                            {
+                                "code": "2929",
+                                "name": "塑料零件及其他塑料制品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "30",
+                "name": "非金属矿物制品业",
+                "children": [
+                    {
+                        "code": "301",
+                        "name": "水泥、石灰和石膏制造",
+                        "children": [
+                            {
+                                "code": "3011",
+                                "name": "水泥制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3012",
+                                "name": "石灰和石膏制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "302",
+                        "name": "石膏、水泥制品及类似制品制造",
+                        "children": [
+                            {
+                                "code": "3021",
+                                "name": "水泥制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3022",
+                                "name": "砼结构构件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3023",
+                                "name": "石棉水泥制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3024",
+                                "name": "轻质建筑材料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3029",
+                                "name": "其他水泥类似制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "303",
+                        "name": "砖瓦、石材等建筑材料制造",
+                        "children": [
+                            {
+                                "code": "3031",
+                                "name": "粘土砖瓦及建筑砌块制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3032",
+                                "name": "建筑用石加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3033",
+                                "name": "防水建筑材料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3034",
+                                "name": "隔热和隔音材料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3039",
+                                "name": "其他建筑材料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "304",
+                        "name": "玻璃制造",
+                        "children": [
+                            {
+                                "code": "3041",
+                                "name": "平板玻璃制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3042",
+                                "name": "特种玻璃制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3049",
+                                "name": "其他玻璃制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "305",
+                        "name": "玻璃制品制造",
+                        "children": [
+                            {
+                                "code": "3051",
+                                "name": "技术玻璃制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3052",
+                                "name": "光学玻璃制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3053",
+                                "name": "玻璃仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3054",
+                                "name": "日用玻璃制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3055",
+                                "name": "玻璃包装容器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3056",
+                                "name": "玻璃保温容器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3057",
+                                "name": "制镜及类似品加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3059",
+                                "name": "其他玻璃制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "306",
+                        "name": "玻璃纤维和玻璃纤维增强塑料制品制",
+                        "children": [
+                            {
+                                "code": "3061",
+                                "name": "玻璃纤维及制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3062",
+                                "name": "玻璃纤维增强塑料制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "307",
+                        "name": "陶瓷制品制造",
+                        "children": [
+                            {
+                                "code": "3071",
+                                "name": "建筑陶瓷制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3072",
+                                "name": "卫生陶瓷制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3073",
+                                "name": "特种陶瓷制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3074",
+                                "name": "日用陶瓷制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3075",
+                                "name": "陈设艺术陶瓷制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3076",
+                                "name": "园艺陶瓷制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3079",
+                                "name": "其他陶瓷制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "308",
+                        "name": "耐火材料制品制造",
+                        "children": [
+                            {
+                                "code": "3081",
+                                "name": "石棉制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3082",
+                                "name": "云母制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3089",
+                                "name": "耐火陶瓷制品及其他耐火材料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "309",
+                        "name": "石墨及其他非金属矿物制品制造",
+                        "children": [
+                            {
+                                "code": "3091",
+                                "name": "石墨及碳素制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3099",
+                                "name": "其他非金属矿物制品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "31",
+                "name": "黑色金属冶炼和压延加工业",
+                "children": [
+                    {
+                        "code": "311",
+                        "name": "炼铁",
+                        "children": [
+                            {
+                                "code": "3110",
+                                "name": "炼铁",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "312",
+                        "name": "炼钢",
+                        "children": [
+                            {
+                                "code": "3120",
+                                "name": "炼钢",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "313",
+                        "name": "钢压延加工",
+                        "children": [
+                            {
+                                "code": "3130",
+                                "name": "钢压延加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "314",
+                        "name": "铁合金冶炼",
+                        "children": [
+                            {
+                                "code": "3140",
+                                "name": "铁合金冶炼",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "32",
+                "name": "有色金属冶炼和压延加工业",
+                "children": [
+                    {
+                        "code": "321",
+                        "name": "常用有色金属冶炼",
+                        "children": [
+                            {
+                                "code": "3211",
+                                "name": "铜冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3212",
+                                "name": "铅锌冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3213",
+                                "name": "镍钴冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3214",
+                                "name": "锡冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3215",
+                                "name": "锑冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3216",
+                                "name": "铝冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3217",
+                                "name": "镁冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3218",
+                                "name": "硅冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3219",
+                                "name": "其他常用有色金属冶炼",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "322",
+                        "name": "贵金属冶炼",
+                        "children": [
+                            {
+                                "code": "3221",
+                                "name": "金冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3222",
+                                "name": "银冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3229",
+                                "name": "其他贵金属冶炼",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "323",
+                        "name": "稀有稀土金属冶炼",
+                        "children": [
+                            {
+                                "code": "3231",
+                                "name": "钨钼冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3232",
+                                "name": "稀土金属冶炼",
+                                "children": []
+                            },
+                            {
+                                "code": "3239",
+                                "name": "其他稀有金属冶炼",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "324",
+                        "name": "有色金属合金制造",
+                        "children": [
+                            {
+                                "code": "3240",
+                                "name": "有色金属合金制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "325",
+                        "name": "有色金属压延加工",
+                        "children": [
+                            {
+                                "code": "3251",
+                                "name": "铜压延加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3252",
+                                "name": "铝压延加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3253",
+                                "name": "贵金属压延加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3254",
+                                "name": "稀有稀土金属压延加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3259",
+                                "name": "其他有色金属压延加工",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "33",
+                "name": "金属制品业",
+                "children": [
+                    {
+                        "code": "331",
+                        "name": "结构性金属制品制造",
+                        "children": [
+                            {
+                                "code": "3311",
+                                "name": "金属结构制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3312",
+                                "name": "金属门窗制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "332",
+                        "name": "金属工具制造",
+                        "children": [
+                            {
+                                "code": "3321",
+                                "name": "切削工具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3322",
+                                "name": "手工具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3323",
+                                "name": "农用及园林用金属工具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3324",
+                                "name": "刀剪及类似日用金属工具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3329",
+                                "name": "其他金属工具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "333",
+                        "name": "集装箱及金属包装容器制造",
+                        "children": [
+                            {
+                                "code": "3331",
+                                "name": "集装箱制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3332",
+                                "name": "金属压力容器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3333",
+                                "name": "金属包装容器及材料制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "334",
+                        "name": "金属丝绳及其制品制造",
+                        "children": [
+                            {
+                                "code": "3340",
+                                "name": "金属丝绳及其制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "335",
+                        "name": "建筑、安全用金属制品制造",
+                        "children": [
+                            {
+                                "code": "3351",
+                                "name": "建筑、家具用金属配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3352",
+                                "name": "建筑装饰及水暖管道零件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3353",
+                                "name": "安全、消防用金属制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3359",
+                                "name": "其他建筑、安全用金属制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "336",
+                        "name": "金属表面处理及热处理加工",
+                        "children": [
+                            {
+                                "code": "3360",
+                                "name": "金属表面处理及热处理加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "337",
+                        "name": "搪瓷制品制造",
+                        "children": [
+                            {
+                                "code": "3371",
+                                "name": "生产专用搪瓷制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3372",
+                                "name": "建筑装饰搪瓷制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3373",
+                                "name": "搪瓷卫生洁具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3379",
+                                "name": "搪瓷日用品及其他搪瓷制品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "338",
+                        "name": "金属制日用品制造",
+                        "children": [
+                            {
+                                "code": "3381",
+                                "name": "金属制厨房用器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3382",
+                                "name": "金属制餐具和器皿制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3383",
+                                "name": "金属制卫生器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3389",
+                                "name": "其他金属制日用品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "339",
+                        "name": "铸造及其他金属制品制造",
+                        "children": [
+                            {
+                                "code": "3391",
+                                "name": "黑色金属铸造",
+                                "children": []
+                            },
+                            {
+                                "code": "3392",
+                                "name": "有色金属铸造",
+                                "children": []
+                            },
+                            {
+                                "code": "3393",
+                                "name": "锻件及粉末冶金制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3394",
+                                "name": "交通及公共管理用金属标牌制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3399",
+                                "name": "其他未列明金属制品制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "34",
+                "name": "通用设备制造业",
+                "children": [
+                    {
+                        "code": "341",
+                        "name": "锅炉及原动设备制造",
+                        "children": [
+                            {
+                                "code": "3411",
+                                "name": "锅炉及辅助设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3412",
+                                "name": "内燃机及配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3413",
+                                "name": "汽轮机及辅机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3414",
+                                "name": "水轮机及辅机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3415",
+                                "name": "风能原动设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3419",
+                                "name": "其他原动设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "342",
+                        "name": "金属加工机械制造",
+                        "children": [
+                            {
+                                "code": "3421",
+                                "name": "金属切削机床制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3422",
+                                "name": "金属成形机床制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3423",
+                                "name": "铸造机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3424",
+                                "name": "金属切割及焊接设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3425",
+                                "name": "机床功能部件及附件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3429",
+                                "name": "其他金属加工机械制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "343",
+                        "name": "物料搬运设备制造",
+                        "children": [
+                            {
+                                "code": "3431",
+                                "name": "轻小型起重设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3432",
+                                "name": "生产专用起重机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3433",
+                                "name": "生产专用车辆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3434",
+                                "name": "连续搬运设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3435",
+                                "name": "电梯、自动扶梯及升降机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3436",
+                                "name": "客运索道制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3437",
+                                "name": "机械式停车设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3439",
+                                "name": "其他物料搬运设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "344",
+                        "name": "泵、阀门、压缩机及类似机械制造",
+                        "children": [
+                            {
+                                "code": "3441",
+                                "name": "泵及真空设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3442",
+                                "name": "气体压缩机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3443",
+                                "name": "阀门和旋塞制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3444",
+                                "name": "液压动力机械及元件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3445",
+                                "name": "液力动力机械元件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3446",
+                                "name": "气压动力机械及元件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "345",
+                        "name": "轴承、齿轮和传动部件制造",
+                        "children": [
+                            {
+                                "code": "3451",
+                                "name": "滚动轴承制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3452",
+                                "name": "滑动轴承制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3453",
+                                "name": "齿轮及齿轮减、变速箱制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3459",
+                                "name": "其他传动部件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "346",
+                        "name": "烘炉、风机、包装等设备制造",
+                        "children": [
+                            {
+                                "code": "3461",
+                                "name": "烘炉、熔炉及电炉制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3462",
+                                "name": "风机、风扇制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3463",
+                                "name": "气体、液体分离及纯净设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3464",
+                                "name": "制冷、空调设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3465",
+                                "name": "风动和电动工具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3466",
+                                "name": "喷枪及类似器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3467",
+                                "name": "包装专用设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "347",
+                        "name": "文化、办公用机械制造",
+                        "children": [
+                            {
+                                "code": "3471",
+                                "name": "电影机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3472",
+                                "name": "幻灯及投影设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3473",
+                                "name": "照相机及器材制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3474",
+                                "name": "复印和胶印设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3475",
+                                "name": "计算器及货币专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3479",
+                                "name": "其他文化、办公用机械制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "348",
+                        "name": "通用零部件制造",
+                        "children": [
+                            {
+                                "code": "3481",
+                                "name": "金属密封件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3482",
+                                "name": "紧固件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3483",
+                                "name": "弹簧制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3484",
+                                "name": "机械零部件加工",
+                                "children": []
+                            },
+                            {
+                                "code": "3489",
+                                "name": "其他通用零部件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "349",
+                        "name": "其他通用设备制造业",
+                        "children": [
+                            {
+                                "code": "3491",
+                                "name": "工业机器人制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3492",
+                                "name": "特殊作业机器人制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3493",
+                                "name": "增材制造装备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3499",
+                                "name": "其他未列明通用设备制造业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "35",
+                "name": "专用设备制造业",
+                "children": [
+                    {
+                        "code": "351",
+                        "name": "采矿、冶金、建筑专用设备制造",
+                        "children": [
+                            {
+                                "code": "3511",
+                                "name": "矿山机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3512",
+                                "name": "石油钻采专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3513",
+                                "name": "深海石油钻探设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3514",
+                                "name": "建筑工程用机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3515",
+                                "name": "建筑材料生产专用机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3516",
+                                "name": "冶金专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3517",
+                                "name": "隧道施工专用机械制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "352",
+                        "name": "化工、木材、非金属加工专用设备制造",
+                        "children": [
+                            {
+                                "code": "3521",
+                                "name": "炼油、化工生产专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3522",
+                                "name": "橡胶加工专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3523",
+                                "name": "塑料加工专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3524",
+                                "name": "木竹材加工机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3525",
+                                "name": "模具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3529",
+                                "name": "其他非金属加工专用设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "353",
+                        "name": "食品、饮料、烟草及饲料生产专用设备制造",
+                        "children": [
+                            {
+                                "code": "3531",
+                                "name": "食品、酒、饮料及茶生产专用设备制     指主要用于食品、酒、饮料生产及茶制品加",
+                                "children": []
+                            },
+                            {
+                                "code": "3532",
+                                "name": "农副食品加工专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3533",
+                                "name": "烟草生产专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3534",
+                                "name": "饲料生产专用设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "354",
+                        "name": "印刷、制药、日化及日用品生产专用设",
+                        "children": [
+                            {
+                                "code": "3541",
+                                "name": "制浆和造纸专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3542",
+                                "name": "印刷专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3543",
+                                "name": "日用化工专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3544",
+                                "name": "制药专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3545",
+                                "name": "照明器具生产专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3546",
+                                "name": "玻璃、陶瓷和搪瓷制品生产专用设备",
+                                "children": []
+                            },
+                            {
+                                "code": "3549",
+                                "name": "其他日用品生产专用设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "355",
+                        "name": "纺织、服装和皮革加工专用设备制造",
+                        "children": [
+                            {
+                                "code": "3551",
+                                "name": "纺织专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3552",
+                                "name": "皮革、毛皮及其制品加工专用设备制",
+                                "children": []
+                            },
+                            {
+                                "code": "3553",
+                                "name": "缝制机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3554",
+                                "name": "洗涤机械制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "356",
+                        "name": "电子和电工机械专用设备制造",
+                        "children": [
+                            {
+                                "code": "3561",
+                                "name": "电工机械专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3562",
+                                "name": "半导体器件专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3563",
+                                "name": "电子元器件与机电组件设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3569",
+                                "name": "其他电子专用设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "357",
+                        "name": "农、林、牧、渔专用机械制造",
+                        "children": [
+                            {
+                                "code": "3571",
+                                "name": "拖拉机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3572",
+                                "name": "机械化农业及园艺机具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3573",
+                                "name": "营林及木竹采伐机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3574",
+                                "name": "畜牧机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3575",
+                                "name": "渔业机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3576",
+                                "name": "农林牧渔机械配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3577",
+                                "name": "棉花加工机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3579",
+                                "name": "其他农、林、牧、渔业机械制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "358",
+                        "name": "医疗仪器设备及器械制造",
+                        "children": [
+                            {
+                                "code": "3581",
+                                "name": "医疗诊断、监护及治疗设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3582",
+                                "name": "口腔科用设备及器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3583",
+                                "name": "医疗实验室及医用消毒设备和器具",
+                                "children": []
+                            },
+                            {
+                                "code": "3584",
+                                "name": "医疗、外科及兽医用器械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3585",
+                                "name": "机械治疗及病房护理设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3586",
+                                "name": "康复辅具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3587",
+                                "name": "眼镜制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3589",
+                                "name": "其他医疗设备及器械制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "359",
+                        "name": "环保、邮政、社会公共服务及其他专用",
+                        "children": [
+                            {
+                                "code": "3591",
+                                "name": "环境保护专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3592",
+                                "name": "地质勘查专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3593",
+                                "name": "邮政专用机械及器材制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3594",
+                                "name": "商业、饮食、服务专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3595",
+                                "name": "社会公共安全设备及器材制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3596",
+                                "name": "交通安全、管制及类似专用设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3597",
+                                "name": "水资源专用机械制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3599",
+                                "name": "其他专用设备制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "36",
+                "name": "汽车制造业",
+                "children": [
+                    {
+                        "code": "361",
+                        "name": "汽车整车制造",
+                        "children": [
+                            {
+                                "code": "3611",
+                                "name": "汽柴油车整车制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3612",
+                                "name": "新能源车整车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "362",
+                        "name": "汽车用发动机制造",
+                        "children": [
+                            {
+                                "code": "3620",
+                                "name": "汽车用发动机制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "363",
+                        "name": "改装汽车制造",
+                        "children": [
+                            {
+                                "code": "3630",
+                                "name": "改装汽车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "364",
+                        "name": "低速汽车制造",
+                        "children": [
+                            {
+                                "code": "3640",
+                                "name": "低速汽车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "365",
+                        "name": "电车制造",
+                        "children": [
+                            {
+                                "code": "3650",
+                                "name": "电车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "366",
+                        "name": "汽车车身、挂车制造",
+                        "children": [
+                            {
+                                "code": "3660",
+                                "name": "汽车车身、挂车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "367",
+                        "name": "汽车零部件及配件制造",
+                        "children": [
+                            {
+                                "code": "3670",
+                                "name": "汽车零部件及配件制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "37",
+                "name": "铁路、船舶、航空航天和其他运输设备制",
+                "children": [
+                    {
+                        "code": "371",
+                        "name": "铁路运输设备制造",
+                        "children": [
+                            {
+                                "code": "3711",
+                                "name": "高铁车组制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3712",
+                                "name": "铁路机车车辆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3713",
+                                "name": "窄轨机车车辆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3714",
+                                "name": "高铁设备、配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3715",
+                                "name": "铁路机车车辆配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3716",
+                                "name": "铁路专用设备及器材、配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3719",
+                                "name": "其他铁路运输设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "372",
+                        "name": "城市轨道交通设备制造",
+                        "children": [
+                            {
+                                "code": "3720",
+                                "name": "城市轨道交通设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "373",
+                        "name": "船舶及相关装置制造",
+                        "children": [
+                            {
+                                "code": "3731",
+                                "name": "金属船舶制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3732",
+                                "name": "非金属船舶制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3733",
+                                "name": "娱乐船和运动船制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3734",
+                                "name": "船用配套设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3735",
+                                "name": "船舶改装",
+                                "children": []
+                            },
+                            {
+                                "code": "3736",
+                                "name": "船舶拆除",
+                                "children": []
+                            },
+                            {
+                                "code": "3737",
+                                "name": "海洋工程装备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3739",
+                                "name": "航标器材及其他相关装置制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "374",
+                        "name": "航空、航天器及设备制造",
+                        "children": [
+                            {
+                                "code": "3741",
+                                "name": "飞机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3742",
+                                "name": "航天器及运载火箭制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3743",
+                                "name": "航天相关设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3744",
+                                "name": "航空相关设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3749",
+                                "name": "其他航空航天器制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "375",
+                        "name": "摩托车制造",
+                        "children": [
+                            {
+                                "code": "3751",
+                                "name": "摩托车整车制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3752",
+                                "name": "摩托车零部件及配件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "376",
+                        "name": "自行车和残疾人座车制造",
+                        "children": [
+                            {
+                                "code": "3761",
+                                "name": "自行车制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3762",
+                                "name": "残疾人座车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "377",
+                        "name": "助动车制造",
+                        "children": [
+                            {
+                                "code": "3770",
+                                "name": "助动车制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "378",
+                        "name": "非公路休闲车及零配件制造",
+                        "children": [
+                            {
+                                "code": "3780",
+                                "name": "非公路休闲车及零配件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "379",
+                        "name": "潜水救捞及其他未列明运输设备制造",
+                        "children": [
+                            {
+                                "code": "3791",
+                                "name": "潜水装备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3792",
+                                "name": "水下救捞装备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3799",
+                                "name": "其他未列明运输设备制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "38",
+                "name": "电气机械和器材制造业",
+                "children": [
+                    {
+                        "code": "381",
+                        "name": "电机制造",
+                        "children": [
+                            {
+                                "code": "3811",
+                                "name": "发电机及发电机组制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3812",
+                                "name": "电动机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3813",
+                                "name": "微特电机及组件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3819",
+                                "name": "其他电机制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "382",
+                        "name": "输配电及控制设备制造",
+                        "children": [
+                            {
+                                "code": "3821",
+                                "name": "变压器、整流器和电感器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3822",
+                                "name": "电容器及其配套设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3823",
+                                "name": "配电开关控制设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3824",
+                                "name": "电力电子元器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3825",
+                                "name": "光伏设备及元器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3829",
+                                "name": "其他输配电及控制设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "383",
+                        "name": "电线、电缆、光缆及电工器材制造",
+                        "children": [
+                            {
+                                "code": "3831",
+                                "name": "电线、电缆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3832",
+                                "name": "光纤制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3833",
+                                "name": "光缆制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3834",
+                                "name": "绝缘制品制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3839",
+                                "name": "其他电工器材制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "384",
+                        "name": "电池制造",
+                        "children": [
+                            {
+                                "code": "3841",
+                                "name": "锂离子电池制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3842",
+                                "name": "镍氢电池制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3843",
+                                "name": "铅蓄电池制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3844",
+                                "name": "锌锰电池制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3849",
+                                "name": "其他电池制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "385",
+                        "name": "家用电力器具制造",
+                        "children": [
+                            {
+                                "code": "3851",
+                                "name": "家用制冷电器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3852",
+                                "name": "家用空气调节器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3853",
+                                "name": "家用通风电器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3854",
+                                "name": "家用厨房电器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3855",
+                                "name": "家用清洁卫生电器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3856",
+                                "name": "家用美容、保健护理电器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3857",
+                                "name": "家用电力器具专用配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3859",
+                                "name": "其他家用电力器具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "386",
+                        "name": "非电力家用器具制造",
+                        "children": [
+                            {
+                                "code": "3861",
+                                "name": "燃气及类似能源家用器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3862",
+                                "name": "太阳能器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3869",
+                                "name": "其他非电力家用器具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "387",
+                        "name": "照明器具制造",
+                        "children": [
+                            {
+                                "code": "3871",
+                                "name": "电光源制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3872",
+                                "name": "照明灯具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3873",
+                                "name": "舞台及场地用灯制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3874",
+                                "name": "智能照明器具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3879",
+                                "name": "灯用电器附件及其他照明器具制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "389",
+                        "name": "其他电气机械及器材制造",
+                        "children": [
+                            {
+                                "code": "3891",
+                                "name": "电气信号设备装置制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3899",
+                                "name": "其他未列明电气机械及器材制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "39",
+                "name": "计算机、通信和其他电子设备制造业",
+                "children": [
+                    {
+                        "code": "391",
+                        "name": "计算机制造",
+                        "children": [
+                            {
+                                "code": "3911",
+                                "name": "计算机整机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3912",
+                                "name": "计算机零部件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3913",
+                                "name": "计算机外围设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3914",
+                                "name": "工业控制计算机及系统制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3915",
+                                "name": "信息安全设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3919",
+                                "name": "其他计算机制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "392",
+                        "name": "通信设备制造",
+                        "children": [
+                            {
+                                "code": "3921",
+                                "name": "通信系统设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3922",
+                                "name": "通信终端设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "393",
+                        "name": "广播电视设备制造",
+                        "children": [
+                            {
+                                "code": "3931",
+                                "name": "广播电视节目制作及发射设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3932",
+                                "name": "广播电视接收设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3933",
+                                "name": "广播电视专用配件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3934",
+                                "name": "专业音响设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3939",
+                                "name": "应用电视设备及其他广播电视设备",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "394",
+                        "name": "雷达及配套设备制造",
+                        "children": [
+                            {
+                                "code": "3940",
+                                "name": "雷达及配套设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "395",
+                        "name": "非专业视听设备制造",
+                        "children": [
+                            {
+                                "code": "3951",
+                                "name": "电视机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3952",
+                                "name": "音响设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3953",
+                                "name": "影视录放设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "396",
+                        "name": "智能消费设备制造",
+                        "children": [
+                            {
+                                "code": "3961",
+                                "name": "可穿戴智能设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3962",
+                                "name": "智能车载设备制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3963",
+                                "name": "智能无人飞行器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3964",
+                                "name": "服务消费机器人制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3969",
+                                "name": "其他智能消费设备制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "397",
+                        "name": "电子器件制造",
+                        "children": [
+                            {
+                                "code": "3971",
+                                "name": "电子真空器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3972",
+                                "name": "半导体分立器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3973",
+                                "name": "集成电路制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3974",
+                                "name": "显示器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3975",
+                                "name": "半导体照明器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3976",
+                                "name": "光电子器件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3979",
+                                "name": "其他电子器件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "398",
+                        "name": "电子元件及电子专用材料制造",
+                        "children": [
+                            {
+                                "code": "3981",
+                                "name": "电阻电容电感元件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3982",
+                                "name": "电子电路制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3983",
+                                "name": "敏感元件及传感器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3984",
+                                "name": "电声器件及零件制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3985",
+                                "name": "电子专用材料制造",
+                                "children": []
+                            },
+                            {
+                                "code": "3989",
+                                "name": "其他电子元件制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "399",
+                        "name": "其他电子设备制造",
+                        "children": [
+                            {
+                                "code": "3990",
+                                "name": "其他电子设备制造",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "40",
+                "name": "仪器仪表制造业",
+                "children": [
+                    {
+                        "code": "401",
+                        "name": "通用仪器仪表制造",
+                        "children": [
+                            {
+                                "code": "4011",
+                                "name": "工业自动控制系统装置制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4012",
+                                "name": "电工仪器仪表制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4013",
+                                "name": "绘图、计算及测量仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4014",
+                                "name": "实验分析仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4015",
+                                "name": "试验机制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4016",
+                                "name": "供应用仪器仪表制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4019",
+                                "name": "其他通用仪器制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "402",
+                        "name": "专用仪器仪表制造",
+                        "children": [
+                            {
+                                "code": "4021",
+                                "name": "环境监测专用仪器仪表制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4022",
+                                "name": "运输设备及生产用计数仪表制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4023",
+                                "name": "导航、测绘、气象及海洋专用仪器制",
+                                "children": []
+                            },
+                            {
+                                "code": "4024",
+                                "name": "农林牧渔专用仪器仪表制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4025",
+                                "name": "地质勘探和地震专用仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4026",
+                                "name": "教学专用仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4027",
+                                "name": "核子及核辐射测量仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4028",
+                                "name": "电子测量仪器制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4029",
+                                "name": "其他专用仪器制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "403",
+                        "name": "钟表与计时仪器制造",
+                        "children": [
+                            {
+                                "code": "4030",
+                                "name": "钟表与计时仪器制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "404",
+                        "name": "光学仪器制造",
+                        "children": [
+                            {
+                                "code": "4040",
+                                "name": "光学仪器制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "405",
+                        "name": "衡器制造",
+                        "children": [
+                            {
+                                "code": "4050",
+                                "name": "衡器制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "409",
+                        "name": "其他仪器仪表制造业",
+                        "children": [
+                            {
+                                "code": "4090",
+                                "name": "其他仪器仪表制造业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "41",
+                "name": "其他制造业",
+                "children": [
+                    {
+                        "code": "411",
+                        "name": "日用杂品制造",
+                        "children": [
+                            {
+                                "code": "4111",
+                                "name": "鬃毛加工、制刷及清扫工具制造",
+                                "children": []
+                            },
+                            {
+                                "code": "4119",
+                                "name": "其他日用杂品制造",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "412",
+                        "name": "核辐射加工",
+                        "children": [
+                            {
+                                "code": "4120",
+                                "name": "核辐射加工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "419",
+                        "name": "其他未列明制造业",
+                        "children": [
+                            {
+                                "code": "4190",
+                                "name": "其他未列明制造业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "42",
+                "name": "废弃资源综合利用业",
+                "children": [
+                    {
+                        "code": "421",
+                        "name": "金属废料和碎屑加工处理",
+                        "children": [
+                            {
+                                "code": "4210",
+                                "name": "金属废料和碎屑加工处理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "422",
+                        "name": "非金属废料和碎屑加工处理",
+                        "children": [
+                            {
+                                "code": "4220",
+                                "name": "非金属废料和碎屑加工处理",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "43",
+                "name": "金属制品、机械和设备修理业",
+                "children": [
+                    {
+                        "code": "431",
+                        "name": "金属制品修理",
+                        "children": [
+                            {
+                                "code": "4310",
+                                "name": "金属制品修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "432",
+                        "name": "通用设备修理",
+                        "children": [
+                            {
+                                "code": "4320",
+                                "name": "通用设备修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "433",
+                        "name": "专用设备修理",
+                        "children": [
+                            {
+                                "code": "4330",
+                                "name": "专用设备修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "434",
+                        "name": "铁路、船舶、航空航天等运输设备修理",
+                        "children": [
+                            {
+                                "code": "4341",
+                                "name": "铁路运输设备修理",
+                                "children": []
+                            },
+                            {
+                                "code": "4342",
+                                "name": "船舶修理",
+                                "children": []
+                            },
+                            {
+                                "code": "4343",
+                                "name": "航空航天器修理",
+                                "children": []
+                            },
+                            {
+                                "code": "4349",
+                                "name": "其他运输设备修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "435",
+                        "name": "电气设备修理",
+                        "children": [
+                            {
+                                "code": "4350",
+                                "name": "电气设备修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "436",
+                        "name": "仪器仪表修理",
+                        "children": [
+                            {
+                                "code": "4360",
+                                "name": "仪器仪表修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "439",
+                        "name": "其他机械和设备修理业",
+                        "children": [
+                            {
+                                "code": "4390",
+                                "name": "其他机械和设备修理业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "D",
+        "name": "电力、热力、燃气及水生产和供应业",
+        "children": [
+            {
+                "code": "44",
+                "name": "电力、热力生产和供应业",
+                "children": [
+                    {
+                        "code": "441",
+                        "name": "电力生产",
+                        "children": [
+                            {
+                                "code": "4411",
+                                "name": "火力发电",
+                                "children": []
+                            },
+                            {
+                                "code": "4412",
+                                "name": "热电联产",
+                                "children": []
+                            },
+                            {
+                                "code": "4413",
+                                "name": "水力发电",
+                                "children": []
+                            },
+                            {
+                                "code": "4414",
+                                "name": "核力发电",
+                                "children": []
+                            },
+                            {
+                                "code": "4415",
+                                "name": "风力发电",
+                                "children": []
+                            },
+                            {
+                                "code": "4416",
+                                "name": "太阳能发电",
+                                "children": []
+                            },
+                            {
+                                "code": "4417",
+                                "name": "生物质能发电",
+                                "children": []
+                            },
+                            {
+                                "code": "4419",
+                                "name": "其他电力生产",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "442",
+                        "name": "电力供应",
+                        "children": [
+                            {
+                                "code": "4420",
+                                "name": "电力供应",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "443",
+                        "name": "热力生产和供应",
+                        "children": [
+                            {
+                                "code": "4430",
+                                "name": "热力生产和供应",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "45",
+                "name": "燃气生产和供应业",
+                "children": [
+                    {
+                        "code": "451",
+                        "name": "燃气生产和供应业",
+                        "children": [
+                            {
+                                "code": "4511",
+                                "name": "天然气生产和供应业",
+                                "children": []
+                            },
+                            {
+                                "code": "4512",
+                                "name": "液化石油气生产和供应业",
+                                "children": []
+                            },
+                            {
+                                "code": "4513",
+                                "name": "煤气生产和供应业",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "452",
+                        "name": "生物质燃气生产和供应业",
+                        "children": [
+                            {
+                                "code": "4520",
+                                "name": "生物质燃气生产和供应业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "46",
+                "name": "水的生产和供应业",
+                "children": [
+                    {
+                        "code": "461",
+                        "name": "自来水生产和供应",
+                        "children": [
+                            {
+                                "code": "4610",
+                                "name": "自来水生产和供应",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "462",
+                        "name": "污水处理及其再生利用",
+                        "children": [
+                            {
+                                "code": "4620",
+                                "name": "污水处理及其再生利用",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "463",
+                        "name": "海水淡化处理",
+                        "children": [
+                            {
+                                "code": "4630",
+                                "name": "海水淡化处理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "469",
+                        "name": "其他水的处理、利用与分配",
+                        "children": [
+                            {
+                                "code": "4690",
+                                "name": "其他水的处理、利用与分配",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "E",
+        "name": "建筑业",
+        "children": [
+            {
+                "code": "47",
+                "name": "房屋建筑业",
+                "children": [
+                    {
+                        "code": "471",
+                        "name": "住宅房屋建筑",
+                        "children": [
+                            {
+                                "code": "4710",
+                                "name": "住宅房屋建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "472",
+                        "name": "体育场馆建筑",
+                        "children": [
+                            {
+                                "code": "4720",
+                                "name": "体育场馆建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "479",
+                        "name": "其他房屋建筑业",
+                        "children": [
+                            {
+                                "code": "4790",
+                                "name": "其他房屋建筑业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "48",
+                "name": "土木工程建筑业",
+                "children": [
+                    {
+                        "code": "481",
+                        "name": "铁路、道路、隧道和桥梁工程建筑",
+                        "children": [
+                            {
+                                "code": "4811",
+                                "name": "铁路工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4812",
+                                "name": "公路工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4813",
+                                "name": "市政道路工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4814",
+                                "name": "城市轨道交通工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4819",
+                                "name": "其他道路、隧道和桥梁工程建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "482",
+                        "name": "水利和水运工程建筑",
+                        "children": [
+                            {
+                                "code": "4821",
+                                "name": "水源及供水设施工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4822",
+                                "name": "河湖治理及防洪设施工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4823",
+                                "name": "港口及航运设施工程建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "483",
+                        "name": "海洋工程建筑",
+                        "children": [
+                            {
+                                "code": "4831",
+                                "name": "海洋油气资源开发利用工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4832",
+                                "name": "海洋能源开发利用工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4833",
+                                "name": "海底隧道工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4834",
+                                "name": "海底设施铺设工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4839",
+                                "name": "其他海洋工程建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "484",
+                        "name": "工矿工程建筑",
+                        "children": [
+                            {
+                                "code": "4840",
+                                "name": "工矿工程建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "485",
+                        "name": "架线和管道工程建筑",
+                        "children": [
+                            {
+                                "code": "4851",
+                                "name": "架线及设备工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4852",
+                                "name": "管道工程建筑",
+                                "children": []
+                            },
+                            {
+                                "code": "4853",
+                                "name": "地下综合管廊工程建筑",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "486",
+                        "name": "节能环保工程施工",
+                        "children": [
+                            {
+                                "code": "4861",
+                                "name": "节能工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4862",
+                                "name": "环保工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4863",
+                                "name": "生态保护工程施工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "487",
+                        "name": "电力工程施工",
+                        "children": [
+                            {
+                                "code": "4871",
+                                "name": "火力发电工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4872",
+                                "name": "水力发电工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4873",
+                                "name": "核电工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4874",
+                                "name": "风能发电工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4875",
+                                "name": "太阳能发电工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4879",
+                                "name": "其他电力工程施工",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "489",
+                        "name": "其他土木工程建筑",
+                        "children": [
+                            {
+                                "code": "4891",
+                                "name": "园林绿化工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4892",
+                                "name": "体育场地设施工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4893",
+                                "name": "游乐设施工程施工",
+                                "children": []
+                            },
+                            {
+                                "code": "4899",
+                                "name": "其他土木工程建筑施工",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "49",
+                "name": "建筑安装业",
+                "children": [
+                    {
+                        "code": "491",
+                        "name": "电气安装",
+                        "children": [
+                            {
+                                "code": "4910",
+                                "name": "电气安装",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "492",
+                        "name": "管道和设备安装",
+                        "children": [
+                            {
+                                "code": "4920",
+                                "name": "管道和设备安装",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "499",
+                        "name": "其他建筑安装业",
+                        "children": [
+                            {
+                                "code": "4991",
+                                "name": "体育场地设施安装",
+                                "children": []
+                            },
+                            {
+                                "code": "4999",
+                                "name": "其他建筑安装",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "50",
+                "name": "建筑装饰、装修和其他建筑业",
+                "children": [
+                    {
+                        "code": "501",
+                        "name": "建筑装饰和装修业",
+                        "children": [
+                            {
+                                "code": "5011",
+                                "name": "公共建筑装饰和装修",
+                                "children": []
+                            },
+                            {
+                                "code": "5012",
+                                "name": "住宅装饰和装修",
+                                "children": []
+                            },
+                            {
+                                "code": "5013",
+                                "name": "建筑幕墙装饰和装修",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "502",
+                        "name": "建筑物拆除和场地准备活动",
+                        "children": [
+                            {
+                                "code": "5021",
+                                "name": "建筑物拆除活动",
+                                "children": []
+                            },
+                            {
+                                "code": "5022",
+                                "name": "场地准备活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "503",
+                        "name": "提供施工设备服务",
+                        "children": [
+                            {
+                                "code": "5030",
+                                "name": "提供施工设备服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "509",
+                        "name": "其他未列明建筑业",
+                        "children": [
+                            {
+                                "code": "5090",
+                                "name": "其他未列明建筑业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "F",
+        "name": "批发和零售业",
+        "children": [
+            {
+                "code": "51",
+                "name": "批发业",
+                "children": [
+                    {
+                        "code": "511",
+                        "name": "农、林、牧、渔产品批发",
+                        "children": [
+                            {
+                                "code": "5111",
+                                "name": "谷物、豆及薯类批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5112",
+                                "name": "种子批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5113",
+                                "name": "畜牧渔业饲料批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5114",
+                                "name": "棉、麻批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5115",
+                                "name": "林业产品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5116",
+                                "name": "牲畜批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5117",
+                                "name": "渔业产品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5119",
+                                "name": "其他农牧产品批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "512",
+                        "name": "食品、饮料及烟草制品批发",
+                        "children": [
+                            {
+                                "code": "5121",
+                                "name": "米、面制品及食用油批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5122",
+                                "name": "糕点、糖果及糖批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5123",
+                                "name": "果品、蔬菜批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5124",
+                                "name": "肉、禽、蛋、奶及水产品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5125",
+                                "name": "盐及调味品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5126",
+                                "name": "营养和保健品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5127",
+                                "name": "酒、饮料及茶叶批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5128",
+                                "name": "烟草制品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5129",
+                                "name": "其他食品批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "513",
+                        "name": "纺织、服装及家庭用品批发",
+                        "children": [
+                            {
+                                "code": "5131",
+                                "name": "纺织品、针织品及原料批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5132",
+                                "name": "服装批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5133",
+                                "name": "鞋帽批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5134",
+                                "name": "化妆品及卫生用品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5135",
+                                "name": "厨具卫具及日用杂品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5136",
+                                "name": "灯具、装饰物品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5137",
+                                "name": "家用视听设备批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5138",
+                                "name": "日用家电批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5139",
+                                "name": "其他家庭用品批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "514",
+                        "name": "文化、体育用品及器材批发",
+                        "children": [
+                            {
+                                "code": "5141",
+                                "name": "文具用品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5142",
+                                "name": "体育用品及器材批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5143",
+                                "name": "图书批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5144",
+                                "name": "报刊批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5145",
+                                "name": "音像制品、电子和数字出版物批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5146",
+                                "name": "首饰、工艺品及收藏品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5147",
+                                "name": "乐器批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5149",
+                                "name": "其他文化用品批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "515",
+                        "name": "医药及医疗器材批发",
+                        "children": [
+                            {
+                                "code": "5151",
+                                "name": "西药批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5152",
+                                "name": "中药批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5153",
+                                "name": "动物用药品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5154",
+                                "name": "医疗用品及器材批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "516",
+                        "name": "矿产品、建材及化工产品批发",
+                        "children": [
+                            {
+                                "code": "5161",
+                                "name": "煤炭及制品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5162",
+                                "name": "石油及制品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5163",
+                                "name": "非金属矿及制品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5164",
+                                "name": "金属及金属矿批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5165",
+                                "name": "建材批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5166",
+                                "name": "化肥批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5167",
+                                "name": "农药批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5168",
+                                "name": "农用薄膜批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5169",
+                                "name": "其他化工产品批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "517",
+                        "name": "机械设备、五金产品及电子产品批发",
+                        "children": [
+                            {
+                                "code": "5171",
+                                "name": "农业机械批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5172",
+                                "name": "汽车及零配件批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5173",
+                                "name": "摩托车及零配件批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5174",
+                                "name": "五金产品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5175",
+                                "name": "电气设备批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5176",
+                                "name": "计算机、软件及辅助设备批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5177",
+                                "name": "通讯设备批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5178",
+                                "name": "广播影视设备批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5179",
+                                "name": "其他机械设备及电子产品批发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "518",
+                        "name": "贸易经纪与代理",
+                        "children": [
+                            {
+                                "code": "5181",
+                                "name": "贸易代理",
+                                "children": []
+                            },
+                            {
+                                "code": "5182",
+                                "name": "一般物品拍卖",
+                                "children": []
+                            },
+                            {
+                                "code": "5183",
+                                "name": "艺术品、收藏品拍卖",
+                                "children": []
+                            },
+                            {
+                                "code": "5184",
+                                "name": "艺术品代理",
+                                "children": []
+                            },
+                            {
+                                "code": "5189",
+                                "name": "其他贸易经纪与代理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "519",
+                        "name": "其他批发业",
+                        "children": [
+                            {
+                                "code": "5191",
+                                "name": "再生物资回收与批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5192",
+                                "name": "宠物食品用品批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5193",
+                                "name": "互联网批发",
+                                "children": []
+                            },
+                            {
+                                "code": "5199",
+                                "name": "其他未列明批发业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "52",
+                "name": "零售业",
+                "children": [
+                    {
+                        "code": "521",
+                        "name": "综合零售",
+                        "children": [
+                            {
+                                "code": "5211",
+                                "name": "百货零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5212",
+                                "name": "超级市场零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5213",
+                                "name": "便利店零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5219",
+                                "name": "其他综合零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "522",
+                        "name": "食品、饮料及烟草制品专门零售",
+                        "children": [
+                            {
+                                "code": "5221",
+                                "name": "粮油零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5222",
+                                "name": "糕点、面包零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5223",
+                                "name": "果品、蔬菜零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5224",
+                                "name": "肉、禽、蛋、奶及水产品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5225",
+                                "name": "营养和保健品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5226",
+                                "name": "酒、饮料及茶叶零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5227",
+                                "name": "烟草制品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5229",
+                                "name": "其他食品零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "523",
+                        "name": "纺织、服装及日用品专门零售",
+                        "children": [
+                            {
+                                "code": "5231",
+                                "name": "纺织品及针织品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5232",
+                                "name": "服装零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5233",
+                                "name": "鞋帽零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5234",
+                                "name": "化妆品及卫生用品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5235",
+                                "name": "厨具卫具及日用杂品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5236",
+                                "name": "钟表、眼镜零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5237",
+                                "name": "箱包零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5238",
+                                "name": "自行车等代步设备零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5239",
+                                "name": "其他日用品零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "524",
+                        "name": "文化、体育用品及器材专门零售",
+                        "children": [
+                            {
+                                "code": "5241",
+                                "name": "文具用品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5242",
+                                "name": "体育用品及器材零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5243",
+                                "name": "图书、报刊零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5244",
+                                "name": "音像制品、电子和数字出版物零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5245",
+                                "name": "珠宝首饰零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5246",
+                                "name": "工艺美术品及收藏品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5247",
+                                "name": "乐器零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5248",
+                                "name": "照相器材零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5249",
+                                "name": "其他文化用品零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "525",
+                        "name": "医药及医疗器材专门零售",
+                        "children": [
+                            {
+                                "code": "5251",
+                                "name": "西药零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5252",
+                                "name": "中药零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5253",
+                                "name": "动物用药品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5254",
+                                "name": "医疗用品及器材零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5255",
+                                "name": "保健辅助治疗器材零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "526",
+                        "name": "汽车、摩托车、零配件和燃料及其他动力销售",
+                        "children": [
+                            {
+                                "code": "5261",
+                                "name": "汽车新车零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5262",
+                                "name": "汽车旧车零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5263",
+                                "name": "汽车零配件零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5264",
+                                "name": "摩托车及零配件零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5265",
+                                "name": "机动车燃油零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5266",
+                                "name": "机动车燃气零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5267",
+                                "name": "机动车充电销售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "527",
+                        "name": "家用电器及电子产品专门零售",
+                        "children": [
+                            {
+                                "code": "5271",
+                                "name": "家用视听设备零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5272",
+                                "name": "日用家电零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5273",
+                                "name": "计算机、软件及辅助设备零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5274",
+                                "name": "通信设备零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5279",
+                                "name": "其他电子产品零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "528",
+                        "name": "五金、家具及室内装饰材料专门零售",
+                        "children": [
+                            {
+                                "code": "5281",
+                                "name": "五金零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5282",
+                                "name": "灯具零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5283",
+                                "name": "家具零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5284",
+                                "name": "涂料零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5285",
+                                "name": "卫生洁具零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5286",
+                                "name": "木质装饰材料零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5287",
+                                "name": "陶瓷、石材装饰材料零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5289",
+                                "name": "其他室内装饰材料零售",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "529",
+                        "name": "货摊、无店铺及其他零售业",
+                        "children": [
+                            {
+                                "code": "5291",
+                                "name": "流动货摊零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5292",
+                                "name": "互联网零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5293",
+                                "name": "邮购及电视、电话零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5294",
+                                "name": "自动售货机零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5295",
+                                "name": "旧货零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5296",
+                                "name": "生活用燃料零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5297",
+                                "name": "宠物食品用品零售",
+                                "children": []
+                            },
+                            {
+                                "code": "5299",
+                                "name": "其他未列明零售业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "G",
+        "name": "交通运输、仓储和邮政业",
+        "children": [
+            {
+                "code": "53",
+                "name": "铁路运输业",
+                "children": [
+                    {
+                        "code": "531",
+                        "name": "铁路旅客运输",
+                        "children": [
+                            {
+                                "code": "5311",
+                                "name": "高速铁路旅客运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5312",
+                                "name": "城际铁路旅客运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5313",
+                                "name": "普通铁路旅客运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "532",
+                        "name": "铁路货物运输",
+                        "children": [
+                            {
+                                "code": "5320",
+                                "name": "铁路货物运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "533",
+                        "name": "铁路运输辅助活动",
+                        "children": [
+                            {
+                                "code": "5331",
+                                "name": "客运火车站",
+                                "children": []
+                            },
+                            {
+                                "code": "5332",
+                                "name": "货运火车站(场)",
+                                "children": []
+                            },
+                            {
+                                "code": "5333",
+                                "name": "铁路运输维护活动",
+                                "children": []
+                            },
+                            {
+                                "code": "5339",
+                                "name": "其他铁路运输辅助活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "54",
+                "name": "道路运输业",
+                "children": [
+                    {
+                        "code": "541",
+                        "name": "城市公共交通运输",
+                        "children": [
+                            {
+                                "code": "5411",
+                                "name": "公共电汽车客运",
+                                "children": []
+                            },
+                            {
+                                "code": "5412",
+                                "name": "城市轨道交通",
+                                "children": []
+                            },
+                            {
+                                "code": "5413",
+                                "name": "出租车客运",
+                                "children": []
+                            },
+                            {
+                                "code": "5414",
+                                "name": "公共自行车服务",
+                                "children": []
+                            },
+                            {
+                                "code": "5419",
+                                "name": "其他城市公共交通运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "542",
+                        "name": "公路旅客运输",
+                        "children": [
+                            {
+                                "code": "5421",
+                                "name": "长途客运",
+                                "children": []
+                            },
+                            {
+                                "code": "5422",
+                                "name": "旅游客运",
+                                "children": []
+                            },
+                            {
+                                "code": "5429",
+                                "name": "其他公路客运",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "543",
+                        "name": "道路货物运输",
+                        "children": [
+                            {
+                                "code": "5431",
+                                "name": "普通货物道路运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5432",
+                                "name": "冷藏车道路运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5433",
+                                "name": "集装箱道路运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5434",
+                                "name": "大型货物道路运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5435",
+                                "name": "危险货物道路运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5436",
+                                "name": "邮件包裹道路运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5437",
+                                "name": "城市配送",
+                                "children": []
+                            },
+                            {
+                                "code": "5438",
+                                "name": "搬家运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5439",
+                                "name": "其他道路货物运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "544",
+                        "name": "道路运输辅助活动",
+                        "children": [
+                            {
+                                "code": "5441",
+                                "name": "客运汽车站",
+                                "children": []
+                            },
+                            {
+                                "code": "5442",
+                                "name": "货运枢纽(站)",
+                                "children": []
+                            },
+                            {
+                                "code": "5443",
+                                "name": "公路管理与养护",
+                                "children": []
+                            },
+                            {
+                                "code": "5449",
+                                "name": "其他道路运输辅助活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "55",
+                "name": "水上运输业",
+                "children": [
+                    {
+                        "code": "551",
+                        "name": "水上旅客运输",
+                        "children": [
+                            {
+                                "code": "5511",
+                                "name": "海上旅客运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5512",
+                                "name": "内河旅客运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5513",
+                                "name": "客运轮渡运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "552",
+                        "name": "水上货物运输",
+                        "children": [
+                            {
+                                "code": "5521",
+                                "name": "远洋货物运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5522",
+                                "name": "沿海货物运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5523",
+                                "name": "内河货物运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "553",
+                        "name": "水上运输辅助活动",
+                        "children": [
+                            {
+                                "code": "5531",
+                                "name": "客运港口",
+                                "children": []
+                            },
+                            {
+                                "code": "5532",
+                                "name": "货运港口",
+                                "children": []
+                            },
+                            {
+                                "code": "5539",
+                                "name": "其他水上运输辅助活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "56",
+                "name": "航空运输业",
+                "children": [
+                    {
+                        "code": "561",
+                        "name": "航空客货运输",
+                        "children": [
+                            {
+                                "code": "5611",
+                                "name": "航空旅客运输",
+                                "children": []
+                            },
+                            {
+                                "code": "5612",
+                                "name": "航空货物运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "562",
+                        "name": "通用航空服务",
+                        "children": [
+                            {
+                                "code": "5621",
+                                "name": "通用航空生产服务",
+                                "children": []
+                            },
+                            {
+                                "code": "5622",
+                                "name": "观光游览航空服务",
+                                "children": []
+                            },
+                            {
+                                "code": "5623",
+                                "name": "体育航空运动服务",
+                                "children": []
+                            },
+                            {
+                                "code": "5629",
+                                "name": "其他通用航空服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "563",
+                        "name": "航空运输辅助活动",
+                        "children": [
+                            {
+                                "code": "5631",
+                                "name": "机场",
+                                "children": []
+                            },
+                            {
+                                "code": "5632",
+                                "name": "空中交通管理",
+                                "children": []
+                            },
+                            {
+                                "code": "5639",
+                                "name": "其他航空运输辅助活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "57",
+                "name": "管道运输业",
+                "children": [
+                    {
+                        "code": "571",
+                        "name": "海底管道运输",
+                        "children": [
+                            {
+                                "code": "5710",
+                                "name": "海底管道运输",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "572",
+                        "name": "陆地管道运输",
+                        "children": [
+                            {
+                                "code": "5720",
+                                "name": "陆地管道运输",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "58",
+                "name": "多式联运和运输代理业",
+                "children": [
+                    {
+                        "code": "581",
+                        "name": "多式联运",
+                        "children": [
+                            {
+                                "code": "5810",
+                                "name": "多式联运",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "582",
+                        "name": "运输代理业",
+                        "children": [
+                            {
+                                "code": "5821",
+                                "name": "货物运输代理",
+                                "children": []
+                            },
+                            {
+                                "code": "5822",
+                                "name": "旅客票务代理",
+                                "children": []
+                            },
+                            {
+                                "code": "5829",
+                                "name": "其他运输代理业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "59",
+                "name": "装卸搬运和仓储业",
+                "children": [
+                    {
+                        "code": "591",
+                        "name": "装卸搬运",
+                        "children": [
+                            {
+                                "code": "5910",
+                                "name": "装卸搬运",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "592",
+                        "name": "通用仓储",
+                        "children": [
+                            {
+                                "code": "5920",
+                                "name": "通用仓储",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "593",
+                        "name": "低温仓储",
+                        "children": [
+                            {
+                                "code": "5930",
+                                "name": "低温仓储",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "594",
+                        "name": "危险品仓储",
+                        "children": [
+                            {
+                                "code": "5941",
+                                "name": "油气仓储",
+                                "children": []
+                            },
+                            {
+                                "code": "5942",
+                                "name": "危险化学品仓储",
+                                "children": []
+                            },
+                            {
+                                "code": "5949",
+                                "name": "其他危险品仓储",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "595",
+                        "name": "谷物、棉花等农产品仓储",
+                        "children": [
+                            {
+                                "code": "5951",
+                                "name": "谷物仓储",
+                                "children": []
+                            },
+                            {
+                                "code": "5952",
+                                "name": "棉花仓储",
+                                "children": []
+                            },
+                            {
+                                "code": "5959",
+                                "name": "其他农产品仓储",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "596",
+                        "name": "中药材仓储",
+                        "children": [
+                            {
+                                "code": "5960",
+                                "name": "中药材仓储",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "599",
+                        "name": "其他仓储业",
+                        "children": [
+                            {
+                                "code": "5990",
+                                "name": "其他仓储业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "60",
+                "name": "邮政业",
+                "children": [
+                    {
+                        "code": "601",
+                        "name": "邮政基本服务",
+                        "children": [
+                            {
+                                "code": "6010",
+                                "name": "邮政基本服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "602",
+                        "name": "快递服务",
+                        "children": [
+                            {
+                                "code": "6020",
+                                "name": "快递服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "609",
+                        "name": "其他寄递服务",
+                        "children": [
+                            {
+                                "code": "6090",
+                                "name": "其他寄递服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "H",
+        "name": "住宿和餐饮业",
+        "children": [
+            {
+                "code": "61",
+                "name": "住宿业",
+                "children": [
+                    {
+                        "code": "611",
+                        "name": "旅游饭店",
+                        "children": [
+                            {
+                                "code": "6110",
+                                "name": "旅游饭店",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "612",
+                        "name": "一般旅馆",
+                        "children": [
+                            {
+                                "code": "6121",
+                                "name": "经济型连锁酒店",
+                                "children": []
+                            },
+                            {
+                                "code": "6129",
+                                "name": "其他一般旅馆",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "613",
+                        "name": "民宿服务",
+                        "children": [
+                            {
+                                "code": "6130",
+                                "name": "民宿服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "614",
+                        "name": "露营地服务",
+                        "children": [
+                            {
+                                "code": "6140",
+                                "name": "露营地服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "619",
+                        "name": "其他住宿业",
+                        "children": [
+                            {
+                                "code": "6190",
+                                "name": "其他住宿业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "62",
+                "name": "餐饮业",
+                "children": [
+                    {
+                        "code": "621",
+                        "name": "正餐服务",
+                        "children": [
+                            {
+                                "code": "6210",
+                                "name": "正餐服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "622",
+                        "name": "快餐服务",
+                        "children": [
+                            {
+                                "code": "6220",
+                                "name": "快餐服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "623",
+                        "name": "饮料及冷饮服务",
+                        "children": [
+                            {
+                                "code": "6231",
+                                "name": "茶馆服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6232",
+                                "name": "咖啡馆服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6233",
+                                "name": "酒吧服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6239",
+                                "name": "其他饮料及冷饮服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "624",
+                        "name": "餐饮配送及外卖送餐服务",
+                        "children": [
+                            {
+                                "code": "6241",
+                                "name": "餐饮配送服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6242",
+                                "name": "外卖送餐服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "629",
+                        "name": "其他餐饮业",
+                        "children": [
+                            {
+                                "code": "6291",
+                                "name": "小吃服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6299",
+                                "name": "其他未列明餐饮业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "I",
+        "name": "信息传输、软件和信息技术服务业",
+        "children": [
+            {
+                "code": "63",
+                "name": "电信、广播电视和卫星传输服务",
+                "children": [
+                    {
+                        "code": "631",
+                        "name": "电信",
+                        "children": [
+                            {
+                                "code": "6311",
+                                "name": "固定电信服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6312",
+                                "name": "移动电信服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6319",
+                                "name": "其他电信服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "632",
+                        "name": "广播电视传输服务",
+                        "children": [
+                            {
+                                "code": "6321",
+                                "name": "有线广播电视传输服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6322",
+                                "name": "无线广播电视传输服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "633",
+                        "name": "卫星传输服务",
+                        "children": [
+                            {
+                                "code": "6331",
+                                "name": "广播电视卫星传输服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6339",
+                                "name": "其他卫星传输服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "64",
+                "name": "互联网和相关服务",
+                "children": [
+                    {
+                        "code": "641",
+                        "name": "互联网接入及相关服务",
+                        "children": [
+                            {
+                                "code": "6410",
+                                "name": "互联网接入及相关服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "642",
+                        "name": "互联网信息服务",
+                        "children": [
+                            {
+                                "code": "6421",
+                                "name": "互联网搜索服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6422",
+                                "name": "互联网游戏服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6429",
+                                "name": "互联网其他信息服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "643",
+                        "name": "互联网平台",
+                        "children": [
+                            {
+                                "code": "6431",
+                                "name": "互联网生产服务平台",
+                                "children": []
+                            },
+                            {
+                                "code": "6432",
+                                "name": "互联网生活服务平台",
+                                "children": []
+                            },
+                            {
+                                "code": "6433",
+                                "name": "互联网科技创新平台",
+                                "children": []
+                            },
+                            {
+                                "code": "6434",
+                                "name": "互联网公共服务平台",
+                                "children": []
+                            },
+                            {
+                                "code": "6439",
+                                "name": "其他互联网平台",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "644",
+                        "name": "互联网安全服务",
+                        "children": [
+                            {
+                                "code": "6440",
+                                "name": "互联网安全服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "645",
+                        "name": "互联网数据服务",
+                        "children": [
+                            {
+                                "code": "6450",
+                                "name": "互联网数据服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "649",
+                        "name": "其他互联网服务",
+                        "children": [
+                            {
+                                "code": "6490",
+                                "name": "其他互联网服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "65",
+                "name": "软件和信息技术服务业",
+                "children": [
+                    {
+                        "code": "651",
+                        "name": "软件开发",
+                        "children": [
+                            {
+                                "code": "6511",
+                                "name": "基础软件开发",
+                                "children": []
+                            },
+                            {
+                                "code": "6512",
+                                "name": "支撑软件开发",
+                                "children": []
+                            },
+                            {
+                                "code": "6513",
+                                "name": "应用软件开发",
+                                "children": []
+                            },
+                            {
+                                "code": "6519",
+                                "name": "其他软件开发",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "652",
+                        "name": "集成电路设计",
+                        "children": [
+                            {
+                                "code": "6520",
+                                "name": "集成电路设计",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "653",
+                        "name": "信息系统集成和物联网技术服务",
+                        "children": [
+                            {
+                                "code": "6531",
+                                "name": "信息系统集成服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6532",
+                                "name": "物联网技术服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "654",
+                        "name": "运行维护服务",
+                        "children": [
+                            {
+                                "code": "6540",
+                                "name": "运行维护服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "655",
+                        "name": "信息处理和存储支持服务",
+                        "children": [
+                            {
+                                "code": "6550",
+                                "name": "信息处理和存储支持服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "656",
+                        "name": "信息技术咨询服务",
+                        "children": [
+                            {
+                                "code": "6560",
+                                "name": "信息技术咨询服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "657",
+                        "name": "数字内容服务",
+                        "children": [
+                            {
+                                "code": "6571",
+                                "name": "地理遥感信息服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6572",
+                                "name": "动漫、游戏数字内容服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6579",
+                                "name": "其他数字内容服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "659",
+                        "name": "其他信息技术服务业",
+                        "children": [
+                            {
+                                "code": "6591",
+                                "name": "呼叫中心",
+                                "children": []
+                            },
+                            {
+                                "code": "6599",
+                                "name": "其他未列明信息技术服务业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "J",
+        "name": "金融业",
+        "children": [
+            {
+                "code": "66",
+                "name": "货币金融服务",
+                "children": [
+                    {
+                        "code": "661",
+                        "name": "中央银行服务",
+                        "children": [
+                            {
+                                "code": "6610",
+                                "name": "中央银行服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "662",
+                        "name": "货币银行服务",
+                        "children": [
+                            {
+                                "code": "6621",
+                                "name": "商业银行服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6622",
+                                "name": "政策性银行服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6623",
+                                "name": "信用合作社服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6624",
+                                "name": "农村资金互助社服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6629",
+                                "name": "其他货币银行服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "663",
+                        "name": "非货币银行服务",
+                        "children": [
+                            {
+                                "code": "6631",
+                                "name": "融资租赁服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6632",
+                                "name": "财务公司服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6633",
+                                "name": "典当",
+                                "children": []
+                            },
+                            {
+                                "code": "6634",
+                                "name": "汽车金融公司服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6635",
+                                "name": "小额贷款公司服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6636",
+                                "name": "消费金融公司服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6637",
+                                "name": "网络借贷服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6639",
+                                "name": "其他非货币银行服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "664",
+                        "name": "银行理财服务",
+                        "children": [
+                            {
+                                "code": "6640",
+                                "name": "银行理财服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "665",
+                        "name": "银行监管服务",
+                        "children": [
+                            {
+                                "code": "6650",
+                                "name": "银行监管服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "67",
+                "name": "资本市场服务",
+                "children": [
+                    {
+                        "code": "671",
+                        "name": "证券市场服务",
+                        "children": [
+                            {
+                                "code": "6711",
+                                "name": "证券市场管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6712",
+                                "name": "证券经纪交易服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "672",
+                        "name": "公开募集证券投资基金",
+                        "children": [
+                            {
+                                "code": "6720",
+                                "name": "公开募集证券投资基金",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "673",
+                        "name": "非公开募集证券投资基金",
+                        "children": [
+                            {
+                                "code": "6731",
+                                "name": "创业投资基金",
+                                "children": []
+                            },
+                            {
+                                "code": "6732",
+                                "name": "天使投资",
+                                "children": []
+                            },
+                            {
+                                "code": "6739",
+                                "name": "其他非公开募集证券投资基金",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "674",
+                        "name": "期货市场服务",
+                        "children": [
+                            {
+                                "code": "6741",
+                                "name": "期货市场管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6749",
+                                "name": "其他期货市场服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "675",
+                        "name": "证券期货监管服务",
+                        "children": [
+                            {
+                                "code": "6750",
+                                "name": "证券期货监管服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "676",
+                        "name": "资本投资服务",
+                        "children": [
+                            {
+                                "code": "6760",
+                                "name": "资本投资服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "679",
+                        "name": "其他资本市场服务",
+                        "children": [
+                            {
+                                "code": "6790",
+                                "name": "其他资本市场服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "68",
+                "name": "保险业",
+                "children": [
+                    {
+                        "code": "681",
+                        "name": "人身保险",
+                        "children": [
+                            {
+                                "code": "6811",
+                                "name": "人寿保险",
+                                "children": []
+                            },
+                            {
+                                "code": "6812",
+                                "name": "年金保险",
+                                "children": []
+                            },
+                            {
+                                "code": "6813",
+                                "name": "健康保险",
+                                "children": []
+                            },
+                            {
+                                "code": "6814",
+                                "name": "意外伤害保险",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "682",
+                        "name": "财产保险",
+                        "children": [
+                            {
+                                "code": "6820",
+                                "name": "财产保险",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "683",
+                        "name": "再保险",
+                        "children": [
+                            {
+                                "code": "6830",
+                                "name": "再保险",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "684",
+                        "name": "商业养老金",
+                        "children": [
+                            {
+                                "code": "6840",
+                                "name": "商业养老金",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "685",
+                        "name": "保险中介服务",
+                        "children": [
+                            {
+                                "code": "6851",
+                                "name": "保险经纪服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6852",
+                                "name": "保险代理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6853",
+                                "name": "保险公估服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "686",
+                        "name": "保险资产管理",
+                        "children": [
+                            {
+                                "code": "6860",
+                                "name": "保险资产管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "687",
+                        "name": "保险监管服务",
+                        "children": [
+                            {
+                                "code": "6870",
+                                "name": "保险监管服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "689",
+                        "name": "其他保险活动",
+                        "children": [
+                            {
+                                "code": "6890",
+                                "name": "其他保险活动",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "69",
+                "name": "其他金融业",
+                "children": [
+                    {
+                        "code": "691",
+                        "name": "金融信托与管理服务",
+                        "children": [
+                            {
+                                "code": "6911",
+                                "name": "信托公司",
+                                "children": []
+                            },
+                            {
+                                "code": "6919",
+                                "name": "其他金融信托与管理服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "692",
+                        "name": "控股公司服务",
+                        "children": [
+                            {
+                                "code": "6920",
+                                "name": "控股公司服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "693",
+                        "name": "非金融机构支付服务",
+                        "children": [
+                            {
+                                "code": "6930",
+                                "name": "非金融机构支付服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "694",
+                        "name": "金融信息服务",
+                        "children": [
+                            {
+                                "code": "6940",
+                                "name": "金融信息服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "695",
+                        "name": "金融资产管理公司",
+                        "children": [
+                            {
+                                "code": "6950",
+                                "name": "金融资产管理公司",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "699",
+                        "name": "其他未列明金融业",
+                        "children": [
+                            {
+                                "code": "6991",
+                                "name": "货币经纪公司服务",
+                                "children": []
+                            },
+                            {
+                                "code": "6999",
+                                "name": "其他未包括金融业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "K",
+        "name": "房地产业",
+        "children": [
+            {
+                "code": "70",
+                "name": "房地产业",
+                "children": [
+                    {
+                        "code": "701",
+                        "name": "房地产开发经营",
+                        "children": [
+                            {
+                                "code": "7010",
+                                "name": "房地产开发经营",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "702",
+                        "name": "物业管理",
+                        "children": [
+                            {
+                                "code": "7020",
+                                "name": "物业管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "703",
+                        "name": "房地产中介服务",
+                        "children": [
+                            {
+                                "code": "7030",
+                                "name": "房地产中介服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "704",
+                        "name": "房地产租赁经营",
+                        "children": [
+                            {
+                                "code": "7040",
+                                "name": "房地产租赁经营",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "709",
+                        "name": "其他房地产业",
+                        "children": [
+                            {
+                                "code": "7090",
+                                "name": "其他房地产业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "L",
+        "name": "租赁和商务服务业",
+        "children": [
+            {
+                "code": "71",
+                "name": "租赁业",
+                "children": [
+                    {
+                        "code": "711",
+                        "name": "机械设备经营租赁",
+                        "children": [
+                            {
+                                "code": "7111",
+                                "name": "汽车租赁",
+                                "children": []
+                            },
+                            {
+                                "code": "7112",
+                                "name": "农业机械经营租赁",
+                                "children": []
+                            },
+                            {
+                                "code": "7113",
+                                "name": "建筑工程机械与设备经营租赁",
+                                "children": []
+                            },
+                            {
+                                "code": "7114",
+                                "name": "计算机及通讯设备经营租赁",
+                                "children": []
+                            },
+                            {
+                                "code": "7115",
+                                "name": "医疗设备经营租赁",
+                                "children": []
+                            },
+                            {
+                                "code": "7119",
+                                "name": "其他机械与设备经营租赁",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "712",
+                        "name": "文体设备和用品出租",
+                        "children": [
+                            {
+                                "code": "7121",
+                                "name": "休闲娱乐用品设备出租",
+                                "children": []
+                            },
+                            {
+                                "code": "7122",
+                                "name": "体育用品设备出租",
+                                "children": []
+                            },
+                            {
+                                "code": "7123",
+                                "name": "文化用品设备出租",
+                                "children": []
+                            },
+                            {
+                                "code": "7124",
+                                "name": "图书出租",
+                                "children": []
+                            },
+                            {
+                                "code": "7125",
+                                "name": "音像制品出租",
+                                "children": []
+                            },
+                            {
+                                "code": "7129",
+                                "name": "其他文体设备和用品出租",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "713",
+                        "name": "日用品出租",
+                        "children": [
+                            {
+                                "code": "7130",
+                                "name": "日用品出租",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "72",
+                "name": "商务服务业",
+                "children": [
+                    {
+                        "code": "721",
+                        "name": "组织管理服务",
+                        "children": [
+                            {
+                                "code": "7211",
+                                "name": "企业总部管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7212",
+                                "name": "投资与资产管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7213",
+                                "name": "资源与产权交易服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7214",
+                                "name": "单位后勤管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7215",
+                                "name": "农村集体经济组织管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7219",
+                                "name": "其他组织管理服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "722",
+                        "name": "综合管理服务",
+                        "children": [
+                            {
+                                "code": "7221",
+                                "name": "园区管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7222",
+                                "name": "商业综合体管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7223",
+                                "name": "市场管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7224",
+                                "name": "供应链管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7229",
+                                "name": "其他综合管理服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "723",
+                        "name": "法律服务",
+                        "children": [
+                            {
+                                "code": "7231",
+                                "name": "律师及相关法律服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7232",
+                                "name": "公证服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7239",
+                                "name": "其他法律服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "724",
+                        "name": "咨询与调查",
+                        "children": [
+                            {
+                                "code": "7241",
+                                "name": "会计、审计及税务服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7242",
+                                "name": "市场调查",
+                                "children": []
+                            },
+                            {
+                                "code": "7243",
+                                "name": "社会经济咨询",
+                                "children": []
+                            },
+                            {
+                                "code": "7244",
+                                "name": "健康咨询",
+                                "children": []
+                            },
+                            {
+                                "code": "7245",
+                                "name": "环保咨询",
+                                "children": []
+                            },
+                            {
+                                "code": "7246",
+                                "name": "体育咨询",
+                                "children": []
+                            },
+                            {
+                                "code": "7249",
+                                "name": "其他专业咨询与调查",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "725",
+                        "name": "广告业",
+                        "children": [
+                            {
+                                "code": "7251",
+                                "name": "互联网广告服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7259",
+                                "name": "其他广告服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "726",
+                        "name": "人力资源服务",
+                        "children": [
+                            {
+                                "code": "7261",
+                                "name": "公共就业服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7262",
+                                "name": "职业中介服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7263",
+                                "name": "劳务派遣服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7264",
+                                "name": "创业指导服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7269",
+                                "name": "其他人力资源服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "727",
+                        "name": "安全保护服务",
+                        "children": [
+                            {
+                                "code": "7271",
+                                "name": "安全服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7272",
+                                "name": "安全系统监控服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7279",
+                                "name": "其他安全保护服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "728",
+                        "name": "会议、展览及相关服务",
+                        "children": [
+                            {
+                                "code": "7281",
+                                "name": "科技会展服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7282",
+                                "name": "旅游会展服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7283",
+                                "name": "体育会展服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7284",
+                                "name": "文化会展服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7289",
+                                "name": "其他会议、会展及相关服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "729",
+                        "name": "其他商务服务业",
+                        "children": [
+                            {
+                                "code": "7291",
+                                "name": "旅行社及相关服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7292",
+                                "name": "包装服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7293",
+                                "name": "办公服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7294",
+                                "name": "翻译服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7295",
+                                "name": "信用服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7296",
+                                "name": "非融资担保服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7297",
+                                "name": "商务代理代办服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7298",
+                                "name": "票务代理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7299",
+                                "name": "其他未列明商务服务业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "M",
+        "name": "科学研究和技术服务业",
+        "children": [
+            {
+                "code": "73",
+                "name": "研究和试验发展",
+                "children": [
+                    {
+                        "code": "731",
+                        "name": "自然科学研究和试验发展",
+                        "children": [
+                            {
+                                "code": "7310",
+                                "name": "自然科学研究和试验发展",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "732",
+                        "name": "工程和技术研究和试验发展",
+                        "children": [
+                            {
+                                "code": "7320",
+                                "name": "工程和技术研究和试验发展",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "733",
+                        "name": "农业科学研究和试验发展",
+                        "children": [
+                            {
+                                "code": "7330",
+                                "name": "农业科学研究和试验发展",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "734",
+                        "name": "医学研究和试验发展",
+                        "children": [
+                            {
+                                "code": "7340",
+                                "name": "医学研究和试验发展",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "735",
+                        "name": "社会人文科学研究",
+                        "children": [
+                            {
+                                "code": "7350",
+                                "name": "社会人文科学研究",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "74",
+                "name": "专业技术服务业",
+                "children": [
+                    {
+                        "code": "741",
+                        "name": "气象服务",
+                        "children": [
+                            {
+                                "code": "7410",
+                                "name": "气象服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "742",
+                        "name": "地震服务",
+                        "children": [
+                            {
+                                "code": "7420",
+                                "name": "地震服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "743",
+                        "name": "海洋服务",
+                        "children": [
+                            {
+                                "code": "7431",
+                                "name": "海洋气象服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7432",
+                                "name": "海洋环境服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7439",
+                                "name": "其他海洋服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "744",
+                        "name": "测绘地理信息服务",
+                        "children": [
+                            {
+                                "code": "7441",
+                                "name": "遥感测绘服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7449",
+                                "name": "其他测绘地理信息服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "745",
+                        "name": "质检技术服务",
+                        "children": [
+                            {
+                                "code": "7451",
+                                "name": "检验检疫服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7452",
+                                "name": "检测服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7453",
+                                "name": "计量服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7454",
+                                "name": "标准化服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7455",
+                                "name": "认证认可服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7459",
+                                "name": "其他质检技术服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "746",
+                        "name": "环境与生态监测检测服务",
+                        "children": [
+                            {
+                                "code": "7461",
+                                "name": "环境保护监测",
+                                "children": []
+                            },
+                            {
+                                "code": "7462",
+                                "name": "生态资源监测",
+                                "children": []
+                            },
+                            {
+                                "code": "7463",
+                                "name": "野生动物疫源疫病防控监测",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "747",
+                        "name": "地质勘查",
+                        "children": [
+                            {
+                                "code": "7471",
+                                "name": "能源矿产地质勘查",
+                                "children": []
+                            },
+                            {
+                                "code": "7472",
+                                "name": "固体矿产地质勘查",
+                                "children": []
+                            },
+                            {
+                                "code": "7473",
+                                "name": "水、二氧化碳等矿产地质勘查",
+                                "children": []
+                            },
+                            {
+                                "code": "7474",
+                                "name": "基础地质勘查",
+                                "children": []
+                            },
+                            {
+                                "code": "7475",
+                                "name": "地质勘查技术服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "748",
+                        "name": "工程技术与设计服务",
+                        "children": [
+                            {
+                                "code": "7481",
+                                "name": "工程管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7482",
+                                "name": "工程监理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7483",
+                                "name": "工程勘察活动",
+                                "children": []
+                            },
+                            {
+                                "code": "7484",
+                                "name": "工程设计活动",
+                                "children": []
+                            },
+                            {
+                                "code": "7485",
+                                "name": "规划设计管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7486",
+                                "name": "土地规划服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "749",
+                        "name": "工业与专业设计及其他专业技术服务",
+                        "children": [
+                            {
+                                "code": "7491",
+                                "name": "工业设计服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7492",
+                                "name": "专业设计服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7493",
+                                "name": "兽医服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7499",
+                                "name": "其他未列明专业技术服务业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "75",
+                "name": "科技推广和应用服务业",
+                "children": [
+                    {
+                        "code": "751",
+                        "name": "技术推广服务",
+                        "children": [
+                            {
+                                "code": "7511",
+                                "name": "农林牧渔技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7512",
+                                "name": "生物技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7513",
+                                "name": "新材料技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7514",
+                                "name": "节能技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7515",
+                                "name": "新能源技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7516",
+                                "name": "环保技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7517",
+                                "name": "三维(3D)打印技术推广服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7519",
+                                "name": "其他技术推广服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "752",
+                        "name": "知识产权服务",
+                        "children": [
+                            {
+                                "code": "7520",
+                                "name": "知识产权服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "753",
+                        "name": "科技中介服务",
+                        "children": [
+                            {
+                                "code": "7530",
+                                "name": "科技中介服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "754",
+                        "name": "创业空间服务",
+                        "children": [
+                            {
+                                "code": "7540",
+                                "name": "创业空间服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "759",
+                        "name": "其他科技推广服务业",
+                        "children": [
+                            {
+                                "code": "7590",
+                                "name": "其他科技推广服务业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "N",
+        "name": "水利、环境和公共设施管理业",
+        "children": [
+            {
+                "code": "76",
+                "name": "水利管理业",
+                "children": [
+                    {
+                        "code": "761",
+                        "name": "防洪除涝设施管理",
+                        "children": [
+                            {
+                                "code": "7610",
+                                "name": "防洪除涝设施管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "762",
+                        "name": "水资源管理",
+                        "children": [
+                            {
+                                "code": "7620",
+                                "name": "水资源管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "763",
+                        "name": "天然水收集与分配",
+                        "children": [
+                            {
+                                "code": "7630",
+                                "name": "天然水收集与分配",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "764",
+                        "name": "水文服务",
+                        "children": [
+                            {
+                                "code": "7640",
+                                "name": "水文服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "769",
+                        "name": "其他水利管理业",
+                        "children": [
+                            {
+                                "code": "7690",
+                                "name": "其他水利管理业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "77",
+                "name": "生态保护和环境治理业",
+                "children": [
+                    {
+                        "code": "771",
+                        "name": "生态保护",
+                        "children": [
+                            {
+                                "code": "7711",
+                                "name": "自然生态系统保护管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7712",
+                                "name": "自然遗迹保护管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7713",
+                                "name": "野生动物保护",
+                                "children": []
+                            },
+                            {
+                                "code": "7714",
+                                "name": "野生植物保护",
+                                "children": []
+                            },
+                            {
+                                "code": "7715",
+                                "name": "动物园、水族馆管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7716",
+                                "name": "植物园管理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7719",
+                                "name": "其他自然保护",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "772",
+                        "name": "环境治理业",
+                        "children": [
+                            {
+                                "code": "7721",
+                                "name": "水污染治理",
+                                "children": []
+                            },
+                            {
+                                "code": "7722",
+                                "name": "大气污染治理",
+                                "children": []
+                            },
+                            {
+                                "code": "7723",
+                                "name": "固体废物治理",
+                                "children": []
+                            },
+                            {
+                                "code": "7724",
+                                "name": "危险废物治理",
+                                "children": []
+                            },
+                            {
+                                "code": "7725",
+                                "name": "放射性废物治理",
+                                "children": []
+                            },
+                            {
+                                "code": "7726",
+                                "name": "土壤污染治理与修复服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7727",
+                                "name": "噪声与振动控制服务",
+                                "children": []
+                            },
+                            {
+                                "code": "7729",
+                                "name": "其他污染治理",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "78",
+                "name": "公共设施管理业",
+                "children": [
+                    {
+                        "code": "781",
+                        "name": "市政设施管理",
+                        "children": [
+                            {
+                                "code": "7810",
+                                "name": "市政设施管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "782",
+                        "name": "环境卫生管理",
+                        "children": [
+                            {
+                                "code": "7820",
+                                "name": "环境卫生管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "783",
+                        "name": "城乡市容管理",
+                        "children": [
+                            {
+                                "code": "7830",
+                                "name": "城乡市容管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "784",
+                        "name": "绿化管理",
+                        "children": [
+                            {
+                                "code": "7840",
+                                "name": "绿化管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "785",
+                        "name": "城市公园管理",
+                        "children": [
+                            {
+                                "code": "7850",
+                                "name": "城市公园管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "786",
+                        "name": "游览景区管理",
+                        "children": [
+                            {
+                                "code": "7861",
+                                "name": "名胜风景区管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7862",
+                                "name": "森林公园管理",
+                                "children": []
+                            },
+                            {
+                                "code": "7869",
+                                "name": "其他游览景区管理",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "79",
+                "name": "土地管理业",
+                "children": [
+                    {
+                        "code": "791",
+                        "name": "土地整治服务",
+                        "children": [
+                            {
+                                "code": "7910",
+                                "name": "土地整治服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "792",
+                        "name": "土地调查评估服务",
+                        "children": [
+                            {
+                                "code": "7920",
+                                "name": "土地调查评估服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "793",
+                        "name": "土地登记服务",
+                        "children": [
+                            {
+                                "code": "7930",
+                                "name": "土地登记服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "794",
+                        "name": "土地登记代理服务",
+                        "children": [
+                            {
+                                "code": "7940",
+                                "name": "土地登记代理服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "799",
+                        "name": "其他土地管理服务",
+                        "children": [
+                            {
+                                "code": "7990",
+                                "name": "其他土地管理服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "O",
+        "name": "居民服务、修理和其他服务业",
+        "children": [
+            {
+                "code": "80",
+                "name": "居民服务业",
+                "children": [
+                    {
+                        "code": "801",
+                        "name": "家庭服务",
+                        "children": [
+                            {
+                                "code": "8010",
+                                "name": "家庭服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "802",
+                        "name": "托儿所服务",
+                        "children": [
+                            {
+                                "code": "8020",
+                                "name": "托儿所服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "803",
+                        "name": "洗染服务",
+                        "children": [
+                            {
+                                "code": "8030",
+                                "name": "洗染服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "804",
+                        "name": "理发及美容服务",
+                        "children": [
+                            {
+                                "code": "8040",
+                                "name": "理发及美容服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "805",
+                        "name": "洗浴和保健养生服务",
+                        "children": [
+                            {
+                                "code": "8051",
+                                "name": "洗浴服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8052",
+                                "name": "足浴服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8053",
+                                "name": "养生保健服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "806",
+                        "name": "摄影扩印服务",
+                        "children": [
+                            {
+                                "code": "8060",
+                                "name": "摄影扩印服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "807",
+                        "name": "婚姻服务",
+                        "children": [
+                            {
+                                "code": "8070",
+                                "name": "婚姻服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "808",
+                        "name": "殡葬服务",
+                        "children": [
+                            {
+                                "code": "8080",
+                                "name": "殡葬服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "809",
+                        "name": "其他居民服务业",
+                        "children": [
+                            {
+                                "code": "8090",
+                                "name": "其他居民服务业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "81",
+                "name": "机动车、电子产品和日用产品修理业",
+                "children": [
+                    {
+                        "code": "811",
+                        "name": "汽车、摩托车等修理与维护",
+                        "children": [
+                            {
+                                "code": "8111",
+                                "name": "汽车修理与维护",
+                                "children": []
+                            },
+                            {
+                                "code": "8112",
+                                "name": "大型车辆装备修理与维护",
+                                "children": []
+                            },
+                            {
+                                "code": "8113",
+                                "name": "摩托车修理与维护",
+                                "children": []
+                            },
+                            {
+                                "code": "8114",
+                                "name": "助动车等修理与维护",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "812",
+                        "name": "计算机和办公设备维修",
+                        "children": [
+                            {
+                                "code": "8121",
+                                "name": "计算机和辅助设备修理",
+                                "children": []
+                            },
+                            {
+                                "code": "8122",
+                                "name": "通讯设备修理",
+                                "children": []
+                            },
+                            {
+                                "code": "8129",
+                                "name": "其他办公设备维修",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "813",
+                        "name": "家用电器修理",
+                        "children": [
+                            {
+                                "code": "8131",
+                                "name": "家用电子产品修理",
+                                "children": []
+                            },
+                            {
+                                "code": "8132",
+                                "name": "日用电器修理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "819",
+                        "name": "其他日用产品修理业",
+                        "children": [
+                            {
+                                "code": "8191",
+                                "name": "自行车修理",
+                                "children": []
+                            },
+                            {
+                                "code": "8192",
+                                "name": "鞋和皮革修理",
+                                "children": []
+                            },
+                            {
+                                "code": "8193",
+                                "name": "家具和相关物品修理",
+                                "children": []
+                            },
+                            {
+                                "code": "8199",
+                                "name": "其他未列明日用产品修理业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "82",
+                "name": "其他服务业",
+                "children": [
+                    {
+                        "code": "821",
+                        "name": "清洁服务",
+                        "children": [
+                            {
+                                "code": "8211",
+                                "name": "建筑物清洁服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8219",
+                                "name": "其他清洁服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "822",
+                        "name": "宠物服务",
+                        "children": [
+                            {
+                                "code": "8221",
+                                "name": "宠物饲养",
+                                "children": []
+                            },
+                            {
+                                "code": "8222",
+                                "name": "宠物医院服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8223",
+                                "name": "宠物美容服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8224",
+                                "name": "宠物寄托收养服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8229",
+                                "name": "其他宠物服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "829",
+                        "name": "其他未列明服务业",
+                        "children": [
+                            {
+                                "code": "8290",
+                                "name": "其他未列明服务业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "P",
+        "name": "教育",
+        "children": [
+            {
+                "code": "83",
+                "name": "教育",
+                "children": [
+                    {
+                        "code": "831",
+                        "name": "学前教育",
+                        "children": [
+                            {
+                                "code": "8310",
+                                "name": "学前教育",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "832",
+                        "name": "初等教育",
+                        "children": [
+                            {
+                                "code": "8321",
+                                "name": "普通小学教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8322",
+                                "name": "成人小学教育",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "833",
+                        "name": "中等教育",
+                        "children": [
+                            {
+                                "code": "8331",
+                                "name": "普通初中教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8332",
+                                "name": "职业初中教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8333",
+                                "name": "成人初中教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8334",
+                                "name": "普通高中教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8335",
+                                "name": "成人高中教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8336",
+                                "name": "中等职业学校教育",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "834",
+                        "name": "高等教育",
+                        "children": [
+                            {
+                                "code": "8341",
+                                "name": "普通高等教育",
+                                "children": []
+                            },
+                            {
+                                "code": "8342",
+                                "name": "成人高等教育",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "835",
+                        "name": "特殊教育",
+                        "children": [
+                            {
+                                "code": "8350",
+                                "name": "特殊教育",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "839",
+                        "name": "技能培训、教育辅助及其他教育",
+                        "children": [
+                            {
+                                "code": "8391",
+                                "name": "职业技能培训",
+                                "children": []
+                            },
+                            {
+                                "code": "8392",
+                                "name": "体校及体育培训",
+                                "children": []
+                            },
+                            {
+                                "code": "8393",
+                                "name": "文化艺术培训",
+                                "children": []
+                            },
+                            {
+                                "code": "8394",
+                                "name": "教育辅助服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8399",
+                                "name": "其他未列明教育",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "Q",
+        "name": "卫生和社会工作",
+        "children": [
+            {
+                "code": "84",
+                "name": "卫生",
+                "children": [
+                    {
+                        "code": "841",
+                        "name": "医院",
+                        "children": [
+                            {
+                                "code": "8411",
+                                "name": "综合医院",
+                                "children": []
+                            },
+                            {
+                                "code": "8412",
+                                "name": "中医医院",
+                                "children": []
+                            },
+                            {
+                                "code": "8413",
+                                "name": "中西医结合医院",
+                                "children": []
+                            },
+                            {
+                                "code": "8414",
+                                "name": "民族医院",
+                                "children": []
+                            },
+                            {
+                                "code": "8415",
+                                "name": "专科医院",
+                                "children": []
+                            },
+                            {
+                                "code": "8416",
+                                "name": "疗养院",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "842",
+                        "name": "基层医疗卫生服务",
+                        "children": [
+                            {
+                                "code": "8421",
+                                "name": "社区卫生服务中心(站)",
+                                "children": []
+                            },
+                            {
+                                "code": "8422",
+                                "name": "街道卫生院",
+                                "children": []
+                            },
+                            {
+                                "code": "8423",
+                                "name": "乡镇卫生院",
+                                "children": []
+                            },
+                            {
+                                "code": "8424",
+                                "name": "村卫生室",
+                                "children": []
+                            },
+                            {
+                                "code": "8425",
+                                "name": "门诊部(所)",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "843",
+                        "name": "专业公共卫生服务",
+                        "children": [
+                            {
+                                "code": "8431",
+                                "name": "疾病预防控制中心",
+                                "children": []
+                            },
+                            {
+                                "code": "8432",
+                                "name": "专科疾病防治院(所、站)",
+                                "children": []
+                            },
+                            {
+                                "code": "8433",
+                                "name": "妇幼保健院(所、站)",
+                                "children": []
+                            },
+                            {
+                                "code": "8434",
+                                "name": "急救中心(站)服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8435",
+                                "name": "采供血机构服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8436",
+                                "name": "计划生育技术服务活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "849",
+                        "name": "其他卫生活动",
+                        "children": [
+                            {
+                                "code": "8491",
+                                "name": "健康体检服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8492",
+                                "name": "临床检验服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8499",
+                                "name": "其他未列明卫生服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "85",
+                "name": "社会工作",
+                "children": [
+                    {
+                        "code": "851",
+                        "name": "提供住宿社会工作",
+                        "children": [
+                            {
+                                "code": "8511",
+                                "name": "干部休养所",
+                                "children": []
+                            },
+                            {
+                                "code": "8512",
+                                "name": "护理机构服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8513",
+                                "name": "精神康复服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8514",
+                                "name": "老年人、残疾人养护服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8515",
+                                "name": "临终关怀服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8516",
+                                "name": "孤残儿童收养和庇护服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8519",
+                                "name": "其他提供住宿社会救助",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "852",
+                        "name": "不提供住宿社会工作",
+                        "children": [
+                            {
+                                "code": "8521",
+                                "name": "社会看护与帮助服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8522",
+                                "name": "康复辅具适配服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8529",
+                                "name": "其他不提供住宿社会工作",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "R",
+        "name": "文化、体育和娱乐业",
+        "children": [
+            {
+                "code": "86",
+                "name": "新闻和出版业",
+                "children": [
+                    {
+                        "code": "861",
+                        "name": "新闻业",
+                        "children": [
+                            {
+                                "code": "8610",
+                                "name": "新闻业",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "862",
+                        "name": "出版业",
+                        "children": [
+                            {
+                                "code": "8621",
+                                "name": "图书出版",
+                                "children": []
+                            },
+                            {
+                                "code": "8622",
+                                "name": "报纸出版",
+                                "children": []
+                            },
+                            {
+                                "code": "8623",
+                                "name": "期刊出版",
+                                "children": []
+                            },
+                            {
+                                "code": "8624",
+                                "name": "音像制品出版",
+                                "children": []
+                            },
+                            {
+                                "code": "8625",
+                                "name": "电子出版物出版",
+                                "children": []
+                            },
+                            {
+                                "code": "8626",
+                                "name": "数字出版",
+                                "children": []
+                            },
+                            {
+                                "code": "8629",
+                                "name": "其他出版业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "87",
+                "name": "广播、电视、电影和录音制作业",
+                "children": [
+                    {
+                        "code": "871",
+                        "name": "广播",
+                        "children": [
+                            {
+                                "code": "8710",
+                                "name": "广播",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "872",
+                        "name": "电视",
+                        "children": [
+                            {
+                                "code": "8720",
+                                "name": "电视",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "873",
+                        "name": "影视节目制作",
+                        "children": [
+                            {
+                                "code": "8730",
+                                "name": "影视节目制作",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "874",
+                        "name": "广播电视集成播控",
+                        "children": [
+                            {
+                                "code": "8740",
+                                "name": "广播电视集成播控",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "875",
+                        "name": "电影和广播电视节目发行",
+                        "children": [
+                            {
+                                "code": "8750",
+                                "name": "电影和广播电视节目发行",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "876",
+                        "name": "电影放映",
+                        "children": [
+                            {
+                                "code": "8760",
+                                "name": "电影放映",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "877",
+                        "name": "录音制作",
+                        "children": [
+                            {
+                                "code": "8770",
+                                "name": "录音制作",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "88",
+                "name": "文化艺术业",
+                "children": [
+                    {
+                        "code": "881",
+                        "name": "文艺创作与表演",
+                        "children": [
+                            {
+                                "code": "8810",
+                                "name": "文艺创作与表演",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "882",
+                        "name": "艺术表演场馆",
+                        "children": [
+                            {
+                                "code": "8820",
+                                "name": "艺术表演场馆",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "883",
+                        "name": "图书馆与档案馆",
+                        "children": [
+                            {
+                                "code": "8831",
+                                "name": "图书馆",
+                                "children": []
+                            },
+                            {
+                                "code": "8832",
+                                "name": "档案馆",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "884",
+                        "name": "文物及非物质文化遗产保护",
+                        "children": [
+                            {
+                                "code": "8840",
+                                "name": "文物及非物质文化遗产保护",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "885",
+                        "name": "博物馆",
+                        "children": [
+                            {
+                                "code": "8850",
+                                "name": "博物馆",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "886",
+                        "name": "烈士陵园、纪念馆",
+                        "children": [
+                            {
+                                "code": "8860",
+                                "name": "烈士陵园、纪念馆",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "887",
+                        "name": "群众文体活动",
+                        "children": [
+                            {
+                                "code": "8870",
+                                "name": "群众文体活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "889",
+                        "name": "其他文化艺术业",
+                        "children": [
+                            {
+                                "code": "8890",
+                                "name": "其他文化艺术业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "89",
+                "name": "体育",
+                "children": [
+                    {
+                        "code": "891",
+                        "name": "体育组织",
+                        "children": [
+                            {
+                                "code": "8911",
+                                "name": "体育竞赛组织",
+                                "children": []
+                            },
+                            {
+                                "code": "8912",
+                                "name": "体育保障组织",
+                                "children": []
+                            },
+                            {
+                                "code": "8919",
+                                "name": "其他体育组织",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "892",
+                        "name": "体育场地设施管理",
+                        "children": [
+                            {
+                                "code": "8921",
+                                "name": "体育场馆管理",
+                                "children": []
+                            },
+                            {
+                                "code": "8929",
+                                "name": "其他体育场地设施管理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "893",
+                        "name": "健身休闲活动",
+                        "children": [
+                            {
+                                "code": "8930",
+                                "name": "健身休闲活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "899",
+                        "name": "其他体育",
+                        "children": [
+                            {
+                                "code": "8991",
+                                "name": "体育中介代理服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8992",
+                                "name": "体育健康服务",
+                                "children": []
+                            },
+                            {
+                                "code": "8999",
+                                "name": "其他未列明体育",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "90",
+                "name": "娱乐业",
+                "children": [
+                    {
+                        "code": "901",
+                        "name": "室内娱乐活动",
+                        "children": [
+                            {
+                                "code": "9011",
+                                "name": "歌舞厅娱乐活动",
+                                "children": []
+                            },
+                            {
+                                "code": "9012",
+                                "name": "电子游艺厅娱乐活动",
+                                "children": []
+                            },
+                            {
+                                "code": "9013",
+                                "name": "网吧活动",
+                                "children": []
+                            },
+                            {
+                                "code": "9019",
+                                "name": "其他室内娱乐活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "902",
+                        "name": "游乐园",
+                        "children": [
+                            {
+                                "code": "9020",
+                                "name": "游乐园",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "903",
+                        "name": "休闲观光活动",
+                        "children": [
+                            {
+                                "code": "9030",
+                                "name": "休闲观光活动",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "904",
+                        "name": "彩票活动",
+                        "children": [
+                            {
+                                "code": "9041",
+                                "name": "体育彩票服务",
+                                "children": []
+                            },
+                            {
+                                "code": "9042",
+                                "name": "福利彩票服务",
+                                "children": []
+                            },
+                            {
+                                "code": "9049",
+                                "name": "其他彩票服务",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "905",
+                        "name": "文化体育娱乐活动与经纪代理服务",
+                        "children": [
+                            {
+                                "code": "9051",
+                                "name": "文化活动服务",
+                                "children": []
+                            },
+                            {
+                                "code": "9052",
+                                "name": "体育表演服务",
+                                "children": []
+                            },
+                            {
+                                "code": "9053",
+                                "name": "文化娱乐经纪人",
+                                "children": []
+                            },
+                            {
+                                "code": "9054",
+                                "name": "体育经纪人",
+                                "children": []
+                            },
+                            {
+                                "code": "9059",
+                                "name": "其他文化艺术经纪代理",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "909",
+                        "name": "其他娱乐业",
+                        "children": [
+                            {
+                                "code": "9090",
+                                "name": "其他娱乐业",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "S",
+        "name": "公共管理、社会保障和社会组织",
+        "children": [
+            {
+                "code": "91",
+                "name": "中国共产党机关",
+                "children": [
+                    {
+                        "code": "910",
+                        "name": "中国共产党机关",
+                        "children": [
+                            {
+                                "code": "9100",
+                                "name": "中国共产党机关",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "92",
+                "name": "国家机构",
+                "children": [
+                    {
+                        "code": "921",
+                        "name": "国家权力机构",
+                        "children": [
+                            {
+                                "code": "9210",
+                                "name": "国家权力机构",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "922",
+                        "name": "国家行政机构",
+                        "children": [
+                            {
+                                "code": "9221",
+                                "name": "综合事务管理机构",
+                                "children": []
+                            },
+                            {
+                                "code": "9222",
+                                "name": "对外事务管理机构",
+                                "children": []
+                            },
+                            {
+                                "code": "9223",
+                                "name": "公共安全管理机构",
+                                "children": []
+                            },
+                            {
+                                "code": "9224",
+                                "name": "社会事务管理机构",
+                                "children": []
+                            },
+                            {
+                                "code": "9225",
+                                "name": "经济事务管理机构",
+                                "children": []
+                            },
+                            {
+                                "code": "9226",
+                                "name": "行政监督检查机构",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "923",
+                        "name": "人民法院和人民检察院",
+                        "children": [
+                            {
+                                "code": "9231",
+                                "name": "人民法院",
+                                "children": []
+                            },
+                            {
+                                "code": "9232",
+                                "name": "人民检察院",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "929",
+                        "name": "其他国家机构",
+                        "children": [
+                            {
+                                "code": "9291",
+                                "name": "消防管理机构",
+                                "children": []
+                            },
+                            {
+                                "code": "9299",
+                                "name": "其他未列明国家机构",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "93",
+                "name": "人民政协、民主党派",
+                "children": [
+                    {
+                        "code": "931",
+                        "name": "人民政协",
+                        "children": [
+                            {
+                                "code": "9310",
+                                "name": "人民政协",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "932",
+                        "name": "民主党派",
+                        "children": [
+                            {
+                                "code": "9320",
+                                "name": "民主党派",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "94",
+                "name": "社会保障",
+                "children": [
+                    {
+                        "code": "941",
+                        "name": "基本保险",
+                        "children": [
+                            {
+                                "code": "9411",
+                                "name": "基本养老保险",
+                                "children": []
+                            },
+                            {
+                                "code": "9412",
+                                "name": "基本医疗保险",
+                                "children": []
+                            },
+                            {
+                                "code": "9413",
+                                "name": "失业保险",
+                                "children": []
+                            },
+                            {
+                                "code": "9414",
+                                "name": "工伤保险",
+                                "children": []
+                            },
+                            {
+                                "code": "9415",
+                                "name": "生育保险",
+                                "children": []
+                            },
+                            {
+                                "code": "9419",
+                                "name": "其他基本保险",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "942",
+                        "name": "补充保险",
+                        "children": [
+                            {
+                                "code": "9420",
+                                "name": "补充保险",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "949",
+                        "name": "其他社会保障",
+                        "children": [
+                            {
+                                "code": "9490",
+                                "name": "其他社会保障",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "95",
+                "name": "群众团体、社会团体和其他成员组织",
+                "children": [
+                    {
+                        "code": "951",
+                        "name": "群众团体",
+                        "children": [
+                            {
+                                "code": "9511",
+                                "name": "工会",
+                                "children": []
+                            },
+                            {
+                                "code": "9512",
+                                "name": "妇联",
+                                "children": []
+                            },
+                            {
+                                "code": "9513",
+                                "name": "共青团",
+                                "children": []
+                            },
+                            {
+                                "code": "9519",
+                                "name": "其他群众团体",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "952",
+                        "name": "社会团体",
+                        "children": [
+                            {
+                                "code": "9521",
+                                "name": "专业性团体",
+                                "children": []
+                            },
+                            {
+                                "code": "9522",
+                                "name": "行业性团体",
+                                "children": []
+                            },
+                            {
+                                "code": "9529",
+                                "name": "其他社会团体",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "953",
+                        "name": "基金会",
+                        "children": [
+                            {
+                                "code": "9530",
+                                "name": "基金会",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "954",
+                        "name": "宗教组织",
+                        "children": [
+                            {
+                                "code": "9541",
+                                "name": "宗教团体服务",
+                                "children": []
+                            },
+                            {
+                                "code": "9542",
+                                "name": "宗教活动场所服务",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            },
+            {
+                "code": "96",
+                "name": "基层群众自治组织及其他组织",
+                "children": [
+                    {
+                        "code": "961",
+                        "name": "社区居民自治组织",
+                        "children": [
+                            {
+                                "code": "9610",
+                                "name": "社区居民自治组织",
+                                "children": []
+                            }
+                        ]
+                    },
+                    {
+                        "code": "962",
+                        "name": "村民自治组织",
+                        "children": [
+                            {
+                                "code": "9620",
+                                "name": "村民自治组织",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        "code": "T",
+        "name": "国际组织",
+        "children": [
+            {
+                "code": "97",
+                "name": "国际组织",
+                "children": [
+                    {
+                        "code": "970",
+                        "name": "国际组织",
+                        "children": [
+                            {
+                                "code": "9700",
+                                "name": "国际组织",
+                                "children": []
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
+]

+ 1 - 1
project_portrait/main.go

@@ -27,7 +27,7 @@ var (
 	portraitMgo   = ""                // MongoDB 的表名
 	GF            GlobalConf
 	// 情报分类一级标签
-	topInfos = []string{"情报_物业", "情报_环境采购", "情报_印务商机", "情报_家具招投标", "情报_车辆租赁"}
+	topInfos = []string{"情报_物业", "情报_环境采购", "情报_印务商机", "情报_家具招投标", "情报_车辆租赁", "情报_安防"}
 )
 
 type PortraitData struct {

+ 1 - 1
project_portrait/readme.md

@@ -12,7 +12,7 @@
     project_count	int	项目数量
     project_money	float64	项目金额
 
---  class,对应 tag_topinformation 的值,目前只有物业一个,后面要添加四个领域标签,一共就是5个。
+--  class,对应 `tag_topinformation` 的值,目前只有物业一个,后面要添加四个领域标签,一共就是5个。
 要依据每个标签,还有采购单位类型
 
 ### 2.开发逻辑