Browse Source

Merge branch 'bug/3565'

Roc 1 year ago
parent
commit
99fb339526

+ 0 - 188
controllers/data_manage/excel/custom_analysis.go

@@ -10,7 +10,6 @@ import (
 	"eta/eta_api/services"
 	"eta/eta_api/services/data/excel"
 	"eta/eta_api/utils"
-	"fmt"
 	"strconv"
 	"strings"
 	"time"
@@ -590,190 +589,3 @@ func (c *CustomAnalysisController) ExcelDataList() {
 	br.Msg = "获取成功"
 	br.Data = sheetList
 }
-
-// FixTableData ETA1.0.2 自定义分析(生成指标数据修复)
-func FixTableData() {
-	// 获取一级分类
-	classifyList, err := excelModel.GetExcelClassifyByParentId(0, utils.EXCEL_DEFAULT)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		fmt.Println("数据修复失败,Err:" + err.Error())
-		return
-	}
-	timeTableMap := make(map[int]int)
-	mixTableMap := make(map[int]int)
-	for _, v := range classifyList {
-		// 时间序列表格
-		classify := &excelModel.ExcelClassify{
-			//ExcelClassifyId:   0,
-			ExcelClassifyName: v.ExcelClassifyName,
-			ParentId:          v.ParentId,
-			Source:            utils.TIME_TABLE,
-			SysUserId:         v.SysUserId,
-			SysUserRealName:   v.SysUserRealName,
-			Level:             v.Level,
-			UniqueCode:        utils.MD5(fmt.Sprint(v.UniqueCode, "_", utils.TIME_TABLE)),
-			Sort:              v.Sort,
-			CreateTime:        time.Now(),
-			ModifyTime:        time.Now(),
-		}
-		_, err = excelModel.AddExcelClassify(classify)
-		timeTableMap[v.ExcelClassifyId] = classify.ExcelClassifyId
-
-		// 混合表格
-		classify2 := &excelModel.ExcelClassify{
-			//ExcelClassifyId:   0,
-			ExcelClassifyName: v.ExcelClassifyName,
-			ParentId:          v.ParentId,
-			Source:            utils.MIXED_TABLE,
-			SysUserId:         v.SysUserId,
-			SysUserRealName:   v.SysUserRealName,
-			Level:             v.Level,
-			UniqueCode:        utils.MD5(fmt.Sprint(v.UniqueCode, "_", utils.MIXED_TABLE)),
-			Sort:              v.Sort,
-			CreateTime:        time.Now(),
-			ModifyTime:        time.Now(),
-		}
-		_, err = excelModel.AddExcelClassify(classify2)
-		mixTableMap[v.ExcelClassifyId] = classify2.ExcelClassifyId
-	}
-
-	// 修改时间序列表
-	{
-		// 获取时间序列表
-		timeTableExcelList, err := excelModel.GetNoContentExcelInfoAll(utils.TIME_TABLE, 0)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			fmt.Println("获取时间序列表列表失败,Err:" + err.Error())
-			return
-		}
-
-		for _, v := range timeTableExcelList {
-			classifyId, ok := timeTableMap[v.ExcelClassifyId]
-			if !ok {
-				continue
-			}
-			excelModel.UpdateExcelInfoClassifyId(classifyId, v.ExcelInfoId)
-		}
-	}
-
-	// 修改混合序列表
-	{
-		// 获取时间序列表
-		mixTableExcelList, err := excelModel.GetNoContentExcelInfoAll(utils.MIXED_TABLE, 0)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			fmt.Println("获取时间序列表列表失败,Err:" + err.Error())
-			return
-		}
-
-		for _, v := range mixTableExcelList {
-			classifyId, ok := mixTableMap[v.ExcelClassifyId]
-			if !ok {
-				continue
-			}
-			excelModel.UpdateExcelInfoClassifyId(classifyId, v.ExcelInfoId)
-		}
-	}
-
-	fmt.Println("完成数据修复")
-}
-
-// FixTableDataMapping ETA1.0.2 自定义分析(修复excel与指标的关系)
-func FixTableDataMapping() {
-
-	// 修改时间序列表
-	{
-		// 获取时间序列表
-		timeTableExcelList, err := excelModel.GetAllExcelInfoBySource(utils.TIME_TABLE)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			fmt.Println("获取时间序列表列表失败,Err:" + err.Error())
-			return
-		}
-
-		for _, v := range timeTableExcelList {
-
-			var tableData request.TableDataReq
-			err = json.Unmarshal([]byte(v.Content), &tableData)
-			if err != nil {
-				fmt.Println(v.ExcelInfoId, "json转结构体失败,Err:"+err.Error())
-				continue
-			}
-			if len(tableData.EdbInfoIdList) > 0 {
-				excelEdbMappingList := make([]*excelModel.ExcelEdbMapping, 0)
-				for _, edbInfoId := range tableData.EdbInfoIdList {
-					excelEdbMappingList = append(excelEdbMappingList, &excelModel.ExcelEdbMapping{
-						//ExcelEdbMappingId: 0,
-						ExcelInfoId: v.ExcelInfoId,
-						Source:      v.Source,
-						EdbInfoId:   edbInfoId,
-						CreateTime:  time.Now(),
-						ModifyTime:  time.Now(),
-					})
-				}
-				err = excelModel.AddExcelEdbMappingMulti(excelEdbMappingList)
-				if err != nil {
-					fmt.Println(v.ExcelInfoId, "自定义表格关系保存失败,Err:"+err.Error())
-					continue
-				}
-			}
-
-		}
-	}
-
-	//// 修改混合序列表
-	//{
-	//	// 获取时间序列表
-	//	mixTableExcelList, err := excelModel.GetAllExcelInfoBySource(utils.MIXED_TABLE)
-	//	if err != nil && err.Error() != utils.ErrNoRow() {
-	//		fmt.Println("获取时间序列表列表失败,Err:" + err.Error())
-	//		return
-	//	}
-	//
-	//	for _, excelInfo := range mixTableExcelList {
-	//		var result request.MixedTableReq
-	//		err = json.Unmarshal([]byte(excelInfo.Content), &result)
-	//		if err != nil {
-	//			fmt.Println(excelInfo.ExcelInfoId, "修改混合序列表,json转结构体失败,Err:"+err.Error())
-	//			continue
-	//		}
-	//		newResult, tmpErr := excel.GetMixedTableCellData(result.Data)
-	//		if tmpErr != nil {
-	//			fmt.Println(excelInfo.ExcelInfoId, "获取最新的数据失败,Err:"+err.Error())
-	//			continue
-	//		}
-	//		edbInfoIdList := make([]int, 0)
-	//		edbInfoIdMap := make(map[int]int)
-	//		for _, tmpV := range newResult {
-	//			for _, v := range tmpV {
-	//				if v.EdbInfoId > 0 {
-	//					if _, ok := edbInfoIdMap[v.EdbInfoId]; !ok {
-	//						edbInfoIdMap[v.EdbInfoId] = v.EdbInfoId
-	//						edbInfoIdList = append(edbInfoIdList, v.EdbInfoId)
-	//					}
-	//				}
-	//			}
-	//		}
-	//
-	//		if len(edbInfoIdList) > 0 {
-	//			excelEdbMappingList := make([]*excelModel.ExcelEdbMapping, 0)
-	//			for _, edbInfoId := range edbInfoIdList {
-	//				excelEdbMappingList = append(excelEdbMappingList, &excelModel.ExcelEdbMapping{
-	//					//ExcelEdbMappingId: 0,
-	//					ExcelInfoId: excelInfo.ExcelInfoId,
-	//					Source:      excelInfo.Source,
-	//					EdbInfoId:   edbInfoId,
-	//					CreateTime:  time.Now(),
-	//					ModifyTime:  time.Now(),
-	//				})
-	//			}
-	//			err = excelModel.AddExcelEdbMappingMulti(excelEdbMappingList)
-	//			if err != nil {
-	//				fmt.Println(excelInfo.ExcelInfoId, "混合表格关系保存失败,Err:"+err.Error())
-	//				continue
-	//			}
-	//		}
-	//
-	//	}
-	//
-	//}
-
-	fmt.Println("完成数据修复")
-}

