소스 검색

获取数据源指标终端文件夹信息

xyxie 4 달 전
부모
커밋
79496790bb

+ 42 - 0
controllers/data_stat/edb_terminal.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/services/data_stat"
 	"eta/eta_api/utils"
+	"fmt"
 )
 
 // EdbTerminalController 数据源终端管理
@@ -198,3 +199,44 @@ func (this *EdbTerminalController) TerminalCodeList() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// TerminalIndexDirInfo
+// @Title 获取指标终端文件夹信息
+// @Description 获取指标终端文件夹信息
+// @Success 200 {object} data_manage.EdbTerminalDirInfo
+// @router /terminal/index_dir [get]
+func (this *EdbTerminalController) TerminalIndexDirInfo() {
+	br := new(models.BaseResponse).Init()
+	br.IsSendEmail = false
+	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
+	}
+	source, _ := this.GetInt("Source")
+	indexId, _ := this.GetInt("IndexId")
+	if source <= 0 || indexId <= 0 {
+		br.Msg = "请选择数据源和指标ID"
+		return
+	}
+	info := new(data_manage.EdbTerminalDirInfo)
+	var err error
+	info, err = data_stat.GetEdbTerminalDirInfo(indexId, source)
+	if err != nil {
+		utils.FileLog.Info(fmt.Sprintf("获取终端文件夹信息失败indexId:%d,source:%d,Err:%s", indexId, source, err.Error()))
+		//br.Msg = "获取终端文件夹信息失败"
+		//br.ErrMsg = "获取终端文件夹信息失败 ErrMsg:" + err.Error()
+		//return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = info
+}

+ 2 - 0
models/data_manage/base_from_sci.go

