|
@@ -7,6 +7,7 @@ import (
|
|
|
"encoding/base64"
|
|
|
"encoding/hex"
|
|
|
"encoding/json"
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"github.com/shopspring/decimal"
|
|
|
"image"
|
|
@@ -1117,13 +1118,13 @@ func GetFrequencyEndDay(currDate time.Time, frequency string) (endDate time.Time
|
|
|
// 小于0,代表右侧是高频(例:左侧:周度,右侧:日度)
|
|
|
func CheckFrequency(leftFrequency, rightFrequency string) int {
|
|
|
frequencyMap := map[string]int{
|
|
|
- "年度": 0,
|
|
|
+ "年度": 0,
|
|
|
"半年度": 1,
|
|
|
- "季度": 2,
|
|
|
- "月度": 3,
|
|
|
- "旬度": 4,
|
|
|
- "周度": 5,
|
|
|
- "日度": 6,
|
|
|
+ "季度": 2,
|
|
|
+ "月度": 3,
|
|
|
+ "旬度": 4,
|
|
|
+ "周度": 5,
|
|
|
+ "日度": 6,
|
|
|
}
|
|
|
|
|
|
return frequencyMap[leftFrequency] - frequencyMap[rightFrequency]
|
|
@@ -1256,3 +1257,34 @@ func DateConvMysqlConvMongo(dateCon string) string {
|
|
|
}
|
|
|
return cond
|
|
|
}
|
|
|
+
|
|
|
+// GenerateEdbCodeMap 当前已经生成的指标编码map(暂时不做定时数据清理了,因为数据不大,我们至少每个月会重启一次,所以暂时不做定时数据清理)
|
|
|
+var GenerateEdbCodeMap = map[string]bool{}
|
|
|
+
|
|
|
+// GenerateEdbCode
|
|
|
+// @Description: 生成指标编码
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-06-05 09:49:53
|
|
|
+// @param num int
|
|
|
+// @return edbCode string
|
|
|
+// @return err error
|
|
|
+func GenerateEdbCode(num int) (edbCode string, err error) {
|
|
|
+ if num >= 10 {
|
|
|
+ err = errors.New("指标编码生成失败,请重新生成")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 4位随机数
|
|
|
+ randStr := GetRandDigit(4)
|
|
|
+ // 年月日时分秒+4位随机数
|
|
|
+ edbCode = `C` + time.Now().Format(FormatShortDateTimeUnSpace) + randStr
|
|
|
+
|
|
|
+ if _, ok := GenerateEdbCodeMap[edbCode]; ok {
|
|
|
+ num++
|
|
|
+ edbCode, err = GenerateEdbCode(num)
|
|
|
+ }
|
|
|
+
|
|
|
+ GenerateEdbCodeMap[edbCode] = true
|
|
|
+
|
|
|
+ return
|
|
|
+}
|