|
@@ -14,8 +14,8 @@ import (
|
|
|
|
|
|
// EdbInfoCalculateSaveReq 计算(运算)指标请求参数
|
|
|
type EdbInfoCalculateSaveReq struct {
|
|
|
- AdminId int `description:"添加人id"`
|
|
|
- AdminName string `description:"添加人名称"`
|
|
|
+ AdminId int `description:"添加人id"`
|
|
|
+ AdminName string `description:"添加人名称"`
|
|
|
EdbName string `description:"指标名称"`
|
|
|
Frequency string `description:"频率"`
|
|
|
Unit string `description:"单位"`
|
|
@@ -128,103 +128,10 @@ func ReplaceFormula(edbInfoIdArr []*EdbInfo, valArr map[int]float64, formulaMap
|
|
|
}
|
|
|
replaceCount := 0
|
|
|
for dk, dv := range edbInfoIdArr {
|
|
|
- if dk == 0 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- } else {
|
|
|
- fmt.Println("valArr not found:", valArr, valOk)
|
|
|
- }
|
|
|
- } else {
|
|
|
- fmt.Println("formulaMap not found:", dKey, dk)
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 1 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- } else {
|
|
|
- fmt.Println("valArr not found:", valArr, valOk)
|
|
|
- }
|
|
|
- } else {
|
|
|
- fmt.Println("formulaMap not found:", dKey, dk)
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 2 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 3 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 4 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 5 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 6 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 7 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if dk == 8 {
|
|
|
- dKey := edbInfoIdBytes[dk]
|
|
|
- if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
- if val, valOk := valArr[dv.EdbInfoId]; valOk { //值存在
|
|
|
- dvStr := fmt.Sprintf("%v", val)
|
|
|
- formulaStr = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
- replaceCount++
|
|
|
- }
|
|
|
- }
|
|
|
+ var isReplace bool
|
|
|
+ formulaStr, isReplace = GetFormulaReplace(dk, dv.EdbInfoId, formulaStr, edbInfoIdBytes, formulaMap, valArr)
|
|
|
+ if isReplace {
|
|
|
+ replaceCount++
|
|
|
}
|
|
|
}
|
|
|
for k, v := range funMap {
|
|
@@ -237,6 +144,18 @@ func ReplaceFormula(edbInfoIdArr []*EdbInfo, valArr map[int]float64, formulaMap
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func GetFormulaReplace(index, edbInfoId int, formulaStr string, edbInfoIdBytes []string, formulaMap map[string]string, valArr map[int]float64) (formulaResult string, isReplace bool) {
|
|
|
+ dKey := edbInfoIdBytes[index]
|
|
|
+ if _, ok := formulaMap[dKey]; ok { //公式中存在
|
|
|
+ if val, valOk := valArr[edbInfoId]; valOk { //值存在
|
|
|
+ dvStr := fmt.Sprintf("%v", val)
|
|
|
+ formulaResult = strings.Replace(formulaStr, dKey, dvStr, -1)
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// GetFormulaMap 获取计算公式的map
|
|
|
func GetFormulaMap() map[string]string {
|
|
|
funMap := make(map[string]string)
|
|
@@ -254,8 +173,8 @@ func GetFormulaMap() map[string]string {
|
|
|
|
|
|
// EdbInfoCalculateBatchSaveReq 计算指标的请求参数
|
|
|
type EdbInfoCalculateBatchSaveReq struct {
|
|
|
- AdminId int `description:"添加人id"`
|
|
|
- AdminName string `description:"添加人名称"`
|
|
|
+ AdminId int `description:"添加人id"`
|
|
|
+ AdminName string `description:"添加人名称"`
|
|
|
EdbInfoId int `description:"指标id"`
|
|
|
EdbName string `description:"指标名称"`
|
|
|
Frequency string `description:"频度"`
|