Selaa lähdekoodia

Merge branch 'feature/eta1.5.2_mysteel_stat' of eta_server/eta_api into master

xyxie 1 vuosi sitten
vanhempi
commit
de9ca28ca6

+ 8 - 1
controllers/data_manage/edb_info.go

@@ -2183,6 +2183,11 @@ func (this *EdbInfoController) EdbInfoAdd() {
 
 	//新增操作日志
 	{
+		// 添加钢联指标更新日志
+		if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
+			go data_stat.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "", sysUser, 2)
+		}
+
 		edbLog := new(data_manage.EdbInfoLog)
 		edbLog.EdbInfoId = edbInfo.EdbInfoId
 		edbLog.SourceName = edbInfo.SourceName
@@ -2362,7 +2367,9 @@ func (this *EdbInfoController) EdbInfoEdit() {
 
 	// 添加钢联指标更新日志
 	if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
-		go data_stat.AddEdbInfoUpdateLog(req.EdbInfoId, 1, "", sysUser)
+		if edbInfo.EdbName != req.EdbName || edbInfo.Frequency != req.Frequency || edbInfo.Unit != req.Unit {
+			go data_stat.AddEdbInfoUpdateLog(req.EdbInfoId, 1, "", sysUser, 1)
+		}
 	}
 
 	br.Ret = 200

+ 173 - 7
controllers/data_stat/edb_source_stat.go

