Browse Source

新增数据源统计自定义列

xyxie 1 year ago
parent
commit
c608f4ce3c

+ 119 - 0
controllers/data_stat/edb_source_stat.go

@@ -0,0 +1,119 @@
+package data_stat
+
+import (
+	"encoding/json"
+	"eta/eta_api/controllers"
+	"eta/eta_api/models"
+	"eta/eta_api/models/data_stat"
+)
+
+// EdbSourceStatController 数据源统计表管理模块
+type EdbSourceStatController struct {
+	controllers.BaseAuthController
+}
+
+// Column
+// @Title 数据源统计表自定义列列表
+// @Description 查询 数据源统计表自定义列列表
+// @Success 200 {object} data_stat.StatColumnList
+// @router /source_column [get]
+func (this *EdbSourceStatController) Column() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	columnType, _ := this.GetInt("ColumnType")
+	if columnType <= 0 {
+		br.Msg = "请选择表类型"
+		return
+	}
+	tmpList, err := data_stat.GetStatColumn(columnType)
+	if err != nil {
+		br.Msg = "获取自定义列失败"
+		br.ErrMsg = "获取自定义列失败,Err:" + err.Error()
+		return
+	}
+	var list []*data_stat.EdbInfoStatColumnListItem
+	for _, v := range tmpList {
+		tmp := new(data_stat.EdbInfoStatColumnListItem)
+		tmp.ColumnKey = v.ColumnKey
+		tmp.IsShow = v.IsShow
+		tmp.ColumnName = v.ColumnName
+		tmp.Id = v.Id
+		tmp.IsMust = v.IsMust
+		tmp.IsSort = v.IsSort
+		tmp.Type = v.Type
+		list = append(list, tmp)
+	}
+	var statColumnList data_stat.StatColumnList
+	statColumnList.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = statColumnList
+}
+
+// EditColumn
+// @Title 编辑数据源统计表自定义列
+// @Description 编辑 数据源统计表自定义列列表
+// @Success 200 {object} data_stat.StatColumnList
+// @router /source_column/edit [post]
+func (this *EdbSourceStatController) EditColumn() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req data_stat.EditStatColumnReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if len(req.List) <= 0 {
+		br.Msg = "请选择要修改的列"
+		br.IsSendEmail = false
+		return
+	}
+
+	var list []*data_stat.EdbInfoStatColumn
+	for k, v := range req.List {
+		if v.Id == 0 {
+			br.Msg = "列序号不能为空"
+			return
+		}
+		tmp := new(data_stat.EdbInfoStatColumn)
+		tmp.Id = v.Id
+		tmp.Sort = k + 1
+		tmp.IsShow = v.IsShow
+		list = append(list, tmp)
+	}
+
+	err = data_stat.UpdateStatColumn(list)
+	if err != nil {
+		br.Msg = "更新自定义列操作失败!"
+		br.ErrMsg = "更新自定义列操作失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	return
+}

+ 49 - 0
models/data_stat/edb_info_delete_log.go

@@ -0,0 +1,49 @@
+package data_stat
+
+import "time"
+
+// 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:"终止日期"`
+	ClassifyId         int       `description:"分类id"`
+	SysUserId          int       `description:"创建人ID"`
+	SysUserRealName    string    `description:"创建人姓名"`
+	UniqueCode         string    `description:"指标唯一编码"`
+	EdbCreateTime      time.Time `description:"指标创建时间"`
+	EdbModifyTime      time.Time `description:"指标修改时间"`
+	CreateTime         time.Time
+	MinValue           float64   `description:"指标最小值"`
+	MaxValue           float64   `description:"指标最大值"`
+	CalculateFormula   string    `description:"计算公式"`
+	EdbType            int       `description:"指标类型:1:基础指标,2:计算指标"`
+	Sort               int       `description:"排序字段"`
+	LatestDate         string    `description:"数据最新日期"`
+	LatestValue        float64   `description:"数据最新值"`
+	MoveType           int       `description:"移动方式:1:领先(默认),2:滞后"`
+	MoveFrequency      string    `description:"移动频度"`
+	NoUpdate           int       `description:"是否停止更新,0:继续更新;1:停止更新"`
+	ServerUrl          string    `description:"服务器地址"`
+	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:"终端编码,用于配置在机器上"`
+	IsUpdate           int       `description:"当天是否已更新,1:未更新,2:已更新"`
+	DelSysUserId       int       `description:"删除人ID"`
+	DelSysUserRealName string    `description:"删除人姓名"`
+	DataUpdateTime     time.Time `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   time.Time `description:"本次更新,数据发生变化的最早日期"`
+}

