فهرست منبع

Merge remote-tracking branch 'origin/eta/1.3.1' into debug

Roc 1 سال پیش
والد
کامیت
ce0bf5e79c

+ 26 - 18
controllers/data_manage/cross_variety/chart_info.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_api/controllers"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
+	cross_varietyModels "eta/eta_api/models/data_manage/cross_variety"
 	"eta/eta_api/models/data_manage/cross_variety/request"
 	"eta/eta_api/models/data_manage/cross_variety/response"
 	"eta/eta_api/models/system"
@@ -991,24 +992,24 @@ func (c *ChartInfoController) EnInfoEdit() {
 	}
 
 	// 校验名称是否有重复
-	{
-		var condition string
-		var pars []interface{}
-		condition += " AND chart_info_id <> ?  AND chart_name_en = ? AND source = ?"
-		pars = append(pars, req.ChartInfoId, req.ChartNameEn, utils.CHART_SOURCE_CROSS_HEDGING)
-		existItem, err := data_manage.GetChartInfoByCondition(condition, pars)
-		if err != nil {
-			if err.Error() != utils.ErrNoRow() {
-				br.Msg = "判断英文图表名称是否存在失败"
-				br.ErrMsg = "判断英文图表名称是否存在失败,Err:" + err.Error()
-				return
-			}
-		}
-		if err == nil && existItem.ChartInfoId > 0 {
-			br.Msg = existItem.ChartName + ":" + req.ChartNameEn + "图表名称已存在"
-			return
-		}
-	}
+	//{
+	//	var condition string
+	//	var pars []interface{}
+	//	condition += " AND chart_info_id <> ?  AND chart_name_en = ? AND source = ?"
+	//	pars = append(pars, req.ChartInfoId, req.ChartNameEn, utils.CHART_SOURCE_CROSS_HEDGING)
+	//	existItem, err := data_manage.GetChartInfoByCondition(condition, pars)
+	//	if err != nil {
+	//		if err.Error() != utils.ErrNoRow() {
+	//			br.Msg = "判断英文图表名称是否存在失败"
+	//			br.ErrMsg = "判断英文图表名称是否存在失败,Err:" + err.Error()
+	//			return
+	//		}
+	//	}
+	//	if err == nil && existItem.ChartInfoId > 0 {
+	//		br.Msg = existItem.ChartName + ":" + req.ChartNameEn + "图表名称已存在"
+	//		return
+	//	}
+	//}
 
 	chartItem.ChartNameEn = req.ChartNameEn
 	chartItem.ModifyTime = time.Now().Local()
@@ -1018,6 +1019,13 @@ func (c *ChartInfoController) EnInfoEdit() {
 		return
 	}
 
+	err = cross_varietyModels.EditChartEn(chartItem, req)
+	if err != nil {
+		br.Msg = "修改失败"
+		br.ErrMsg = "更新图表英文信息失败, Err: " + err.Error()
+		return
+	}
+
 	//添加es数据
 	go data.EsAddOrEditChartInfo(chartItem.ChartInfoId)
 	//修改my eta es数据

+ 15 - 11
controllers/data_manage/cross_variety/classify.go