+ 18 - 1
models/data_manage/excel/excel_edb_mapping.go

@@ -1,6 +1,7 @@
 package excel
 
 import (
+	"eta/eta_api/utils"
 	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
@@ -41,7 +42,9 @@ func GetExcelEdbMappingByEdbInfoId(edbInfoId int) (item *ExcelEdbMapping, err er
 // GetExcelEdbMappingByExcelInfoId 根据excel的id获取配置关系
 func GetExcelEdbMappingByExcelInfoId(excelInfoId int) (items []*ExcelEdbMapping, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT *  FROM excel_edb_mapping WHERE 1=1 AND excel_info_id = ? `
+	sql := ` SELECT *  FROM excel_edb_mapping AS a 
+           join edb_info as b on a.edb_info_id = b.edb_info_id
+           WHERE 1=1 AND a.excel_info_id = ? `
 	_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
 
 	return
@@ -93,3 +96,17 @@ func GetAllExcelEdbMappingByExcelInfoId(excelInfoId int) (items []*ExcelEdbMappi
 	_, err = o.Raw(sql, excelInfoId).QueryRows(&items)
 	return
 }
+
+// DeleteCustomAnalysisExcelEdbMappingByEdbInfoId
+// @Description: 根据指标id删除与自定义分析表格的关系
+// @author: Roc
+// @datetime2023-11-02 13:20:02
+// @param excelInfoId int
+// @return err error
+func DeleteCustomAnalysisExcelEdbMappingByEdbInfoId(excelInfoId int) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `DELETE FROM excel_edb_mapping WHERE source = ? AND edb_info_id = ? LIMIT 1`
+	_, err = o.Raw(sql, utils.CUSTOM_ANALYSIS_TABLE, excelInfoId).Exec()
+
+	return
+}

+ 1 - 1
models/system/sys_menu.go

@@ -114,7 +114,7 @@ func GetMenuByParentIdRoleIds(roleIds string, parentId int) (items []*ChildMenu,
 			INNER JOIN sys_role AS c ON b.role_id=c.role_id
 			WHERE c.role_id in (` + roleIds + `)
 			AND a.parent_id=? 
-            ORDER BY a.sort ASC`
+            ORDER BY a.sort ASC, create_time DESC, menu_id DESC`
 	_, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
 	return
 }

+ 9 - 0
services/data/edb_classify.go

@@ -6,6 +6,7 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/models/system"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/utils"
 	"fmt"
 	"strconv"
@@ -589,6 +590,14 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 			return
 		}
 
+		// 如果删除的指标是自定义分析的来源,那么还需要删除指标与excel的关系
+		if edbInfo.Source == utils.DATA_SOURCE_CALCULATE_ZDYFX {
+			tmpErr = excel.DeleteCustomAnalysisExcelEdbMappingByEdbInfoId(edbInfo.EdbInfoId)
+			if tmpErr != nil {
+				alarm_msg.SendAlarmMsg(fmt.Sprintf("删除指标时,需要删除与自定义分析的关系失败,指标ID:%d,Err:%s", edbInfo.EdbInfoId, tmpErr.Error()), 3)
+			}
+		}
+
 		// 返回下一个表格的信息
 		{
 			var condition string