@@ -65,6 +65,8 @@ type BaseFromSciIndex struct {
 	Sort               int
 	CreateTime         time.Time
 	ModifyTime         time.Time
+	FilePath           string
+	TerminalCode       string `description:"终端编码"`
 }
 
 func AddBaseFromSciIndex(item *BaseFromSciIndex) (lastId int64, err error) {

+ 8 - 6
models/data_manage/base_from_smm.go

@@ -77,6 +77,8 @@ type BaseFromSmmIndex struct {
 	ReleaseTime        string
 	StartDate          string
 	EndDate            string
+	RenameFileName     string
+	TerminalCode       string `description:"终端编码"`
 }
 
 func AddBaseFromSmmIndex(item *BaseFromSmmIndex) (lastId int64, err error) {
@@ -440,10 +442,10 @@ type SmmIndexListReq struct {
 
 // SmmIndexExistCheckReq
 type SmmIndexExistCheckReq struct {
-	Types      []string `description:"分类"`
-	Frequency  string   `description:"频度"`
-	DataState  string   `description:"数据状态"`
-	EdbCode    string   `description:"指标代码"`
-	SelectAll  bool     `description:"是否全选"`
-	Keyword    string   `description:"关键字"`
+	Types     []string `description:"分类"`
+	Frequency string   `description:"频度"`
+	DataState string   `description:"数据状态"`
+	EdbCode   string   `description:"指标代码"`
+	SelectAll bool     `description:"是否全选"`
+	Keyword   string   `description:"关键字"`
 }

+ 8 - 0
models/data_manage/edb_terminal.go

@@ -148,3 +148,11 @@ func GetEdbCountGroupByTerminal(source int) (list []TerminalCodeCountGroup, err
 	_, err = o.Raw(sql, source).QueryRows(&list)
 	return
 }
+
+// EdbTerminalDirInfo 指标终端文件夹信息
+type EdbTerminalDirInfo struct {
+	Name         string `description:"终端名称"`
+	TerminalCode string `description:"终端编码,用于配置在机器上"`
+	DirPath      string `description:"终端存放的文件夹路径"`
+	FilePath     string `description:"文件夹路径"`
+}

+ 1 - 0
models/data_manage/mysteel_chemical_index.go

@@ -30,6 +30,7 @@ type BaseFromMysteelChemicalIndex struct {
 	ModifyTime                        time.Time `description:"修改时间"`
 	CreateTime                        time.Time `description:"创建时间"`
 	Sort                              int       `description:"排序字段"`
+	FilePath                          string    `description:"文件"`
 	MergeFilePath                     string    `description:"合并文件"`
 	TerminalCode                      string    `description:"终端编码"`
 	IsStop                            int       `description:"是否停更:1:停更,0:未停更"`

+ 9 - 0
routers/commentsRouter.go

@@ -6478,6 +6478,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbTerminalController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbTerminalController"],
+        beego.ControllerComments{
+            Method: "TerminalIndexDirInfo",
+            Router: `/terminal/index_dir`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbTerminalController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_stat:EdbTerminalController"],
         beego.ControllerComments{
             Method: "List",

+ 79 - 0
services/data_stat/edb_terminal.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/utils"
 	"fmt"
+	"strings"
 	"time"
 )
 
@@ -94,3 +95,81 @@ func createTerminalCode(source int, sourceName string) (terminalCode string) {
 	terminalCode = utils.MD5(fmt.Sprintf("%d_%s_%s_%d", source, sourceName, time.Now(), randInt))
 	return
 }
+
+// GetEdbTerminalDirInfo 获取指标的终端信息
+func GetEdbTerminalDirInfo(indexId, source int) (info *data_manage.EdbTerminalDirInfo, err error) {
+	// 查询指标信息
+	var terminalCode, filePath, name, dirPath string
+	switch source {
+	case utils.DATA_SOURCE_MYSTEEL_CHEMICAL:
+		// 查询钢联指标信息
+		indexInfo, e := data_manage.GetBaseFromMysteelChemicalIndexByIndexId(indexId)
+		if e != nil {
+			err = errors.New("获取指标信息失败, Err:" + e.Error())
+			return
+		}
+		terminalCode = indexInfo.TerminalCode
+		filePath = indexInfo.MergeFilePath
+		if filePath == "" && indexInfo.FilePath != "" {
+			filePath = indexInfo.FilePath
+		}
+		break
+	case utils.DATA_SOURCE_YS:
+		// 查询有色指标信息
+		indexInfo, e := data_manage.GetBaseFromSmmIndexByIndexId(indexId)
+		if e != nil {
+			err = errors.New("获取指标信息失败, Err:" + e.Error())
+			return
+		}
+		terminalCode = indexInfo.TerminalCode
+		filePath = indexInfo.RenameFileName
+		break
+	case utils.DATA_SOURCE_SCI:
+		// 查询SCI指标信息
+		indexInfo, e := data_manage.GetBaseFromSciIndexByIndexId(indexId)
+		if e != nil {
+			err = errors.New("获取指标信息失败, Err:" + e.Error())
+			return
+		}
+		terminalCode = indexInfo.TerminalCode
+		filePath = indexInfo.FilePath
+		break
+	default:
+		err = errors.New("不支持其他来源")
+		return
+	}
+	// 查询终端信息
+	if terminalCode == "" {
+		err = errors.New("获取终端信息失败, Err:终端编码为空")
+		return
+	}
+	terminalInfo, err := data_manage.GetEdbTerminalByCode(terminalCode)
+	if err != nil {
+		err = errors.New("获取终端信息失败, Err:" + err.Error())
+		return
+	}
+	if terminalInfo.Source != source {
+		err = errors.New("获取终端信息失败, Err:指标来源与终端来源不一致")
+		return
+	}
+	name = terminalInfo.Name
+	// 截取最后的文件名称
+	if filePath != "" {
+		// 使用 strings.LastIndex 和切片操作获取文件路径(不包括文件名)
+		lastIndex := strings.LastIndex(filePath, `\`)
+		if lastIndex != -1 {
+			dirPath = filePath[:lastIndex]
+			//fmt.Println("文件路径:", dirPath)
+			fileName := filePath[lastIndex+1:]
+			//fmt.Println("文件名:", fileName)
+			filePath = fileName
+		}
+	}
+	info = &data_manage.EdbTerminalDirInfo{
+		TerminalCode: terminalCode,
+		FilePath:     filePath,
+		Name:         name,
+		DirPath:      dirPath,
+	}
+	return
+}