@@ -83,6 +83,10 @@ func (c *ClassifyController) List() {
 	// 移除没有图表的分类
 	allNodes := make([]*data_manage.ChartClassifyItems, 0)
 	for _, v := range rootList {
+		if v.SysUserId == c.SysUser.AdminId || c.SysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
+			v.Button.OpButton = true
+		}
+
 		rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
 		if existItems, ok := chartInfoMap[v.ChartClassifyId]; ok {
 			v.Children = existItems
@@ -140,17 +144,17 @@ func (c *ClassifyController) EditChartClassify() {
 
 	source := utils.CHART_SOURCE_CROSS_HEDGING
 	if item.ChartClassifyName != req.ChartClassifyName {
-		count, err := data_manage.GetChartClassifyCount(req.ChartClassifyName, item.ParentId, source)
-		if err != nil {
-			br.Msg = "判断名称是否已存在失败"
-			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
-			return
-		}
-		if count > 0 {
-			br.Msg = "分类名称已存在,请重新输入"
-			br.IsSendEmail = false
-			return
-		}
+		//count, err := data_manage.GetChartClassifyCount(req.ChartClassifyName, item.ParentId, source)
+		//if err != nil {
+		//	br.Msg = "判断名称是否已存在失败"
+		//	br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
+		//	return
+		//}
+		//if count > 0 {
+		//	br.Msg = "分类名称已存在,请重新输入"
+		//	br.IsSendEmail = false
+		//	return
+		//}
 
 		err = data_manage.EditChartClassify(req.ChartClassifyId, source, req.ChartClassifyName)
 		if err != nil {

+ 52 - 0
models/data_manage/cross_variety/chart_info_cross_variety.go

@@ -2,6 +2,7 @@ package cross_variety
 
 import (
 	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/data_manage/cross_variety/request"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"strings"
@@ -193,3 +194,54 @@ func EditChart(chartInfo *data_manage.ChartInfo, chartVarietyMappingList []*Char
 
 	return
 }
+
+// EditChartEn
+// @Description: 修改英文名称
+// @author: Roc
+// @datetime 2023-11-28 21:17:27
+// @param chartInfo *data_manage.ChartInfo
+// @param req request.EditChartEnInfoReq
+// @return err error
+func EditChartEn(chartInfo *data_manage.ChartInfo, req request.EditChartEnInfoReq) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	// 更新图表信息
+	chartInfo.ChartNameEn = req.ChartNameEn
+	chartInfo.ModifyTime = time.Now().Local()
+	_, err = to.Update(chartInfo, "ChartNameEn", "ModifyTime")
+	if err != nil {
+		fmt.Println("UPDATE  chart_info Err:", err.Error())
+		return err
+	}
+
+	// 更新标签英文名
+	for _, v := range req.TagList {
+		sql := `UPDATE chart_tag SET chart_tag_name_en = ?,modify_time= NOW() WHERE chart_tag_id = ? `
+		_, err = o.Raw(sql, v.TagNameEn, v.ChartTagId).Exec()
+		if err != nil {
+			return
+		}
+	}
+
+	// 更新品种英文名
+	for _, v := range req.VarietyList {
+		sql := `UPDATE chart_variety SET chart_variety_name_en = ?,modify_time= NOW() WHERE chart_variety_id = ? `
+		_, err = o.Raw(sql, v.VarietyNameEn, v.ChartVarietyId).Exec()
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}

+ 3 - 1
models/data_manage/cross_variety/chart_tag.go

@@ -11,6 +11,7 @@ import (
 type ChartTag struct {
 	ChartTagId      int       `orm:"column(chart_tag_id);pk"`
 	ChartTagName    string    `description:"标签名称"`
+	ChartTagNameEn  string    `description:"标签名称(英文)"`
 	SysUserId       int       `description:"创建人id"`
 	SysUserRealName string    `description:"创建人姓名"`
 	ModifyTime      time.Time `description:"修改时间"`
@@ -119,11 +120,12 @@ func GetTagListByIdList(idList []int) (items []*ChartTag, err error) {
 	return
 }
 
-// ChartTag
+// ChartTagItem
 // @Description: chart_tag 图表标签表
 type ChartTagItem struct {
 	ChartTagId      int       `orm:"column(chart_tag_id);pk"`
 	ChartTagName    string    `description:"标签名称"`
+	ChartTagNameEn  string    `description:"标签名称(英文)"`
 	SysUserId       int       `description:"创建人id"`
 	VarietyTotal    int       `description:"配置关联品种的数量"`
 	SysUserRealName string    `description:"创建人姓名"`

+ 16 - 0
models/data_manage/cross_variety/chart_tag_variety.go

@@ -221,3 +221,19 @@ func SaveVarietyEdb(chartTagId int, list []request.VarietyEdbReq, sysUserId int,
 	}
 	return
 }
+
+// GetCountByEdbInfoId
+// @Description: 根据指标id获取其关联的品种数量
+// @author: Roc
+// @datetime 2023-11-28 19:43:42
+// @param edbInfoId int
+// @return total int
+// @return err error
+func GetCountByEdbInfoId(edbInfoId int) (total int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT count(1) total FROM chart_tag_variety a 
+         join edb_info b on a.edb_info_id=b.edb_info_id WHERE edb_info_id = ?`
+	err = o.Raw(sql, edbInfoId).QueryRow(&total)
+
+	return
+}

+ 7 - 6
models/data_manage/cross_variety/chart_variety.go

@@ -9,12 +9,13 @@ import (
 // ChartVariety
 // @Description: chart_variety 图表品种表
 type ChartVariety struct {
-	ChartVarietyId   int       `orm:"column(chart_variety_id);pk"`
-	ChartVarietyName string    `description:"品种名称"`
-	SysUserId        int       `description:"创建人id"`
-	SysUserRealName  string    `description:"创建人姓名"`
-	ModifyTime       time.Time `description:"修改时间"`
-	CreateTime       time.Time `description:"创建时间"`
+	ChartVarietyId     int       `orm:"column(chart_variety_id);pk"`
+	ChartVarietyName   string    `description:"品种名称"`
+	ChartVarietyNameEn string    `description:"品种名称(英文)"`
+	SysUserId          int       `description:"创建人id"`
+	SysUserRealName    string    `description:"创建人姓名"`
+	ModifyTime         time.Time `description:"修改时间"`
+	CreateTime         time.Time `description:"创建时间"`
 }
 
 // GetVarietyById

+ 18 - 2
models/data_manage/cross_variety/request/chart.go

@@ -59,6 +59,22 @@ type CopyAddChartInfoReq struct {
 // EditChartEnInfoReq
 // @Description: 编辑图表英文信息
 type EditChartEnInfoReq struct {
-	ChartInfoId int    `description:"图表ID"`
-	ChartNameEn string `description:"英文图表名称"`
+	ChartInfoId int                `description:"图表ID"`
+	ChartNameEn string             `description:"英文图表名称"`
+	TagList     []TagNameEnReq     `description:"标签名称"`
+	VarietyList []VarietyNameEnReq `description:"标签名称"`
+}
+
+// TagNameEnReq
+// @Description: 标签英文名称修改
+type TagNameEnReq struct {
+	ChartTagId int    `json:"ChartTagId"`
+	TagNameEn  string `json:"TagNameEn"`
+}
+
+// VarietyNameEnReq
+// @Description: 品种英文名称修改
+type VarietyNameEnReq struct {
+	ChartVarietyId int    `json:"ChartVarietyId"`
+	VarietyNameEn  string `json:"VarietyNameEn"`
 }

+ 64 - 56
services/data/cross_variety/chart.go

@@ -16,24 +16,6 @@ import (
 	"time"
 )
 
-type LineEquationDataResp struct {
-	MaxData             float64
-	MinData             float64
-	LatestDate          string `description:"真实数据的最后日期"`
-	EdbInfoCategoryType int
-	ChartColor          string
-	ChartStyle          string
-	PredictChartColor   string
-	ChartType           int
-	ChartWidth          int
-	EdbName             string
-	EdbNameEn           string
-	Unit                string
-	UnitEn              string
-	IsAxis              int
-	DataList            []data_manage.EdbDataList
-}
-
 // ChartInfoResp 截面散点图数据
 type ChartInfoResp struct {
 	XName       string                         `description:"x轴名称"`
@@ -360,7 +342,7 @@ func GetChartData(chartInfoId int, config request.ChartConfigReq) (edbList []*da
 
 		dataList = append(dataList, SectionScatterSeriesItemResp{
 			Name:                variety.ChartVarietyName,
-			NameEn:              "",
+			NameEn:              variety.ChartVarietyNameEn,
 			Color:               "",
 			CoordinatePointData: coordinatePointList,
 		})
@@ -368,11 +350,11 @@ func GetChartData(chartInfoId int, config request.ChartConfigReq) (edbList []*da
 
 	dataResp = ChartInfoResp{
 		XName:       xTagInfo.ChartTagName,
-		XNameEn:     "",
+		XNameEn:     xTagInfo.ChartTagNameEn,
 		XUnitName:   "%",
 		XUnitNameEn: "%",
 		YName:       yTagInfo.ChartTagName,
-		YNameEn:     "",
+		YNameEn:     yTagInfo.ChartTagNameEn,
 		YUnitName:   "%",
 		YUnitNameEn: "%",
 		XMinValue:   fmt.Sprint(xMinVal),
@@ -390,6 +372,32 @@ func GetChartData(chartInfoId int, config request.ChartConfigReq) (edbList []*da
 	return
 }
 
+// CheckIsEnChart
+// @Description: 检测是否展示英文名称
+// @author: Roc
+// @datetime 2023-11-28 20:54:41
+// @param chartNameEn string
+// @param dataResp ChartInfoResp
+// @return bool
+func CheckIsEnChart(chartNameEn string, dataResp ChartInfoResp) bool {
+	if chartNameEn == "" {
+		return false
+	}
+
+	if dataResp.XNameEn == `` {
+		return false
+	}
+	if dataResp.YNameEn == `` {
+		return false
+	}
+	for _, v := range dataResp.DataList {
+		if v.NameEn == `` {
+			return false
+		}
+	}
+	return true
+}
+
 // GetXYEdbIdList
 // @Description: 根据标签id和品种获取指标列表信息
 // @author: Roc
@@ -548,23 +556,23 @@ func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *da
 
 	var chartInfoId int
 	// 判断图表是否存在
-	var condition string
-	var pars []interface{}
-	condition += " AND chart_name=? AND source = ? "
-	pars = append(pars, req.ChartName, source)
-	count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
-	if err != nil {
-		errMsg = "判断图表名称是否存在失败"
-		err = errors.New("判断图表名称是否存在失败,Err:" + err.Error())
-		return
-	}
-
-	if count > 0 {
-		errMsg = "图表已存在,请重新填写"
-		err = errors.New(errMsg)
-		isSendEmail = false
-		return
-	}
+	//var condition string
+	//var pars []interface{}
+	//condition += " AND chart_name=? AND source = ? "
+	//pars = append(pars, req.ChartName, source)
+	//count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+	//if err != nil {
+	//	errMsg = "判断图表名称是否存在失败"
+	//	err = errors.New("判断图表名称是否存在失败,Err:" + err.Error())
+	//	return
+	//}
+
+	//if count > 0 {
+	//	errMsg = "图表已存在,请重新填写"
+	//	err = errors.New(errMsg)
+	//	isSendEmail = false
+	//	return
+	//}
 
 	chartInfo = new(data_manage.ChartInfo)
 	chartInfo.ChartName = req.ChartName
@@ -731,24 +739,24 @@ func EditChartInfo(req request.EditChartReq, sysUser *system.Admin) (chartItem *
 	}
 
 	//判断图表是否存在
-	var condition string
-	var pars []interface{}
-	condition += " AND chart_info_id <> ? "
-	pars = append(pars, req.ChartInfoId)
-	condition += " AND chart_name=? AND source = ? "
-	pars = append(pars, req.ChartName, chartItem.Source)
-	count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
-	if err != nil {
-		errMsg = "判断图表名称是否存在失败"
-		err = errors.New("判断图表名称是否存在失败,Err:" + err.Error())
-		return
-	}
-	if count > 0 {
-		errMsg = "图表已存在,请重新填写"
-		err = errors.New(errMsg)
-		isSendEmail = false
-		return
-	}
+	//var condition string
+	//var pars []interface{}
+	//condition += " AND chart_info_id <> ? "
+	//pars = append(pars, req.ChartInfoId)
+	//condition += " AND chart_name=? AND source = ? "
+	//pars = append(pars, req.ChartName, chartItem.Source)
+	//count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
+	//if err != nil {
+	//	errMsg = "判断图表名称是否存在失败"
+	//	err = errors.New("判断图表名称是否存在失败,Err:" + err.Error())
+	//	return
+	//}
+	//if count > 0 {
+	//	errMsg = "图表已存在,请重新填写"
+	//	err = errors.New(errMsg)
+	//	isSendEmail = false
+	//	return
+	//}
 
 	chartItem.ChartName = req.ChartName
 	chartItem.ExtraConfig = string(extraConfigByte)

+ 80 - 1
services/data/edb_classify.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/data_manage/cross_variety"
 	"eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/alarm_msg"
@@ -430,6 +431,23 @@ func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus
 
 	//删除指标
 	if edbInfoId > 0 {
+		edbInfo, tmpErr := data_manage.GetEdbInfoById(edbInfoId)
+		if tmpErr != nil {
+			if tmpErr.Error() == utils.ErrNoRow() {
+				errMsg = "指标已删除,请刷新页面"
+				err = errors.New("指标不存在,Err:" + tmpErr.Error())
+				return
+			} else {
+				errMsg = "删除失败"
+				err = errors.New("删除失败,获取指标信息失败,Err:" + tmpErr.Error())
+				return
+			}
+		}
+		if edbInfo == nil {
+			errMsg = "指标已删除,请刷新页面"
+			return
+		}
+
 		//判断指标是否用于作图,如果用于作图,则不可删除
 		chartCount, tmpErr := data_manage.GetChartEdbMappingCount(edbInfoId)
 		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
@@ -440,6 +458,7 @@ func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus
 		if chartCount > 0 {
 			deleteStatus = 3
 			tipsMsg = "当前指标已用作画图,不可删除"
+			return
 		}
 		//判断指标是否用于计算
 		{
@@ -452,6 +471,52 @@ func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus
 			if calculateCount > 0 {
 				deleteStatus = 4
 				tipsMsg = "当前指标已用作,指标运算,不可删除"
+				return
+			}
+		}
+
+		//如果是普通指标,那么还需要判断是否被预测指标作为源指标
+		if edbInfo.EdbInfoType == 0 {
+			predictEdbInfoCount, tmpErr := data_manage.GetPredictEdbConfCount(edbInfoId)
+			if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+				errMsg = "删除失败"
+				err = errors.New("判断指标是否被用于预测指标失败,Err:" + tmpErr.Error())
+				return
+			}
+			if predictEdbInfoCount > 0 {
+				deleteStatus = 3
+				tipsMsg = "当前指标已用作预测指标,不可删除"
+				return
+			}
+		}
+
+		// 判断指标是否用作表格引用
+		{
+			calculateCount, tmpErr := excel.GetNoCustomAnalysisExcelEdbMappingCount(edbInfoId)
+			if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+				errMsg = "删除失败"
+				err = errors.New("判断指标是否用作表格引用,GetNoCustomAnalysisExcelEdbMappingCount Err:" + tmpErr.Error())
+				return
+			}
+			if calculateCount > 0 {
+				deleteStatus = 3
+				tipsMsg = "当前指标已添加到表格,不可删除"
+				return
+			}
+		}
+
+		// 判断指标是否用作跨品种图表使用
+		{
+			calculateCount, tmpErr := cross_variety.GetCountByEdbInfoId(edbInfoId)
+			if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+				errMsg = "删除失败"
+				err = errors.New("判断指标是否用作跨品种图表使用,GetCountByEdbInfoId Err:" + tmpErr.Error())
+				return
+			}
+			if calculateCount > 0 {
+				deleteStatus = 3
+				tipsMsg = "当前指标已添加到跨品种分析,不可删除"
+				return
 			}
 		}
 	}
@@ -574,7 +639,7 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 			calculateCount, tmpErr := excel.GetNoCustomAnalysisExcelEdbMappingCount(edbInfoId)
 			if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
 				errMsg = "删除失败"
-				err = errors.New("当前指标已添加到表格,GetNoCustomAnalysisExcelEdbMappingCount Err:" + tmpErr.Error())
+				err = errors.New("判断指标是否用作表格引用,GetNoCustomAnalysisExcelEdbMappingCount Err:" + tmpErr.Error())
 				return
 			}
 			if calculateCount > 0 {
@@ -583,6 +648,20 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 			}
 		}
 
+		// 判断指标是否用作跨品种图表使用
+		{
+			calculateCount, tmpErr := cross_variety.GetCountByEdbInfoId(edbInfoId)
+			if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+				errMsg = "删除失败"
+				err = errors.New("判断指标是否用作跨品种图表使用,GetCountByEdbInfoId Err:" + tmpErr.Error())
+				return
+			}
+			if calculateCount > 0 {
+				errMsg = "当前指标已添加到跨品种分析,不可删除"
+				return
+			}
+		}
+
 		//真实删除
 		tmpErr = data_manage.DeleteEdbInfoAndData(edbInfo.EdbInfoId, edbInfo.Source)
 		if tmpErr != nil {