浏览代码

change ormv2

Roc 3 年之前
父节点
当前提交
132c290045

+ 0 - 139
models/chart.go

@@ -113,145 +113,6 @@ func GetEdbDataList(source, endInfoId int, startDate, endDate string) (list []*E
 	return
 }
 
-//指标季度数据计算(公历转农历)
-func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err error) {
-	var errMsg string
-	defer func() {
-		if errMsg != "" {
-			fmt.Println("errMsg:", errMsg)
-		}
-	}()
-	result = new(EdbDataResult)
-	var yearArr []int
-	yearMap := make(map[int]int)
-	var cureentDate time.Time
-	for k, v := range dataList {
-		dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-		if err != nil {
-			errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-			return result, err
-		}
-		if k == len(dataList)-1 {
-			cureentDate = dateTime
-		}
-		year := dateTime.Year()
-		if _, ok := yearMap[year]; !ok {
-			yearArr = append(yearArr, year)
-		}
-		yearMap[year] = year
-	}
-	//排序
-	fmt.Println(yearArr)
-	thisYear := cureentDate.Year()
-	thisMonth := int(cureentDate.Month())
-
-	fmt.Println("thisMonth:", thisMonth)
-	//sort.Ints(yearArr)
-	fmt.Println("yearArr:", yearArr)
-	fmt.Println("thisYear:", thisYear)
-
-	for ky, vy := range yearArr {
-		fmt.Println("line 432:", ky, vy, thisYear, thisMonth)
-		if thisMonth < 11 {
-			currentYearCjnl := strconv.Itoa(thisYear) + "-01-01"               //当前年份春节农历
-			currentYearCjgl := solarlunar.LunarToSolar(currentYearCjnl, false) //当前年份春节公历
-			currentYearCjglDate, err := time.Parse(utils.FormatDate, currentYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return result, err
-			}
-
-			fmt.Println(ky, vy)
-			preYear := vy
-			preYearCjnl := strconv.Itoa(preYear) + "-01-01"            //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return result, err
-			}
-			day := currentYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-
-			fmt.Println("day:", day)
-			fmt.Println("currentYearCjgl:", currentYearCjgl, "preYearCjgl:", preYearCjgl)
-
-			items := new(EdbDataItems)
-			items.Year = preYear
-			for _, v := range dataList {
-				dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-				if err != nil {
-					errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-					return result, err
-				}
-
-				newDate := dateTime.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(thisYear) + "-11" + "-30"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-				fmt.Println("line 467:", newDate, selectDate)
-				if newDate.Before(selectDate) {
-					timestamp := newDate.UnixNano() / 1e6
-					item := new(EdbDataList)
-					item.DataTime = newDate.Format(utils.FormatDate)
-					item.EdbInfoId = v.EdbInfoId
-					item.Value = v.Value
-					item.EdbDataId = v.EdbDataId
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			result.List = append(result.List, items)
-		} else {
-			fmt.Println(ky, vy)
-			nextYear := thisYear + 1
-			nextYearCjnl := strconv.Itoa(nextYear) + "-01-01"            //当前年份春节农历
-			nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
-
-			nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return result, err
-			}
-
-			preYear := vy
-			preYearCjnl := strconv.Itoa(preYear) + "-01-01"            //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return result, err
-			}
-			day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-
-			fmt.Println("day:", day)
-			items := new(EdbDataItems)
-			items.Year = preYear
-			for _, v := range dataList {
-				dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-				if err != nil {
-					errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-					return result, err
-				}
-				newDate := dateTime.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-
-				if newDate.Before(selectDate) {
-					timestamp := newDate.UnixNano() / 1e6
-					item := new(EdbDataList)
-					item.DataTime = newDate.Format(utils.FormatDate)
-					item.EdbInfoId = v.EdbInfoId
-					item.Value = v.Value
-					item.EdbDataId = v.EdbDataId
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			result.List = append(result.List, items)
-		}
-	}
-	return
-}
-
 type EdbDataItems struct {
 	Items []*EdbDataList
 	Year  int

+ 0 - 803
models/data_manage/chart_info.go

@@ -1,705 +1,11 @@
 package data_manage
 
 import (
-	"errors"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
-	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_chart_lib/utils"
-	"strconv"
-	"strings"
-	"time"
 )
 
-type ChartInfo struct {
-	ChartInfoId     int    `orm:"column(chart_info_id);pk"`
-	ChartName       string `description:"来源名称"`
-	ChartClassifyId int    `description:"图表分类id"`
-	SysUserId       int
-	SysUserRealName string
-	UniqueCode      string `description:"图表唯一编码"`
-	CreateTime      time.Time
-	ModifyTime      time.Time
-	DateType        int    `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"`
-	StartDate       string `description:"自定义开始日期"`
-	EndDate         string `description:"自定义结束日期"`
-	IsSetName       int    `description:"设置名称"`
-	EdbInfoIds      string `description:"指标id"`
-	ChartType       int    `description:"生成样式:1:曲线图,2:季节性图"`
-	Calendar        string `description:"公历/农历"`
-	SeasonStartDate string `description:"季节性图开始日期"`
-	SeasonEndDate   string `description:"季节性图开始日期"`
-	ChartImage      string `description:"图表图片"`
-	Sort            int    `description:"排序字段,数字越小越排前面"`
-	LeftMin         string `description:"图表左侧最小值"`
-	LeftMax         string `description:"图表左侧最大值"`
-	RightMin        string `description:"图表右侧最小值"`
-	RightMax        string `description:"图表右侧最大值"`
-}
-
-func AddChartInfo(item *ChartInfo) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
-	return
-}
-
-type ChartInfoItem struct {
-	ChartInfoId     int    `description:"图表id"`
-	ChartName       string `description:"图表名称"`
-	ChartClassifyId int    `description:"图表分类"`
-}
-
-//用于分类展示
-func GetChartInfoAll() (items []*ChartClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT chart_info_id,chart_classify_id,chart_name AS chart_classify_name,
-             unique_code,sys_user_id,sys_user_real_name,date_type,start_date,end_date,chart_type,calendar,season_start_date,season_end_date
-            FROM chart_info ORDER BY sort asc,create_time ASC `
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-}
-
-//用于分类展示
-func GetChartInfoAllList() (items []*ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT *
-            FROM chart_info ORDER BY create_time ASC `
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-}
-
-//图表检索数据
-type ChartInfoSearch struct {
-	EdbCode   string `description:"图表编码"`
-	StartDate string `description:"起始日期"`
-	EndDate   string `description:"终止日期"`
-	DataList  []*EdbInfoSearchData
-}
-
-type ChartInfoSearchData struct {
-	DataTime string  `description:"数据日期"`
-	Value    float64 `description:"数据"`
-}
-
-type ChartInfoSearchResp struct {
-	SearchItem *EdbInfoSearch `description:"图表分类"`
-	Status     int            `description:"1:数据已存在于弘则数据库,2:新数据"`
-}
-
-func GetChartInfoById(chartInfoId int) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE chart_info_id=? `
-	err = o.Raw(sql, chartInfoId).QueryRow(&item)
-	return
-}
-
-func GetChartInfoViewById(chartInfoId int) (item *ChartInfoView, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE chart_info_id=? `
-	err = o.Raw(sql, chartInfoId).QueryRow(&item)
-	return
-}
-
-type SaveChartInfoReq struct {
-	ChartEdbInfoList []*ChartSaveItem `description:"指标及配置信息"`
-	ChartInfoId      int              `description:"图表id,新增时传0"`
-	DateType         int              `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间,6:起始日期至今"`
-	StartDate        string           `description:"自定义开始日期"`
-	EndDate          string           `description:"自定义结束日期"`
-	Calendar         string           `description:"公历/农历"`
-	SeasonStartDate  string           `description:"季节性图开始日期"`
-	SeasonEndDate    string           `description:"季节性图开始日期"`
-	LeftMin          string           `description:"图表左侧最小值"`
-	LeftMax          string           `description:"图表左侧最大值"`
-	RightMin         string           `description:"图表右侧最小值"`
-	RightMax         string           `description:"图表右侧最大值"`
-}
-
-type ChartSaveItem struct {
-	EdbInfoId   int     `description:"指标id"`
-	MaxData     float64 `description:"上限"`
-	MinData     float64 `description:"下限"`
-	IsOrder     bool    `description:"true:正序,false:逆序"`
-	IsAxis      int     `description:"1:左轴,0:右轴"`
-	EdbInfoType int     `description:"1:标准指标,0:领先指标"`
-	LeadValue   int     `description:"领先值"`
-	LeadUnit    string  `description:"领先单位"`
-	ChartStyle  string  `description:"图表类型"`
-	ChartColor  string  `description:"颜色"`
-	ChartWidth  float64 `description:"线条大小"`
-}
-
-func DeleteChartInfoAndData(chartInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	defer func() {
-		if err != nil {
-			o.Rollback()
-		} else {
-			o.Commit()
-		}
-	}()
-
-	sql := ` DELETE FROM chart_info WHERE chart_info_id=? `
-	_, err = o.Raw(sql, chartInfoId).Exec()
-	if err != nil {
-		return
-	}
-	sql = ` DELETE FROM  chart_edb_mapping WHERE chart_info_id=? `
-	_, err = o.Raw(sql, chartInfoId).Exec()
-	return
-}
-
-func GetChartInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM chart_info WHERE 1=1 `
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
-
-type EditChartInfoReq struct {
-	ChartInfoId      int              `description:"图表ID"`
-	ChartName        string           `description:"图表名称"`
-	ChartClassifyId  int              `description:"分类id"`
-	ChartEdbInfoList []*ChartSaveItem `description:"指标及配置信息"`
-	ChartType        int              `description:"生成样式:1:曲线图,2:季节性图"`
-	DateType         int              `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间,6:起始日期至今"`
-	StartDate        string           `description:"自定义开始日期"`
-	EndDate          string           `description:"自定义结束日期"`
-	Calendar         string           `description:"公历/农历"`
-	SeasonStartDate  string           `description:"季节性图开始日期"`
-	SeasonEndDate    string           `description:"季节性图开始日期"`
-	LeftMin          string           `description:"图表左侧最小值"`
-	LeftMax          string           `description:"图表左侧最大值"`
-	RightMin         string           `description:"图表右侧最小值"`
-	RightMax         string           `description:"图表右侧最大值"`
-}
-
-func ModifyChartInfo(item *EditChartInfoReq) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  chart_info
-			SET
-			  chart_name =?,
-			  chart_classify_id = ?,
-              is_set_name=1,
-			  modify_time = NOW()
-			WHERE chart_info_id = ?`
-	_, err = o.Raw(sql, item.ChartName, item.ChartClassifyId, item.ChartInfoId).Exec()
-	return
-}
-
-type ChartInfoList struct {
-	ChartInfoId          int    `orm:"column(chart_info_id);pk"`
-	ChartName            string `description:"来源名称"`
-	ChartChartClassifyId int    `description:"图表分类id"`
-	SysUserId            int
-	SysUserRealName      string
-	UniqueCode           string `description:"图表唯一编码"`
-	CreateTime           time.Time
-	ModifyTime           time.Time
-	EdbInfoList          []*EdbInfoList
-}
-
-type ChartInfoListResp struct {
-	Paging *paging.PagingItem
-	Item   *ChartInfoList
-}
-
-func GetChartInfoByCondition(condition string, pars []interface{}) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE 1=1 `
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&item)
-	return
-}
-
-func GetChartInfoByNewest() (item *EdbInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE 1=1 ORDER BY modify_time DESC LIMIT 1 `
-	err = o.Raw(sql).QueryRow(&item)
-	return
-}
-
-func ModifyChartInfoModifyTime(chartInfoId int64) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  chart_info SET modify_time = NOW() WHERE chart_info_id = ? `
-	_, err = o.Raw(sql, chartInfoId).Exec()
-	return
-}
-
-type MoveChartInfoReq struct {
-	ChartInfoId     int `description:"图表ID"`
-	PrevChartInfoId int `description:"上一个图表ID"`
-	NextChartInfoId int `description:"下一个图表ID"`
-	ChartClassifyId int `description:"分类id"`
-}
-
-func MoveChartInfo(chartInfoId, classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  chart_info
-			SET
-			  chart_classify_id = ?
-			WHERE chart_info_id = ?`
-	_, err = o.Raw(sql, classifyId, chartInfoId).Exec()
-	return
-}
-
-type DeleteChartInfoReq struct {
-	ChartInfoId int `description:"图表ID"`
-}
-
-type EdbDataList struct {
-	EdbDataId     int     `description:" 指标数据ID"`
-	EdbInfoId     int     `description:"指标ID"`
-	DataTime      string  //`json:"-" description:"数据日期"`
-	DataTimestamp int64   `description:"数据日期"`
-	Value         float64 `description:"数据值"`
-}
-
-func GetEdbDataList(source, endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
-	tableName := GetEdbDataTableName(source)
-	if tableName == "" {
-		err = errors.New("无效的渠道:" + strconv.Itoa(source))
-		list = make([]*EdbDataList, 0)
-		return list, err
-	}
-	var pars []interface{}
-	sql := `SELECT edb_data_id,edb_info_id,data_time,value,data_timestamp FROM %s WHERE edb_info_id=? `
-	if startDate != "" {
-		sql += ` AND data_time>=? `
-		pars = append(pars, startDate)
-	}
-	if endDate != "" {
-		sql += ` AND data_time<=? `
-		pars = append(pars, endDate)
-	}
-
-	sql += ` ORDER BY data_time ASC `
-	sql = fmt.Sprintf(sql, tableName)
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, endInfoId, pars).QueryRows(&list)
-	return
-}
-
-func GetEdbDataLunarList(endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
-	tableName := "edb_data_quarter"
-	sql := `SELECT edb_data_id,edb_info_id,data_time,TRUNCATE(value,2) AS value,data_timestamp FROM %s WHERE edb_info_id=? AND data_time>=? AND data_time<=? ORDER BY data_time ASC `
-	sql = fmt.Sprintf(sql, tableName)
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, endInfoId, startDate, endDate).QueryRows(&list)
-	return
-}
-
-func GetEdbDataListMinAndMax(source, endInfoId int, startDate, endDate string) (min_data, max_data float64, err error) {
-	tableName := GetEdbDataTableName(source)
-	sql := `SELECT min(value) AS min_data,max(value) AS max_data FROM %s WHERE edb_info_id=? `
-	var pars []interface{}
-	var condition string
-
-	if startDate != "" {
-		condition += ` AND data_time>=? `
-		pars = append(pars, startDate)
-	}
-
-	if endDate != "" {
-		condition += ` AND data_time<=? `
-		pars = append(pars, endDate)
-	}
-
-	sql = fmt.Sprintf(sql, tableName)
-	o := orm.NewOrmUsingDB("data")
-
-	if condition != "" {
-		sql += condition
-	}
-
-	err = o.Raw(sql, endInfoId, pars).QueryRow(&min_data, &max_data)
-	return
-}
-
-type ChartEdbInfoMapping struct {
-	EdbInfoId         int     `description:"指标id"`
-	SourceName        string  `description:"来源名称"`
-	Source            int     `description:"来源id"`
-	EdbCode           string  `description:"指标编码"`
-	EdbName           string  `description:"指标名称"`
-	EdbType           int     `description:"指标类型:1:基础指标,2:计算指标"`
-	Frequency         string  `description:"频率"`
-	Unit              string  `description:"单位"`
-	StartDate         string  `description:"起始日期"`
-	EndDate           string  `description:"终止日期"`
-	ModifyTime        string  `description:"指标最后更新时间"`
-	ChartEdbMappingId int     `description:"图表指标id"`
-	ChartInfoId       int     `description:"图表id"`
-	MaxData           float64 `description:"上限"`
-	MinData           float64 `description:"下限"`
-	IsOrder           bool    `description:"true:正序,false:逆序"`
-	IsAxis            int     `description:"1:左轴,0:右轴"`
-	EdbInfoType       int     `description:"1:标准指标,0:领先指标"`
-	LeadValue         int     `description:"领先值"`
-	LeadUnit          string  `description:"领先单位"`
-	ChartStyle        string  `description:"图表类型"`
-	ChartColor        string  `description:"颜色"`
-	ChartWidth        float64 `description:"线条大小"`
-	LatestDate        string  `description:"数据最新日期"`
-	LatestValue       float64 `description:"数据最新值"`
-	UniqueCode        string  `description:"指标唯一编码"`
-	MinValue          float64 `json:"-" description:"最小值"`
-	MaxValue          float64 `json:"-" description:"最大值"`
-	DataList          interface{}
-}
-
-type QuarterData struct {
-	Year     int
-	DataList []*EdbDataList
-}
-
-type ChartEdbInfoDetailResp struct {
-	EdbInfo *ChartEdbInfoMapping
-}
-
-type ChartInfoDetailResp struct {
-	ChartInfo   *ChartInfoView
-	EdbInfoList []*ChartEdbInfoMapping
-}
-
-func ModifyChartInfoAndMapping(edbInfoIdStr string, req *SaveChartInfoReq, chartType int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	o.Begin()
-	defer func() {
-		if err != nil {
-			o.Rollback()
-		} else {
-			o.Commit()
-		}
-	}()
-
-	if chartType == 1 {
-		sql := ` UPDATE  chart_info
-			SET
-              edb_info_ids=?,
-			  modify_time = NOW(),
-              date_type=?,
-			  start_date=?,
-			  end_date=?,
- 			  left_min=?,
-			  left_max=?,
-			  right_min=?,
-			  right_max=?
-			WHERE chart_info_id = ?`
-		_, err = o.Raw(sql, edbInfoIdStr, req.DateType, req.StartDate, req.EndDate, req.LeftMin, req.LeftMax, req.RightMin, req.RightMax, req.ChartInfoId).Exec()
-		if err != nil {
-			fmt.Println("UPDATE  chart_info Err:", err.Error())
-			return err
-		}
-	} else {
-		sql := ` UPDATE  chart_info
-			SET
-              edb_info_ids=?,
-			  modify_time = NOW(),
-			  calendar=?,
-			  season_start_date=?,
-			  season_end_date=?,
-			  left_min=?,
-			  left_max=?,
-			  right_min=?,
-			  right_max=?
-			WHERE chart_info_id = ?`
-		_, err = o.Raw(sql, edbInfoIdStr, req.Calendar, req.SeasonStartDate, req.SeasonEndDate, req.LeftMin, req.LeftMax, req.RightMin, req.RightMax, req.ChartInfoId).Exec()
-		if err != nil {
-			fmt.Println("UPDATE  chart_info Err:", err.Error())
-			return err
-		}
-	}
-
-	var edbInfoIdArr []string
-	mapList := make([]*ChartEdbMapping, 0)
-	for _, v := range req.ChartEdbInfoList {
-		edbInfoIdArr = append(edbInfoIdArr, strconv.Itoa(v.EdbInfoId))
-		var count int
-		csql := `SELECT COUNT(1) AS count FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? `
-		err = o.Raw(csql, req.ChartInfoId, v.EdbInfoId).QueryRow(&count)
-		if err != nil {
-			fmt.Println("QueryRow Err:", err.Error())
-			return err
-		}
-		if count > 0 {
-			msql := `UPDATE  chart_edb_mapping
-				SET
-                 modify_time = NOW(),
-				 max_data = ?,
-				 min_data = ?,
-				 is_order = ?,
-				 is_axis = ?,
-				 edb_info_type = ?,
-				 lead_value = ?,
-				 lead_unit = ?,
-				 chart_style = ?,
-				 chart_color = ?,
-				 chart_width = ? 
-				WHERE chart_info_id =? AND edb_info_id=? `
-			_, err = o.Raw(msql, v.MaxData, v.MinData, v.IsOrder, v.IsAxis, v.EdbInfoType, v.LeadValue, v.LeadUnit, v.ChartStyle, v.ChartColor, v.ChartWidth, req.ChartInfoId, v.EdbInfoId).Exec()
-			if err != nil {
-				fmt.Println("chart_edb_mapping Err:" + err.Error())
-				return err
-			}
-		} else {
-			mapItem := new(ChartEdbMapping)
-			mapItem.ChartInfoId = req.ChartInfoId
-			mapItem.EdbInfoId = v.EdbInfoId
-			mapItem.CreateTime = time.Now()
-			mapItem.ModifyTime = time.Now()
-			timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
-			mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp)
-			mapItem.MaxData = v.MaxData
-			mapItem.MinData = v.MinData
-			mapItem.IsOrder = v.IsOrder
-			mapItem.IsAxis = v.IsAxis
-			mapItem.EdbInfoType = v.EdbInfoType
-			mapItem.LeadValue = v.LeadValue
-			mapItem.LeadUnit = v.LeadUnit
-			mapItem.ChartStyle = v.ChartStyle
-			mapItem.ChartColor = v.ChartColor
-			mapItem.ChartWidth = v.ChartWidth
-			mapList = append(mapList, mapItem)
-		}
-	}
-	if len(mapList) > 0 {
-		_, err = o.InsertMulti(1, mapList)
-		if err != nil {
-			fmt.Println("AddChartEdbMapping Err:" + err.Error())
-			return err
-		}
-	}
-	if len(edbInfoIdArr) > 0 {
-		edbInfoIdStr := strings.Join(edbInfoIdArr, ",")
-		if edbInfoIdStr != "" {
-			dsql := `DELETE FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id NOT IN(` + edbInfoIdStr + `)`
-			_, err = o.Raw(dsql, req.ChartInfoId).Exec()
-			if err != nil {
-				fmt.Println("delete err:" + err.Error())
-				return err
-			}
-		}
-	}
-	return
-}
-
-func EditChartInfoAndMapping(req *EditChartInfoReq, edbInfoIdStr string, calendar string, dateType int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	o.Begin()
-	defer func() {
-		if err != nil {
-			o.Rollback()
-		} else {
-			o.Commit()
-		}
-	}()
-	var pars []interface{}
-	pars = append(pars, req.ChartName)
-	pars = append(pars, edbInfoIdStr)
-	pars = append(pars, req.ChartType)
-	pars = append(pars, req.ChartClassifyId)
-
-	sql := ` UPDATE  chart_info
-			SET
-			  chart_name =?,
-              edb_info_ids=?,
-			  chart_type=?,
-			  chart_classify_id = ?,
-			  modify_time = NOW()
-			`
-	if calendar != "" {
-		sql += `,calendar = ? `
-		pars = append(pars, calendar)
-	}
-	if dateType > 0 {
-		sql += `,date_type = ? `
-		pars = append(pars, dateType)
-	}
-
-	sql += `,start_date = ? `
-	pars = append(pars, req.StartDate)
-
-	sql += `,end_date = ? `
-	pars = append(pars, req.EndDate)
-
-	sql += `,season_start_date = ? `
-	pars = append(pars, req.SeasonStartDate)
-
-	sql += `,season_end_date = ? `
-	pars = append(pars, req.SeasonEndDate)
-
-	sql += `,left_min = ? `
-	pars = append(pars, req.LeftMin)
-
-	sql += `,left_max = ? `
-	pars = append(pars, req.LeftMax)
-
-	sql += `,right_min = ? `
-	pars = append(pars, req.RightMin)
-
-	sql += `,right_max = ? `
-	pars = append(pars, req.RightMax)
-
-	sql += `WHERE chart_info_id = ?`
-
-	pars = append(pars, req.ChartInfoId)
-	_, err = o.Raw(sql, pars).Exec()
-	if err != nil {
-		fmt.Println("UPDATE  chart_info Err:", err.Error())
-		return err
-	}
-	var edbInfoIdArr []string
-	mapList := make([]*ChartEdbMapping, 0)
-	for _, v := range req.ChartEdbInfoList {
-		edbInfoIdArr = append(edbInfoIdArr, strconv.Itoa(v.EdbInfoId))
-		var count int
-		csql := `SELECT COUNT(1) AS count FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? `
-		err = o.Raw(csql, req.ChartInfoId, v.EdbInfoId).QueryRow(&count)
-		if err != nil {
-			fmt.Println("QueryRow Err:", err.Error())
-			return err
-		}
-		if count > 0 {
-			msql := `UPDATE  chart_edb_mapping
-				SET
-                 modify_time = NOW(),
-				 max_data = ?,
-				 min_data = ?,
-				 is_order = ?,
-				 is_axis = ?,
-				 edb_info_type = ?,
-				 lead_value = ?,
-				 lead_unit = ?,
-				 chart_style = ?,
-				 chart_color = ?,
-				 chart_width = ? 
-				WHERE chart_info_id =? AND edb_info_id=? `
-			_, err = o.Raw(msql, v.MaxData, v.MinData, v.IsOrder, v.IsAxis, v.EdbInfoType, v.LeadValue, v.LeadUnit, v.ChartStyle, v.ChartColor, v.ChartWidth, req.ChartInfoId, v.EdbInfoId).Exec()
-			if err != nil {
-				fmt.Println("chart_edb_mapping Err:" + err.Error())
-				return err
-			}
-		} else {
-			mapItem := new(ChartEdbMapping)
-			mapItem.ChartInfoId = req.ChartInfoId
-			mapItem.EdbInfoId = v.EdbInfoId
-			mapItem.CreateTime = time.Now()
-			mapItem.ModifyTime = time.Now()
-			timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
-			mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp)
-			mapItem.MaxData = v.MaxData
-			mapItem.MinData = v.MinData
-			mapItem.IsOrder = v.IsOrder
-			mapItem.IsAxis = v.IsAxis
-			mapItem.EdbInfoType = v.EdbInfoType
-			mapItem.LeadValue = v.LeadValue
-			mapItem.LeadUnit = v.LeadUnit
-			mapItem.ChartStyle = v.ChartStyle
-			mapItem.ChartColor = v.ChartColor
-			mapItem.ChartWidth = v.ChartWidth
-			mapList = append(mapList, mapItem)
-		}
-	}
-	if len(mapList) > 0 {
-		_, err = o.InsertMulti(1, mapList)
-		if err != nil {
-			fmt.Println("AddChartEdbMapping Err:" + err.Error())
-			return err
-		}
-	}
-	if len(edbInfoIdArr) > 0 {
-		edbInfoIdStr := strings.Join(edbInfoIdArr, ",")
-		dsql := `DELETE FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id NOT IN(` + edbInfoIdStr + `)`
-		_, err = o.Raw(dsql, req.ChartInfoId).Exec()
-		if err != nil {
-			fmt.Println("delete err:" + err.Error())
-			return err
-		}
-	}
-	return
-}
-
-func ModifyEdbDatadTimestamp(source, edbDataId int, dataTimestamp int64) (err error) {
-	tableName := GetEdbDataTableName(source)
-	sql := `UPDATE %s SET data_timestamp=? WHERE edb_data_id=? `
-	sql = fmt.Sprintf(sql, tableName)
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sql, dataTimestamp, edbDataId).Exec()
-	return
-}
-
-type AddChartInfoReq struct {
-	ChartEdbInfoList []*ChartSaveItem `description:"指标及配置信息"`
-	ChartClassifyId  int              `description:"分类id"`
-	ChartName        string           `description:"图表名称"`
-	ChartType        int              `description:"生成样式:1:曲线图,2:季节性图"`
-	DateType         int              `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间,6:起始日期至今"`
-	StartDate        string           `description:"自定义开始日期"`
-	EndDate          string           `description:"自定义结束日期"`
-	Calendar         string           `description:"公历/农历"`
-	SeasonStartDate  string           `description:"季节性图开始日期"`
-	SeasonEndDate    string           `description:"季节性图开始日期"`
-	LeftMin          string           `description:"图表左侧最小值"`
-	LeftMax          string           `description:"图表左侧最大值"`
-	RightMin         string           `description:"图表右侧最小值"`
-	RightMax         string           `description:"图表右侧最大值"`
-}
-
-type AddChartInfoResp struct {
-	ChartInfoId int    `description:"图表id"`
-	UniqueCode  string `description:"图表唯一编码"`
-	ChartType   int    `description:"生成样式:1:曲线图,2:季节性图"`
-}
-
-//判断图表指标是否已经存在
-func ChartInfoExist(condition, edbInfoIdStr string) (count int, err error) {
-	sql := `SELECT COUNT(1) AS count FROM (
-		SELECT GROUP_CONCAT(edb_info_id ORDER BY edb_info_id ASC  SEPARATOR ',') AS edb_info_id_str 
-		 FROM chart_edb_mapping AS a
-         WHERE 1=1`
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` GROUP BY chart_info_id 
-		)AS t
-		WHERE t.edb_info_id_str=? 
-        GROUP BY t.edb_info_id_str `
-	o := orm.NewOrmUsingDB("data")
-	err = o.Raw(sql, edbInfoIdStr).QueryRow(&count)
-	return
-}
-
-func ChartInfoSearchByKeyWord(KeyWord string) (searchList []*ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info `
-	if KeyWord != "" {
-		sql += `WHERE chart_name LIKE '%` + KeyWord + `%'  `
-	}
-	sql += ` ORDER BY create_time DESC `
-	if KeyWord == "" {
-		sql += ` LIMIT 100 `
-	}
-	_, err = o.Raw(sql).QueryRows(&searchList)
-	return
-}
-
-func GetNextChartInfo(classifyId int) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT b.* FROM chart_classify AS a
-			INNER JOIN chart_info AS b ON a.chart_classify_id=b.chart_classify_id
-			WHERE a.chart_classify_id>?
-			ORDER BY a.chart_classify_id ASC
-			LIMIT 1 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
-	return
-}
-
 func GetChartInfoRefreshData(chartInfoId int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
 	o := orm.NewOrmUsingDB("data")
 
@@ -751,112 +57,3 @@ func GetChartRefreshEdbInfo(edbInfoId, source, n int) (baseEdbInfoArr, calculate
 	}
 	return
 }
-
-type SetChartInfoImageReq struct {
-	ChartInfoId int    `description:"图表ID"`
-	ImageUrl    string `description:"图表图片地址"`
-}
-
-func EditChartInfoImage(req *SetChartInfoImageReq) (err error) {
-	o := orm.NewOrmUsingDB("data")
-
-	sql := ` UPDATE  chart_info SET chart_image=?, modify_time = NOW() WHERE chart_info_id = ? `
-	_, err = o.Raw(sql, req.ImageUrl, req.ChartInfoId).Exec()
-	if err != nil {
-		fmt.Println("EditChartInfoImage Err:", err.Error())
-		return err
-	}
-
-	return
-}
-
-type ChartInfoDetailFromUniqueCodeResp struct {
-	ChartInfo   *ChartInfoView
-	Status      bool `description:"true:图表存在,false:图表不存在"`
-	EdbInfoList []*ChartEdbInfoMapping
-}
-
-func GetChartInfoByUniqueCode(uniqueCode string) (item *ChartInfoView, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE unique_code=? `
-	err = o.Raw(sql, uniqueCode).QueryRow(&item)
-	return
-}
-
-// GetFirstChartInfoByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
-func GetFirstChartInfoByClassifyId(classifyId int) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE chart_classify_id=? order by sort asc,chart_info_id asc limit 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
-	return
-}
-
-// UpdateChartInfoSortByClassifyId 根据图表id更新排序
-func UpdateChartInfoSortByClassifyId(classifyId, nowSort, prevChartInfoId int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` update chart_info set sort = ` + updateSort + ` WHERE chart_classify_id=? and sort > ? `
-	if prevChartInfoId > 0 {
-		sql += ` or (chart_info_id > ` + fmt.Sprint(prevChartInfoId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
-	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
-	return
-}
-
-// Update 更新图表基础信息
-func (chartInfo *ChartInfo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(chartInfo, cols...)
-	return
-}
-
-type ChartInfoView struct {
-	ChartInfoId       int    `orm:"column(chart_info_id);pk"`
-	ChartName         string `description:"来源名称"`
-	ChartClassifyId   int    `description:"图表分类id"`
-	ChartClassifyName string `description:"图表名称"`
-	SysUserId         int
-	SysUserRealName   string
-	UniqueCode        string `description:"图表唯一编码"`
-	CreateTime        time.Time
-	ModifyTime        time.Time
-	DateType          int    `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"`
-	StartDate         string `description:"自定义开始日期"`
-	EndDate           string `description:"自定义结束日期"`
-	IsSetName         int    `description:"设置名称"`
-	EdbInfoIds        string `description:"指标id"`
-	ChartType         int    `description:"生成样式:1:曲线图,2:季节性图"`
-	Calendar          string `description:"公历/农历"`
-	SeasonStartDate   string `description:"季节性图开始日期"`
-	SeasonEndDate     string `description:"季节性图开始日期"`
-	ChartImage        string `description:"图表图片"`
-	Sort              int    `description:"排序字段,数字越小越排前面"`
-	IsAdd             bool   `description:"true:已加入我的图库,false:未加入我的图库"`
-	MyChartId         int
-	MyChartClassifyId string `description:"我的图表分类,多个用逗号隔开"`
-	ChartClassify     []*ChartClassifyView
-	EdbEndDate        string `description:"指标最新更新日期"`
-	LeftMin           string `description:"图表左侧最小值"`
-	LeftMax           string `description:"图表左侧最大值"`
-	RightMin          string `description:"图表右侧最小值"`
-	RightMax          string `description:"图表右侧最大值"`
-}
-
-type ImageSvgToPngResp struct {
-	Data struct {
-		ResourceURL string `json:"ResourceUrl"`
-	} `json:"Data"`
-	ErrCode     string `json:"ErrCode"`
-	ErrMsg      string `json:"ErrMsg"`
-	IsSendEmail bool   `json:"IsSendEmail"`
-	Msg         string `json:"Msg"`
-	Ret         int64  `json:"Ret"`
-	Success     bool   `json:"Success"`
-}
-
-// GetChartInfoByClassifyIdAndName 根据分类id和图表名获取图表信息
-func GetChartInfoByClassifyIdAndName(classifyId int, chartName string) (item *ChartInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM chart_info WHERE chart_classify_id = ? and chart_name=? `
-	err = o.Raw(sql, classifyId, chartName).QueryRow(&item)
-	return
-}

+ 0 - 65
models/data_manage/edb_data_base.go

@@ -1,10 +1,7 @@
 package data_manage
 
 import (
-	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"hongze/hongze_chart_lib/utils"
-	"time"
 )
 
 //指标数据->存储表
@@ -67,65 +64,3 @@ func GetEdbDataTableName(source int) (tableName string) {
 	}
 	return
 }
-
-//计算指标->关联的基础指标表
-//func GetEdbInfoCalculateTableName(source int) (tableName string) {
-//	switch source {
-//	case utils.DATA_SOURCE_CALCULATE:
-//		tableName = "edb_info_calculate"
-//	case utils.DATA_SOURCE_CALCULATE_LJZZY:
-//		tableName = "edb_info_calculate_ljzzy"
-//	case utils.DATA_SOURCE_CALCULATE_TBZ:
-//		tableName = "edb_info_calculate_tbz"
-//	case utils.DATA_SOURCE_CALCULATE_TCZ:
-//		tableName = "edb_info_calculate_tcz"
-//	case utils.DATA_SOURCE_CALCULATE_NSZYDPJJS:
-//		tableName = "edb_info_calculate_nszydpjjs"
-//	case utils.DATA_SOURCE_CALCULATE_HBZ:
-//		tableName = "edb_info_calculate_hbz"
-//	case utils.DATA_SOURCE_CALCULATE_HCZ:
-//		tableName = "edb_info_calculate_hcz"
-//	case utils.DATA_SOURCE_CALCULATE_BP:
-//		tableName = "edb_info_calculate_bp"
-//	default:
-//		tableName = ""
-//	}
-//	return
-//}
-
-type EdbDataBase struct {
-	EdbDataId     int `orm:"column(edb_data_id);pk"`
-	EdbInfoId     int
-	EdbCode       string
-	DataTime      string
-	Value         string
-	Status        int
-	CreateTime    time.Time
-	ModifyTime    time.Time
-	DataTimestamp int64
-}
-
-func GetEdbDataAllByEdbCode(edbCode string, source, limit int) (items []*EdbInfoSearchData, err error) {
-	var pars []interface{}
-	pars = append(pars, edbCode)
-	o := orm.NewOrmUsingDB("data")
-
-	tableName := GetEdbDataTableName(source)
-	sql := ` SELECT * FROM %s WHERE edb_code=? ORDER BY data_time DESC`
-	if limit > 0 {
-		sql += `  LIMIT ?  `
-		pars = append(pars, limit)
-	}
-	sql = fmt.Sprintf(sql, tableName)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
-	return
-}
-
-func GetEdbDataBaseByCodeAndDate(source int, edbCode string, startDate string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
-	sql := ` SELECT COUNT(1) AS count FROM %s WHERE edb_code=? AND data_time=? `
-	sql = fmt.Sprintf(sql, tableName)
-	err = o.Raw(sql, edbCode, startDate).QueryRow(&count)
-	return
-}

+ 0 - 828
models/data_manage/edb_info.go

@@ -3,10 +3,6 @@ package data_manage
 import (
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"hongze/hongze_chart_lib/utils"
-	"strconv"
-	"strings"
 	"time"
 )
 
@@ -36,294 +32,6 @@ type EdbInfo struct {
 	MoveFrequency    string  `description:"移动频度"`
 }
 
-func AddEdbInfo(item *EdbInfo) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
-	return
-}
-
-type EdbInfoItem struct {
-	EdbInfoId  int    `description:"指标id"`
-	EdbName    string `description:"指标名称"`
-	ClassifyId int    `description:"指标分类"`
-}
-
-//用于分类展示
-func GetEdbInfoAll() (items []*EdbClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT edb_info_id,classify_id,edb_name_source AS classify_name,unique_code,source_name,source,sys_user_id,sys_user_real_name,start_date,edb_code,edb_type FROM edb_info order by sort asc,edb_info_id asc`
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-}
-
-//用于分类展示
-func GetEdbInfoAllList() (items []*EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info `
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-}
-
-//指标检索数据
-type EdbInfoSearch struct {
-	EdbCode   string `description:"指标编码"`
-	StartDate string `description:"起始日期"`
-	EndDate   string `description:"终止日期"`
-	EdbName   string `description:"指标名称"`
-	Unit      string `description:"单位"`
-	Frequency string `description:"频率"`
-	DataList  []*EdbInfoSearchData
-}
-
-type EdbInfoSearchData struct {
-	DataTime string  `description:"数据日期"`
-	Value    float64 `description:"数据"`
-}
-
-type EdbInfoSearchResp struct {
-	SearchItem   *EdbInfoSearch `description:"指标分类"`
-	Status       int            `description:"1:数据已存在于弘则数据库,2:新数据"`
-	ClassifyList []*EdbClassifySimplify
-}
-
-func GetEdbInfoByEdbCode(source int, edbCode string) (item *EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE source=? AND edb_code=? `
-	err = o.Raw(sql, source, edbCode).QueryRow(&item)
-	return
-}
-
-func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&item)
-	return
-}
-
-type AddEdbInfoReq struct {
-	Source     int    `description:"来源id"`
-	EdbCode    string `description:"指标编码"`
-	EdbName    string `description:"指标名称"`
-	Frequency  string `description:"频率"`
-	Unit       string `description:"单位"`
-	ClassifyId int    `description:"分类id"`
-	StartDate  string `description:"起始日期"`
-	EndDate    string `description:"终止日期"`
-}
-
-func DeleteEdbInfoAndData(edbInfoId, source int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	o.Begin()
-	defer func() {
-		if err != nil {
-			o.Rollback()
-		} else {
-			o.Commit()
-		}
-	}()
-
-	sql := ` DELETE FROM edb_info WHERE edb_info_id=? `
-	_, err = o.Raw(sql, edbInfoId).Exec()
-	if err != nil {
-		return
-	}
-	tableName := GetEdbDataTableName(source)
-	if tableName != "" {
-		sql = ` DELETE FROM %s WHERE edb_info_id=? `
-		sql = fmt.Sprintf(sql, tableName)
-		_, err = o.Raw(sql, edbInfoId).Exec()
-		if err != nil {
-			return
-		}
-	}
-	//calculateTableName := GetEdbInfoCalculateTableName(source)
-	//if calculateTableName != "" {
-	//	sql = ` DELETE FROM %s WHERE edb_info_id=? `
-	//	sql = fmt.Sprintf(sql, calculateTableName)
-	//	_, err = o.Raw(sql, edbInfoId).Exec()
-	//	return
-	//}
-	//return
-	sql = ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id=? `
-	_, err = o.Raw(sql, edbInfoId).Exec()
-	return
-}
-
-func GetEdbInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_info WHERE 1=1 `
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
-
-type EditEdbInfoReq struct {
-	EdbInfoId        int    `description:"指标ID"`
-	EdbName          string `description:"指标名称"`
-	Frequency        string `description:"频率"`
-	Unit             string `description:"单位"`
-	ClassifyId       int    `description:"分类id"`
-	CalculateFormula string `description:"计算公式"`
-}
-
-func ModifyEdbInfo(item *EditEdbInfoReq) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  edb_info
-			SET
-			  edb_name =?,
-			  edb_name_source =?,
-			  frequency = ?,
-			  unit = ?,
-			  classify_id = ?,
-			  modify_time = NOW()
-			WHERE edb_info_id = ?`
-	_, err = o.Raw(sql, item.EdbName, item.EdbName, item.Frequency, item.Unit, item.ClassifyId, item.EdbInfoId).Exec()
-	return
-}
-
-type EdbInfoList struct {
-	EdbInfoId       int    `orm:"column(edb_info_id);pk"`
-	SourceName      string `description:"来源名称"`
-	Source          int    `description:"来源id"`
-	EdbCode         string `description:"指标编码"`
-	EdbName         string `description:"指标名称"`
-	Frequency       string `description:"频率"`
-	Unit            string `description:"单位"`
-	StartDate       string `description:"起始日期"`
-	EndDate         string `description:"终止日期"`
-	ClassifyId      int    `description:"分类id"`
-	UniqueCode      string `description:"指标唯一编码"`
-	SysUserId       int    `description:"创建人id"`
-	SysUserRealName string `description:"创建人姓名"`
-	ModifyTime      string `description:"最新修改时间"`
-	EdbNameAlias    string `json:"-" description:"指标名称,别名"`
-	EdbType         int    `description:"指标类型:1:基础指标,2:计算指标"`
-	DataList        []*EdbData
-}
-
-type EdbData struct {
-	EdbDataId int `orm:"column(edb_data_id);pk"`
-	EdbInfoId int
-	DataTime  string
-	Value     float64
-}
-
-type EdbInfoListResp struct {
-	Paging       *paging.PagingItem
-	Item         *EdbInfoList
-	ClassifyList []*EdbClassifySimplify
-}
-
-func GetEdbInfoByCondition(condition string, pars []interface{}) (item *EdbInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE 1=1 `
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&item)
-	return
-}
-
-func GetEdbDataCountByCondition(condition string, pars []interface{}, source int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
-	sql := ` SELECT COUNT(1) AS count FROM %s WHERE 1=1 AND status=1 `
-	sql = fmt.Sprintf(sql, tableName)
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
-
-func GetEdbDataListByCondition(condition string, pars []interface{}, source, pageSize, startSize int) (item []*EdbData, err error) {
-	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
-	sql := ` SELECT * FROM %s WHERE 1=1 AND status=1 `
-	sql = fmt.Sprintf(sql, tableName)
-
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` ORDER BY data_time DESC `
-	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
-	return
-}
-
-func GetEdbInfoByNewest() (item *EdbInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE 1=1 ORDER BY modify_time DESC LIMIT 1 `
-	err = o.Raw(sql).QueryRow(&item)
-	return
-}
-
-func ModifyEdbInfoModifyTime(edbInfoId int64) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  edb_info SET modify_time = NOW() WHERE edb_info_id = ? `
-	_, err = o.Raw(sql, edbInfoId).Exec()
-	return
-}
-
-type MoveEdbInfoReq struct {
-	EdbInfoId     int `description:"指标ID"`
-	PrevEdbInfoId int `description:"上一个指标ID"`
-	NextEdbInfoId int `description:"下一个指标ID"`
-	ClassifyId    int `description:"分类id"`
-}
-
-func MoveEdbInfo(edbInfoId, classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  edb_info
-			SET
-			  classify_id = ?
-			WHERE edb_info_id = ?`
-	_, err = o.Raw(sql, classifyId, edbInfoId).Exec()
-	return
-}
-
-func GetEdbInfoByName(edbName string) (items []*EdbInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE edb_name=? `
-	_, err = o.Raw(sql, edbName).QueryRows(&items)
-	return
-}
-
-func ModifyEdbInfoNameSource(edbNameSource string, edbInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  edb_info SET edb_name_source=? WHERE edb_info_id = ? `
-	_, err = o.Raw(sql, edbNameSource, edbInfoId).Exec()
-	return
-}
-
-func GetChartEdbMappingCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM chart_edb_mapping WHERE edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
-	return
-}
-
-type ChartEdbInfo struct {
-	EdbInfoId    int    `description:"指标id"`
-	EdbName      string `description:"指标名称"`
-	SourceName   string `json:"-"`
-	EdbNameAlias string `json:"-" description:"指标名称,别名"`
-}
-
-func EdbInfoSearchByKeyWord(KeyWord string) (searchList []*ChartEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT edb_info_id,edb_name,source_name FROM edb_info `
-	if KeyWord != "" {
-		sql += `WHERE (edb_name LIKE '%` + KeyWord + `%' OR edb_code LIKE '%` + KeyWord + `%' ) `
-	}
-	sql += ` ORDER BY create_time DESC `
-	_, err = o.Raw(sql).QueryRows(&searchList)
-
-	return
-}
-
 type EdbInfoMaxAndMinInfo struct {
 	MinDate     string  `description:"最小日期"`
 	MaxDate     string  `description:"最大日期"`
@@ -354,539 +62,3 @@ func ModifyEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err
 	_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.MinValue, item.MaxValue, item.MaxDate, item.LatestValue, edbInfoId).Exec()
 	return
 }
