ソースを参照

fix:跨品种分析支持英文

Roc 10 ヶ月 前
コミット
57c4b65b69

+ 96 - 3
controllers/data_manage/cross_variety/chart_info.go

@@ -337,7 +337,8 @@ func (c *ChartInfoController) Add() {
 	}
 
 	// 添加图表
-	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(req, sysUser)
+	req.ChartNameEn = req.ChartName
+	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(req, sysUser, c.Lang)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -404,7 +405,7 @@ func (c *ChartInfoController) Edit() {
 		return
 	}
 
-	chartItem, err, errMsg, isSendEmail := cross_variety.EditChartInfo(req, sysUser)
+	chartItem, err, errMsg, isSendEmail := cross_variety.EditChartInfo(req, sysUser, c.Lang)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -808,9 +809,10 @@ func (c *ChartInfoController) Copy() {
 	config.Instructions = oldChartInfo.Instructions
 	config.MarkersLines = oldChartInfo.MarkersLines
 	config.MarkersAreas = oldChartInfo.MarkersAreas
+	config.ChartNameEn = oldChartInfo.ChartNameEn
 
 	// 添加图表
-	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(config, sysUser)
+	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(config, sysUser, c.Lang)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -1806,3 +1808,94 @@ func (c *ChartInfoController) Save() {
 	br.Data = resp
 	br.IsAddLog = true
 }
+
+// BaseInfoEdit
+// @Title 编辑图表基础信息接口
+// @Description 编辑图表基础信息接口
+// @Param	request	body data_manage.EditChartBaseInfoReq true "type json string"
+// @Success Ret=200 编辑成功
+// @router /chart_info/base/edit [post]
+func (c *ChartInfoController) BaseInfoEdit() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req request.EditChartBaseInfoReq
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	req.ChartName = strings.Trim(req.ChartName, " ")
+	if req.ChartInfoId <= 0 {
+		br.Msg = "请选择图表"
+		return
+	}
+	if req.ChartName == "" {
+		br.Msg = "请输入英文图表名称"
+		return
+	}
+
+	//判断指标名称是否存在
+	chartItem, err := data_manage.GetChartInfoById(req.ChartInfoId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "图表已被删除,请刷新页面"
+			br.ErrMsg = "图表已被删除,请刷新页面"
+			return
+		}
+		br.Msg = "获取图表信息失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	err = cross_varietyModels.EditChartBase(chartItem, req, c.Lang)
+	if err != nil {
+		br.Msg = "修改失败"
+		br.ErrMsg = "更新图表英文信息失败, Err: " + err.Error()
+		return
+	}
+
+	//添加es数据
+	go data.EsAddOrEditChartInfo(chartItem.ChartInfoId)
+	//修改my eta es数据
+	go data.EsAddOrEditMyChartInfoByChartInfoId(chartItem.ChartInfoId)
+
+	//指标 修改es信息
+	//go data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
+
+	//新增操作日志
+	{
+		chartLog := new(data_manage.ChartInfoLog)
+		chartLog.ChartName = chartItem.ChartName
+		chartLog.ChartInfoId = req.ChartInfoId
+		chartLog.ChartClassifyId = chartItem.ChartClassifyId
+		chartLog.SysUserId = sysUser.AdminId
+		chartLog.SysUserRealName = sysUser.RealName
+		chartLog.UniqueCode = chartItem.UniqueCode
+		chartLog.CreateTime = time.Now()
+		chartLog.Content = string(c.Ctx.Input.RequestBody)
+		chartLog.Status = "编辑跨品种分析图表英文信息"
+		chartLog.Method = c.Ctx.Input.URL()
+		go data_manage.AddChartInfoLog(chartLog)
+	}
+	// 清除缓存
+	if utils.Re == nil && utils.Rc != nil {
+		_ = utils.Rc.Delete(utils.HZ_CHART_LIB_DETAIL + chartItem.UniqueCode) //图表分享链接缓存
+		_ = utils.Rc.Delete(data.GetChartInfoDataKey(req.ChartInfoId))
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "编辑成功"
+	br.IsAddLog = true
+}

+ 16 - 11
controllers/data_manage/edb_info_calculate.go

@@ -173,7 +173,7 @@ func (this *ChartInfoController) CalculateSave() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.AddEdbCalculateData(string(reqJson))
+	respItem, err := data.AddEdbCalculateData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -197,6 +197,7 @@ func (this *ChartInfoController) CalculateSave() {
 	br.IsAddLog = true
 }
 
+// CalculateDetail
 // @Title 获取计算指标详情
 // @Description 获取计算指标详情接口
 // @Param   EdbInfoId   query   int  true       "指标id"
@@ -291,7 +292,7 @@ func (this *ChartInfoController) CalculateDetail() {
 			}
 
 			// 计算
-			val, err, _ := data.CallCalculateComputeCorrelation(req2)
+			val, err, _ := data.CallCalculateComputeCorrelation(req2, this.Lang)
 			if err == nil {
 				fullEdb.CorrelationStr = val
 			}
@@ -462,7 +463,7 @@ func (this *ChartInfoController) CalculateEdit() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.EditEdbCalculateData(string(reqJson))
+	respItem, err := data.EditEdbCalculateData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "编辑失败"
 		br.ErrMsg = "编辑失败,Err:" + err.Error()
@@ -657,7 +658,7 @@ func (this *ChartInfoController) CalculateBatchSave() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.BatchSaveEdbCalculateData(string(reqJson))
+	respItem, err := data.BatchSaveEdbCalculateData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -864,7 +865,7 @@ func (this *ChartInfoController) CalculateBatchEdit() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.BatchEditEdbCalculateData(string(reqJson))
+	respItem, err := data.BatchEditEdbCalculateData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "编辑失败"
 		br.ErrMsg = "编辑失败,Err:" + err.Error()
@@ -1235,7 +1236,7 @@ func (this *ChartInfoController) AddPythonEdb() {
 		}
 	}
 	// 添加python指标