@@ -317,6 +317,7 @@ func (this *EdbSourceStatController) EdbUpdateLog() {
 	sortParamReq := this.GetString("SortParam", "")
 	sortType := this.GetString("SortType", "desc")
 	createTime := this.GetString("CreateTime", "")
+	updateType, _ := this.GetInt("UpdateType", -1)
 
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
@@ -345,7 +346,10 @@ func (this *EdbSourceStatController) EdbUpdateLog() {
 		condition += " AND create_time >= ? AND create_time < ?"
 		pars = append(pars, createTime, endT.Format(utils.FormatDate))
 	}
-
+	if updateType >= 0 {
+		condition += " AND update_type =? "
+		pars = append(pars, updateType)
+	}
 	sortStr := ``
 	sortParam := ``
 	if sortParamReq != `` {
@@ -429,6 +433,7 @@ func (this *EdbSourceStatController) EdbUpdateLog() {
 		if v.ErDataUpdateDate != utils.EmptyDateStr {
 			tmp.ErDataUpdateDate = v.ErDataUpdateDate
 		}
+		tmp.UpdateType = v.UpdateType
 		list = append(list, tmp)
 	}
 
@@ -550,14 +555,14 @@ func (this *EdbSourceStatController) EdbUpdateStat() {
 	total, err := data_stat.GetEdbUpdateStatCount(condition, pars)
 	if err != nil {
 		if err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取指标删除列表总数失败"
-			br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error()
+			br.Msg = "获取指标列表总数失败"
+			br.ErrMsg = "获取指标列表总数失败,Err:" + err.Error()
 			return
 		} else {
 			err = nil
 		}
 	}
-	list := make([]*data_stat.EdbInfoUpdateStatItem, 0)
+	list := make([]*data_stat.EdbInfoUpdateStatItemMore, 0)
 	page := paging.GetPaging(currentIndex, pageSize, total)
 	if total == 0 {
 		resp := data_stat.GetEdbUpdateStatResp{
@@ -577,8 +582,28 @@ func (this *EdbSourceStatController) EdbUpdateStat() {
 		return
 	}
 
+	// 获取初始数据源名称
+	var edbCodeList []string
+	for _, v := range tmpList {
+		edbCodeList = append(edbCodeList, v.EdbCode)
+	}
+	initSourceMap := make(map[string]string)
+	if len(edbCodeList) > 0 {
+		baseCond := " and index_code in (" + utils.GetOrmInReplace(len(edbCodeList)) + ")"
+		var basePars []interface{}
+		basePars = append(basePars, edbCodeList)
+		indexList, tErr := data_manage.GetMysteelChemicalIndexList(baseCond, basePars, 0, 1000)
+		if tErr != nil {
+			br.Msg = "获取初始指标信息失败"
+			br.ErrMsg = "获取初始指标信息失败,Err:" + tErr.Error()
+			return
+		}
+		for _, v := range indexList {
+			initSourceMap[v.IndexCode] = v.Source
+		}
+	}
 	for _, v := range tmpList {
-		tmp := new(data_stat.EdbInfoUpdateStatItem)
+		tmp := new(data_stat.EdbInfoUpdateStatItemMore)
 		tmp.Id = v.Id
 		tmp.EdbInfoId = v.EdbInfoId
 		tmp.SourceName = v.SourceName
@@ -608,6 +633,7 @@ func (this *EdbSourceStatController) EdbUpdateStat() {
 		tmp.IsAdd = v.IsAdd
 		tmp.NeedRefresh = v.NeedRefresh
 		tmp.HasRefresh = v.HasRefresh
+		tmp.InitSourceName, _ = initSourceMap[v.EdbCode]
 		list = append(list, tmp)
 	}
 
@@ -757,8 +783,8 @@ func (this *EdbSourceStatController) EdbSourceStat() {
 }
 
 // EdbUpdateFailedList
-// @Title 查询指标更新失败详情列表
-// @Description 查询指标更新失败详情列表
+// @Title 查询指标更新失败详情汇总列表
+// @Description 查询指标更新失败详情汇总列表
 // @Success 200 {object} data_stat.GetEdbUpdateLogResp
 // @router /edb_update_stat/failed [get]
 func (this *EdbSourceStatController) EdbUpdateFailedList() {
@@ -840,3 +866,143 @@ func (this *EdbSourceStatController) EdbUpdateFailedList() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// EdbUpdateFailedDetailList
+// @Title 查询指标更新失败详情列表
+// @Description 查询指标更新失败详情列表
+// @Success 200 {object} data_stat.GetEdbUpdateLogResp
+// @router /edb_update_stat/failed/detail [get]
+func (this *EdbSourceStatController) EdbUpdateFailedDetailList() {
+	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
+	}
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+
+	startSize = paging.StartIndex(currentIndex, pageSize)
+
+	terminalCode := this.GetString("TerminalCode", "")
+	createTime := this.GetString("CreateTime", "")
+	frequency := this.GetString("Frequency", "")
+	sourceUpdateFailedReason := this.GetString("SourceUpdateFailedReason", "")
+
+	if createTime == "" {
+		br.Msg = "请选择创建时间"
+		return
+	}
+
+	if terminalCode == "" {
+		br.Msg = "请选择对应的终端信息"
+		return
+	}
+	if frequency == "" {
+		br.Msg = "请选择对应的频度"
+		return
+	}
+
+	condition := " and source = ? and terminal_code = ? and frequency=? and data_update_failed_reason=? and data_update_result = 2"
+	var pars []interface{}
+	pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL, terminalCode, frequency, sourceUpdateFailedReason)
+
+	if createTime != "" {
+		startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
+		if err != nil {
+			br.Msg = "请求时间格式错误"
+			return
+		}
+		endT := startT.AddDate(0, 0, 1)
+		condition += " AND create_time >= ? AND create_time < ?"
+		pars = append(pars, createTime, endT.Format(utils.FormatDate))
+	}
+
+	total, err := data_stat.GetEdbUpdateStatCount(condition, pars)
+	if err != nil {
+		if err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取指标列表总数失败"
+			br.ErrMsg = "获取指标列表总数失败,Err:" + err.Error()
+			return
+		} else {
+			err = nil
+		}
+	}
+	list := make([]*data_stat.EdbInfoUpdateStatItemMore, 0)
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	if total == 0 {
+		resp := data_stat.GetEdbUpdateStatResp{
+			Paging: page,
+			List:   list,
+		}
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
+	tmpList, err := data_stat.GetEdbUpdateStatByCondition(condition, pars, "", pageSize, startSize)
+	if err != nil {
+		br.Msg = "获取指标更新列表失败"
+		br.ErrMsg = "获取指标更新列表失败,Err:" + err.Error()
+		return
+	}
+
+	for _, v := range tmpList {
+		tmp := new(data_stat.EdbInfoUpdateStatItemMore)
+		tmp.Id = v.Id
+		tmp.EdbInfoId = v.EdbInfoId
+		tmp.SourceName = v.SourceName
+		tmp.Source = v.Source
+		tmp.EdbCode = v.EdbCode
+		tmp.EdbName = v.EdbName
+		tmp.EdbNameSource = v.EdbNameSource
+		tmp.Frequency = v.Frequency
+		tmp.Unit = v.Unit
+		tmp.StartDate = v.StartDate
+		tmp.SysUserId = v.SysUserId
+		tmp.SysUserRealName = v.SysUserRealName
+		tmp.LatestDate = v.LatestDate
+		tmp.LatestValue = v.LatestValue
+		tmp.TerminalCode = v.TerminalCode
+		tmp.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
+		if v.DataUpdateTime != utils.EmptyDateTimeStr {
+			tmp.DataUpdateTime = v.DataUpdateTime
+		}
+		if v.ErDataUpdateDate != utils.EmptyDateStr {
+			tmp.ErDataUpdateDate = v.ErDataUpdateDate
+		}
+		tmp.DataUpdateResult = v.DataUpdateResult
+		tmp.DataUpdateFailedReason = v.DataUpdateFailedReason
+		if v.UpdateTime != utils.EmptyDateTimeStr {
+			tmp.UpdateTime = v.UpdateTime
+		}
+		tmp.IsAdd = v.IsAdd
+		tmp.NeedRefresh = v.NeedRefresh
+		tmp.HasRefresh = v.HasRefresh
+		list = append(list, tmp)
+	}
+
+	resp := data_stat.GetEdbUpdateStatResp{
+		Paging: page,
+		List:   list,
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 2 - 0
models/data_stat/edb_info_update_log.go

@@ -37,6 +37,7 @@ type EdbInfoUpdateLog struct {
 	DataUpdateFailedReason string    `description:"数据未正常更新原因"`
 	DataUpdateTime         string    `description:"数据更新时间"`
 	IsSourceRefresh        int       `description:"是否为终端刷新到数据源的刷新操作:0否,1是"`
+	UpdateType             int       `description:"变更类型,0:数据明细变更,1:基础信息变更, 2:新增指标"`
 }
 
 type EdbInfoUpdateLogItem struct {
@@ -62,6 +63,7 @@ type EdbInfoUpdateLogItem struct {
 	TerminalCode          string  `description:"终端编码,用于配置在机器上"`
 	DataUpdateTime        string  `description:"最近一次数据发生变化的时间"`
 	ErDataUpdateDate      string  `description:"本次更新,数据发生变化的最早日期"`
+	UpdateType            int     `description:"变更类型,0:数据明细变更,1:基础信息变更, 2:新增指标"`
 }
 
 func AddEdbUpdateLog(item *EdbInfoUpdateLog) (lastId int64, err error) {

+ 6 - 1
models/data_stat/edb_info_update_stat.go

@@ -70,8 +70,13 @@ type EdbInfoUpdateStatItem struct {
 	HasRefresh             int8    `description:"今日是否已刷新,1是,0否"`
 }
 
+type EdbInfoUpdateStatItemMore struct {
+	EdbInfoUpdateStatItem
+	InitSourceName string `description:"初始数据源"`
+}
+
 type GetEdbUpdateStatResp struct {
-	List   []*EdbInfoUpdateStatItem
+	List   []*EdbInfoUpdateStatItemMore
 	Paging *paging.PagingItem
 }
 

+ 9 - 0
routers/commentsRouter.go

@@ -4156,6 +4156,15 @@ 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: "EdbUpdateFailedDetailList",
+            Router: `/edb_update_stat/failed/detail`,
+            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: "Column",

+ 2 - 1
services/data_stat/edb_info_stat.go

@@ -9,7 +9,7 @@ import (
 )
 
 // AddEdbInfoUpdateLog 添加指标编辑/刷新日志
-func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason string, sysUser *system.Admin) (err error) {
+func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason string, sysUser *system.Admin, updateType int) (err error) {
 	var edbInfo *data_manage.EdbInfo
 	if edbInfoId > 0 {
 		// 获取指标详情
@@ -45,6 +45,7 @@ func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason str
 		log.UpdateFailedReason = updateFailedReason
 		log.DataUpdateTime = edbInfo.DataUpdateTime
 		log.ErDataUpdateDate = edbInfo.ErDataUpdateDate
+		log.UpdateType = updateType
 		_, err = data_stat.AddEdbUpdateLog(log)
 		if err != nil {
 			err = fmt.Errorf("新增指标更新日志失败,Err: %s", err)