+ 66 - 0
models/data_stat/edb_info_stat_column.go

@@ -0,0 +1,66 @@
+package data_stat
+
+import "github.com/beego/beego/v2/client/orm"
+
+// EdbInfoStatColumn 数据源统计表自定义列
+type EdbInfoStatColumn struct {
+	Id         int    `orm:"column(id);pk" description:"自增id"`
+	ColumnName string `description:"字段名称"`
+	ColumnKey  string `description:"字段"`
+	CreateTime string `description:" 创建时间"`
+	ModifyTime string `description:"修改时间"`
+	Type       int    `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
+	Sort       int    `description:"列排序"`
+	IsMust     int    `description:"是否必选列: 0非必选 1必须"`
+	IsSort     int    `description:"是否是允许排序的列,0否,1是"`
+	IsShow     int    `description:"是否展示:1展示,0不展示"`
+}
+
+type EdbInfoStatColumnListItem struct {
+	Id         int    `description:"自增id"`
+	ColumnName string `description:"字段名称"`
+	ColumnKey  string `description:"字段"`
+	Type       int    `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
+	IsMust     int    `description:"是否必选列: 0非必选 1必须"`
+	IsSort     int    `description:"是否是允许排序的列,0否,1是"`
+	IsShow     int    `description:"是否展示:1展示,0不展示"`
+}
+
+type StatColumnList struct {
+	List []*EdbInfoStatColumnListItem
+}
+
+type EditStatColumnReq struct {
+	List []*EdbInfoStatColumnListReq
+}
+type EdbInfoStatColumnListReq struct {
+	Id     int `description:"自增id"`
+	IsShow int `description:"是否展示:1展示,0不展示"`
+}
+
+// GetStatColumn 获取自定义列
+func GetStatColumn(columnType int) (list []EdbInfoStatColumn, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM edb_info_stat_column WHERE type=? ORDER BY sort asc `
+	_, err = o.Raw(sql, columnType).QueryRows(&list)
+	return
+}
+
+// UpdateStatColumn 批量更新自定义列
+func UpdateStatColumn(list []*EdbInfoStatColumn) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	p, err := o.Raw("UPDATE edb_info_stat_column SET is_show = ?, sort=? WHERE id = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range list {
+		_, err = p.Exec(v.IsShow, v.Sort, v.Id)
+		if err != nil {
+			return
+		}
+	}
+	return
+}

+ 32 - 0
models/data_stat/edb_info_update_log.go

@@ -0,0 +1,32 @@
+package data_stat
+
+import "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
+	UpdateTime         string    `description:"刷新/修改时间"`
+	LatestDate         string    `description:"数据最新日期"`
+	LatestValue        float64   `description:"数据最新值"`
+	TerminalCode       string    `description:"终端编码,用于配置在机器上"`
+	DataUpdateTime     time.Time `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   time.Time `description:"本次更新,数据发生变化的最早日期"`
+	UpdateResult       int32     `description:"本次刷新结果:1成功,2失败"`
+	UpdateFailedReason string    `description:"数据未正常刷新原因"`
+}

+ 36 - 0
models/data_stat/edb_info_update_stat.go

