|
@@ -11,7 +11,7 @@ import (
|
|
|
)
|
|
|
|
|
|
// EdbCalculateBatchSave 批量指标运算
|
|
|
-func EdbCalculateBatchSave(req models.EdbInfoCalculateBatchSaveReq) (edbInfo *models.EdbInfo, uniqueCode string, err error, errMsg string) {
|
|
|
+func EdbCalculateBatchSave(req models.EdbInfoCalculateBatchSaveReq, lang string) (edbInfo *models.EdbInfo, uniqueCode string, err error, errMsg string) {
|
|
|
// 校验参数
|
|
|
req.EdbName = strings.Trim(req.EdbName, " ")
|
|
|
if req.EdbName == "" {
|
|
@@ -213,7 +213,7 @@ func EdbCalculateBatchSave(req models.EdbInfoCalculateBatchSaveReq) (edbInfo *mo
|
|
|
req2.EdbInfoIdArr = append(req2.EdbInfoIdArr, t)
|
|
|
}
|
|
|
|
|
|
- edbInfo, _, err, errMsg = EdbCalculateAdd(req2)
|
|
|
+ edbInfo, _, err, errMsg = EdbCalculateAdd(req2, lang)
|
|
|
case utils.DATA_SOURCE_CALCULATE_LJZZY:
|
|
|
sourName = "累计值转月值"
|
|
|
if fromEdbInfo.Frequency != "月度" {
|
|
@@ -865,7 +865,7 @@ func EdbCalculateBatchEdit(req models.EdbInfoCalculateBatchEditReq) (edbInfo *mo
|
|
|
}
|
|
|
|
|
|
// EdbCalculateAdd 新增指标运算
|
|
|
-func EdbCalculateAdd(req models.EdbInfoCalculateSaveReq) (edbInfo *models.EdbInfo, uniqueCode string, err error, errMsg string) {
|
|
|
+func EdbCalculateAdd(req models.EdbInfoCalculateSaveReq, lang string) (edbInfo *models.EdbInfo, uniqueCode string, err error, errMsg string) {
|
|
|
calculateFormula := req.CalculateFormula
|
|
|
calculateFormula = strings.Replace(calculateFormula, "(", "(", -1)
|
|
|
calculateFormula = strings.Replace(calculateFormula, ")", ")", -1)
|
|
@@ -898,24 +898,21 @@ func EdbCalculateAdd(req models.EdbInfoCalculateSaveReq) (edbInfo *models.EdbInf
|
|
|
req.EdbInfoIdArr = newEdbInfoIdArr
|
|
|
}
|
|
|
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
- condition += " AND edb_name=? "
|
|
|
- pars = append(pars, req.EdbName)
|
|
|
-
|
|
|
- count, err := models.GetEdbInfoCountByCondition(condition, pars)
|
|
|
+ // 校验指标名称是否存在
|
|
|
+ existEdbName, err := checkExistByEdbName(req.EdbName, lang)
|
|
|
if err != nil {
|
|
|
errMsg = "判断指标名称是否存在失败,Err:" + err.Error()
|
|
|
err = fmt.Errorf("判断指标名称是否存在失败")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if count > 0 {
|
|
|
- err = fmt.Errorf("指标名称已存在,请重新填写")
|
|
|
+ if existEdbName {
|
|
|
errMsg = "指标名称已存在,请重新填写"
|
|
|
+ err = fmt.Errorf(errMsg)
|
|
|
//br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
//检验公式
|
|
|
var formulaStr string
|
|
|
var edbInfoIdBytes []string
|
|
@@ -1013,3 +1010,94 @@ func EdbCalculateAdd(req models.EdbInfoCalculateSaveReq) (edbInfo *models.EdbInf
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// checkExistByEdbName
|
|
|
+// @Description: 根据指标名称校验该指标是否存在库中
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-04-18 14:58:52
|
|
|
+// @param edbName string
|
|
|
+// @param lang string
|
|
|
+// @return has bool
|
|
|
+// @return err error
|
|
|
+func checkExistByEdbName(edbName, lang string) (has bool, err error) {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ switch lang {
|
|
|
+ case utils.EnLangVersion:
|
|
|
+ condition += " AND edb_name_en = ? "
|
|
|
+ default:
|
|
|
+ condition += " AND edb_name=? "
|
|
|
+ }
|
|
|
+
|
|
|
+ pars = append(pars, edbName)
|
|
|
+
|
|
|
+ count, err := models.GetEdbInfoCountByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ has = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// checkExistByEdbNameAndEdbInfoId
|
|
|
+// @Description: 根据指标名称和指标ID校验库中是否还存在其他同名指标
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-04-18 15:00:19
|
|
|
+// @param edbInfoId int
|
|
|
+// @param edbName string
|
|
|
+// @param lang string
|
|
|
+// @return has bool
|
|
|
+// @return err error
|
|
|
+func checkExistByEdbNameAndEdbInfoId(edbInfoId int, edbName, lang string) (has bool, err error) {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += " AND edb_info_id<>? "
|
|
|
+ pars = append(pars, edbInfoId)
|
|
|
+
|
|
|
+ switch lang {
|
|
|
+ case utils.EnLangVersion:
|
|
|
+ condition += " AND edb_name_en = ? "
|
|
|
+ default:
|
|
|
+ condition += " AND edb_name=? "
|
|
|
+ }
|
|
|
+
|
|
|
+ pars = append(pars, edbName)
|
|
|
+
|
|
|
+ count, err := models.GetEdbInfoCountByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ has = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// CheckExistByEdbNameAndEdbInfoId
|
|
|
+// @Description: 根据指标名称和指标ID校验库中是否还存在其他同名指标
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-04-18 15:01:44
|
|
|
+// @param edbInfoId int
|
|
|
+// @param edbName string
|
|
|
+// @param lang string
|
|
|
+// @return has bool
|
|
|
+// @return err error
|
|
|
+func CheckExistByEdbNameAndEdbInfoId(edbInfoId int, edbName, lang string) (has bool, err error) {
|
|
|
+ // 指标没有入库的情况
|
|
|
+ if edbInfoId == 0 {
|
|
|
+ return checkExistByEdbName(edbName, lang)
|
|
|
+ }
|
|
|
+
|
|
|
+ //指标已经入库的情况
|
|
|
+ return checkExistByEdbNameAndEdbInfoId(edbInfoId, edbName, lang)
|
|
|
+}
|