|
@@ -9,6 +9,7 @@ import (
|
|
|
"eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/alarm_msg"
|
|
|
"eta/eta_api/services/data/data_manage_permission"
|
|
|
+ "eta/eta_api/services/data/excel"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
"github.com/shopspring/decimal"
|
|
@@ -3617,7 +3618,34 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
for _, quarterData := range quarterDataList[len(quarterDataList)-1:] {
|
|
|
for _, vv := range quarterData.DataList {
|
|
|
if markerLine.TimeIntervalType == 1 {
|
|
|
- if vv.DataTime >= markerLine.StartDate.Date && vv.DataTime <= markerLine.EndDate.Date {
|
|
|
+ startDate := markerLine.StartDate.Date
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ if markerLine.StartDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ startDate = quarterData.DataList[len(quarterData.DataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ startDate, err = HandleDateChange(startDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if markerLine.EndDate.TimeType == 1 {
|
|
|
+ // 固定
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ } else if markerLine.EndDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ endDate = quarterData.DataList[len(quarterData.DataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ endDate, err = HandleDateChange(endDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if vv.DataTime >= startDate && vv.DataTime <= endDate {
|
|
|
averge += vv.Value
|
|
|
}
|
|
|
} else {
|
|
@@ -3631,7 +3659,34 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
dataList := dataList.([]*data_manage.EdbDataList)
|
|
|
for _, dataItem := range dataList {
|
|
|
if markerLine.TimeIntervalType == 1 {
|
|
|
- if dataItem.DataTime >= markerLine.StartDate.Date && dataItem.DataTime <= markerLine.EndDate.Date {
|
|
|
+ startDate := markerLine.StartDate.Date
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ if markerLine.StartDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ startDate = dataList[len(dataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ startDate, err = HandleDateChange(startDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if markerLine.EndDate.TimeType == 1 {
|
|
|
+ // 固定
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ } else if markerLine.EndDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ endDate = dataList[len(dataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ endDate, err = HandleDateChange(endDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if dataItem.DataTime >= startDate && dataItem.DataTime <= endDate {
|
|
|
averge += dataItem.Value
|
|
|
}
|
|
|
} else {
|
|
@@ -3653,7 +3708,34 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
for _, quarterData := range quarterDataList[len(quarterDataList)-1:] {
|
|
|
for _, vv := range quarterData.DataList {
|
|
|
if markerLine.TimeIntervalType == 1 {
|
|
|
- if vv.DataTime >= markerLine.StartDate.Date && vv.DataTime <= markerLine.EndDate.Date {
|
|
|
+ startDate := markerLine.StartDate.Date
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ if markerLine.StartDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ startDate = quarterData.DataList[len(quarterData.DataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ startDate, err = HandleDateChange(startDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if markerLine.EndDate.TimeType == 1 {
|
|
|
+ // 固定
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ } else if markerLine.EndDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ endDate = quarterData.DataList[len(quarterData.DataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ endDate, err = HandleDateChange(endDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if vv.DataTime >= startDate && vv.DataTime <= endDate {
|
|
|
dataList = append(faloatList, vv.Value)
|
|
|
averge += vv.Value
|
|
|
}
|
|
@@ -3674,7 +3756,34 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
floatList := make([]float64, 0)
|
|
|
for _, dataItem := range dataList {
|
|
|
if markerLine.TimeIntervalType == 1 {
|
|
|
- if dataItem.DataTime >= markerLine.StartDate.Date && dataItem.DataTime <= markerLine.EndDate.Date {
|
|
|
+ startDate := markerLine.StartDate.Date
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ if markerLine.StartDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ startDate = dataList[len(dataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ startDate, err = HandleDateChange(startDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if markerLine.EndDate.TimeType == 1 {
|
|
|
+ // 固定
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ } else if markerLine.EndDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ endDate = dataList[len(dataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ endDate, err = HandleDateChange(endDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if dataItem.DataTime >= startDate && dataItem.DataTime <= endDate {
|
|
|
floatList = append(floatList, dataItem.Value)
|
|
|
averge += dataItem.Value
|
|
|
}
|
|
@@ -3700,7 +3809,34 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
for _, quarterData := range quarterDataList[len(quarterDataList)-1:] {
|
|
|
for _, vv := range quarterData.DataList {
|
|
|
if markerLine.TimeIntervalType == 1 {
|
|
|
- if vv.DataTime >= markerLine.StartDate.Date && vv.DataTime <= markerLine.EndDate.Date {
|
|
|
+ startDate := markerLine.StartDate.Date
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ if markerLine.StartDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ startDate = quarterData.DataList[len(quarterData.DataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ startDate, err = HandleDateChange(startDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if markerLine.EndDate.TimeType == 1 {
|
|
|
+ // 固定
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ } else if markerLine.EndDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ endDate = quarterData.DataList[len(quarterData.DataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ endDate, err = HandleDateChange(endDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if vv.DataTime >= startDate && vv.DataTime <= endDate {
|
|
|
faloatList = append(faloatList, vv.Value)
|
|
|
}
|
|
|
} else {
|
|
@@ -3717,7 +3853,34 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
floatList := make([]float64, 0)
|
|
|
for _, dataItem := range dataList {
|
|
|
if markerLine.TimeIntervalType == 1 {
|
|
|
- if dataItem.DataTime >= markerLine.StartDate.Date && dataItem.DataTime <= markerLine.EndDate.Date {
|
|
|
+ startDate := markerLine.StartDate.Date
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ if markerLine.StartDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ startDate = dataList[len(dataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ startDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ startDate, err = HandleDateChange(startDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if markerLine.EndDate.TimeType == 1 {
|
|
|
+ // 固定
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ } else if markerLine.EndDate.TimeType == 2 {
|
|
|
+ // 动态
|
|
|
+ if markerLine.StartDate.Conf.BaseDate == 1 {
|
|
|
+ // 指标最新日期
|
|
|
+ endDate = dataList[len(dataList)-1].DataTime
|
|
|
+ } else {
|
|
|
+ // 系统日期
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ endDate, err = HandleDateChange(endDate, markerLine.StartDate.Conf)
|
|
|
+ }
|
|
|
+ if dataItem.DataTime >= startDate && dataItem.DataTime <= endDate {
|
|
|
floatList = append(floatList, dataItem.Value)
|
|
|
}
|
|
|
} else {
|
|
@@ -3731,3 +3894,36 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// HandleDateChange 处理日期变换
|
|
|
+func HandleDateChange(date string, edbDateConf data_manage.EdbDateChangeConf) (newDate string, err error) {
|
|
|
+ newDate = date
|
|
|
+ if newDate != "" {
|
|
|
+ if len(edbDateConf.DateChange) > 0 {
|
|
|
+ var dateTime time.Time
|
|
|
+ dateTime, err = time.ParseInLocation(utils.FormatDate, newDate, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("日期解析失败: %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range edbDateConf.DateChange {
|
|
|
+ if v.ChangeType == 1 {
|
|
|
+ dateTime = dateTime.AddDate(v.Year, v.Month, v.Day)
|
|
|
+ newDate = dateTime.Format(utils.FormatDate)
|
|
|
+ } else if v.ChangeType == 2 {
|
|
|
+ newDate, err, _ = excel.HandleSystemAppointDateT(dateTime, v.FrequencyDay, v.Frequency)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dateTime, err = time.ParseInLocation(utils.FormatDate, newDate, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("日期解析失败: %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|