Ver Fonte

Merge branch 'feature/eta1.2.2_souce_stat' of eta_server/eta_mobile into master

xyxie há 1 ano atrás
pai
commit
20ec5d967a

+ 7 - 0
controllers/data_manage/edb_info.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_mobile/models/data_manage/response"
 	"eta/eta_mobile/services/alarm_msg"
 	"eta/eta_mobile/services/data"
+	"eta/eta_mobile/services/data_stat"
 	"eta/eta_mobile/services/elastic"
 	"eta/eta_mobile/utils"
 	"fmt"
@@ -2108,7 +2109,13 @@ func (this *EdbInfoController) EdbInfoEdit() {
 
 	//添加es
 	data.AddOrEditEdbInfoToEs(req.EdbInfoId)
+	// 修改关联的预测指标基础信息
+	go data.ModifyPredictEdbBaseInfoBySourceEdb(edbInfo)
 
+	// 添加钢联指标更新日志
+	if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
+		go data_stat.AddEdbInfoUpdateLog(req.EdbInfoId, 1, "", sysUser)
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "保存成功"

+ 4 - 0
models/data_manage/edb_info.go

@@ -46,6 +46,10 @@ type EdbInfo struct {
 	Calendar         string  `description:"公历/农历" orm:"default(公历);"`
 	DataDateType     string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
 	ManualSave       int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
+	TerminalCode     string  `description:"终端编码,用于配置在机器上"`
+	DataUpdateTime   string  `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate string  `description:"本次更新,数据发生变化的最早日期"`
+	SourceIndexName  string  `description:"数据源中的指标名称"`
 }
 
 type EdbInfoFullClassify struct {

+ 80 - 0
models/data_stat/edb_info_delete_log.go

@@ -0,0 +1,80 @@
+package data_stat
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+// EdbInfoDeleteLog 指标删除日志表
+type EdbInfoDeleteLog struct {
+	Id                 uint64  `orm:"column(id);pk"`
+	EdbInfoId          int     `description:"指标ID"`
+	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName         string  `description:"来源名称"`
+	Source             int     `description:"来源id"`
+	EdbCode            string  `description:"指标编码"`
+	EdbName            string  `description:"指标名称"`
+	EdbNameEn          string  `description:"英文指标名称"`
+	EdbNameSource      string  `description:"指标名称来源"`
+	Frequency          string  `description:"频率"`
+	Unit               string  `description:"单位"`
+	UnitEn             string  `description:"英文单位"`
+	StartDate          string  `description:"起始日期"`
+	EndDate            string  `description:"终止日期"`
+	SysUserId          int     `description:"创建人ID"`
+	SysUserRealName    string  `description:"创建人姓名"`
+	UniqueCode         string  `description:"指标唯一编码"`
+	EdbCreateTime      string  `description:"指标创建时间"`
+	EdbModifyTime      string  `description:"指标修改时间"`
+	CreateTime         string  `description:"创建时间即删除时间"`
+	MinValue           float64 `description:"指标最小值"`
+	MaxValue           float64 `description:"指标最大值"`
+	CalculateFormula   string  `description:"计算公式"`
+	EdbType            int     `description:"指标类型:1:基础指标,2:计算指标"`
+	LatestDate         string  `description:"数据最新日期"`
+	LatestValue        float64 `description:"数据最新值"`
+	MoveType           int     `description:"移动方式:1:领先(默认),2:滞后"`
+	MoveFrequency      string  `description:"移动频度"`
+	NoUpdate           int8    `description:"是否停止更新,0:继续更新;1:停止更新"`
+	ChartImage         string  `description:"图表图片"`
+	Calendar           string  `description:"公历/农历" orm:"default(公历);"`
+	DataDateType       string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
+	ManualSave         int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
+	TerminalCode       string  `description:"终端编码,用于配置在机器上"`
+	DelSysUserId       int     `description:"删除人ID"`
+	DelSysUserRealName string  `description:"删除人姓名"`
+	DataUpdateTime     string  `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   string  `description:"本次更新,数据发生变化的最早日期"`
+}
+
+type EdbInfoDeleteLogItem struct {
+	Id                 uint64  `orm:"column(id);"`
+	EdbInfoId          int     `description:"指标ID"`
+	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName         string  `description:"来源名称"`
+	Source             int     `description:"来源id"`
+	EdbCode            string  `description:"指标编码"`
+	EdbName            string  `description:"指标名称"`
+	EdbNameEn          string  `description:"英文指标名称"`
+	EdbNameSource      string  `description:"指标名称来源"`
+	Frequency          string  `description:"频率"`
+	Unit               string  `description:"单位"`
+	StartDate          string  `description:"起始日期"`
+	EndDate            string  `description:"终止日期"`
+	SysUserId          int     `description:"创建人ID"`
+	SysUserRealName    string  `description:"创建人姓名"`
+	EdbCreateTime      string  `description:"指标创建时间"`
+	CreateTime         string  `description:"创建时间即删除时间"`
+	LatestDate         string  `description:"数据最新日期"`
+	LatestValue        float64 `description:"数据最新值"`
+	TerminalCode       string  `description:"终端编码,用于配置在机器上"`
+	DelSysUserId       int     `description:"删除人ID"`
+	DelSysUserRealName string  `description:"删除人姓名"`
+	DataUpdateTime     string  `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   string  `description:"本次更新,数据发生变化的最早日期"`
+}
+
+func AddEdbDeleteLog(item *EdbInfoDeleteLog) (lastId int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	lastId, err = o.Insert(item)
+	return
+}

+ 70 - 0
models/data_stat/edb_info_update_log.go

@@ -0,0 +1,70 @@
+package data_stat
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// EdbInfoUpdateLog 指标更新/刷新日志列表
+type EdbInfoUpdateLog struct {
+	Id                     uint64    `orm:"column(id);pk"`
+	EdbInfoId              int       `description:"指标ID"`
+	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:"终止日期"`
+	SysUserId              int       `description:"创建人ID"`
+	SysUserRealName        string    `description:"创建人姓名"`
+	UniqueCode             string    `description:"指标唯一编码"`
+	EdbCreateTime          time.Time `description:"指标创建时间"`
+	EdbModifyTime          time.Time `description:"指标修改时间"`
+	CreateTime             time.Time `description:"创建时间"`
+	UpdateSysUserId        int       `description:"变更人ID"`
+	UpdateSysUserRealName  string    `description:"变更人姓名"`
+	LatestDate             string    `description:"数据最新日期"`
+	LatestValue            float64   `description:"数据最新值"`
+	TerminalCode           string    `description:"终端编码,用于配置在机器上"`
+	ErDataUpdateDate       string    `description:"本次更新,数据发生变化的最早日期"`
+	UpdateResult           int       `description:"本次刷新操作结果:1成功,2失败"`
+	UpdateFailedReason     string    `description:"刷新失败原因"`
+	DataUpdateResult       int       `description:"数据更新结果:1成功,2失败"`
+	DataUpdateFailedReason string    `description:"数据未正常更新原因"`
+	DataUpdateTime         string    `description:"数据更新时间"`
+	IsSourceRefresh        int       `description:"是否为终端刷新到数据源的刷新操作:0否,1是"`
+}
+
+type EdbInfoUpdateLogItem struct {
+	Id                    uint64 `orm:"column(id);pk"`
+	EdbInfoId             int    `description:"指标ID"`
+	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:"终止日期"`
+	SysUserId             int    `description:"创建人ID"`
+	SysUserRealName       string `description:"创建人姓名"`
+	UpdateSysUserId       int    `description:"变更人ID"`
+	UpdateSysUserRealName string `description:"变更人姓名"`
+	CreateTime            string
+	UniqueCode            string  `description:"指标唯一编码"`
+	LatestDate            string  `description:"数据最新日期"`
+	LatestValue           float64 `description:"数据最新值"`
+	TerminalCode          string  `description:"终端编码,用于配置在机器上"`
+	DataUpdateTime        string  `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate      string  `description:"本次更新,数据发生变化的最早日期"`
+}
+
+func AddEdbUpdateLog(item *EdbInfoUpdateLog) (lastId int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	lastId, err = o.Insert(item)
+	return
+}

+ 12 - 0
models/db.go

@@ -2,6 +2,7 @@ package models
 
 import (
 	"eta/eta_mobile/models/data_manage"
+	"eta/eta_mobile/models/data_stat"
 	"eta/eta_mobile/models/ppt_english"
 	"eta/eta_mobile/models/sandbox"
 	saModel "eta/eta_mobile/models/semantic_analysis"
@@ -108,6 +109,9 @@ func init() {
 
 	// 初始化部分数据表变量(直接init会有顺序问题=_=!)
 	data_manage.InitEdbSource()
+
+	// initDataStat 数据源统计管理相关表
+	initDataStat()
 }
 
 // initSystem 系统表 数据表
@@ -249,3 +253,11 @@ func initBusinessConf() {
 		new(BusinessConfOperationRecord), // 商家配置操作记录表
 	)
 }
+
+// initDataStat 数据源统计管理相关表
+func initDataStat() {
+	orm.RegisterModel(
+		new(data_stat.EdbInfoDeleteLog), // 指标删除日志表
+		new(data_stat.EdbInfoUpdateLog), // 指标更新/刷新日志列表
+	)
+}

+ 2 - 1
services/data/edb_classify.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"eta/eta_mobile/models/data_manage"
 	"eta/eta_mobile/models/system"
+	"eta/eta_mobile/services/data_stat"
 	"eta/eta_mobile/utils"
 	"strconv"
 	"time"
@@ -451,7 +452,7 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 			err = errors.New("删除失败,Err:" + tmpErr.Error())
 			return
 		}