-	respItem, err := data.AddPythonEdbData(string(reqJson))
+	respItem, err := data.AddPythonEdbData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "添加失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -1352,7 +1353,7 @@ func (this *ChartInfoController) EditPythonEdb() {
 	}
 
 	// 修改python运算指标
-	respItem, err := data.EditPythonEdbData(string(reqJson))
+	respItem, err := data.EditPythonEdbData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "保存失败"
 		br.ErrMsg = "保存失败,Err:" + err.Error()
@@ -1540,7 +1541,7 @@ func (this *ChartInfoController) SaveAdjustEdbInfo() {
 		}
 	}
 	// 添加数据调整指标
-	respItem, err := data.SaveAdjustEdbInfo(string(reqJson))
+	respItem, err := data.SaveAdjustEdbInfo(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "添加失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -1762,7 +1763,7 @@ func (this *ChartInfoController) BatchCalculateBatchSave() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.BatchSaveEdbCalculateMultiData(string(reqJson))
+	respItem, err := data.BatchSaveEdbCalculateMultiData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "新增失败!"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -1951,7 +1952,7 @@ func (this *ChartInfoController) BatchCalculateBatchEdit() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.BatchEditEdbCalculateMultiData(string(reqJson))
+	respItem, err := data.BatchEditEdbCalculateMultiData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "编辑失败!"
 		br.ErrMsg = "编辑失败,Err:" + err.Error()
@@ -2088,7 +2089,7 @@ func (this *ChartInfoController) CalculateComputeCorrelation() {
 		Calendar:     req.Calendar,
 	}
 
-	val, err, errMsg := data.CallCalculateComputeCorrelation(req2)
+	val, err, errMsg := data.CallCalculateComputeCorrelation(req2, this.Lang)
 	if err != nil {
 		br.Msg = "计算失败"
 		if errMsg != `` {
@@ -2252,7 +2253,9 @@ func (this *ChartInfoController) CalculateMultiChoice() {
 			searchItem := data_manage.EdbInfoBase{
 				Frequency:     info.Frequency,
 				Unit:          info.Unit,
+				UnitEn:        info.UnitEn,
 				EdbName:       info.EdbName,
+				EdbNameEn:     info.EdbNameEn,
 				EdbInfoId:     info.EdbInfoId,
 				ClassifyId:    info.ClassifyId,
 				HaveOperaAuth: haveOperaAuth,
@@ -2405,7 +2408,9 @@ func (this *ChartInfoController) CalculateMultiSearch() {
 			searchItem := data_manage.CalculateMultiEdbSearchItem{
 				Frequency:       info.Frequency,
 				Unit:            info.Unit,
+				UnitEn:          info.UnitEn,
 				EdbName:         info.EdbName,
+				EdbNameEn:       info.EdbNameEn,
 				EdbInfoId:       info.EdbInfoId,
 				ClassifyId:      info.ClassifyId,
 				SysUserRealName: info.SysUserRealName,

+ 3 - 3
controllers/data_manage/excel/custom_analysis_edb.go

@@ -209,7 +209,7 @@ func (c *CustomAnalysisController) AddEdb() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.BatchSaveEdbCalculateData(string(reqJson))
+	respItem, err := data.BatchSaveEdbCalculateData(string(reqJson), c.Lang)
 	if err != nil {
 		br.Msg = "新增失败"
 		br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -378,7 +378,7 @@ func (c *CustomAnalysisController) EditEdb() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.BatchEditEdbCalculateData(string(reqJson))
+	respItem, err := data.BatchEditEdbCalculateData(string(reqJson), c.Lang)
 	if err != nil {
 		br.Msg = "编辑失败"
 		br.ErrMsg = "编辑失败,Err:" + err.Error()
@@ -446,7 +446,7 @@ func (c *CustomAnalysisController) EdbRefresh() {
 		return
 	}
 
-	err, errMsg, isSendEmail := excel.Refresh(excelInfo)
+	err, errMsg, isSendEmail := excel.Refresh(excelInfo, c.Lang)
 	if err != nil {
 		br.Msg = "刷新失败"
 		if errMsg != `` {

+ 7 - 7
controllers/data_manage/excel/excel_info.go

@@ -183,7 +183,7 @@ func (c *ExcelInfoController) Add() {
 			br.ErrMsg = "表格json转结构体失败,Err:" + err.Error()
 			return
 		}
-		newResult, err, errMsg := excel2.GetMixedTableCellData(result)
+		newResult, err, errMsg := excel2.GetMixedTableCellData(result, c.Lang)
 		if err != nil {
 			br.Msg = "获取失败"
 			if errMsg != `` {
@@ -487,7 +487,7 @@ func (c *ExcelInfoController) Detail() {
 	}
 
 	// 获取数据详情
-	excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(excelInfoId, c.SysUser.AdminId)
+	excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(excelInfoId, c.SysUser.AdminId, c.Lang)
 	if err != nil {
 		br.Msg = errMsg
 		br.ErrMsg = err.Error()
@@ -704,7 +704,7 @@ func (c *ExcelInfoController) Edit() {
 			br.ErrMsg = "表格json转结构体失败,Err:" + err.Error()
 			return
 		}
-		newResult, err, errMsg := excel2.GetMixedTableCellData(result)
+		newResult, err, errMsg := excel2.GetMixedTableCellData(result, c.Lang)
 		if err != nil {
 			br.Msg = "获取失败"
 			if errMsg != `` {
@@ -1310,7 +1310,7 @@ func (c *ExcelInfoController) GetExcelTableData() {
 			br.ErrMsg = "表格json转结构体失败,Err:" + err.Error()
 			return
 		}
-		newResult, err, errMsg := excel2.GetMixedTableCellData(result)
+		newResult, err, errMsg := excel2.GetMixedTableCellData(result, c.Lang)
 		if err != nil {
 			br.Msg = "获取失败"
 			if errMsg != `` {
@@ -1923,7 +1923,7 @@ func (c *ExcelInfoController) Refresh() {
 	}
 
 	// 获取数据详情
-	excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(excelInfoId, c.SysUser.AdminId)
+	excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(excelInfoId, c.SysUser.AdminId, c.Lang)
 	if err != nil {
 		br.Msg = errMsg
 		br.ErrMsg = err.Error()
@@ -2099,7 +2099,7 @@ func (c *ExcelInfoController) Download() {
 			br.ErrMsg = "表格json转结构体失败,Err:" + err.Error()
 			return
 		}
-		newResult, err, errMsg := excel2.GetMixedTableCellData(result)
+		newResult, err, errMsg := excel2.GetMixedTableCellData(result, c.Lang)
 		if err != nil {
 			br.Msg = "获取失败"
 			if errMsg != `` {
@@ -2426,7 +2426,7 @@ func (c *ExcelInfoController) BatchRefresh() {
 	}
 
 	// 获取表格关联的指标IDs
-	edbIds, e := excel2.GetEdbIdsFromExcelCodes(req.ExcelCodes, sysUser.AdminId)
+	edbIds, e := excel2.GetEdbIdsFromExcelCodes(req.ExcelCodes, sysUser.AdminId, c.Lang)
 	if e != nil {
 		br.Msg = "刷新失败"
 		br.ErrMsg = "获取表格关联的指标IDs失败, Err: " + e.Error()

+ 1 - 1
controllers/data_manage/excel/mixed_table.go

@@ -188,7 +188,7 @@ func (c *ExcelInfoController) CalculateData() {
 		err = tmpErr
 		return
 	}
-	respItem, tmpErr := data.BaseCalculate(string(reqJson))
+	respItem, tmpErr := data.BaseCalculate(string(reqJson), c.Lang)
 	if tmpErr != nil {
 		br.Msg = "计算指标失败"
 		br.ErrMsg = tmpErr.Error()

+ 3 - 3
controllers/data_manage/line_feature/chart_info.go

@@ -1114,7 +1114,7 @@ func (this *LineFeaturesChartInfoController) MultipleGraphConfigSaveEdb() {
 				br.ErrMsg = "参数解析失败,Err:" + err.Error()
 				return
 			}
-			respItem, err = data.BatchSaveEdbCalculateData(string(reqJson))
+			respItem, err = data.BatchSaveEdbCalculateData(string(reqJson), this.Lang)
 			if err != nil {
 				br.Msg = "新增失败"
 				br.ErrMsg = "新增失败,Err:" + err.Error()
@@ -1140,7 +1140,7 @@ func (this *LineFeaturesChartInfoController) MultipleGraphConfigSaveEdb() {
 				br.ErrMsg = "参数解析失败,Err:" + err.Error()
 				return
 			}
-			respItem, err = data.BatchEditEdbCalculateData(string(reqJson))
+			respItem, err = data.BatchEditEdbCalculateData(string(reqJson), this.Lang)
 			if err != nil {
 				br.Msg = "编辑失败"
 				br.ErrMsg = "编辑失败,Err:" + err.Error()
@@ -1170,7 +1170,7 @@ func (this *LineFeaturesChartInfoController) MultipleGraphConfigSaveEdb() {
 			br.ErrMsg = "参数解析失败,Err:" + err.Error()
 			return
 		}
-		respItem, err = data.BatchSavePredictEdbData(string(reqJson))
+		respItem, err = data.BatchSavePredictEdbData(string(reqJson), this.Lang)
 		if err != nil {
 			br.Msg = "新增失败"
 			br.ErrMsg = "新增失败,Err:" + err.Error()

+ 5 - 5
controllers/data_manage/predict_edb_info.go

@@ -582,7 +582,7 @@ func (this *PredictEdbInfoController) Add() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.SaveBasePredictEdbData(string(reqJson))
+	respItem, err := data.SaveBasePredictEdbData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -784,7 +784,7 @@ func (this *PredictEdbInfoController) Edit() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	respItem, err := data.SaveBasePredictEdbData(string(reqJson))
+	respItem, err := data.SaveBasePredictEdbData(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -1106,7 +1106,7 @@ func (this *PredictEdbInfoController) Detail() {
 			}
 
 			// 计算
-			val, err, _ := data.CallCalculateComputeCorrelation(req2)
+			val, err, _ := data.CallCalculateComputeCorrelation(req2, this.Lang)
 			if err == nil {
 				correlationStr = val
 			}
@@ -1684,7 +1684,7 @@ func (this *PredictEdbInfoController) ChartDataList() {
 				return
 			}*/
 			reqJson, err := json.Marshal(v)
-			respItem, err := data.PredictCalculateByNinePreview(string(reqJson))
+			respItem, err := data.PredictCalculateByNinePreview(string(reqJson), this.Lang)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -1855,7 +1855,7 @@ func (this *PredictEdbInfoController) PredictRuleCalculateByNine() {
 		return
 	}
 
-	respItem, err := data.PredictCalculateByNinePreview(string(reqJson))
+	respItem, err := data.PredictCalculateByNinePreview(string(reqJson), this.Lang)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()

+ 1 - 1
models/data_manage/chart_info.go

@@ -13,7 +13,7 @@ import (
 
 type ChartInfo struct {
 	ChartInfoId       int    `orm:"column(chart_info_id);pk"`
-	ChartName         string `description:"来源名称"`
+	ChartName         string `description:"图表名称"`
 	ChartNameEn       string `description:"英文图表名称"`
 	ChartClassifyId   int    `description:"图表分类id"`
 	SysUserId         int

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

@@ -3,6 +3,7 @@ package cross_variety
 import (
 	"eta/eta_mobile/models/data_manage"
 	"eta/eta_mobile/models/data_manage/cross_variety/request"
+	"eta/eta_mobile/utils"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"strings"
@@ -262,3 +263,74 @@ func EditChartEn(chartInfo *data_manage.ChartInfo, req request.EditChartEnInfoRe
 
 	return
 }
+
+// EditChartBase
+// @Description: 修改图表基础信息
+// @author: Roc
+// @datetime 2023-11-28 21:17:27
+// @param chartInfo *data_manage.ChartInfo
+// @param req request.EditChartBaseInfoReq
+// @param lang string
+// @return err error
+func EditChartBase(chartInfo *data_manage.ChartInfo, req request.EditChartBaseInfoReq, lang string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	// 更新图表信息
+	switch lang {
+	case utils.EnLangVersion:
+		chartInfo.ChartNameEn = req.ChartName
+	default:
+		chartInfo.ChartName = req.ChartName
+	}
+	chartInfo.ModifyTime = time.Now().Local()
+	_, err = to.Update(chartInfo, "ChartName", "ChartNameEn", "ModifyTime")
+	if err != nil {
+		fmt.Println("UPDATE  chart_info Err:", err.Error())
+		return err
+	}
+
+	// 更新标签名
+	for _, v := range req.TagList {
+		var sql string
+		switch lang {
+		case utils.EnLangVersion:
+			sql = `UPDATE chart_tag SET chart_tag_name_en = ?,modify_time= NOW() WHERE chart_tag_id = ? `
+		default:
+			sql = `UPDATE chart_tag SET chart_tag_name = ?,modify_time= NOW() WHERE chart_tag_id = ? `
+		}
+		if sql != `` {
+			_, err = o.Raw(sql, v.TagName, v.ChartTagId).Exec()
+			if err != nil {
+				return
+			}
+		}
+	}
+
+	// 更新品种名
+	for _, v := range req.VarietyList {
+		var sql string
+		switch lang {
+		case utils.EnLangVersion:
+			sql = `UPDATE chart_variety SET chart_variety_name_en = ?,modify_time= NOW() WHERE chart_variety_id = ? `
+		default:
+			sql = `UPDATE chart_variety SET chart_variety_name = ?,modify_time= NOW() WHERE chart_variety_id = ? `
+		}
+		_, err = o.Raw(sql, v.VarietyName, v.ChartVarietyId).Exec()
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}

+ 24 - 0
models/data_manage/cross_variety/request/chart.go

@@ -25,6 +25,7 @@ type ChartConfigDate struct {
 // @Description: 添加图表的请求
 type AddChartReq struct {
 	ChartName      string `description:"图表名称"`
+	ChartNameEn    string `description:"英文图表名称"`
 	XMin           string `description:"图表X轴最小值"`
 	XMax           string `description:"图表X轴最大值"`
 	LeftMin        string `description:"图表左侧最小值"`
@@ -92,3 +93,26 @@ type SaveChartReq struct {
 	LeftMin     string `description:"图表左侧最小值"`
 	LeftMax     string `description:"图表左侧最大值"`
 }
+
+// EditChartBaseInfoReq
+// @Description: 编辑图表基础信息
+type EditChartBaseInfoReq struct {
+	ChartInfoId int                  `description:"图表ID"`
+	ChartName   string               `description:"图表名称(根据语言版本不同而不同)"`
+	TagList     []TagNameBaseReq     `description:"标签名称"`
+	VarietyList []VarietyNameBaseReq `description:"标签名称"`
+}
+
+// TagNameBaseReq
+// @Description: 标签基础名称修改
+type TagNameBaseReq struct {
+	ChartTagId int    `json:"ChartTagId"`
+	TagName    string `description:"标签名称(根据语言版本不同而不同)"`
+}
+
+// VarietyNameBaseReq
+// @Description: 品种基础名称修改
+type VarietyNameBaseReq struct {
+	ChartVarietyId int    `json:"ChartVarietyId"`
+	VarietyName    string `description:"品种名称(根据语言版本不同而不同)"`
+}

+ 5 - 1
models/data_manage/edb_info_calculate.go

@@ -94,7 +94,7 @@ func GetEdbInfoCalculateDetail(edbInfoId, source int) (list []*EdbInfoCalculateD
 	//
 	//sql = fmt.Sprintf(sql, calculateTableName)
 
-	sql := ` SELECT a.edb_info_calculate_mapping_id,a.edb_info_id,a.source,a.source_name,a.edb_code,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,a.move_value,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.latest_date,b.latest_value,b.edb_type, b.frequency, b.unit, b.classify_id FROM edb_info_calculate_mapping AS a
+	sql := ` SELECT a.edb_info_calculate_mapping_id,a.edb_info_id,a.source,a.source_name,a.edb_code,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,a.move_value,b.edb_name as from_edb_name,b.edb_name_en as from_edb_name_en,b.start_date,b.end_date,b.latest_date,b.latest_value,b.edb_type, b.frequency, b.unit, b.classify_id FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? ORDER BY sort ASC `
 
@@ -164,8 +164,10 @@ func DeleteCalculateData(edbInfoId int) (err error) {
 type EdbInfoBase struct {
 	EdbInfoId     int    `description:"指标id"`
 	EdbName       string `description:"指标名称"`
+	EdbNameEn     string `description:"英文指标名称"`
 	Frequency     string `description:"频度"`
 	Unit          string `description:"单位"`
+	UnitEn        string `description:"英文单位"`
 	ClassifyId    int    `description:"分类id"`
 	HaveOperaAuth bool   `description:"是否有数据权限,默认:false"`
 }
@@ -601,8 +603,10 @@ type CalculateMultiEdbSearchResp struct {
 type CalculateMultiEdbSearchItem struct {
 	EdbInfoId       int    `description:"指标id"`
 	EdbName         string `description:"指标名称"`
+	EdbNameEn       string `description:"英文指标名称"`
 	Frequency       string `description:"频度"`
 	Unit            string `description:"单位"`
+	UnitEn          string `description:"英文单位"`
 	ClassifyId      int    `description:"分类id"`
 	SysUserId       int
 	SysUserRealName string

+ 39 - 38
services/data/base_edb_lib.go

@@ -140,8 +140,8 @@ type EdbCalculateSaveMultiResponse struct {
 }
 
 // SaveBasePredictEdbData 新增/编辑预测指标运算
-func SaveBasePredictEdbData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict/save")
+func SaveBasePredictEdbData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict/save", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -161,8 +161,8 @@ type PredictRuleCalculateByNineRespResponse struct {
 }
 
 // PredictCalculateByNinePreview 预测指标动态环差演算
-func PredictCalculateByNinePreview(RuleConfigReqStr string) (resp *PredictRuleCalculateByNineRespResponse, err error) {
-	_, resultByte, err := postAddEdbData(RuleConfigReqStr, "predict/calculate_by_nine/preview")
+func PredictCalculateByNinePreview(RuleConfigReqStr, lang string) (resp *PredictRuleCalculateByNineRespResponse, err error) {
+	_, resultByte, err := postAddEdbData(RuleConfigReqStr, "predict/calculate_by_nine/preview", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -171,8 +171,8 @@ func PredictCalculateByNinePreview(RuleConfigReqStr string) (resp *PredictRuleCa
 }
 
 // SavePredictEdbData 新增/编辑预测指标运算
-func SavePredictEdbData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict_calculate/save")
+func SavePredictEdbData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict_calculate/save", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -181,8 +181,8 @@ func SavePredictEdbData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredic
 }
 
 // BatchSavePredictEdbData 新增/编辑 预测指标运算(同比、同差)
-func BatchSavePredictEdbData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict_calculate/batch/save")
+func BatchSavePredictEdbData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict_calculate/batch/save", lang)
 	if err != nil {
 		return
 	}
@@ -302,8 +302,8 @@ func RefreshPredictEdbCalculateData(edbInfoId int, edbCode, startDate string) (r
 }
 
 // AddEdbCalculateData 新增 累计值转月-同比值-同差等计算新增
-func AddEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/add")
+func AddEdbCalculateData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/add", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -312,8 +312,8 @@ func AddEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredi
 }
 
 // EditEdbCalculateData 编辑 累计值转月-同比值-同差等计算新增
-func EditEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/edit")
+func EditEdbCalculateData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/edit", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -322,8 +322,8 @@ func EditEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPred
 }
 
 // BatchSaveEdbCalculateData 新增 累计值转月-同比值-同差等计算新增
-func BatchSaveEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/save")
+func BatchSaveEdbCalculateData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/save", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -332,8 +332,8 @@ func BatchSaveEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *Ad
 }
 
 // BatchEditEdbCalculateData 编辑 累计值转月-同比值-同差等计算新增
-func BatchEditEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/edit")
+func BatchEditEdbCalculateData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/edit", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -342,8 +342,8 @@ func BatchEditEdbCalculateData(edbInfoCalculateBatchSaveReqStr string) (resp *Ad
 }
 
 // BatchSaveEdbCalculateMultiData 批量新增 累计值转月-同比值-同差等计算新增
-func BatchSaveEdbCalculateMultiData(edbInfoCalculateBatchSaveReqStr string) (resp *EdbCalculateSaveMultiResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/save/multi")
+func BatchSaveEdbCalculateMultiData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *EdbCalculateSaveMultiResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/save/multi", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -352,8 +352,8 @@ func BatchSaveEdbCalculateMultiData(edbInfoCalculateBatchSaveReqStr string) (res
 }
 
 // BatchEditEdbCalculateMultiData 批量编辑 累计值转月-同比值-同差等计算新增
-func BatchEditEdbCalculateMultiData(edbInfoCalculateBatchSaveReqStr string) (resp *EdbCalculateSaveMultiResponse, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/edit/multi")
+func BatchEditEdbCalculateMultiData(edbInfoCalculateBatchSaveReqStr, lang string) (resp *EdbCalculateSaveMultiResponse, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/batch/edit/multi", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -377,32 +377,32 @@ func ExecPythonCode(pythonCode string) (resp *models.BaseResponse, err error) {
 }
 
 // AddPythonEdbData 新增python指标
-func AddPythonEdbData(param string) (resp *models.BaseResponse, err error) {
+func AddPythonEdbData(param, lang string) (resp *models.BaseResponse, err error) {
 	urlStr := ``
 	urlStr = "python/add"
-	resp, _, err = postAddEdbData(param, urlStr)
+	resp, _, err = postAddEdbData(param, urlStr, lang)
 	return
 }
 
 // EditPythonEdbData 编辑python指标
-func EditPythonEdbData(param string) (resp *models.BaseResponse, err error) {
+func EditPythonEdbData(param, lang string) (resp *models.BaseResponse, err error) {
 	urlStr := ``
 	urlStr = "python/edit"
-	resp, _, err = postAddEdbData(param, urlStr)
+	resp, _, err = postAddEdbData(param, urlStr, lang)
 	return
 }
 
 // SaveAdjustEdbInfo 保存数据调整指标
-func SaveAdjustEdbInfo(param string) (resp *models.BaseResponse, err error) {
+func SaveAdjustEdbInfo(param, lang string) (resp *models.BaseResponse, err error) {
 	urlStr := ``
 	urlStr = "calculate/adjust/save"
-	resp, _, err = postAddEdbData(param, urlStr)
+	resp, _, err = postAddEdbData(param, urlStr, lang)
 	return
 }
 
 // ResetCustomAnalysisData 重置自定义表格的数据
-func ResetCustomAnalysisData(reqStr string) (resp *AddPredictEdbDataResponse, err error) {
-	_, resultByte, err := postAddEdbData(reqStr, "calculate/custom_analysis/reset")
+func ResetCustomAnalysisData(reqStr, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	_, resultByte, err := postAddEdbData(reqStr, "calculate/custom_analysis/reset", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -423,8 +423,8 @@ type CalculateComputeCorrelationResp struct {
 }
 
 // CalculateComputeCorrelation 拟合残差计算相关性的值
-func CalculateComputeCorrelation(edbInfoCalculateBatchSaveReqStr string) (resp *CalculateComputeCorrelationResp, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/compute_correlation")
+func CalculateComputeCorrelation(edbInfoCalculateBatchSaveReqStr, lang string) (resp *CalculateComputeCorrelationResp, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "calculate/compute_correlation", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -433,8 +433,8 @@ func CalculateComputeCorrelation(edbInfoCalculateBatchSaveReqStr string) (resp *
 }
 
 // PredictCalculateComputeCorrelation 拟合残差计算相关性的值(预测指标)
-func PredictCalculateComputeCorrelation(edbInfoCalculateBatchSaveReqStr string) (resp *CalculateComputeCorrelationResp, err error) {
-	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict_calculate/compute_correlation")
+func PredictCalculateComputeCorrelation(edbInfoCalculateBatchSaveReqStr, lang string) (resp *CalculateComputeCorrelationResp, err error) {
+	_, resultByte, err := postAddEdbData(edbInfoCalculateBatchSaveReqStr, "predict_calculate/compute_correlation", lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -462,9 +462,9 @@ type BaseCalculateDataResp struct {
 }
 
 // BaseCalculate 基础计算
-func BaseCalculate(param string) (resp *BaseCalculateResp, err error) {
+func BaseCalculate(param, lang string) (resp *BaseCalculateResp, err error) {
 	urlStr := "calculate/base"
-	_, resultByte, err := postAddEdbData(param, urlStr)
+	_, resultByte, err := postAddEdbData(param, urlStr, lang)
 	err = json.Unmarshal(resultByte, &resp)
 	if err != nil {
 		return
@@ -479,7 +479,7 @@ func postRefreshEdbData(param map[string]interface{}, urlStr string) (resp *mode
 	if err != nil {
 		return
 	}
-	result, err := HttpPost(postUrl, string(postData), "application/json")
+	result, err := HttpPost(postUrl, string(postData), utils.ZhLangVersion, "application/json")
 	if err != nil {
 		return
 	}
@@ -492,9 +492,9 @@ func postRefreshEdbData(param map[string]interface{}, urlStr string) (resp *mode
 }
 
 // postAddEdbData 新增指标数据
-func postAddEdbData(paramStr string, urlStr string) (resp *models.BaseResponse, result []byte, err error) {
+func postAddEdbData(paramStr string, urlStr, lang string) (resp *models.BaseResponse, result []byte, err error) {
 	postUrl := utils.EDB_LIB_URL + urlStr
-	result, err = HttpPost(postUrl, paramStr, "application/json")
+	result, err = HttpPost(postUrl, paramStr, lang, "application/json")
 	if err != nil {
 		return
 	}
@@ -506,7 +506,7 @@ func postAddEdbData(paramStr string, urlStr string) (resp *models.BaseResponse,
 	return
 }
 
-func HttpPost(url, postData string, params ...string) ([]byte, error) {
+func HttpPost(url, postData, lang string, params ...string) ([]byte, error) {
 	body := ioutil.NopCloser(strings.NewReader(postData))
 	client := &http.Client{}
 	req, err := http.NewRequest("POST", url, body)
@@ -518,6 +518,7 @@ func HttpPost(url, postData string, params ...string) ([]byte, error) {
 		contentType = params[0]
 	}
 	req.Header.Set("Content-Type", contentType)
+	req.Header.Set("Lang", lang)
 	req.Header.Set("authorization", utils.MD5(utils.APP_EDB_LIB_NAME_EN+utils.EDB_LIB_Md5_KEY))
 	resp, err := client.Do(req)
 	if err != nil {

+ 14 - 19
services/data/cross_variety/chart.go

@@ -559,10 +559,11 @@ func GetXYEdbIdList(tagX, tagY int, varietyList []int) (xVarietyEdbMap, yVariety
 // @param req request.AddChartReq
 // @param sysUser *system.Admin
 // @return chartInfo *data_manage.ChartInfo
+// @return lang string
 // @return err error
 // @return errMsg string
 // @return isSendEmail bool
-func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
+func AddChartInfo(req request.AddChartReq, sysUser *system.Admin, lang string) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
 	source := utils.CHART_SOURCE_CROSS_HEDGING
@@ -643,22 +644,10 @@ func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *da
 		// 分类没有,需要创建新的分类,那么err置空
 		err = nil
 
-		timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
-		chartClassify = &data_manage.ChartClassify{
-			ChartClassifyId:   0,
-			ChartClassifyName: sysUser.RealName,
-			ParentId:          0,
-			HasData:           0,
-			CreateTime:        time.Now(),
-			ModifyTime:        time.Now(),
-			SysUserId:         sysUser.AdminId,
-			SysUserRealName:   sysUser.RealName,
-			Level:             1,
-			UniqueCode:        utils.MD5(utils.DATA_PREFIX + "_" + timestamp),
-			Sort:              0,
-			Source:            source,
+		_, err, errMsg, isSendEmail = data.AddChartClassify(sysUser.RealName, 0, 1, source, lang, sysUser)
+		if err != nil {
+			return
 		}
-		_, err = data_manage.AddChartClassify(chartClassify)
 	}
 
 	var chartInfoId int
@@ -683,6 +672,7 @@ func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *da
 
 	chartInfo = new(data_manage.ChartInfo)
 	chartInfo.ChartName = req.ChartName
+	chartInfo.ChartNameEn = req.ChartNameEn
 	//chartInfo.EdbInfoIds = edbInfoIdStr
 	//chartInfo.ChartClassifyId = req.ChartClassifyId
 	chartInfo.SysUserId = sysUser.AdminId
@@ -764,7 +754,7 @@ func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *da
 // @return err error
 // @return errMsg string
 // @return isSendEmail bool
-func EditChartInfo(req request.EditChartReq, sysUser *system.Admin) (chartItem *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
+func EditChartInfo(req request.EditChartReq, sysUser *system.Admin, lang string) (chartItem *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
 	chartItem, err = data_manage.GetChartInfoById(req.ChartInfoId)
@@ -880,14 +870,19 @@ func EditChartInfo(req request.EditChartReq, sysUser *system.Admin) (chartItem *
 	//	return
 	//}
 
-	chartItem.ChartName = req.ChartName
+	switch lang {
+	case utils.EnLangVersion:
+		chartItem.ChartNameEn = req.ChartName
+	default:
+		chartItem.ChartName = req.ChartName
+	}
 	chartItem.ExtraConfig = string(extraConfigByte)
 	chartItem.ModifyTime = time.Now()
 	chartItem.LeftMin = req.LeftMin
 	chartItem.LeftMax = req.LeftMax
 	chartItem.XMin = req.XMin
 	chartItem.XMax = req.XMax
-	chartUpdateCols := []string{"ChartName", "ExtraConfig", "ModifyTime", "LeftMin", "LeftMax", "XMin", "XMax"}
+	chartUpdateCols := []string{"ChartName", "ChartNameEn", "ExtraConfig", "ModifyTime", "LeftMin", "LeftMax", "XMin", "XMax"}
 
 	// 跨品种分析配置
 	chartInfoCrossVariety, err := cross_varietyModel.GetChartInfoCrossVarietyByChartInfoId(chartItem.ChartInfoId)

+ 2 - 2
services/data/edb_info_calculate.go

@@ -633,7 +633,7 @@ func HandleDataByLinearRegression(edbInfoDataList []*data_manage.EdbDataList, ha
 }
 
 // CallCalculateComputeCorrelation 调用计算拟合残差的相关系数
-func CallCalculateComputeCorrelation(data *data_manage.EdbInfoCalculateBatchSaveReqByEdbLib) (val string, err error, errMsg string) {
+func CallCalculateComputeCorrelation(data *data_manage.EdbInfoCalculateBatchSaveReqByEdbLib, lang string) (val string, err error, errMsg string) {
 	errMsg = "计算失败"
 	// 调用指标库去更新
 	reqJson, err := json.Marshal(data)
@@ -642,7 +642,7 @@ func CallCalculateComputeCorrelation(data *data_manage.EdbInfoCalculateBatchSave
 		err = errors.New("参数解析失败,Err:" + err.Error())
 		return
 	}
-	respItem, err := CalculateComputeCorrelation(string(reqJson))
+	respItem, err := CalculateComputeCorrelation(string(reqJson), lang)
 	if err != nil {
 		return
 	}

+ 2 - 2
services/data/excel/custom_analysis_edb.go

@@ -212,7 +212,7 @@ type ResetCustomAnalysisData struct {
 }
 
 // Refresh  刷新表格关联的指标信息
-func Refresh(excelInfo *excel.ExcelInfo) (err error, errMsg string, isSendEmail bool) {
+func Refresh(excelInfo *excel.ExcelInfo, lang string) (err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
 	list, err := excel.GetAllExcelEdbMappingItemByExcelInfoId(excelInfo.ExcelInfoId)
@@ -277,7 +277,7 @@ func Refresh(excelInfo *excel.ExcelInfo) (err error, errMsg string, isSendEmail
 			err = tmpErr
 			return
 		}
-		respItem, tmpErr := data.ResetCustomAnalysisData(string(reqJson))
+		respItem, tmpErr := data.ResetCustomAnalysisData(string(reqJson), lang)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 8 - 8
services/data/excel/excel_info.go

@@ -21,7 +21,7 @@ import (
 )
 
 // GetExcelDetailInfoByExcelInfoId 根据表格id获取表格详情
-func GetExcelDetailInfoByExcelInfoId(excelInfoId, sysUserId int) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
+func GetExcelDetailInfoByExcelInfoId(excelInfoId, sysUserId int, lang string) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
 	errMsg = `获取失败`
 	//获取eta表格信息
 	excelInfo, err := excel.GetExcelInfoById(excelInfoId)
@@ -34,11 +34,11 @@ func GetExcelDetailInfoByExcelInfoId(excelInfoId, sysUserId int) (excelDetail re
 		return
 	}
 
-	return formatExcelInfo2Detail(excelInfo, sysUserId)
+	return formatExcelInfo2Detail(excelInfo, sysUserId, lang)
 }
 
 // GetExcelDetailInfoByUnicode 根据表格编码获取表格详情
-func GetExcelDetailInfoByUnicode(unicode string, sysUserId int) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
+func GetExcelDetailInfoByUnicode(unicode string, sysUserId int, lang string) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
 	errMsg = `获取失败`
 	// 获取eta表格信息
 	excelInfo, err := excel.GetExcelInfoByUnicode(unicode)
@@ -51,10 +51,10 @@ func GetExcelDetailInfoByUnicode(unicode string, sysUserId int) (excelDetail res
 		return
 	}
 
-	return formatExcelInfo2Detail(excelInfo, sysUserId)
+	return formatExcelInfo2Detail(excelInfo, sysUserId, lang)
 }
 
-func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
+func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int, lang string) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
 	// 数据权限
 	haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, sysUserId)
 	if err != nil {
@@ -141,7 +141,7 @@ func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDet
 			err = errors.New("表格json转结构体失败,Err:" + err.Error())
 			return
 		}
-		newData, tmpErr, tmpErrMsg := GetMixedTableCellData(result)
+		newData, tmpErr, tmpErrMsg := GetMixedTableCellData(result, lang)
 		if tmpErr != nil {
 			errMsg = "获取失败"
 			if tmpErrMsg != `` {
@@ -1337,12 +1337,12 @@ func calculate(calculateFormula string, TagMap map[string]float64) (calVal, errM
 }
 
 // GetEdbIdsFromExcelCodes 获取表格中的指标IDs
-func GetEdbIdsFromExcelCodes(excelCodes []string, sysUserId int) (edbIds []int, err error) {
+func GetEdbIdsFromExcelCodes(excelCodes []string, sysUserId int, lang string) (edbIds []int, err error) {
 	edbIds = make([]int, 0)
 	edbIdExist := make(map[int]bool)
 	for _, v := range excelCodes {
 		// 表格详情
-		detail, msg, e := GetExcelDetailInfoByUnicode(v, sysUserId)
+		detail, msg, e := GetExcelDetailInfoByUnicode(v, sysUserId, lang)
 		if e != nil {
 			err = fmt.Errorf("GetExcelDetailInfoByExcelInfoId err: %s, errMsg: %s", e.Error(), msg)
 			return

+ 2 - 2
services/data/excel/mixed_table.go

@@ -38,7 +38,7 @@ type Cell struct {
 }
 
 // GetMixedTableCellData 获取混合表格数据
-func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCellDataList [][]request.MixedTableCellDataReq, err error, errMsg string) {
+func GetMixedTableCellData(mixedTableReq request.MixedTableReq, lang string) (newMixedTableCellDataList [][]request.MixedTableCellDataReq, err error, errMsg string) {
 	cellRelationConf := mixedTableReq.CellRelation
 	config := mixedTableReq.Data
 
@@ -353,7 +353,7 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 						err = tmpErr
 						return
 					}
-					respItem, tmpErr := data.BaseCalculate(string(reqJson))
+					respItem, tmpErr := data.BaseCalculate(string(reqJson), lang)
 					if tmpErr != nil {
 						utils.FileLog.Error(fmt.Sprintf("计算失败2,配置信息;%s;错误原因:%s", cell.Value, tmpErr.Error()))
 						err = tmpErr