Browse Source

修复计算指标关联关系数据

hongze 3 years ago
parent
commit
ae9db7799b

+ 82 - 0
models/data_manage/edb_info_calculate_mapping.go

@@ -0,0 +1,82 @@
+package data_manage
+
+import (
+	"fmt"
+	"rdluck_tools/orm"
+	"time"
+)
+
+type EdbInfoCalculateMapping struct {
+	EdbInfoCalculateMappingId int       `orm:"column(edb_info_calculate_mapping_id);pk"`
+	EdbInfoId                 int       `description:"计算指标id"`
+	Source                    int       `description:"计算指标来源"`
+	SourceName                string    `description:"计算指标来源名称"`
+	EdbCode                   string    `description:"计算指标编码"`
+	FromEdbInfoId             int       `description:"基础指标id"`
+	FromEdbCode               string    `description:"基础指标编码"`
+	FromEdbName               string    `description:"基础指标名称"`
+	FromSource                int       `description:"基础指标来源"`
+	FromSourceName            string    `description:"基础指标来源名称"`
+	FromTag                   string    `description:"来源指标标签"`
+	Sort                      int       `description:"计算指标名称排序"`
+	CreateTime                time.Time `description:"创建时间"`
+	ModifyTime                time.Time `description:"修改时间"`
+}
+
+func AddEdbInfoCalculateMappingMulti(items []*EdbInfoCalculateMapping) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	_, err = o.InsertMulti(1, items)
+	return
+}
+
+func FixEdbInfoCalculateMapping() {
+	o := orm.NewOrm()
+	o.Using("data")
+	o.Begin()
+	var err error
+	defer func() {
+		if err != nil {
+			o.Rollback()
+		} else {
+			o.Commit()
+		}
+	}()
+	edbInfoList := make([]*EdbInfoList, 0)
+	sql := `SELECT * FROM edb_info WHERE edb_type=2 `
+	_, err = o.Raw(sql).QueryRows(&edbInfoList)
+	if err != nil {
+		return
+	}
+	for k, v := range edbInfoList {
+		fmt.Println(k, v.EdbInfoId)
+		calculateList := make([]*EdbInfoCalculateDetail, 0)
+		calculateTableName := GetEdbInfoCalculateTableName(v.Source)
+		sql := ` SELECT * FROM %s
+			WHERE edb_info_id=? ORDER BY sort ASC `
+		sql = fmt.Sprintf(sql, calculateTableName)
+		_, err = o.Raw(sql, v.EdbInfoId).QueryRows(&calculateList)
+		if err != nil {
+			fmt.Println("query calculate err:" + err.Error())
+			return
+		}
+		for _, cv := range calculateList {
+			//关联关系
+			calculateMappingItem := new(EdbInfoCalculateMapping)
+			calculateMappingItem.CreateTime = time.Now()
+			calculateMappingItem.ModifyTime = time.Now()
+			calculateMappingItem.Sort = 1
+			calculateMappingItem.EdbCode = v.EdbCode
+			calculateMappingItem.EdbInfoId = v.EdbInfoId
+			calculateMappingItem.FromEdbInfoId = cv.FromEdbInfoId
+			calculateMappingItem.FromEdbCode = cv.FromEdbCode
+			calculateMappingItem.FromEdbName = cv.FromEdbName
+			calculateMappingItem.FromSource = cv.FromSource
+			calculateMappingItem.FromSourceName = cv.FromSourceName
+			calculateMappingItem.FromTag = cv.FromTag
+			calculateMappingItem.Source = v.Source
+			calculateMappingItem.SourceName = v.SourceName
+			o.Insert(calculateMappingItem)
+		}
+	}
+}

+ 1 - 0
models/db.go

@@ -81,5 +81,6 @@ func init() {
 		new(data_manage.BaseFromSmmData),
 		new(data_manage.EdbDataYs),
 		new(Edbdata),
+		new(data_manage.EdbInfoCalculateMapping),
 	)
 }

+ 7 - 0
services/data/edb_info_calculate.go

@@ -158,3 +158,10 @@ func GetFormulaMap() map[string]string {
 	funMap["ROUND"] = "[@(]"
 	return funMap
 }
+
+//修复计算指标与基础指标的关联关系
+func FixEdbInfoCalculateMapping() {
+	fmt.Println("start")
+	data_manage.FixEdbInfoCalculateMapping()
+	fmt.Println("end")
+}

+ 6 - 0
services/task.go

@@ -70,6 +70,12 @@ func Task() {
 	fmt.Println("task end")
 }
 
+func Task123() {
+	fmt.Println("start")
+	data.FixEdbInfoCalculateMapping()
+	fmt.Println("end")
+}
+
 //生产环境需要走的任务
 func releaseTask() {