|
@@ -290,6 +290,7 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
}
|
|
}
|
|
|
|
|
|
var formulaInt int
|
|
var formulaInt int
|
|
|
|
+
|
|
if req.Source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS ||
|
|
if req.Source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS ||
|
|
req.Source == utils.DATA_SOURCE_CALCULATE_HBZ ||
|
|
req.Source == utils.DATA_SOURCE_CALCULATE_HBZ ||
|
|
req.Source == utils.DATA_SOURCE_CALCULATE_HCZ ||
|
|
req.Source == utils.DATA_SOURCE_CALCULATE_HCZ ||
|
|
@@ -347,6 +348,14 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取指标信息失败"
|
|
|
|
+ br.ErrMsg = "获取指标信息失败:Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
fromEdbInfo, err := models.GetEdbInfoById(req.FromEdbInfoId)
|
|
fromEdbInfo, err := models.GetEdbInfoById(req.FromEdbInfoId)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "获取指标信息失败"
|
|
br.Msg = "获取指标信息失败"
|
|
@@ -364,7 +373,65 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
adminName := req.AdminName
|
|
adminName := req.AdminName
|
|
var sourName string
|
|
var sourName string
|
|
var edbInfoId int
|
|
var edbInfoId int
|
|
- if req.Source == utils.DATA_SOURCE_CALCULATE_LJZZY {
|
|
+ if req.Source == utils.DATA_SOURCE_CALCULATE {
|
|
|
|
+ fromEdbInfoList, tmpErr := models.GetEdbInfoCalculateDetailList(req.EdbInfoId)
|
|
|
|
+ err = tmpErr
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取计算指标失败:err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if len(fromEdbInfoList) <= 0 {
|
|
|
|
+ br.Msg = "计算指标所依赖指标不存在"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ fromEdbInfoItem := fromEdbInfoList[0]
|
|
|
|
+ if fromEdbInfoItem == nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var formulaStr string
|
|
|
|
+ var edbInfoIdBytes []string
|
|
|
|
+ for _, v := range fromEdbInfoList {
|
|
|
|
+ formulaStr += v.FromTag + ","
|
|
|
|
+ edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
|
|
|
|
+ }
|
|
|
|
+ formulaStr = strings.Trim(formulaStr, ",")
|
|
|
|
+ formulaMap := services.CheckFormula(edbInfo.CalculateFormula)
|
|
|
|
+ for _, v := range formulaMap {
|
|
|
|
+ if !strings.Contains(formulaStr, v) {
|
|
|
|
+ br.Msg = "公式错误,请重新填写"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ edbInfoList := make([]*models.EdbInfo, 0)
|
|
|
|
+
|
|
|
|
+ for _, v := range fromEdbInfoList {
|
|
|
|
+ edbInfo, tmpErr := models.GetEdbInfoById(v.FromEdbInfoId)
|
|
|
|
+ err = tmpErr
|
|
|
|
+ if err != nil {
|
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "指标 " + strconv.Itoa(v.FromEdbInfoId) + " 不存在"
|
|
|
|
+ } else {
|
|
|
|
+ br.Msg = "获取指标失败:Err:" + err.Error()
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ edbInfoList = append(edbInfoList, edbInfo)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ err = models.DeleteCalculateData(edbInfoId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "清空运算指标失败:Err:" + err.Error() + " edb_info_id:" + strconv.Itoa(edbInfoId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ err = models.Calculate(edbInfoList, edbInfoId, edbCode, edbInfo.CalculateFormula, edbInfoIdBytes)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "生成计算指标失败,Calculate Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ } else if req.Source == utils.DATA_SOURCE_CALCULATE_LJZZY {
|
|
sourName = "累计值转月值"
|
|
sourName = "累计值转月值"
|
|
if fromEdbInfo.Frequency != "月度" {
|
|
if fromEdbInfo.Frequency != "月度" {
|
|
br.Msg = "请选择月度指标"
|
|
br.Msg = "请选择月度指标"
|
|
@@ -412,7 +479,7 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
edbInfoId, err = models.AddCalculateBp(&req, fromEdbInfo, edbCode, uniqueCode, adminId, adminName)
|
|
edbInfoId, err = models.AddCalculateBp(&req, fromEdbInfo, edbCode, uniqueCode, adminId, adminName)
|
|
} else if req.Source == utils.DATA_SOURCE_CALCULATE_TIME_SHIFT {
|
|
} else if req.Source == utils.DATA_SOURCE_CALCULATE_TIME_SHIFT {
|
|
sourName = "时间移位"
|
|
sourName = "时间移位"
|
|
- edbInfoId, err = models.AddCalculateTimeShift(&req, fromEdbInfo, edbCode, uniqueCode, adminId, adminName)
|
|
+ edbInfoId, err = models.EditCalculateTimeShift(&req, fromEdbInfo, edbCode, edbInfo)
|
|
} else if req.Source == utils.DATA_SOURCE_CALCULATE_ZJPJ {
|
|
} else if req.Source == utils.DATA_SOURCE_CALCULATE_ZJPJ {
|
|
sourName = "直接拼接"
|
|
sourName = "直接拼接"
|
|
|
|
|
|
@@ -435,7 +502,8 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
br.ErrMsg = "两个指标不允许为同一个"
|
|
br.ErrMsg = "两个指标不允许为同一个"
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- edbInfoId, err = models.AddCalculateZjpj(&req, fromEdbInfo, secondEdbInfo, edbCode, uniqueCode, adminId, adminName)
|
|
+
|
|
|
|
+ edbInfoId, err = models.EditCalculateZjpj(&req, edbInfo, fromEdbInfo, secondEdbInfo)
|
|
} else if req.Source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ {
|
|
} else if req.Source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ {
|
|
sourName = "累计值同比拼接"
|
|
sourName = "累计值同比拼接"
|
|
|
|
|
|
@@ -473,7 +541,7 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
br.ErrMsg = "两个指标不允许为同一个"
|
|
br.ErrMsg = "两个指标不允许为同一个"
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- edbInfoId, err = models.AddCalculateLjztbpj(&req, fromEdbInfo, tbzEdbInfo, edbCode, uniqueCode, adminId, adminName)
|
|
+ edbInfoId, err = models.EditCalculateLjztbpj(&req, edbInfo, fromEdbInfo, tbzEdbInfo)
|
|
} else {
|
|
} else {
|
|
br.Msg = "无效计算方式"
|
|
br.Msg = "无效计算方式"
|
|
br.ErrMsg = "无效计算方式,source:" + strconv.Itoa(req.Source)
|
|
br.ErrMsg = "无效计算方式,source:" + strconv.Itoa(req.Source)
|