|
@@ -1063,7 +1063,7 @@ type AddEdbInfoParams struct {
|
|
|
}
|
|
|
|
|
|
// EdbInfoAdd 添加指标到指标库
|
|
|
-func EdbInfoAdd(req *AddEdbInfoParams, serverUrl string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
|
|
|
+func EdbInfoAdd(req *AddEdbInfoParams, serverUrl string, sysUserId int, sysUserRealName string, terminalCode string) (edbInfo *EdbInfo, err error) {
|
|
|
source := req.Source
|
|
|
//判断指标名称是否存在
|
|
|
var condition string
|
|
@@ -1141,6 +1141,7 @@ func EdbInfoAdd(req *AddEdbInfoParams, serverUrl string, sysUserId int, sysUserR
|
|
|
}
|
|
|
|
|
|
var sourceIndexName string
|
|
|
+
|
|
|
// 钢联化工需要校验下信息是否完整
|
|
|
if source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
|
|
|
indexObj := new(BaseFromMysteelChemicalIndex)
|
|
@@ -1153,7 +1154,19 @@ func EdbInfoAdd(req *AddEdbInfoParams, serverUrl string, sysUserId int, sysUserR
|
|
|
err = errors.New("指标信息不全")
|
|
|
return
|
|
|
}
|
|
|
- sourceIndexName = tmpItem.IndexName
|
|
|
+ }
|
|
|
+ if terminalCode == "" {
|
|
|
+ var tE error
|
|
|
+ terminalCode, sourceIndexName, tE = GetTerminalFromBaseIndex(source, req.EdbCode)
|
|
|
+ if tE != nil {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("获取数据源终端信息失败, Err: %s", tE))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取该层级下最大的排序数
|
|
|
+ maxSort, err := GetEdbAndClassifyMaxSort(req.ClassifyId, 0)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("查询排序信息失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
edbInfo.EdbCode = req.EdbCode
|
|
@@ -1168,6 +1181,8 @@ func EdbInfoAdd(req *AddEdbInfoParams, serverUrl string, sysUserId int, sysUserR
|
|
|
edbInfo.CreateTime = time.Now()
|
|
|
edbInfo.ModifyTime = time.Now()
|
|
|
edbInfo.ServerUrl = serverUrl
|
|
|
+ edbInfo.TerminalCode = terminalCode
|
|
|
+ edbInfo.Sort = maxSort + 1
|
|
|
timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
edbInfo.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + req.EdbCode + timestamp)
|
|
|
itemVal, err := GetEdbInfoMaxAndMinInfo(source, req.EdbCode)
|
|
@@ -1206,3 +1221,58 @@ type ResetEdbClassifyReq struct {
|
|
|
ClassifySecond string `description:"二级分类名称"`
|
|
|
ClassifyThird string `description:"三级分类名称"`
|
|
|
}
|
|
|
+
|
|
|
+// GetEdbInfoMaxSortByClassifyId 获取分类下指标的最大的排序数
|
|
|
+func GetEdbInfoMaxSortByClassifyId(classifyId int) (sort int, err error) {
|
|
|
+ o := orm.NewOrmUsingDB("data")
|
|
|
+ sql := `SELECT Max(sort) AS sort FROM edb_info WHERE classify_id=? `
|
|
|
+ err = o.Raw(sql, classifyId).QueryRow(&sort)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetEdbAndClassifyMaxSort(parentId int, classifyType uint8) (maxSort int, err error) {
|
|
|
+ //获取该层级下最大的排序数
|
|
|
+ classifyMaxSort, err := GetEdbClassifyMaxSort(parentId, classifyType)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ maxSort = classifyMaxSort
|
|
|
+ edbMaxSort, err := GetEdbInfoMaxSortByClassifyId(parentId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if maxSort < edbMaxSort {
|
|
|
+ maxSort = edbMaxSort
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetTerminalFromBaseIndex(source int, edbCode string) (terminalCode string, sourceIndexName string, err error) {
|
|
|
+ tbName := GetBaseIndexTableName(source)
|
|
|
+ if tbName != "" {
|
|
|
+ var item BaseIndexTerminalCode
|
|
|
+ item, err = GetBaseIndexTerminalCode(edbCode, tbName)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("查询数据源指标信息失败, Err: %s", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ terminalCode = item.TerminalCode
|
|
|
+ sourceIndexName = item.IndexName
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetBaseIndexTableName(source int) (tableName string) {
|
|
|
+ switch source {
|
|
|
+ case utils.DATA_SOURCE_YS:
|
|
|
+ tableName = "base_from_smm_index"
|
|
|
+ case utils.DATA_SOURCE_MYSTEEL_CHEMICAL:
|
|
|
+ tableName = "base_from_mysteel_chemical_index"
|
|
|
+ case utils.DATA_SOURCE_SCI:
|
|
|
+ tableName = "base_from_sci_index"
|
|
|
+ case utils.DATA_SOURCE_BAIINFO:
|
|
|
+ tableName = "base_from_baiinfo_index"
|
|
|
+ default:
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|