Răsfoiți Sursa

fix:统计特征支持英文

Roc 10 luni în urmă
părinte
comite
ae2518ef59

+ 1 - 0
controllers/data_manage/line_equation/line_chart_info.go

@@ -1526,6 +1526,7 @@ func (this *LineEquationChartInfoController) EnInfoEdit() {
 		chartLog.Method = this.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) //图表分享链接缓存

+ 126 - 43
controllers/data_manage/line_feature/chart_info.go

@@ -753,7 +753,7 @@ func (this *LineFeaturesChartInfoController) MultipleGraphConfigSaveChart() {
 				RightMax:        fmt.Sprint(rightMaxVal),
 				ExtraConfig:     extraConfig,
 			}
-			chartInfo, err, errMsg, isSendEmail = lineFeatureServ.AddChartInfo(addChartReq, edbInfoMapping, chartSource, sysUser)
+			chartInfo, err, errMsg, isSendEmail = lineFeatureServ.AddChartInfo(addChartReq, edbInfoMapping, chartSource, sysUser, this.Lang)
 		} else {
 			editChartReq := data_manage.EditChartInfoReq{
 				ChartInfoId:     multipleGraphConfigChartMapping.ChartInfoId,
@@ -770,7 +770,7 @@ func (this *LineFeaturesChartInfoController) MultipleGraphConfigSaveChart() {
 				RightMax:        fmt.Sprint(rightMaxVal),
 				ExtraConfig:     extraConfig,
 			}
-			chartInfo, err, errMsg, isSendEmail = lineFeatureServ.EditChartInfo(editChartReq, edbInfoMapping, sysUser)
+			chartInfo, err, errMsg, isSendEmail = lineFeatureServ.EditChartInfo(editChartReq, edbInfoMapping, sysUser, this.Lang)
 			if err != nil {
 				br.Msg = "保存失败"
 				if errMsg != `` {
@@ -929,7 +929,7 @@ func CopyMultipleGraphConfigSaveChart(req request.SaveMultipleGraphChartReq, thi
 			return
 		}
 
-		chartInfo, err, errMsg, isSendEmail = lineFeatureServ.CopyChartInfo(multipleGraphConfigChartMapping.MultipleGraphConfigId, req.Source, req.ClassifyId, req.ChartName, edbInfoMapping, oldChartInfo, sysUser)
+		chartInfo, err, errMsg, isSendEmail = lineFeatureServ.CopyChartInfo(multipleGraphConfigChartMapping.MultipleGraphConfigId, req.Source, req.ClassifyId, req.ChartName, edbInfoMapping, oldChartInfo, sysUser, this.Lang)
 	}
 
 	if err != nil {
@@ -2252,7 +2252,7 @@ func (this *LineFeaturesChartInfoController) Copy() {
 	edbInfoMapping := edbMappingList[0]
 
 	// 批量设置图
-	chartInfo, err, errMsg, isSendEmail := lineFeatureServ.CopyChartInfo(multipleGraphConfigChartMapping.MultipleGraphConfigId, multipleGraphConfigChartMapping.Source, req.ChartClassifyId, req.ChartName, edbInfoMapping, oldChartInfo, sysUser)
+	chartInfo, err, errMsg, isSendEmail := lineFeatureServ.CopyChartInfo(multipleGraphConfigChartMapping.MultipleGraphConfigId, multipleGraphConfigChartMapping.Source, req.ChartClassifyId, req.ChartName, edbInfoMapping, oldChartInfo, sysUser, this.Lang)
 
 	if err != nil {
 		br.Msg = "复制失败"
@@ -2797,42 +2797,125 @@ func (this *LineFeaturesChartInfoController) SearchByEs() {
 	br.Data = resp
 }
 
-// fix 统计分析/统计特征的标准差、百分位图表时间范围与曲线图一致
-//func init() {
-//	condition := ` AND source in (7,8) `
-//	list, err := data_manage.GetChartInfoListByCondition(condition, []interface{}{}, 0, 1000)
-//	if err != nil {
-//		fmt.Println("err:", err)
-//		return
-//	}
-//
-//	for _, v := range list {
-//		item, tmpErr := data_manage.GetMultipleGraphConfigChartMappingByChartId(v.ChartInfoId)
-//		if tmpErr != nil {
-//			fmt.Println("tmpErr:", tmpErr)
-//			continue
-//		}
-//
-//		multipleGraphConfig, e := data_manage.GetMultipleGraphConfigById(item.MultipleGraphConfigId)
-//		if e != nil {
-//			fmt.Println("获取批量配置信息失败:", e)
-//			continue
-//		}
-//
-//		var configSave request.ConfigSave
-//		err = json.Unmarshal([]byte(multipleGraphConfig.Curve), &configSave)
-//		if err != nil {
-//			fmt.Println("格式化配置项失败,Err:" + err.Error())
-//			return
-//		}
-//
-//		v.StartDate = configSave.Curve.StartDate
-//		v.EndDate = configSave.Curve.EndDate
-//		v.DateType = configSave.Curve.DateType
-//		err = v.Update([]string{"StartDate", "EndDate", "DateType"})
-//
-//		if err != nil {
-//			fmt.Println(v.ChartInfoId, "修复历史数据失败:", err)
-//		}
-//	}
-//}
+// BaseInfoEdit
+// @Title 编辑图表基础信息接口
+// @Description 编辑图表基础信息接口
+// @Param	request	body data_manage.EditChartInfoBaseReq true "type json string"
+// @Success Ret=200 编辑成功
+// @router /chart_info/base/edit [post]
+func (this *LineFeaturesChartInfoController) BaseInfoEdit() {
+	br := new(models.BaseResponse).Init()
+	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
+	}
+	var req request.EditChartInfoBaseReq
+	err := json.Unmarshal(this.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
+	}
+
+	// 校验名称是否有重复
+	{
+		var condition string
+		var pars []interface{}
+		condition += " AND chart_info_id <> ? AND source in (?,?,?) "
+		pars = append(pars, req.ChartInfoId, utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, utils.CHART_SOURCE_LINE_FEATURE_PERCENTILE, utils.CHART_SOURCE_LINE_FEATURE_FREQUENCY)
+
+		switch this.Lang {
+		case utils.EnLangVersion:
+			condition += " AND chart_name_en = ? "
+		default:
+			condition += " AND chart_name = ? "
+		}
+		pars = append(pars, req.ChartName)
+		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.ChartName + "图表名称已存在"
+			return
+		}
+	}
+
+	switch this.Lang {
+	case utils.EnLangVersion:
+		chartItem.ChartNameEn = req.ChartName
+	default:
+		chartItem.ChartName = req.ChartName
+	}
+	chartItem.ModifyTime = time.Now().Local()
+	if e := chartItem.Update([]string{"ChartName", "ChartNameEn", "ModifyTime"}); e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "更新图表信息失败, Err: " + e.Error()
+		return
+	}
+
+	//添加es数据
+	go data.EsAddOrEditChartInfo(chartItem.ChartInfoId)
+	//修改my eta es数据
+	go data.EsAddOrEditMyChartInfoByChartInfoId(chartItem.ChartInfoId)
+
+	//新增操作日志
+	{
+		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(this.Ctx.Input.RequestBody)
+		chartLog.Status = "编辑统计特征图表基础信息"
+		chartLog.Method = this.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
+}

+ 11 - 58
controllers/data_manage/line_feature/classify.go

@@ -8,7 +8,6 @@ import (
 	"eta/eta_mobile/models/system"
 	"eta/eta_mobile/services/data"
 	"eta/eta_mobile/utils"
-	"strconv"
 	"time"
 )
 
@@ -205,42 +204,15 @@ func (this *LineFeaturesChartClassifyController) AddChartClassify() {
 		return
 	}
 
-	source := utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION
-	count, err := data_manage.GetChartClassifyCount(req.ChartClassifyName, req.ParentId, source)
-	if err != nil {
-		br.Msg = "判断名称是否已存在失败"
-		br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
-		return
-	}
-	if count > 0 {
-		br.Msg = "分类名称已存在,请重新输入"
-		br.IsSendEmail = false
-		return
-	}
-	//获取该层级下最大的排序数
-	maxSort, err := data_manage.GetChartClassifyMaxSort(req.ParentId, source)
-
-	classify := new(data_manage.ChartClassify)
-	//classify.ParentId = req.ParentId
-	classify.ParentId = 0
-	classify.ChartClassifyName = req.ChartClassifyName
-	classify.HasData = 0
-	classify.CreateTime = time.Now()
-	classify.ModifyTime = time.Now()
-	classify.SysUserId = this.SysUser.AdminId
-	classify.SysUserRealName = this.SysUser.RealName
-	classify.Level = req.Level + 1
-	timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
-	classify.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + timestamp)
-	classify.Sort = maxSort + 1
-	classify.Source = source
-
-	_, err = data_manage.AddChartClassify(classify)
+	// 新增图表分类
+	_, err, errMsg, isSendEmail := data.AddChartClassify(req.ChartClassifyName, req.ParentId, req.Level, utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, this.Lang, this.SysUser)
 	if err != nil {
-		br.Msg = "保存分类失败"
-		br.ErrMsg = "保存分类失败,Err:" + err.Error()
+		br.Msg = errMsg
+		br.ErrMsg = "添加分类失败,Err:" + err.Error()
+		br.IsSendEmail = isSendEmail
 		return
 	}
+
 	br.Ret = 200
 	br.Msg = "添加成功"
 	br.Success = true
@@ -277,34 +249,15 @@ func (this *LineFeaturesChartClassifyController) EditChartClassify() {
 		return
 	}
 
-	item, err := data_manage.GetChartClassifyById(req.ChartClassifyId)
+	// 编辑图表分类
+	_, err, errMsg, isSendEmail := data.EditChartClassify(req.ChartClassifyId, utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, req.ChartClassifyName, this.Lang, this.SysUser)
 	if err != nil {
-		br.Msg = "保存失败"
-		br.Msg = "获取分类信息失败,Err:" + err.Error()
+		br.Msg = errMsg
+		br.ErrMsg = "保存分类失败,Err:" + err.Error()
+		br.IsSendEmail = isSendEmail
 		return
 	}
 
-	source := utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION
-	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
-		}
-
-		err = data_manage.EditChartClassify(req.ChartClassifyId, source, req.ChartClassifyName)
-		if err != nil {
-			br.Msg = "保存失败"
-			br.ErrMsg = "保存失败,Err:" + err.Error()
-			return
-		}
-	}
 	br.Ret = 200
 	br.Msg = "修改成功"
 	br.Success = true

+ 2 - 0
models/data_manage/line_feature/line_feature.go

@@ -67,6 +67,7 @@ func EditLineFeatureChartAndMapping(req *data_manage.EditChartInfoReq, edbInfoId
 	}()
 	var pars []interface{}
 	pars = append(pars, req.ChartName)
+	pars = append(pars, req.ChartNameEn)
 	pars = append(pars, edbInfoIdStr)
 	pars = append(pars, req.ChartClassifyId)
 	pars = append(pars, disabled)
@@ -75,6 +76,7 @@ func EditLineFeatureChartAndMapping(req *data_manage.EditChartInfoReq, edbInfoId
 	sql := ` UPDATE  chart_info
 			SET
 			  chart_name =?,
+			  chart_name_en =?,
               edb_info_ids=?,
 			  chart_classify_id = ?,
 			  modify_time = NOW(),

+ 6 - 0
models/data_manage/line_feature/request/line_feature.go

@@ -107,3 +107,9 @@ type SaveMultipleGraphEdbReq struct {
 	FrequencyDistribution FrequencyDistribution `description:"频率分布配置"`
 	IsSaveAs              bool                  `description:"是否另存为,true的话,就是另存为,不会建立与配置的关系"`
 }
+
+// EditChartInfoBaseReq 编辑图表基础信息
+type EditChartInfoBaseReq struct {
+	ChartInfoId int    `description:"图表ID"`
+	ChartName   string `description:"英文名称(根据当前语言版本不同而不同)"`
+}

+ 45 - 0
routers/commentsRouter.go

@@ -79,6 +79,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/correlation:CorrelationChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/correlation:CorrelationChartInfoController"],
+        beego.ControllerComments{
+            Method: "BaseInfoEdit",
+            Router: `/chart_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/correlation:CorrelationChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/correlation:CorrelationChartInfoController"],
         beego.ControllerComments{
             Method: "Copy",
@@ -187,6 +196,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/cross_variety:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/cross_variety:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "BaseInfoEdit",
+            Router: `/chart_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/cross_variety:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/cross_variety:ChartInfoController"],
         beego.ControllerComments{
             Method: "Copy",
@@ -1249,6 +1267,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_equation:LineEquationChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_equation:LineEquationChartInfoController"],
+        beego.ControllerComments{
+            Method: "BaseInfoEdit",
+            Router: `/chart_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_equation:LineEquationChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_equation:LineEquationChartInfoController"],
         beego.ControllerComments{
             Method: "Copy",
@@ -1420,6 +1447,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_feature:LineFeaturesChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_feature:LineFeaturesChartInfoController"],
+        beego.ControllerComments{
+            Method: "BaseInfoEdit",
+            Router: `/chart_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_feature:LineFeaturesChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage/line_feature:LineFeaturesChartInfoController"],
         beego.ControllerComments{
             Method: "Copy",
@@ -1798,6 +1834,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "ChartInfoBaseEdit",
+            Router: `/chart_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:ChartInfoController"],
         beego.ControllerComments{
             Method: "ChartInfoBase64Upload",

+ 64 - 36
services/data/line_feature/chart_info.go

@@ -404,7 +404,7 @@ func GetFrequencyDistributionData(chartInfoId int, mappingInfo *data_manage.Char
 }
 
 // AddChartInfo 添加图表
-func AddChartInfo(req data_manage.AddChartInfoReq, edbInfoMapping *data_manage.ChartEdbInfoMapping, source int, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
+func AddChartInfo(req data_manage.AddChartInfoReq, edbInfoMapping *data_manage.ChartEdbInfoMapping, source int, sysUser *system.Admin, lang string) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
 	req.ChartName = strings.Trim(req.ChartName, " ")
@@ -447,29 +447,39 @@ func AddChartInfo(req data_manage.AddChartInfoReq, edbInfoMapping *data_manage.C
 	}
 	edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
 	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
-	}
+	{
+		var condition string
+		var pars []interface{}
+
+		switch lang {
+		case utils.EnLangVersion:
+			condition += " AND chart_name_en = ? AND source = ? "
+		default:
+			condition += " AND chart_name = ? AND source = ? "
+		}
+		pars = append(pars, req.ChartName, source)
+		count, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if tmpErr != nil {
+			errMsg = "判断图表名称是否存在失败"
+			err = errors.New("判断图表名称是否存在失败,Err:" + tmpErr.Error())
+			return
+		}
 
-	if count > 0 {
-		errMsg = "图表已存在,请重新填写"
-		err = errors.New(errMsg)
-		isSendEmail = false
-		return
+		if count > 0 {
+			errMsg = "图表已存在,请重新填写"
+			err = errors.New(errMsg)
+			isSendEmail = false
+			return
+		}
 	}
 
 	disableVal := data.CheckIsDisableChart(edbInfoIdArr)
 
 	chartInfo = new(data_manage.ChartInfo)
 	chartInfo.ChartName = req.ChartName
+	chartInfo.ChartNameEn = req.ChartName
 	chartInfo.EdbInfoIds = edbInfoIdStr
 	chartInfo.ChartClassifyId = req.ChartClassifyId
 	chartInfo.SysUserId = sysUser.AdminId
@@ -525,7 +535,7 @@ func AddChartInfo(req data_manage.AddChartInfoReq, edbInfoMapping *data_manage.C
 }
 
 // EditChartInfo 编辑图表
-func EditChartInfo(req data_manage.EditChartInfoReq, edbInfoMapping *data_manage.ChartEdbInfoMapping, sysUser *system.Admin) (chartItem *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
+func EditChartInfo(req data_manage.EditChartInfoReq, edbInfoMapping *data_manage.ChartEdbInfoMapping, sysUser *system.Admin, lang string) (chartItem *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
 	chartItem, err = data_manage.GetChartInfoById(req.ChartInfoId)
@@ -591,28 +601,46 @@ func EditChartInfo(req data_manage.EditChartInfoReq, edbInfoMapping *data_manage
 	edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
 
 	//判断图表是否存在
-	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 <> ? AND source = ?  "
+		pars = append(pars, req.ChartInfoId, chartItem.Source)
+
+		switch lang {
+		case utils.EnLangVersion:
+			condition += " AND chart_name_en = ?"
+		default:
+			condition += " AND chart_name=?"
+		}
+		pars = append(pars, req.ChartName)
+		count, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
+		if tmpErr != nil {
+			errMsg = "判断图表名称是否存在失败"
+			err = errors.New("判断图表名称是否存在失败,Err:" + tmpErr.Error())
+			return
+		}
+		if count > 0 {
+			errMsg = "图表已存在,请重新填写"
+			err = errors.New(errMsg)
+			isSendEmail = false
+			return
+		}
 	}
 
 	// 图表启用与否
 	disableVal := data.CheckIsDisableChart(edbInfoIdArr)
 
+	switch lang {
+	case utils.EnLangVersion:
+		if req.ChartNameEn == `` {
+			req.ChartNameEn = req.ChartName
+		}
+	default:
+		if req.ChartNameEn == `` {
+			req.ChartNameEn = chartItem.ChartNameEn
+		}
+	}
 	// 修改图表与指标mapping
 	err = line_feature.EditLineFeatureChartAndMapping(&req, edbInfoIdStr, "公历", req.DateType, disableVal, req.ExtraConfig)
 	if err != nil {
@@ -635,7 +663,7 @@ func EditChartInfo(req data_manage.EditChartInfoReq, edbInfoMapping *data_manage
 }
 
 // CopyChartInfo 复制图表
-func CopyChartInfo(configId, configSource, classifyId int, chartName string, edbInfoMapping *data_manage.ChartEdbInfoMapping, oldChartInfo *data_manage.ChartInfo, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
+func CopyChartInfo(configId, configSource, classifyId int, chartName string, edbInfoMapping *data_manage.ChartEdbInfoMapping, oldChartInfo *data_manage.ChartInfo, sysUser *system.Admin, lang string) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
 	multipleGraphConfig, err := data_manage.GetMultipleGraphConfigById(configId)
@@ -663,7 +691,7 @@ func CopyChartInfo(configId, configSource, classifyId int, chartName string, edb
 		MarkersAreas:    oldChartInfo.MarkersAreas,
 	}
 	chartSource := oldChartInfo.Source // 默认是相关性图
-	chartInfo, err, errMsg, isSendEmail = AddChartInfo(addChartReq, edbInfoMapping, chartSource, sysUser)
+	chartInfo, err, errMsg, isSendEmail = AddChartInfo(addChartReq, edbInfoMapping, chartSource, sysUser, lang)
 	if err != nil {
 		return
 	}