-
+		go data_stat.AddEdbDeleteLog(edbInfo, sysUser)
 		// 返回下一个表格的信息
 		{
 			var condition string

+ 61 - 0
services/data_stat/edb_delete_log.go

@@ -0,0 +1,61 @@
+package data_stat
+
+import (
+	"eta/eta_mobile/models/data_manage"
+	"eta/eta_mobile/models/data_stat"
+	"eta/eta_mobile/models/system"
+	"eta/eta_mobile/utils"
+	"fmt"
+	"time"
+)
+
+func AddEdbDeleteLog(edbInfo *data_manage.EdbInfo, sysUser *system.Admin) (err error) {
+	if edbInfo != nil {
+		log := new(data_stat.EdbInfoDeleteLog)
+		log.EdbInfoId = edbInfo.EdbInfoId
+		log.EdbInfoType = edbInfo.EdbInfoType
+		log.SourceName = edbInfo.SourceName
+		log.Source = edbInfo.Source
+		log.EdbCode = edbInfo.EdbCode
+		log.EdbName = edbInfo.EdbName
+		log.EdbNameEn = edbInfo.EdbNameEn
+		log.EdbNameSource = edbInfo.SourceIndexName
+		log.Frequency = edbInfo.Frequency
+		log.Unit = edbInfo.Unit
+		log.UnitEn = edbInfo.UnitEn
+		log.StartDate = edbInfo.StartDate
+		log.EndDate = edbInfo.EndDate
+		log.SysUserId = edbInfo.SysUserId
+		log.SysUserRealName = edbInfo.SysUserRealName
+		log.UniqueCode = edbInfo.UniqueCode
+		log.EdbCreateTime = edbInfo.CreateTime.Format(utils.FormatDateTime)
+		log.EdbModifyTime = edbInfo.ModifyTime.Format(utils.FormatDateTime)
+		log.CreateTime = time.Now().Format(utils.FormatDateTime)
+		log.MinValue = edbInfo.MinValue
+		log.MaxValue = edbInfo.MaxValue
+		log.CalculateFormula = edbInfo.CalculateFormula
+		log.EdbType = edbInfo.EdbType
+		log.LatestDate = edbInfo.LatestDate
+		log.LatestValue = edbInfo.LatestValue
+		log.MoveType = edbInfo.MoveType
+		log.MoveFrequency = edbInfo.MoveFrequency
+		log.NoUpdate = edbInfo.NoUpdate
+		log.ChartImage = edbInfo.ChartImage
+		log.Calendar = edbInfo.Calendar
+		log.DataDateType = edbInfo.DataDateType
+		log.ManualSave = edbInfo.ManualSave
+		log.TerminalCode = edbInfo.TerminalCode
+
+		log.DelSysUserId = sysUser.AdminId
+		log.DelSysUserRealName = sysUser.RealName
+		log.DataUpdateTime = edbInfo.DataUpdateTime
+		log.ErDataUpdateDate = edbInfo.ErDataUpdateDate
+
+		_, err = data_stat.AddEdbDeleteLog(log)
+		if err != nil {
+			err = fmt.Errorf("新增指标删除日志失败,Err: %s", err)
+			return
+		}
+	}
+	return
+}

+ 55 - 0
services/data_stat/edb_info_stat.go

@@ -0,0 +1,55 @@
+package data_stat
+
+import (
+	"eta/eta_mobile/models/data_manage"
+	"eta/eta_mobile/models/data_stat"
+	"eta/eta_mobile/models/system"
+	"fmt"
+	"time"
+)
+
+// AddEdbInfoUpdateLog 添加指标编辑/刷新日志
+func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason string, sysUser *system.Admin) (err error) {
+	var edbInfo *data_manage.EdbInfo
+	if edbInfoId > 0 {
+		// 获取指标详情
+		edbInfo, err = data_manage.GetEdbInfoById(edbInfoId)
+		if err != nil {
+			err = fmt.Errorf("指标不存在")
+			return
+		}
+		nowTime := time.Now()
+		log := new(data_stat.EdbInfoUpdateLog)
+		log.EdbInfoId = edbInfo.EdbInfoId
+		log.SourceName = edbInfo.SourceName
+		log.Source = edbInfo.Source
+		log.EdbCode = edbInfo.EdbCode
+		log.EdbName = edbInfo.EdbName
+		log.EdbNameSource = edbInfo.SourceIndexName
+		log.Frequency = edbInfo.Frequency
+		log.Unit = edbInfo.Unit
+		log.StartDate = edbInfo.StartDate
+		log.EndDate = edbInfo.EndDate
+		log.SysUserId = edbInfo.SysUserId
+		log.SysUserRealName = edbInfo.SysUserRealName
+		log.UpdateSysUserId = sysUser.AdminId
+		log.UpdateSysUserRealName = sysUser.RealName
+		log.UniqueCode = edbInfo.UniqueCode
+		log.EdbCreateTime = edbInfo.CreateTime
+		log.EdbModifyTime = edbInfo.ModifyTime
+		log.CreateTime = nowTime
+		log.LatestDate = edbInfo.LatestDate
+		log.LatestValue = edbInfo.LatestValue
+		log.TerminalCode = edbInfo.TerminalCode
+		log.UpdateResult = updateResult
+		log.UpdateFailedReason = updateFailedReason
+		log.DataUpdateTime = edbInfo.DataUpdateTime
+		log.ErDataUpdateDate = edbInfo.ErDataUpdateDate
+		_, err = data_stat.AddEdbUpdateLog(log)
+		if err != nil {
+			err = fmt.Errorf("新增指标更新日志失败,Err: %s", err)
+			return
+		}
+	}
+	return
+}