|
@@ -155,37 +155,43 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
case 1, 2:
|
|
|
// 期间周度数据
|
|
|
for tmpDate := startDate; !tmpDate.After(lastDate); tmpDate = tmpDate.AddDate(0, 0, 1) {
|
|
|
- tmpData, ok := dataMap[tmpDate]
|
|
|
+ //tmpData, ok := dataMap[tmpDate]
|
|
|
+ //if !ok {
|
|
|
+ // continue
|
|
|
+ //}
|
|
|
+ //tmpDataList = append(tmpDataList, tmpData)
|
|
|
+ //
|
|
|
+ //if tmpDate.Weekday() != 0 {
|
|
|
+ // // 如果不是周日,那么就退出当前循环
|
|
|
+ // continue
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //
|
|
|
+ //// 日期期间汇总数据
|
|
|
+ //var sumVal float64
|
|
|
+ //for _, tmpVal := range tmpDataList {
|
|
|
+ // sumVal += tmpVal
|
|
|
+ //}
|
|
|
+ //sumValDeci := decimal.NewFromFloat(sumVal)
|
|
|
+ //
|
|
|
+ //var currVal float64
|
|
|
+ //if varietyEdbInfo.Source == 2 { // 如果是变动的话,那么是
|
|
|
+ // currVal, _ = (decimal.NewFromFloat(sumVal).Sub(preSumValDeci)).Round(4).Float64()
|
|
|
+ //} else {
|
|
|
+ // currVal, _ = sumValDeci.Round(4).Float64()
|
|
|
+ //}
|
|
|
+ //preSumValDeci = sumValDeci // 赋值给上一个周期的截止值
|
|
|
+
|
|
|
+ currVal, ok := dataMap[tmpDate]
|
|
|
if !ok {
|
|
|
continue
|
|
|
}
|
|
|
- tmpDataList = append(tmpDataList, tmpData)
|
|
|
-
|
|
|
- if tmpDate.Weekday() != 0 {
|
|
|
- // 如果不是周日,那么就退出当前循环
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- timestamp := tmpDate.UnixNano() / 1e6
|
|
|
-
|
|
|
- // 日期期间汇总数据
|
|
|
- var sumVal float64
|
|
|
- for _, tmpVal := range tmpDataList {
|
|
|
- sumVal += tmpVal
|
|
|
- }
|
|
|
- sumValDeci := decimal.NewFromFloat(sumVal)
|
|
|
-
|
|
|
- var currVal float64
|
|
|
- if varietyEdbInfo.Source == 2 { // 如果是变动的话,那么是
|
|
|
- currVal, _ = (decimal.NewFromFloat(sumVal).Sub(preSumValDeci)).Round(4).Float64()
|
|
|
- } else {
|
|
|
- currVal, _ = sumValDeci.Round(4).Float64()
|
|
|
- }
|
|
|
+ preSumValDeci = decimal.NewFromFloat(currVal) // 赋值给上一个周期的截止值
|
|
|
latestValue = currVal
|
|
|
|
|
|
- preSumValDeci = sumValDeci // 赋值给上一个周期的截止值
|
|
|
tmpDataList = make([]float64, 0) //重置值列表,便于下一个周期计算
|
|
|
|
|
|
+ timestamp := tmpDate.UnixNano() / 1e6
|
|
|
existItem, ok := existData[tmpDate]
|
|
|
if !ok {
|
|
|
addList = append(addList, &BaseFromStockPlantData{
|
|
@@ -212,54 +218,54 @@ func calculateEdb(to orm.TxOrmer, varietyEdbInfo *VarietyEdbInfo, dataMap map[ti
|
|
|
}
|
|
|
|
|
|
// 最后一周,不满一周时的计算
|
|
|
- lastDateWeek := lastDate.Weekday()
|
|
|
- if lastDateWeek != 0 {
|
|
|
- // 如果最后一天不是周日,那么需要把日期调整到周日
|
|
|
- subDay := 7 - lastDateWeek
|
|
|
- tmpDate := lastDate.AddDate(0, 0, int(subDay))
|
|
|
- endDate = tmpDate //数据实际结束的日期
|
|
|
-
|
|
|
- existItem, ok := existData[tmpDate]
|
|
|
-
|
|
|
- timestamp := tmpDate.UnixNano() / 1e6
|
|
|
- // 日期期间汇总数据
|
|
|
- var sumVal float64
|
|
|
- for _, tmpVal := range tmpDataList {
|
|
|
- sumVal += tmpVal
|
|
|
- }
|
|
|
- sumValDeci := decimal.NewFromFloat(sumVal)
|
|
|
-
|
|
|
- var currVal float64
|
|
|
- if varietyEdbInfo.Source == 2 { // 如果是变动的话,那么是
|
|
|
- currVal, _ = (decimal.NewFromFloat(sumVal).Sub(preSumValDeci)).Round(4).Float64()
|
|
|
- } else {
|
|
|
- currVal, _ = sumValDeci.Round(4).Float64()
|
|
|
- }
|
|
|
- latestValue = currVal
|
|
|
-
|
|
|
- if !ok {
|
|
|
- addList = append(addList, &BaseFromStockPlantData{
|
|
|
- //StockPlantDataId: 0,
|
|
|
- VarietyEdbId: varietyEdbInfo.VarietyEdbId,
|
|
|
- DataTime: tmpDate,
|
|
|
- Value: currVal,
|
|
|
- ModifyTime: time.Now(),
|
|
|
- CreateTime: time.Now(),
|
|
|
- DataTimestamp: timestamp,
|
|
|
- })
|
|
|
- } else {
|
|
|
- if existItem.Value != currVal {
|
|
|
- existItem.Value = currVal
|
|
|
- existItem.ModifyTime = time.Now()
|
|
|
- _, err = to.Update(existItem, "Value", "ModifyTime")
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- delete(deleteIdMap, existItem.StockPlantDataId)
|
|
|
- }
|
|
|
- }
|
|
|
+ //lastDateWeek := lastDate.Weekday()
|
|
|
+ //if lastDateWeek != 0 {
|
|
|
+ // // 如果最后一天不是周日,那么需要把日期调整到周日
|
|
|
+ // subDay := 7 - lastDateWeek
|
|
|
+ // tmpDate := lastDate.AddDate(0, 0, int(subDay))
|
|
|
+ // endDate = tmpDate //数据实际结束的日期
|
|
|
+ //
|
|
|
+ // existItem, ok := existData[tmpDate]
|
|
|
+ //
|
|
|
+ // timestamp := tmpDate.UnixNano() / 1e6
|
|
|
+ // // 日期期间汇总数据
|
|
|
+ // var sumVal float64
|
|
|
+ // for _, tmpVal := range tmpDataList {
|
|
|
+ // sumVal += tmpVal
|
|
|
+ // }
|
|
|
+ // sumValDeci := decimal.NewFromFloat(sumVal)
|
|
|
+ //
|
|
|
+ // var currVal float64
|
|
|
+ // if varietyEdbInfo.Source == 2 { // 如果是变动的话,那么是
|
|
|
+ // currVal, _ = (decimal.NewFromFloat(sumVal).Sub(preSumValDeci)).Round(4).Float64()
|
|
|
+ // } else {
|
|
|
+ // currVal, _ = sumValDeci.Round(4).Float64()
|
|
|
+ // }
|
|
|
+ // latestValue = currVal
|
|
|
+ //
|
|
|
+ // if !ok {
|
|
|
+ // addList = append(addList, &BaseFromStockPlantData{
|
|
|
+ // //StockPlantDataId: 0,
|
|
|
+ // VarietyEdbId: varietyEdbInfo.VarietyEdbId,
|
|
|
+ // DataTime: tmpDate,
|
|
|
+ // Value: currVal,
|
|
|
+ // ModifyTime: time.Now(),
|
|
|
+ // CreateTime: time.Now(),
|
|
|
+ // DataTimestamp: timestamp,
|
|
|
+ // })
|
|
|
+ // } else {
|
|
|
+ // if existItem.Value != currVal {
|
|
|
+ // existItem.Value = currVal
|
|
|
+ // existItem.ModifyTime = time.Now()
|
|
|
+ // _, err = to.Update(existItem, "Value", "ModifyTime")
|
|
|
+ // if err != nil {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // delete(deleteIdMap, existItem.StockPlantDataId)
|
|
|
+ // }
|
|
|
+ //}
|
|
|
|
|
|
case 3, 4:
|
|
|
// 期间月度数据
|