|
@@ -193,7 +193,7 @@ func RefreshAllPredictCalculateCjjx(edbInfoId, source int, fromEdbInfo *EdbInfo,
|
|
|
func refreshAllPredictCalculateCjjx(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate, calendar string, formulaInt int) (latestDateStr string, latestValue float64, err error) {
|
|
|
edbInfoIdStr := strconv.Itoa(edbInfoId)
|
|
|
|
|
|
- dataList, err := GetPredictEdbDataListAllByStartDate(fromEdbInfo, 0, "")
|
|
|
+ dataList, err := GetPredictEdbDataListAllByStartDate(fromEdbInfo, 1, "")
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -204,6 +204,14 @@ func refreshAllPredictCalculateCjjx(to orm.TxOrmer, edbInfoId, source int, fromE
|
|
|
dateArr = append(dateArr, v.DataTime)
|
|
|
dataMap[v.DataTime] = v
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ handleDataMap := make(map[string]float64)
|
|
|
+ _, err = HandleDataByLinearRegression(dataList, handleDataMap)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
existDataList := make([]*EdbData, 0)
|
|
|
dataTableName := GetEdbDataTableName(source)
|
|
@@ -223,10 +231,10 @@ func refreshAllPredictCalculateCjjx(to orm.TxOrmer, edbInfoId, source int, fromE
|
|
|
addSql := ` INSERT INTO edb_data_predict_calculate_cjjx(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
|
|
|
var isAdd bool
|
|
|
|
|
|
- isCompatibility := false
|
|
|
- if utils.InArrayByStr([]string{"日度", "周度", "季度", "月度"}, fromEdbInfo.Frequency) {
|
|
|
- isCompatibility = true
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
moveDayMap := make(map[int]int, 0)
|
|
@@ -264,35 +272,36 @@ func refreshAllPredictCalculateCjjx(to orm.TxOrmer, edbInfoId, source int, fromE
|
|
|
hisoryPreDate = hisoryPreDate.AddDate(0, 0, moveDay)
|
|
|
}
|
|
|
|
|
|
- hisoryPreDateStr := hisoryPreDate.Format(utils.FormatDate)
|
|
|
- if findItem, ok := dataMap[hisoryPreDateStr]; ok {
|
|
|
- pastValueList = append(pastValueList, findItem.Value)
|
|
|
- } else if isCompatibility {
|
|
|
- nextDateDay := hisoryPreDate
|
|
|
- preDateDay := hisoryPreDate
|
|
|
- for i := 0; i < 35; i++ {
|
|
|
- nextDateDayStr := nextDateDay.Format(utils.FormatDate)
|
|
|
- if findItem, ok := dataMap[nextDateDayStr]; ok {
|
|
|
- pastValueList = append(pastValueList, findItem.Value)
|
|
|
- break
|
|
|
- } else {
|
|
|
- preDateDayStr := preDateDay.Format(utils.FormatDate)
|
|
|
- if findItem, ok := dataMap[preDateDayStr]; ok {
|
|
|
- pastValueList = append(pastValueList, findItem.Value)
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- nextDateDay = nextDateDay.AddDate(0, 0, 1)
|
|
|
- preDateDay = preDateDay.AddDate(0, 0, -1)
|
|
|
- }
|
|
|
+ historyPreDateStr := hisoryPreDate.Format(utils.FormatDate)
|
|
|
+ if tmpValue, ok := handleDataMap[historyPreDateStr]; ok {
|
|
|
+ pastValueList = append(pastValueList, tmpValue)
|
|
|
}
|
|
|
- if av == "2022-11-28" {
|
|
|
- fmt.Println(moveDay)
|
|
|
- }
|
|
|
- }
|
|
|
- if av == "2022-11-28" {
|
|
|
- fmt.Println(pastValueList)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if len(pastValueList) == formulaInt {
|
|
|
delete(removeDataTimeMap, av)
|