@@ -0,0 +1,36 @@
+package data_stat
+
+import "time"
+
+// EdbInfoUpdateStat 指标更新/刷新 汇总表(数据源明细表)
+type EdbInfoUpdateStat 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
+	LatestDate         string    `description:"数据最新日期"`
+	LatestValue        float64   `description:"数据最新值"`
+	TerminalCode       string    `description:"终端编码,用于配置在机器上"`
+	DataUpdateTime     time.Time `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate   time.Time `description:"本次更新,数据发生变化的最早日期"`
+	UpdateResult       int32     `description:"本次刷新结果:1成功,2失败"`
+	UpdateFailedReason string    `description:"数据未正常刷新原因"`
+	ModifyTime         string    `description:"修改时间"`
+	UpdateTime         string    `description:"刷新/修改时间"`
+	IsAdd              int8      `description:"是否是当日新增的指标:1是,2否"`
+	NeedRefresh        int8      `description:"今日是否需要定时刷新,1需要,0不需要"` //todo 确认该字段
+	HasRefresh         int8      `description:"今日是否已刷新,1是,0否"`
+}

+ 1 - 0
models/data_stat/edb_info_update_time.go

@@ -0,0 +1 @@
+package data_stat

+ 21 - 0
models/data_stat/edb_source_stat.go

@@ -0,0 +1,21 @@
+package data_stat
+
+import "time"
+
+// EdbSourceStat 数据源统计表
+type EdbSourceStat struct {
+	Id                   uint64 `orm:"column(id);pk"`
+	SourceName           string `description:"来源名称"`
+	Source               int    `description:"来源id"`
+	TerminalCode         string `description:"终端编码,用于配置在机器上"`
+	EdbNum               int32  `description:"指标总数"`
+	EdbNewNum            int32  `description:"今日新增指标数"`
+	EdbDelNum            int32  `description:"今日删除指标数"`
+	NeedUpdateNum        int32  `description:"今日需刷新指标"`
+	HasUpdateNum         int32  `description:"今日发起刷新任务指标数"`
+	UpdateSuccessNum     int32  `description:"今日已刷新成功指标数"`
+	UpdateFailedNum      int32  `description:"今日已刷新失败指标数"`
+	DataUpdateSuccessNum int32  `description:"今日已更新指标"`
+	CreateTime           time.Time
+	ModifyTime           string `description:"修改时间"`
+}

+ 18 - 0
routers/commentsRouter.go

@@ -3436,6 +3436,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"],
+        beego.ControllerComments{
+            Method: "Column",
+            Router: `/source_column`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbSourceStatController"],
+        beego.ControllerComments{
+            Method: "EditColumn",
+            Router: `/source_column/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/english_report:EnPermissionController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/english_report:EnPermissionController"],
         beego.ControllerComments{
             Method: "Add",

+ 6 - 0
routers/router.go

@@ -15,6 +15,7 @@ import (
 	"eta/eta_api/controllers/data_manage/line_equation"
 	"eta/eta_api/controllers/data_manage/line_feature"
 	"eta/eta_api/controllers/data_manage/supply_analysis"
+	"eta/eta_api/controllers/data_stat"
 	"eta/eta_api/controllers/english_report"
 	"eta/eta_api/controllers/eta_trial"
 	"eta/eta_api/controllers/roadshow"
@@ -287,6 +288,11 @@ func init() {
 				&controllers.MeetingProbabilitiesController{},
 			),
 		),
+		web.NSNamespace("/data_stat/",
+			web.NSInclude(
+				&data_stat.EdbSourceStatController{},
+			),
+		),
 	)
 	web.AddNamespace(ns)
 }

+ 2 - 2
services/data/edb_classify.go

@@ -895,7 +895,7 @@ func moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, nextC
 			//如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
 			if firstClassify != nil && firstClassify.Sort == 0 {
 				updateSortStr := ` sort + 1 `
-				_ = data_manage.UpdateEdbClassifySortByParentId(parentClassifyId, firstClassify.ClassifyId-1, 0, updateSortStr, edbClassifyInfo.ClassifyType)
+				_ = data_manage.UpdateEdbClassifySortByParentId(parentClassifyId, firstClassify.ClassifyId-1, 0, updateSortStr, classifyType)
 				//该分类下的所有指标也需要+1
 				_ = data_manage.UpdateEdbInfoSortByClassifyId(parentClassifyId, 0, 0, updateSortStr)
 			} else {
@@ -1026,7 +1026,7 @@ func moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, nextC
 			//如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
 			if firstClassify != nil && firstClassify.Sort == 0 {
 				updateSortStr := ` sort + 1 `
-				_ = data_manage.UpdateEdbClassifySortByParentId(parentClassifyId, firstClassify.ClassifyId-1, 0, updateSortStr, edbClassifyInfo.ClassifyType)
+				_ = data_manage.UpdateEdbClassifySortByParentId(parentClassifyId, firstClassify.ClassifyId-1, 0, updateSortStr, classifyType)
 				//该分类下的所有指标也需要+1
 				_ = data_manage.UpdateEdbInfoSortByClassifyId(parentClassifyId, 0, 0, updateSortStr)
 			} else {