|
@@ -146,58 +146,49 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
deleteIdMap[v.StockPlantDataId] = v.StockPlantDataId
|
|
|
}
|
|
|
|
|
|
- tmpDataList := make([]float64, 0)
|
|
|
- var preSumValDeci decimal.Decimal
|
|
|
- endDate := lastDate
|
|
|
- var latestValue float64
|
|
|
+ endDate := lastDate
|
|
|
+ var latestValue float64
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
switch varietyEdbInfo.Source {
|
|
|
|
|
|
case 1, 2:
|
|
|
-
|
|
|
- for tmpDate := startDate; !tmpDate.After(lastDate); tmpDate = tmpDate.AddDate(0, 0, 1) {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- currVal, ok := dataMap[tmpDate]
|
|
|
- if !ok {
|
|
|
- continue
|
|
|
+
|
|
|
+ weekDataMap := make(map[time.Time]float64)
|
|
|
+
|
|
|
+ for currDate := startDate; !currDate.After(lastDate); currDate = currDate.AddDate(0, 0, 1) {
|
|
|
+ var weekVal, currVal float64
|
|
|
+ for i := 0; i <= 6; i++ {
|
|
|
+ tmpDate := currDate.AddDate(0, 0, -i)
|
|
|
+ tmpData, ok := dataMap[tmpDate]
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ weekVal = weekVal + tmpData
|
|
|
}
|
|
|
- preSumValDeci = decimal.NewFromFloat(currVal)
|
|
|
- latestValue = currVal
|
|
|
+ weekDataMap[currDate] = weekVal
|
|
|
|
|
|
- tmpDataList = make([]float64, 0)
|
|
|
+ if varietyEdbInfo.Source == 1 {
|
|
|
+ currVal = weekVal
|
|
|
+ } else {
|
|
|
+ preVal, ok := weekDataMap[currDate.AddDate(0, 0, -7)]
|
|
|
+ if !ok {
|
|
|
+ preVal = 0
|
|
|
+ }
|
|
|
+ currVal = preVal - weekVal
|
|
|
+ }
|
|
|
|
|
|
- timestamp := tmpDate.UnixNano() / 1e6
|
|
|
- existItem, ok := existData[tmpDate]
|
|
|
+ latestValue = currVal
|
|
|
+ timestamp := currDate.UnixNano() / 1e6
|
|
|
+ existItem, ok := existData[currDate]
|
|
|
if !ok {
|
|
|
addList = append(addList, &BaseFromStockPlantData{
|
|
|
|
|
|
VarietyEdbId: varietyEdbInfo.VarietyEdbId,
|
|
|
- DataTime: tmpDate,
|
|
|
+ DataTime: currDate,
|
|
|
Value: currVal,
|
|
|
ModifyTime: time.Now(),
|
|
|
CreateTime: time.Now(),
|
|
@@ -216,58 +207,10 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
delete(deleteIdMap, existItem.StockPlantDataId)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
case 3, 4:
|
|
|
+ tmpDataList := make([]float64, 0)
|
|
|
+ preSumValDeci := decimal.NewFromFloat(0)
|
|
|
+
|
|
|
|
|
|
for tmpDate := startDate; !tmpDate.After(lastDate); tmpDate = tmpDate.AddDate(0, 0, 1) {
|
|
|
tmpData, ok := dataMap[tmpDate]
|
|
@@ -291,10 +234,10 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
sumValDeci := decimal.NewFromFloat(sumVal)
|
|
|
|
|
|
var currVal float64
|
|
|
- if varietyEdbInfo.Source == 2 {
|
|
|
- currVal, _ = (decimal.NewFromFloat(sumVal).Sub(preSumValDeci)).Round(4).Float64()
|
|
|
- } else {
|
|
|
+ if varietyEdbInfo.Source == 3 {
|
|
|
currVal, _ = sumValDeci.Round(4).Float64()
|
|
|
+ } else {
|
|
|
+ currVal, _ = (preSumValDeci.Sub(decimal.NewFromFloat(sumVal))).Round(4).Float64()
|
|
|
}
|
|
|
latestValue = currVal
|
|
|
|
|
@@ -344,10 +287,10 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
sumValDeci := decimal.NewFromFloat(sumVal)
|
|
|
|
|
|
var currVal float64
|
|
|
- if varietyEdbInfo.Source == 2 {
|
|
|
- currVal, _ = (decimal.NewFromFloat(sumVal).Sub(preSumValDeci)).Round(4).Float64()
|
|
|
- } else {
|
|
|
+ if varietyEdbInfo.Source == 3 {
|
|
|
currVal, _ = sumValDeci.Round(4).Float64()
|
|
|
+ } else {
|
|
|
+ currVal, _ = (preSumValDeci.Sub(decimal.NewFromFloat(sumVal))).Round(4).Float64()
|
|
|
}
|
|
|
latestValue = currVal
|
|
|
|
|
@@ -374,6 +317,7 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
delete(deleteIdMap, existItem.StockPlantDataId)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
default:
|
|
|
err = errors.New("错误的指标类型")
|
|
|
return
|