-
-func GetEdbInfoFilter(condition string, pars []interface{}) (list []*EdbInfoList, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE 1=1 `
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` ORDER BY create_time DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&list)
-	return
-}
-
-//order:1升序,其余值为降序
-func GetEdbDataListAll(condition string, pars []interface{}, source, order int) (item []*EdbInfoSearchData, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ``
-	tableName := GetEdbDataTableName(source)
-	sql = ` SELECT * FROM %s WHERE 1=1 `
-	sql = fmt.Sprintf(sql, tableName)
-
-	if condition != "" {
-		sql += condition
-	}
-	if order == 1 {
-		sql += ` ORDER BY data_time ASC `
-	} else {
-		sql += ` ORDER BY data_time DESC `
-	}
-	_, err = o.Raw(sql, pars).QueryRows(&item)
-	return
-}
-
-// GetLastEdbData 获取最近的一条指标数据
-func GetLastEdbData(condition string, pars []interface{}, source int) (item *EdbInfoSearchData, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ``
-	tableName := GetEdbDataTableName(source)
-	sql = ` SELECT * FROM %s WHERE 1=1 `
-	sql = fmt.Sprintf(sql, tableName)
-
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` ORDER BY data_time DESC `
-	err = o.Raw(sql, pars).QueryRow(&item)
-	return
-}
-
-//order:1升序,其余值为降序
-func GetEdbDataCount(condition string, pars []interface{}, source int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ``
-	tableName := GetEdbDataTableName(source)
-	sql = ` SELECT COUNT(1) AS count FROM %s WHERE 1=1 `
-	sql = fmt.Sprintf(sql, tableName)
-
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
-
-func ModifyCalculateEdbInfo(item *EditEdbInfoReq) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE  edb_info
-			SET
-			  edb_name =?,
-			  edb_name_source =?,
-			  frequency = ?,
-			  unit = ?,
-			  classify_id = ?,
-			  calculate_formula=?,
-			  modify_time = NOW()
-			WHERE edb_info_id = ?`
-	_, err = o.Raw(sql, item.EdbName, item.EdbName, item.Frequency, item.Unit, item.ClassifyId, item.CalculateFormula, item.EdbInfoId).Exec()
-	return
-}
-
-type AddEdbInfoResp struct {
-	EdbInfoId  int    `description:"指标ID"`
-	UniqueCode string `description:"指标唯一编码"`
-}
-
-//根据基础指标获取所有关联指标
-func GetNeedRefreshCalculateEdbInfoFromBase(fromEdbInfo int) (list []*EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT b.*
-			FROM edb_info_calculate AS a
-			INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
-			WHERE from_edb_info_id=? `
-	_, err = o.Raw(sql, fromEdbInfo).QueryRows(&list)
-	return
-}
-
-func GetEdbInfoCalculateCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate WHERE from_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
-	return
-}
-
-func GetEdbInfoCalculateLjzzyCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate_ljzzy WHERE from_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
-	return
-}
-
-func GetEdbInfoCalculateTbzCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate_tbz WHERE from_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
-	return
-}
-
-func GetEdbInfoCalculateTczCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate_tcz WHERE from_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
-	return
-}
-
-func GetEdbInfoCalculateNszydpjjsCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate_nszydpjjs WHERE from_edb_info_id=? `
-	err = o.Raw(sql, edbInfoId).QueryRow(&count)
-	return
-}
-
-func GetEdbInfoCalculateCountByCondition(source int, condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	//calculateTableName := GetEdbInfoCalculateTableName(source)
-	//if calculateTableName == "" {
-	//	err = errors.New("无效的表名")
-	//	return
-	//}
-
-	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate_mapping WHERE 1=1 `
-	//sql = fmt.Sprintf(sql, calculateTableName)
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
-
-// GetEdbInfoCalculateListByCondition 获取指标关系列表
-func GetEdbInfoCalculateListByCondition(condition string, pars []interface{}) (items []*EdbInfoCalculateMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
-	//calculateTableName := GetEdbInfoCalculateTableName(source)
-	//if calculateTableName == "" {
-	//	err = errors.New("无效的表名")
-	//	return
-	//}
-
-	sql := ` SELECT * FROM edb_info_calculate_mapping WHERE 1=1 `
-	//sql = fmt.Sprintf(sql, calculateTableName)
-	if condition != "" {
-		sql += condition
-	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
-	return
-}
-
-func GetRefreshEdbInfoFromCalculate(edbInfoId, source int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
-	calculateList, err := GetEdbInfoCalculateMap(edbInfoId, source)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return
-	}
-	for _, item := range calculateList {
-		if item.EdbType == 1 {
-			baseEdbInfoArr = append(baseEdbInfoArr, item)
-		} else {
-			calculateInfoArr = append(calculateInfoArr, item)
-			newBaseEdbInfoArr, newCalculateInfoArr, _ := GetRefreshEdbInfoFromCalculate(item.EdbInfoId, item.Source)
-			baseEdbInfoArr = append(baseEdbInfoArr, newBaseEdbInfoArr...)
-			calculateInfoArr = append(calculateInfoArr, newCalculateInfoArr...)
-		}
-	}
-	return
-}
-
-//获取基础指标对应的所有计算指标
-func GetEdbInfoAllCalculate(edbInfoId int) (list []*EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date,b.frequency FROM edb_info_calculate_mapping AS a
-			 INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
-             WHERE a.from_edb_info_id=?
-			 GROUP BY a.edb_info_id
-			 ORDER BY a.edb_info_id ASC `
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
-	return
-}
-
-func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
-	calculateList, err := GetEdbInfoCalculateMap(edbInfoId, source)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return
-	}
-	for _, item := range calculateList {
-		if item.EdbType == 1 {
-			baseEdbInfoArr = append(baseEdbInfoArr, item)
-		} else {
-			calculateInfoArr = append(calculateInfoArr, item)
-			newBaseEdbInfoArr, newCalculateInfoArr, _ := GetRefreshEdbInfoFromBase(item.EdbInfoId, item.Source)
-			baseEdbInfoArr = append(baseEdbInfoArr, newBaseEdbInfoArr...)
-			calculateInfoArr = append(calculateInfoArr, newCalculateInfoArr...)
-		}
-	}
-	return
-}
-
-func ModifyEdbInfoDataStatus(edbInfoId int64, source int, edbCode string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ``
-	tableName := GetEdbDataTableName(source)
-	sql = ` UPDATE %s SET edb_info_id=?, status=1,modify_time=NOW() WHERE edb_code=? `
-	sql = fmt.Sprintf(sql, tableName)
-	_, err = o.Raw(sql, edbInfoId, edbCode).Exec()
-	return
-}
-
-// GetFirstEdbInfoByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
-func GetFirstEdbInfoByClassifyId(classifyId int) (item *EdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_info WHERE classify_id=? order by sort asc,edb_info_id asc limit 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
-	return
-}
-
-// UpdateEdbInfoSortByClassifyId 根据分类id更新排序
-func UpdateEdbInfoSortByClassifyId(classifyId, nowSort int, prevEdbInfoId int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` update edb_info set sort = ` + updateSort + ` WHERE classify_id=? and sort > ?`
-	if prevEdbInfoId > 0 {
-		sql += ` or ( edb_info_id > ` + fmt.Sprint(prevEdbInfoId) + ` and sort=` + fmt.Sprint(nowSort) + ` ) `
-	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
-	return
-}
-
-// Update 更新指标基础信息
-func (edbInfo *EdbInfo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(edbInfo, cols...)
-	return
-}
-
-type EdbInfoDataResp struct {
-	EdbInfo  *EdbInfo
-	DataList []*EdbDataList
-}
-
-type EdbInfoReplaceReq struct {
-	OldEdbInfoId int `description:"原指标ID"`
-	NewEdbInfoId int `description:"替换为指标ID"`
-}
-
-/*
-1、替换图库中的指标
-2、替换计算指标中的指标,完了计算指标中的指标,全部重新计算
-*/
-
-func EdbInfoReplace(oldEdbInfo, newEdbInfo *EdbInfo, sysAdminId int, sysAdminRealName string) (replaceChartTotal, replaceCalculateTotal int, err error) {
-	var errmsg string
-	o := orm.NewOrmUsingDB("data")
-	o.Begin()
-	defer func() {
-		if errmsg != "" {
-			fmt.Println("errmsg:" + errmsg)
-		}
-	}()
-	//替换图表
-	chartEdbMappingList := make([]*ChartEdbInfoMapping, 0)
-	csql := `SELECT * FROM chart_edb_mapping WHERE edb_info_id=?`
-	_, err = o.Raw(csql, oldEdbInfo.EdbInfoId).QueryRows(&chartEdbMappingList)
-	if err != nil {
-		errmsg = "获取指标关联图表信息失败:Err:" + err.Error()
-		return
-	}
-	replaceChartTotal = len(chartEdbMappingList)
-
-	for _, mv := range chartEdbMappingList {
-		//获取图表所有指标信息
-		chartEdbList := make([]*ChartEdbInfoMapping, 0)
-		csql := `SELECT * FROM chart_edb_mapping WHERE chart_info_id=?`
-		_, err = o.Raw(csql, mv.ChartInfoId).QueryRows(&chartEdbList)
-		if err != nil {
-			errmsg = "获取图表所有指标信息失败:Err:" + err.Error()
-			return
-		}
-		var minData, maxData float64
-		minData = newEdbInfo.MinValue
-		maxData = newEdbInfo.MaxValue
-
-		for _, cv := range chartEdbList {
-			if mv.IsAxis == cv.IsAxis {
-				if minData > cv.MinData {
-					minData = cv.MinData
-				}
-				if maxData < cv.MaxData {
-					maxData = cv.MaxData
-				}
-			}
-		}
-		//修改图表关联指标
-		rsql := ` UPDATE chart_edb_mapping SET edb_info_id=?,max_data=?,min_data=?,modify_time=NOW() WHERE chart_edb_mapping_id=? `
-		_, err = o.Raw(rsql, newEdbInfo.EdbInfoId, maxData, minData, mv.ChartEdbMappingId).Exec()
-		if err != nil {
-			errmsg = "更新图库指标信息失败:Err:" + err.Error()
-			return
-		}
-	}
-	//替换计算指标
-	//获取所有包含的计算指标
-	mappingList := make([]*EdbInfoCalculateMapping, 0)
-	msql := ` SELECT * FROM edb_info_calculate_mapping WHERE from_edb_info_id=?  GROUP BY edb_info_id `
-	_, err = o.Raw(msql, oldEdbInfo.EdbInfoId).QueryRows(&mappingList)
-	if err != nil {
-		errmsg = "获取计算指标关联基础指标信息失败:Err:" + err.Error()
-		return
-	}
-	replaceCalculateTotal = len(mappingList)
-	//计算指标
-	for _, mv := range mappingList {
-		//替换原指标
-		msql := `UPDATE edb_info_calculate_mapping SET from_edb_info_id=?,from_edb_code=?,from_edb_name=?,from_source=?,from_source_name=? WHERE edb_info_calculate_mapping_id=? `
-		_, err = o.Raw(msql, newEdbInfo.EdbInfoId, newEdbInfo.EdbCode, newEdbInfo.EdbName, newEdbInfo.Source, newEdbInfo.SourceName, mv.EdbInfoCalculateMappingId).Exec()
-		if err != nil {
-			return
-		}
-	}
-
-	if err != nil && errmsg != "" {
-		go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"替换指标失败提醒", "errmsg:"+errmsg, utils.EmailSendToUsers)
-		o.Rollback()
-	} else {
-		o.Commit()
-	}
-
-	//获取计算指标关联指标
-	allMappingList := make([]*EdbInfoCalculateMapping, 0)
-	allMapping := make(map[int]int)
-	for _, v := range mappingList {
-		if _, ok := allMapping[v.EdbInfoId]; !ok {
-			allMappingList = append(allMappingList, v)
-		}
-		newList, _ := GetAllCalculate(v.EdbInfoId)
-		for _, nv := range newList {
-			if _, ok := allMapping[v.EdbInfoId]; !ok {
-				allMappingList = append(allMappingList, nv)
-			}
-			allMapping[v.EdbInfoId] = v.EdbInfoId
-		}
-		allMapping[v.EdbInfoId] = v.EdbInfoId
-	}
-	for mk, mv := range allMappingList { //原指标关联的所有计算指标
-		fmt.Println("mk/mv", mk, mv)
-		//重新计算计算指标
-		{
-			edbInfo, err := GetEdbInfoById(mv.EdbInfoId) //计算指标
-			if err != nil {
-				if err.Error() == utils.ErrNoRow() {
-					errmsg = "计算指标已被删除"
-					return replaceChartTotal, replaceCalculateTotal, err
-				}
-				errmsg = "获取计算指标失败:err:" + err.Error()
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-
-			fromEdbInfoList, err := GetEdbInfoCalculateDetail(mv.EdbInfoId, edbInfo.Source)
-			if err != nil {
-				errmsg = "获取计算指标失败:err:" + err.Error()
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-			if len(fromEdbInfoList) <= 0 {
-				errmsg = "计算指标所依赖指标不存在"
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-			fromEdbInfoItem := fromEdbInfoList[0]
-			if fromEdbInfoItem == nil {
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-			fromEdbInfo, err := GetEdbInfoById(fromEdbInfoItem.FromEdbInfoId)
-			if err != nil {
-				errmsg = "获取计算指标 来源指标失败:err:" + err.Error()
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-			edbCode := edbInfo.EdbCode
-			uniqueCode := edbInfo.UniqueCode
-			sourName := edbInfo.SourceName
-			source := edbInfo.Source
-			edbInfoId := edbInfo.EdbInfoId
-
-			req := new(EdbInfoCalculateBatchSaveReq)
-			req.EdbInfoId = edbInfoId
-			req.EdbName = edbInfo.EdbName
-			req.Frequency = edbInfo.Frequency
-			req.Unit = edbInfo.Unit
-			req.ClassifyId = edbInfo.ClassifyId
-			req.FromEdbInfoId = fromEdbInfoList[0].FromEdbInfoId
-
-			if source == utils.DATA_SOURCE_CALCULATE {
-				//检验公式
-				var formulaStr string
-				var edbInfoIdBytes []string
-				for _, v := range fromEdbInfoList {
-					formulaStr += v.FromTag + ","
-					edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
-				}
-				formulaStr = strings.Trim(formulaStr, ",")
-				formulaMap := CheckFormula(edbInfo.CalculateFormula)
-				for _, v := range formulaMap {
-					if !strings.Contains(formulaStr, v) {
-						errmsg = "公式错误,请重新填写"
-						return replaceChartTotal, replaceCalculateTotal, err
-					}
-				}
-
-				edbInfoList := make([]*EdbInfo, 0)
-
-				for _, v := range fromEdbInfoList {
-					edbInfo, err := GetEdbInfoById(v.FromEdbInfoId)
-					if err != nil {
-						if err.Error() == utils.ErrNoRow() {
-							errmsg = "指标 " + strconv.Itoa(v.FromEdbInfoId) + " 不存在"
-							return replaceChartTotal, replaceCalculateTotal, err
-						}
-						errmsg = "获取指标失败:Err:" + err.Error()
-						return replaceChartTotal, replaceCalculateTotal, err
-					}
-					edbInfoList = append(edbInfoList, edbInfo)
-				}
-				//清除历史数据
-				err = DeleteCalculateData(edbInfoId)
-				if err != nil {
-					errmsg = "清空运算指标失败:Err:" + err.Error() + " edb_info_id:" + strconv.Itoa(edbInfoId)
-					return replaceChartTotal, replaceCalculateTotal, err
-				}
-				err = Calculate(edbInfoList, int(edbInfoId), edbCode, edbInfo.CalculateFormula, edbInfoIdBytes)
-				if err != nil {
-					errmsg = "生成计算指标失败,Calculate Err:" + err.Error()
-					return replaceChartTotal, replaceCalculateTotal, err
-				}
-			} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY {
-				_, err = AddCalculateLjzzy(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName)
-			} else if source == utils.DATA_SOURCE_CALCULATE_TBZ {
-				sourName = "同比值"
-				edbInfoId, err = AddCalculateTbz(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName)
-			} else if source == utils.DATA_SOURCE_CALCULATE_TCZ {
-				sourName = "同差值"
-				edbInfoId, err = AddCalculateTcz(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName)
-			} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS {
-				sourName = "N数值移动平均计算"
-				formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-				edbInfoId, err = AddCalculateNszydpjjs(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName, formulaInt)
-			} else if source == utils.DATA_SOURCE_CALCULATE_HBZ {
-				sourName = "环比值"
-				formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-				edbInfoId, err = AddCalculateHbz(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName, formulaInt)
-			} else if source == utils.DATA_SOURCE_CALCULATE_HCZ {
-				sourName = "环差值"
-				formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-				edbInfoId, err = AddCalculateHcz(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName, formulaInt)
-			} else if source == utils.DATA_SOURCE_CALCULATE_BP {
-				sourName = "变频"
-				fmt.Println("变频", req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName)
-				edbInfoId, err = AddCalculateBp(req, fromEdbInfo, edbCode, uniqueCode, sysAdminId, sysAdminRealName)
-			} else {
-				errmsg = "无效计算方式,source:" + strconv.Itoa(source)
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-			maxAndMinItem, err := GetEdbInfoMaxAndMinInfo(source, edbCode)
-			if err != nil && err.Error() != utils.ErrNoRow() {
-				errmsg = "生成" + sourName + "失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
-				return replaceChartTotal, replaceCalculateTotal, err
-			}
-			if maxAndMinItem != nil {
-				err = ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-			}
-		}
-	}
-	return
-}
-
-type EdbInfoView struct {
-	EdbInfoId        int    `orm:"column(edb_info_id);pk"`
-	SourceName       string `description:"来源名称"`
-	Source           int    `description:"来源id"`
-	EdbCode          string `description:"指标编码"`
-	EdbName          string `description:"指标名称"`
-	EdbNameSource    string `description:"指标名称来源"`
-	Frequency        string `description:"频率"`
-	Unit             string `description:"单位"`
-	StartDate        string `description:"起始日期"`
-	EndDate          string `description:"终止日期"`
-	ClassifyId       int    `description:"分类id"`
-	SysUserId        int
-	SysUserRealName  string
-	UniqueCode       string `description:"指标唯一编码"`
-	CreateTime       string
-	ModifyTime       string
-	MinValue         float64 `description:"指标最小值"`
-	MaxValue         float64 `description:"指标最大值"`
-	CalculateFormula string  `description:"计算公式"`
-	EdbType          int     `description:"指标类型:1:基础指标,2:计算指标"`
-	Sort             int     `description:"排序字段"`
-	IsUpdate         int     `description:"当天是否已更新,1:未更新,2:已更新"`
-	LatestDate       string  `description:"数据最新日期"`
-	LatestValue      float64 `description:"数据最新值"`
-}
-
-//获取指标的所有计算指标,以及计算指标所依赖计算指标
-func GetAllCalculateByEdbInfoId(edbInfoId int) (mappingList []*EdbInfoCalculateMapping, err error) {
-	o := orm.NewOrmUsingDB("data")
-	msql := ` SELECT * FROM edb_info_calculate_mapping WHERE from_edb_info_id=?  GROUP BY edb_info_id `
-	_, err = o.Raw(msql, edbInfoId).QueryRows(&mappingList)
-	if err != nil {
-		return
-	}
-	return
-}
-
-func GetAllCalculate(edbInfoId int) (mappingList []*EdbInfoCalculateMapping, err error) {
-	calculateList, err := GetAllCalculateByEdbInfoId(edbInfoId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return
-	}
-	for _, item := range calculateList {
-		mappingList = append(mappingList, item)
-		newCalculateInfoArr, _ := GetAllCalculate(item.EdbInfoId)
-		mappingList = append(mappingList, newCalculateInfoArr...)
-	}
-	return
-}

+ 0 - 573
models/data_manage/edb_info_calculate.go

@@ -1,182 +1,9 @@
 package data_manage
 
 import (
-	"errors"
-	"fmt"
 	"github.com/beego/beego/v2/client/orm"
-	"github.com/yidane/formula"
-	"hongze/hongze_chart_lib/utils"
-	"strconv"
-	"strings"
-	"time"
 )
 
-type EdbInfoCalculateSaveReq struct {
-	EdbName          string `description:"指标名称"`
-	Frequency        string `description:"频率"`
-	Unit             string `description:"单位"`
-	ClassifyId       int    `description:"分类id"`
-	CalculateFormula string `description:"计算公式"`
-	EdbInfoIdArr     []struct {
-		EdbInfoId int    `description:"指标id"`
-		FromTag   string `description:"指标对应标签"`
-	}
-}
-
-type EdbInfoCalculate struct {
-	EdbInfoCalculateId int       `orm:"column(edb_info_calculate_id);pk"`
-	EdbInfoId          int       `description:"指标id"`
-	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 AddEdbInfoCalculateMulti(items []*EdbInfoCalculate) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(1, items)
-	return
-}
-
-type FromEdbInfoData struct {
-	EdbInfoId int    `description:"指标id"`
-	EdbName   string `description:"指标名称"`
-	DataList  []*EdbInfoSearchData
-}
-
-type EdbInfoCalculateDetail struct {
-	EdbInfoCalculateId int       `orm:"column(edb_info_calculate_id);pk"`
-	EdbInfoId          int       `description:"指标id"`
-	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:"修改时间"`
-	StartDate          string    `description:"开始日期"`
-	EndDate            string    `description:"结束日期"`
-	EdbType            int       `description:"指标类型:1:基础指标,2:计算指标"`
-}
-
-func GetEdbInfoCalculateDetail(edbInfoId, source int) (list []*EdbInfoCalculateDetail, err error) {
-	o := orm.NewOrmUsingDB("data")
-
-	//calculateTableName := GetEdbInfoCalculateTableName(source)
-	//sql := ` SELECT a.*,b.start_date,b.end_date,b.edb_type FROM %s AS a
-	//		INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
-	//		WHERE a.edb_info_id=? ORDER BY sort ASC `
-	//
-	//sql = fmt.Sprintf(sql, calculateTableName)
-
-	sql := ` SELECT a.*,b.start_date,b.end_date,b.edb_type FROM edb_info_calculate_mapping AS a
-			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
-			WHERE a.edb_info_id=? ORDER BY sort ASC `
-
-	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
-	return
-}
-
-type CalculateDetailResp struct {
-	EdbInfoDetail *EdbInfo
-	CalculateList []*EdbInfoCalculateDetail
-}
-
-type EdbInfoCalculateEditReq struct {
-	EdbInfoId        int    `description:"指标id"`
-	EdbName          string `description:"指标名称"`
-	Frequency        string `description:"频率"`
-	Unit             string `description:"单位"`
-	ClassifyId       int    `description:"分类id"`
-	CalculateFormula string `description:"计算公式"`
-	EdbInfoIdArr     []struct {
-		EdbInfoId int    `description:"指标id"`
-		FromTag   string `description:"指标对应标签"`
-	}
-}
-
-func GetCalculateEdbInfo(edbInfoId int) (from_edb_info_id string, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT GROUP_CONCAT(from_edb_info_id ORDER BY sort ASC SEPARATOR ',') AS from_edb_info_id 
-			FROM edb_info_calculate_mapping
-			WHERE edb_info_id=?
-			GROUP BY edb_info_id
-			 `
-	err = o.Raw(sql, edbInfoId).QueryRow(&from_edb_info_id)
-	return
-}
-
-func DeleteCalculateEdbInfo(edbInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	defer func() {
-		if err != nil {
-			o.Rollback()
-		} else {
-			o.Commit()
-		}
-	}()
-	o.Begin()
-	sql := `DELETE FROM edb_data_calculate WHERE edb_info_id=?`
-	_, err = o.Raw(sql, edbInfoId).Exec()
-	if err != nil {
-		return
-	}
-	sql = `DELETE FROM edb_info_calculate_mapping WHERE edb_info_id=?`
-	o.Raw(sql, edbInfoId).Exec()
-	return
-}
-
-func DeleteCalculateData(edbInfoId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `DELETE FROM edb_data_calculate WHERE edb_info_id=?`
-	_, err = o.Raw(sql, edbInfoId).Exec()
-	return
-}
-
-type EdbInfoCalculateBatchSaveReq struct {
-	EdbInfoId        int    `description:"指标id"`
-	EdbName          string `description:"指标名称"`
-	Frequency        string `description:"频度"`
-	Unit             string `description:"单位"`
-	ClassifyId       int    `description:"分类id"`
-	Formula          string `description:"N值/移动天数"`
-	FromEdbInfoId    int    `description:"计算来源指标id"`
-	Source           int    `description:"来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,12:环比值,13:环差值,14:变频"`
-	CalculateFormula string `description:"计算公式"`
-	EdbInfoIdArr     []struct {
-		EdbInfoId int    `description:"指标id"`
-		FromTag   string `description:"指标对应标签"`
-	}
-	MoveType      int    `description:"移动方式:1:领先(默认),2:滞后"`
-	MoveFrequency string `description:"移动频度:天/周/月/季/年"`
-}
-
-type EdbInfoCalculateBatchEditReq struct {
-	EdbName       string `description:"指标名称"`
-	Frequency     string `description:"频度"`
-	Unit          string `description:"单位"`
-	ClassifyId    int    `description:"分类id"`
-	Formula       string `description:"N值"`
-	EdbInfoId     int    `description:"编辑指标id"`
-	FromEdbInfoId int    `description:"计算来源指标id"`
-	Source        int    `description:"来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,12:环比值,13:环差值,14:变频"`
-	MoveType      int    `description:"移动方式:1:领先(默认),2:滞后"`
-	MoveFrequency string `description:"移动频度:天/周/月/季/年"`
-	EdbInfoIdArr  []struct {
-		EdbInfoId int    `description:"指标id"`
-		FromTag   string `description:"指标对应标签"`
-	}
-}
-
 func GetEdbInfoCalculateMap(edbInfoId, source int) (list []*EdbInfo, err error) {
 	o := orm.NewOrmUsingDB("data")
 
@@ -194,403 +21,3 @@ func GetEdbInfoCalculateMap(edbInfoId, source int) (list []*EdbInfo, err error)
 	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)
 	return
 }
-
-//指标运算
-func AddCalculate(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo []*EdbInfoCalculateDetail, edbCode, uniqueCode, formulaStr string, sysUserId int, sysUserRealName string) (edbInfoId int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	o.Begin()
-	defer func() {
-		if err != nil {
-			o.Rollback()
-		} else {
-			o.Commit()
-		}
-	}()
-	if req.EdbInfoId <= 0 {
-		edbInfo := new(EdbInfo)
-		edbInfo.Source = utils.DATA_SOURCE_CALCULATE
-		edbInfo.SourceName = "指标运算"
-		edbInfo.EdbCode = edbCode
-		edbInfo.EdbName = req.EdbName
-		edbInfo.EdbNameSource = req.EdbName
-		edbInfo.Frequency = req.Frequency
-		edbInfo.Unit = req.Unit
-		edbInfo.ClassifyId = req.ClassifyId
-		edbInfo.SysUserId = sysUserId
-		edbInfo.SysUserRealName = sysUserRealName
-		edbInfo.CreateTime = time.Now()
-		edbInfo.ModifyTime = time.Now()
-		edbInfo.UniqueCode = uniqueCode
-		edbInfo.CalculateFormula = req.CalculateFormula
-		edbInfo.EdbType = 2
-		newEdbInfoId, err := o.Insert(edbInfo)
-		if err != nil {
-			return int(newEdbInfoId), err
-		}
-		edbInfoId = int(newEdbInfoId)
-		//处理同名指标
-		{
-			edbNameList, err := GetEdbInfoByName(req.EdbName)
-			if err != nil {
-				return edbInfoId, err
-			}
-			if len(edbNameList) >= 2 {
-				for _, v := range edbNameList {
-					edbName := v.EdbName + "(" + v.SourceName + ")"
-					err = ModifyEdbInfoNameSource(edbName, v.EdbInfoId)
-					if err != nil {
-						return edbInfoId, err
-					}
-				}
-			}
-		}
-
-		//calculateList := make([]*EdbInfoCalculate, 0)
-		edbInfoList := make([]*EdbInfo, 0)
-
-		for _, v := range req.EdbInfoIdArr {
-			edbInfo, err := GetEdbInfoById(v.EdbInfoId)
-			if err != nil {
-				return edbInfoId, err
-			}
-			//calculateItem := new(EdbInfoCalculate)
-			//calculateItem.CreateTime = time.Now()
-			//calculateItem.ModifyTime = time.Now()
-			//calculateItem.Sort = k + 1
-			//calculateItem.EdbCode = edbCode
-			//calculateItem.EdbInfoId = int(edbInfoId)
-			//calculateItem.FromEdbInfoId = edbInfo.EdbInfoId
-			//calculateItem.FromEdbCode = edbInfo.EdbCode
-			//calculateItem.FromEdbName = edbInfo.EdbName
-			//calculateItem.FromSource = edbInfo.Source
-			//calculateItem.FromSourceName = edbInfo.SourceName
-			//calculateItem.FromTag = v.FromTag
-			//calculateList = append(calculateList, calculateItem)
-			edbInfoList = append(edbInfoList, edbInfo)
-		}
-		//if len(calculateList) > 0 {
-		//	_, err = o.InsertMulti(1, calculateList)
-		//	if err != nil {
-		//		return edbInfoId, err
-		//	}
-		//}
-	} else {
-		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE)
-		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
-		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
-		_, err = o.Raw(deleteSql, req.EdbInfoId).Exec()
-	}
-	//计算数据
-	saveDataMap := make(map[string]map[int]float64)
-	for _, v := range fromEdbInfo {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.FromEdbInfoId)
-		dataList, err := GetEdbDataListAll(condition, pars, v.FromSource, 1)
-		if err != nil {
-			return edbInfoId, err
-		}
-		dataMap := make(map[string]float64)
-		for _, dv := range dataList {
-			if val, ok := saveDataMap[dv.DataTime]; ok {
-				if _, ok := val[v.EdbInfoId]; !ok {
-					val[v.EdbInfoId] = dv.Value
-				}
-			} else {
-				temp := make(map[int]float64)
-				temp[v.EdbInfoId] = dv.Value
-				saveDataMap[dv.DataTime] = temp
-			}
-		}
-		item := new(CalculateItems)
-		item.EdbInfoId = v.EdbInfoId
-		item.DataMap = dataMap
-	}
-
-	//formulaMap := CheckFormula(formulaStr)
-	//addSql := ` INSERT INTO edb_data_calculate(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	//nowStr := time.Now().Format(utils.FormatDateTime)
-	//var isAdd bool
-	//
-	//for sk, sv := range saveDataMap {
-	//	formulaStr = strings.ToUpper(formulaStr)
-	//	formulaFormStr := ReplaceFormula(edbInfoIdArr, sv, formulaMap, formulaStr, edbInfoIdBytes)
-	//	if formulaFormStr != "" {
-	//		utils.FileLog.Info("formulaFormStr:%s", formulaFormStr)
-	//		expression := formula.NewExpression(formulaFormStr)
-	//		calResult, err := expression.Evaluate()
-	//		if err != nil {
-	//			err = errors.New("计算失败:Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
-	//			fmt.Println(err)
-	//			return err
-	//		}
-	//		calVal, err := calResult.Float64()
-	//		if err != nil {
-	//			err = errors.New("计算失败:获取计算值失败 Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
-	//			fmt.Println(err)
-	//			return err
-	//		}
-	//
-	//		//需要存入的数据
-	//		{
-	//			dataTime, _ := time.Parse(utils.FormatDate, sk)
-	//			timestamp := dataTime.UnixNano() / 1e6
-	//			timeStr := fmt.Sprintf("%d", timestamp)
-	//			addSql += "("
-	//			addSql += strconv.Itoa(edbInfoId) + "," + "'" + edbCode + "'" + "," + "'" + sk + "'" + "," + utils.SubFloatToString(calVal, 4) + "," + "'" + nowStr + "'" +
-	//				"," + "'" + nowStr + "'" + "," + "1"
-	//			addSql += "," + "'" + timeStr + "'"
-	//			addSql += "),"
-	//			isAdd = true
-	//		}
-	//	}
-	//}
-	//if isAdd {
-	//	addSql = strings.TrimRight(addSql, ",")
-	//	AddEdbDataCalculateBySql(addSql)
-	//	if err != nil {
-	//		fmt.Println("AddEdbDataCalculate Err:" + err.Error())
-	//		return
-	//	}
-	//}
-	return
-}
-
-type CalculateItems struct {
-	EdbInfoId int
-	DataMap   map[string]float64
-}
-
-func CheckFormula(formula string) map[string]string {
-	mathFormula := []string{"MAX", "MIN", "ABS", "ACOS", "ASIN", "CEIL", "MOD", "POW", "ROUND", "SIGN", "SIN", "TAN", "LOG10", "LOG2", "LOG"}
-
-	str := strings.ToUpper(formula)
-	for _, v := range mathFormula {
-		str = strings.Replace(str, v, "", -1)
-	}
-	str = strings.Replace(str, "(", "", -1)
-	str = strings.Replace(str, ")", "", -1)
-
-	byteMap := make(map[string]string)
-	for i := 0; i < len(str); i++ {
-		byteInt := str[i]
-		if byteInt >= 65 && byteInt <= 90 {
-			byteStr := string(byteInt)
-			if _, ok := byteMap[byteStr]; !ok {
-				byteMap[byteStr] = byteStr
-			}
-		}
-	}
-	return byteMap
-}
-
-func ReplaceFormula(edbInfoIdArr []*EdbInfo, valArr map[int]float64, formulaMap map[string]string, formulaStr string, edbInfoIdBytes []string) string {
-	funMap := GetFormulaMap()
-	for k, v := range funMap {
-		formulaStr = strings.Replace(formulaStr, k, v, -1)
-	}
-
-	replaceCount := 0
-	for dk, dv := range edbInfoIdArr {
-		if dk == 0 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 1 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 2 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 3 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 4 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 5 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 6 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 7 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-		if dk == 8 {
-			dKey := edbInfoIdBytes[dk]
-			if _, ok := formulaMap[dKey]; ok { //公式中存在
-				if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
-					dvStr := fmt.Sprintf("%v", val)
-					formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
-					replaceCount++
-				}
-			}
-		}
-	}
-	for k, v := range funMap {
-		formulaStr = strings.Replace(formulaStr, v, k, -1)
-	}
-	if replaceCount == len(formulaMap) {
-		return formulaStr
-	} else {
-		return ""
-	}
-}
-
-func GetFormulaMap() map[string]string {
-	funMap := make(map[string]string)
-	funMap["MAX"] = "[@@]"
-	funMap["MIN"] = "[@!]"
-	funMap["ABS"] = "[@#]"
-	funMap["CEIL"] = "[@$]"
-	funMap["COS"] = "[@%]"
-	funMap["FLOOR"] = "[@^]"
-	funMap["MOD"] = "[@&]"
-	funMap["POW"] = "[@*]"
-	funMap["ROUND"] = "[@(]"
-	return funMap
-}
-
-func Calculate(edbInfoIdArr []*EdbInfo, edbInfoId int, edbCode, formulaStr string, edbInfoIdBytes []string) (err error) {
-	defer func() {
-		if err != nil {
-			utils.FileLog.Info("Calculate Err:%s" + err.Error())
-		}
-	}()
-	saveDataMap := make(map[string]map[int]float64)
-	for _, v := range edbInfoIdArr {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.EdbInfoId)
-		dataList, err := GetEdbDataListAll(condition, pars, v.Source, 1)
-		if err != nil {
-			return err
-		}
-		dataMap := make(map[string]float64)
-		for _, dv := range dataList {
-			if val, ok := saveDataMap[dv.DataTime]; ok {
-				if _, ok := val[v.EdbInfoId]; !ok {
-					val[v.EdbInfoId] = dv.Value
-				}
-			} else {
-				temp := make(map[int]float64)
-				temp[v.EdbInfoId] = dv.Value
-				saveDataMap[dv.DataTime] = temp
-			}
-		}
-		item := new(CalculateItems)
-		item.EdbInfoId = v.EdbInfoId
-		item.DataMap = dataMap
-	}
-	formulaMap := CheckFormula(formulaStr)
-	addSql := ` INSERT INTO edb_data_calculate(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	nowStr := time.Now().Format(utils.FormatDateTime)
-	var isAdd bool
-
-	for sk, sv := range saveDataMap {
-		formulaStr = strings.ToUpper(formulaStr)
-		formulaFormStr := ReplaceFormula(edbInfoIdArr, sv, formulaMap, formulaStr, edbInfoIdBytes)
-		if formulaStr == "" {
-			return
-		}
-		if formulaFormStr != "" {
-			utils.FileLog.Info("formulaFormStr:%s", formulaFormStr)
-			expression := formula.NewExpression(formulaFormStr)
-			calResult, err := expression.Evaluate()
-			if err != nil {
-				err = errors.New("计算失败:Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
-				fmt.Println(err)
-				return err
-			}
-			calVal, err := calResult.Float64()
-			if err != nil {
-				err = errors.New("计算失败:获取计算值失败 Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
-				fmt.Println(err)
-				return err
-			}
-
-			//需要存入的数据
-			{
-				dataTime, _ := time.Parse(utils.FormatDate, sk)
-				timestamp := dataTime.UnixNano() / 1e6
-				timeStr := fmt.Sprintf("%d", timestamp)
-				addSql += "("
-				addSql += strconv.Itoa(edbInfoId) + "," + "'" + edbCode + "'" + "," + "'" + sk + "'" + "," + utils.SubFloatToString(calVal, 4) + "," + "'" + nowStr + "'" +
-					"," + "'" + nowStr + "'" + "," + "1"
-				addSql += "," + "'" + timeStr + "'"
-				addSql += "),"
-				isAdd = true
-			}
-		} else {
-			fmt.Println("formulaFormStr is empty")
-		}
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		AddEdbDataCalculateBySql(addSql)
-		if err != nil {
-			fmt.Println("AddEdbDataCalculate Err:" + err.Error())
-			return err
-		}
-	}
-	return
-}

+ 1 - 33
models/db.go

@@ -34,39 +34,7 @@ func init() {
 
 	//注册对象
 	orm.RegisterModel(
-		new(data_manage.EdbClassify),
 		new(data_manage.EdbInfo),
-		new(data_manage.EdbDataThs),
-		new(data_manage.EdbDataWind),
-		new(data_manage.EdbDataPb),
-		new(data_manage.ChartClassify),
-		new(data_manage.ChartInfo),
-		new(data_manage.ChartEdbMapping),
-		new(data_manage.ManualUserClassify),
-		new(data_manage.EdbdataClassify),
-		new(data_manage.ManualUser),
-		new(data_manage.EdbInfoCalculate),
-		new(data_manage.EdbDataCalculate),
-		new(data_manage.EdbInfoCalculateLjzzy),
-		new(data_manage.EdbInfoCalculateTbz),
-		new(data_manage.EdbInfoCalculateTcz),
-		new(data_manage.EdbInfoCalculateNszydpjjs),
-		new(data_manage.SearchKeyword),
-		new(data_manage.EdbInfoCalculateHbz),
-		new(data_manage.EdbInfoCalculateHcz),
-		new(data_manage.EdbInfoCalculateBp),
-		new(data_manage.BaseFromSmm),
-		new(data_manage.BaseFromSmmIndex),
-		new(data_manage.BaseFromSmmData),
-		new(data_manage.MyChartClassify),
-		new(data_manage.MyChart),
-		new(data_manage.MyChartClassifyMapping),
-		new(data_manage.ChartInfoLog),
-		new(data_manage.EdbInfoLog),
-		new(data_manage.MyChartLog),
-		new(data_manage.EdbInfoCalculateMapping),
-		new(data_manage.EdbDataCalculateZjpj),    //直接拼接
-		new(data_manage.EdbDataCalculateLjztbpj), //累计同比值拼接
-		new(ShareChartRefreshLog),                //分享图表刷新日志表
+		new(ShareChartRefreshLog), //分享图表刷新日志表
 	)
 }

+ 1 - 618
services/data/chart_info.go

@@ -6,626 +6,9 @@ import (
 	"hongze/hongze_chart_lib/models/data_manage"
 	"hongze/hongze_chart_lib/utils"
 	"sort"
-	"strconv"
 	"time"
 )
 
-func ChartInfoRefresh(chartInfoId int) (err error) {
-	var errmsg string
-	defer func() {
-		if err != nil {
-			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
-			fmt.Println("ChartInfoRefresh Err:" + errmsg)
-		}
-	}()
-	baseEdbInfoArr, calculateInfoArr, err := data_manage.GetChartInfoRefreshData(chartInfoId)
-	if err != nil {
-		errmsg = "获取需要刷新的指标失败:Err:" + err.Error()
-		return
-	}
-	var startDate string
-
-	newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
-	baseMap := make(map[int]*data_manage.EdbInfo)
-	for _, bv := range baseEdbInfoArr {
-		if _, ok := baseMap[bv.EdbInfoId]; !ok {
-			newBaseEdbInfoArr = append(newBaseEdbInfoArr, bv)
-		}
-		baseMap[bv.EdbInfoId] = bv
-	}
-
-	fmt.Println("calculateInfoArr:", len(calculateInfoArr))
-
-	newCalculateInfoArr := make([]*data_manage.EdbInfo, 0)
-	calculateMap := make(map[int]*data_manage.EdbInfo)
-	var calculateArr []int
-	for _, bv := range calculateInfoArr {
-		if _, ok := calculateMap[bv.EdbInfoId]; !ok {
-			newCalculateInfoArr = append(newCalculateInfoArr, bv)
-			calculateArr = append(calculateArr, bv.EdbInfoId)
-		}
-		calculateMap[bv.EdbInfoId] = bv
-	}
-	sort.Ints(calculateArr)
-	for _, bv := range newBaseEdbInfoArr {
-		source := bv.Source
-		edbInfoId := bv.EdbInfoId
-		edbCode := bv.EdbCode
-		startDate = bv.StartDate
-		sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
-		if err != nil {
-			return err
-		}
-		startDate = sTime.Format(utils.FormatDate)
-
-		if source == utils.DATA_SOURCE_THS {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = RefreshEdbDataByThs(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByThs Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_WIND {
-			endDate := time.Now().Format(utils.FormatDate)
-			err = RefreshEdbDataByWind(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByWind Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_PB {
-			startDate := sTime.Format(utils.FormatDateUnSpace)
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
-			err = RefreshEdbDataByPb(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByPb Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_MANUAL {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshEdbDataByManual(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByManual Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_LZ {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshEdbDataByLz(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByLz Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_YS {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshAllEdbDataByYs(edbInfoId, source, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByYs Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_GL {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshEdbDataByGl(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByGl Err:" + err.Error()
-			}
-		}else if source == utils.DATA_SOURCE_LT {
-			endDate := time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllEdbDataByLt(edbInfoId, source, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshAllEdbDataByLT Err:" + err.Error()
-			}
-		}else if source == utils.DATA_SOURCE_COAL {
-			endDate := time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshEdbDataByCoal(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByGl Err:" + err.Error()
-			}
-		}
-
-		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
-		if err != nil {
-			return err
-		}
-		if maxAndMinItem != nil {
-			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-			if err != nil {
-				return err
-			}
-		}
-	}
-
-	for _, v := range calculateArr {
-		edbInfo := calculateMap[v]
-		if edbInfo == nil {
-			return err
-		}
-		edbInfoId := edbInfo.EdbInfoId
-		source := edbInfo.Source
-		edbCode := edbInfo.EdbCode
-
-		fmt.Println("source:", source)
-		fmt.Println("edbInfoId:", edbInfoId)
-
-		if source == utils.DATA_SOURCE_CALCULATE { //指标运算
-			startDate = edbInfo.StartDate
-			sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
-			if err != nil {
-				return err
-			}
-			startDate = sTime.Format(utils.FormatDate)
-
-			var edbInfoIdBytes []string
-			calculateMap, err := data_manage.GetEdbInfoCalculateDetail(edbInfoId, edbInfo.Source)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateDetail Err:" + err.Error()
-				return err
-			}
-			var formulaStr string
-			edbInfoList := make([]*data_manage.EdbInfo, 0)
-
-			for _, v := range calculateMap {
-				formulaStr += v.FromTag + ","
-				edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
-				edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
-				edbInfoList = append(edbInfoList, edbInfo)
-			}
-			fmt.Println("start RefreshCalculate")
-			endDate := ""
-			err = RefreshCalculate(edbInfoList, int(edbInfoId), edbInfo.EdbCode, edbInfo.CalculateFormula, startDate, endDate, edbInfoIdBytes)
-			if err != nil {
-				errmsg = "RefreshCalculate Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY { //刷新累计值转月值
-			calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateLjzzyDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			year := time.Now().Year()
-			startDate = strconv.Itoa(year) + "-01" + "-01"
-			endDate := ""
-			err = data_manage.RefreshCalculateLjzzy(edbInfoId, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateLjzzy Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_TBZ { //刷新同比值
-			calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
-			endDate := "" // time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshCalculateTbz(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateTbz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_TCZ { //同差值
-			calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateTczDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
-			endDate := "" //time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshCalculateTcz(edbInfoId, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateTcz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS { //N数值移动平均计算
-			fmt.Println("刷新计算指标:", edbInfoId)
-			calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-			err = data_manage.RefreshCalculateNszydpjjs(edbInfoId, edbInfo.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode)
-			if err != nil {
-				errmsg = "RefreshCalculateNszydpjjs Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_HBZ { //刷新环比
-			calculateTbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateHbzDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
-			endDate := "" //time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshCalculateHbz(edbInfoId, edbInfo.Source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateHbz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_HCZ { //刷新环差值
-			calculateTbz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateHczDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
-			endDate := "" //time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshCalculateHcz(edbInfoId, edbInfo.Source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateHcz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_BP { //刷新变频
-			calculateTbz, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateBpDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
-			endDate := "" //time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshCalculateBp(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateBp Err:" + err.Error()
-				return err
-			}
-		}
-		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
-		if err != nil {
-			return err
-		}
-		if maxAndMinItem != nil {
-			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-			if err != nil {
-				return err
-			}
-		}
-	}
-	return err
-}
-
-// ChartInfoRefreshVOld 图表刷新(旧版,2022年03月25日11:35:06 作废)
-func ChartInfoRefreshVOld(chartInfoId int) (err error) {
-	var errmsg string
-	defer func() {
-		if err != nil {
-			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
-			fmt.Println("ChartInfoRefresh Err:" + errmsg)
-		}
-	}()
-	baseEdbInfoArr, calculateInfoArr, err := data_manage.GetChartInfoRefreshData(chartInfoId)
-	if err != nil {
-		errmsg = "获取需要刷新的指标失败:Err:" + err.Error()
-		return
-	}
-	var startDate string
-
-	newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
-	baseMap := make(map[int]*data_manage.EdbInfo)
-	for _, bv := range baseEdbInfoArr {
-		if _, ok := baseMap[bv.EdbInfoId]; !ok {
-			newBaseEdbInfoArr = append(newBaseEdbInfoArr, bv)
-		}
-		baseMap[bv.EdbInfoId] = bv
-	}
-
-	fmt.Println("calculateInfoArr:", len(calculateInfoArr))
-
-	newCalculateInfoArr := make([]*data_manage.EdbInfo, 0)
-	calculateMap := make(map[int]*data_manage.EdbInfo)
-	var calculateArr []int
-	for _, bv := range calculateInfoArr {
-		if _, ok := calculateMap[bv.EdbInfoId]; !ok {
-			newCalculateInfoArr = append(newCalculateInfoArr, bv)
-			calculateArr = append(calculateArr, bv.EdbInfoId)
-		}
-		calculateMap[bv.EdbInfoId] = bv
-	}
-	sort.Ints(calculateArr)
-	for _, bv := range newBaseEdbInfoArr {
-		source := bv.Source
-		edbInfoId := bv.EdbInfoId
-		edbCode := bv.EdbCode
-		startDate = bv.StartDate
-		sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
-		if err != nil {
-			return err
-		}
-		startDate = sTime.Format(utils.FormatDate)
-
-		if source == utils.DATA_SOURCE_THS {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = RefreshEdbDataByThs(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByThs Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_WIND {
-			endDate := time.Now().Format(utils.FormatDate)
-			err = RefreshEdbDataByWind(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByWind Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_PB {
-			startDate := sTime.Format(utils.FormatDateUnSpace)
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
-			err = RefreshEdbDataByPb(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByPb Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_MANUAL {
-			err = data_manage.RefreshAllEdbDataByManual(edbInfoId, bv.Source, edbCode)
-			if err != nil {
-				errmsg = "RefreshEdbDataByManual Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_LZ {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshEdbDataByLz(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByLz Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_YS {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshAllEdbDataByYs(edbInfoId, source, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByYs Err:" + err.Error()
-			}
-		} else if source == utils.DATA_SOURCE_GL {
-			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
-			err = data_manage.RefreshEdbDataByGl(edbInfoId, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshEdbDataByGl Err:" + err.Error()
-			}
-		}else if source == utils.DATA_SOURCE_LT {
-			endDate := time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllEdbDataByLt(edbInfoId, source, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshAllEdbDataByLT Err:" + err.Error()
-			}
-		}else if source == utils.DATA_SOURCE_COAL {
-			endDate := time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllEdbDataByCoal(edbInfoId, source, edbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshAllEdbDataByCoal Err:" + err.Error()
-			}
-		}
-
-		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
-		if err != nil {
-			return err
-		}
-		if maxAndMinItem != nil {
-			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-			if err != nil {
-				return err
-			}
-		}
-	}
-
-	endDate := "" //计算指标不限制日期
-	//刷新相关计算指标
-	for _, v := range calculateArr {
-		edbInfo := calculateMap[v]
-		if edbInfo == nil {
-			return err
-		}
-		edbInfoId := edbInfo.EdbInfoId
-		source := edbInfo.Source
-		edbCode := edbInfo.EdbCode
-
-		if source == utils.DATA_SOURCE_CALCULATE {
-			startDate = edbInfo.StartDate
-			sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
-			if err != nil {
-				return err
-			}
-			startDate = sTime.Format(utils.FormatDate)
-
-			var edbInfoIdBytes []string
-			calculateMap, err := data_manage.GetEdbInfoCalculateDetail(edbInfoId, edbInfo.Source)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateDetail Err:" + err.Error()
-				return err
-			}
-			var formulaStr string
-			edbInfoList := make([]*data_manage.EdbInfo, 0)
-
-			for _, v := range calculateMap {
-				formulaStr += v.FromTag + ","
-				edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
-				edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
-				edbInfoList = append(edbInfoList, edbInfo)
-			}
-			err = data_manage.RefreshAllCalculate(edbInfoList, int(edbInfoId), source, edbInfo.EdbCode, edbInfo.CalculateFormula, startDate, endDate, edbInfoIdBytes)
-			if err != nil {
-				errmsg = "RefreshCalculate Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY { //刷新累计值转月值
-			calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateLjzzyDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = edbInfo.StartDate
-			endDate = time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllCalculateLjzzy(edbInfoId, source, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshAllCalculateLjzzy Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_TBZ { //刷新同比值
-			calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = edbInfo.StartDate
-			endDate = time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllCalculateTbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshAllCalculateTbz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_TCZ { //同差值
-			calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateTczDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = edbInfo.StartDate
-			endDate = time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllCalculateTcz(edbInfoId, source, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshCalculateTcz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS { //N数值移动平均计算
-			calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-			startDate = edbInfo.StartDate
-			err = data_manage.RefreshAllCalculateNszydpjjs(edbInfoId, edbInfo.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode, startDate)
-			if err != nil {
-				errmsg = "RefreshCalculateNszydpjjs Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_HBZ { //刷新环比值
-			calculateTbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateHbzDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = edbInfo.StartDate
-			endDate = time.Now().Format(utils.FormatDate)
-			formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-			err = data_manage.RefreshAllCalculateHbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
-			if err != nil {
-				errmsg = "RefreshAllCalculateHbz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_HCZ { //刷新环差值
-			calculateTbz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateHczDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = edbInfo.StartDate
-			endDate = time.Now().Format(utils.FormatDate)
-			formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
-			err = data_manage.RefreshAllCalculateHcz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
-			if err != nil {
-				errmsg = "RefreshAllCalculateHcz Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_BP { //刷新变频
-			calculateTbz, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
-				return err
-			}
-			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
-			if err != nil {
-				errmsg = "GetEdbInfoById Err:" + err.Error()
-				return err
-			}
-			startDate = edbInfo.StartDate
-			endDate = time.Now().Format(utils.FormatDate)
-			err = data_manage.RefreshAllCalculateBp(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
-			if err != nil {
-				errmsg = "RefreshAllCalculateBp Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_ZJPJ { //刷新直接拼接数据
-			err = data_manage.RefreshAllCalculateZjpj(edbInfo)
-			if err != nil {
-				errmsg = "RefreshAllCalculateZjpj Err:" + err.Error()
-				return err
-			}
-		} else if source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ { //刷新累计值同比拼接数据
-			err = data_manage.RefreshAllCalculateLjztbpj(edbInfo)
-			if err != nil {
-				errmsg = "RefreshAllCalculateLjztbpj Err:" + err.Error()
-				return err
-			}
-		}
-
-		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
-		if err != nil {
-			return err
-		}
-
-		if maxAndMinItem != nil {
-			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-			if err != nil {
-				return err
-			}
-		}
-		fmt.Println("end calculateArr:", v, time.Now())
-	}
-
-	return err
-}
-
 // ChartInfoRefreshV1 图表刷新
 func ChartInfoRefreshV1(chartInfoId int) (err error) {
 	var errmsg string
@@ -746,7 +129,7 @@ func ChartInfoRefreshV1(chartInfoId int) (err error) {
 		if result.Ret != 200 {
 			fmt.Println(v, "RefreshEdbCalculateData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
 			errmsg = fmt.Sprint(v, "RefreshEdbCalculateData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
-			return fmt.Errorf("刷新失败"+errmsg)
+			return fmt.Errorf("刷新失败" + errmsg)
 		}
 		fmt.Println("end calculateArr:", v, time.Now())
 	}

+ 1 - 0
utils/constants.go

@@ -95,3 +95,4 @@ var (
 var (
 	APP_EDB_LIB_NAME_EN = "hongze_edb_lib"
 	EDB_LIB_Md5_KEY     = "GuRaB6dY1bXOJcwG"
+)