Browse Source

fix:兼容mongo配置

Roc 10 months ago
parent
commit
8696304427

+ 10 - 10
models/base_from_adjust.go

@@ -267,11 +267,11 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 	}
 
 	// 查询关联指标的数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? AND data_time > ? "
-	pars = append(pars, fromEdbInfo.EdbInfoId, edbAdjustConf.SourceEndDate)
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId:         fromEdbInfo.EdbInfoId,
+		StartDataTime:     edbAdjustConf.SourceEndDate.Format(utils.FormatDate),
+		StartDataTimeCond: ">",
+	}, 1)
 	if err != nil {
 		return err
 	}
@@ -279,11 +279,11 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 	// 已经入库的日期数据
 	existDataMap := make(map[string]float64)
 	{
-		var tmpCondition string
-		var tmpPars []interface{}
-		tmpCondition += " AND edb_info_id=? AND data_time > ? "
-		tmpPars = append(tmpPars, edbInfo.EdbInfoId, edbAdjustConf.SourceEndDate)
-		existDataList, tmpErr := GetEdbDataListAllByTo(to, tmpCondition, tmpPars, edbInfo.Source, edbInfo.SubSource, 1)
+		existDataList, tmpErr := GetEdbDataListAllByTo(to, edbInfo.Source, edbInfo.SubSource, FindEdbDataListAllCond{
+			EdbInfoId:         edbInfo.EdbInfoId,
+			StartDataTime:     edbAdjustConf.SourceEndDate.Format(utils.FormatDate),
+			StartDataTimeCond: ">",
+		}, 1)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 5 - 14
models/base_from_calculate.go

@@ -317,20 +317,11 @@ func refreshAllCalculate(to orm.TxOrmer, edbInfoIdArr []*EdbInfo, edbInfoTag map
 	}
 
 	for edbInfoIndex, v := range edbInfoIdArr {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.EdbInfoId)
-		if startDate != "" {
-			condition += " AND data_time>=? "
-			pars = append(pars, startDate)
-		}
-		//if endDate != "" {
-		//	condition += " AND data_time<=? "
-		//	pars = append(pars, endDate)
-		//}
-		//fmt.Println("v.Source:", v.Source)
-		dataList, err := GetEdbDataListAllByTo(to, condition, pars, v.Source, v.SubSource, 1)
+		dataList, err := GetEdbDataListAllByTo(to, v.Source, v.SubSource, FindEdbDataListAllCond{
+			EdbInfoId:         v.EdbInfoId,
+			StartDataTime:     startDate,
+			StartDataTimeCond: ">=",
+		}, 1)
 		if err != nil {
 			return err
 		}

+ 3 - 5
models/edb_data_calculate_avg.go

@@ -298,11 +298,9 @@ func (obj CalculateAvg) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
 	}
 
 	for edbInfoIndex, v := range edbInfoIdArr {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.EdbInfoId)
-		dataList, err := GetEdbDataListAllByTo(to, condition, pars, v.Source, v.SubSource, 1)
+		dataList, err := GetEdbDataListAllByTo(to, v.Source, v.SubSource, FindEdbDataListAllCond{
+			EdbInfoId: v.EdbInfoId,
+		}, 1)
 		if err != nil {
 			return err
 		}

+ 11 - 31
models/edb_data_calculate_bp.go

@@ -205,22 +205,13 @@ func RefreshAllCalculateBpBak(edbInfoId, source, subSource int, fromEdbInfo *Edb
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
 
-	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-	if endDate != "" {
-		condition += " AND data_time<=? "
-		pars = append(pars, endDate)
-	}
-
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId:         fromEdbInfo.EdbInfoId,
+		StartDataTime:     startDate,
+		StartDataTimeCond: ">=",
+		EndDataTime:       endDate,
+		EndDataTimeCond:   "<=",
+	}, 0)
 	if err != nil {
 		return err
 	}
@@ -348,23 +339,12 @@ func RefreshAllCalculateBp(edbInfoId, source, subSource int, fromEdbInfo *EdbInf
 // refreshAllCalculateBp 刷新升频数据
 func refreshAllCalculateBp(to orm.TxOrmer, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, order int) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
+
 	//获取来源指标的数据
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, order)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, order)
 	if err != nil {
 		return err
 	}

+ 3 - 16
models/edb_data_calculate_cjjx.go

@@ -232,22 +232,9 @@ func refreshAllCalculateCjjx(to orm.TxOrmer, edbInfoId, source, subSource int, f
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
 
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
-
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
-
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 1)
 	if err != nil {
 		return err
 	}

+ 3 - 15
models/edb_data_calculate_hbz.go

@@ -209,22 +209,10 @@ func RefreshAllCalculateHbz(edbInfoId, source, subSource int, fromEdbInfo *EdbIn
 func refreshAllCalculateHbz(to orm.TxOrmer, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, formulaInt int) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
 
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
-
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
-
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 0)
 	if err != nil {
 		return err
 	}

+ 3 - 16
models/edb_data_calculate_hcz.go

@@ -211,22 +211,9 @@ func refreshAllCalculateHcz(to orm.TxOrmer, edbInfoId, source, subSource int, fr
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
-
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
-
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 0)
 	if err != nil {
 		return err
 	}

+ 7 - 14
models/edb_data_calculate_jp.go

@@ -238,21 +238,10 @@ func refreshAllCalculateJp(to orm.TxOrmer, edbInfoId, source, subSource int, fro
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
 	//获取来源指标的数据
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 1)
 	if err != nil {
 		return err
 	}
@@ -465,12 +454,16 @@ func refreshAllCalculateJp(to orm.TxOrmer, edbInfoId, source, subSource int, fro
 					return err
 				}
 			}
+			// 移除待删除的日期
+			delete(existDelDateMap, nextEndDate.Format(utils.FormatDate))
 		} else {
 			// 直接入库
 			timestamp := nextEndDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, nextEndDate.Format(utils.FormatDate), timestampStr, fmt.Sprint(currVal))
 			isAdd = true
+			// 移除待删除的日期
+			delete(existDelDateMap, nextEndDate.Format(utils.FormatDate))
 		}
 	}
 

+ 3 - 5
models/edb_data_calculate_kszs.go

@@ -269,11 +269,9 @@ func refreshAllCalculateKszs(to orm.TxOrmer, edbInfoId, source, subSource int, r
 	// 获取选择指标的 需要数据的 开始日期和结束日期
 	var startDate, endDate time.Time
 	for _, v := range relationEdbInfoList {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.EdbInfoId)
-		tmpDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, v.Source, v.SubSource, 1)
+		tmpDataList, tmpErr := GetEdbDataListAllByTo(to, v.Source, v.SubSource, FindEdbDataListAllCond{
+			EdbInfoId: v.EdbInfoId,
+		}, 1)
 		if tmpErr != nil {
 			err = tmpErr
 			return err

+ 3 - 10
models/edb_data_calculate_ljz.go

@@ -290,15 +290,6 @@ func (obj Ljz) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edbInfo
 	dataTableName := GetEdbDataTableName(source, subSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
 
 	var isWeekData bool // 是否周度数据,如果是周度数据的话,是需要变频的,最后结果还需要除以7
 	// 周度数据需要先变成日度的
@@ -306,7 +297,9 @@ func (obj Ljz) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edbInfo
 		isWeekData = true
 	}
 
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 1)
 	if err != nil {
 		return err
 	}

+ 3 - 10
models/edb_data_calculate_ljznczj.go

@@ -287,15 +287,6 @@ func (obj LjzNczj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edb
 	dataTableName := GetEdbDataTableName(source, subSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	//if startDate != "" {
-	//	condition += " AND data_time>=? "
-	//	pars = append(pars, startDate)
-	//}
 
 	var isWeekData bool // 是否周度数据,如果是周度数据的话,是需要变频的,最后结果还需要除以7
 	// 周度数据需要先变成日度的
@@ -303,7 +294,9 @@ func (obj LjzNczj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edb
 		isWeekData = true
 	}
 
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 1)
 	if err != nil {
 		return err
 	}

+ 15 - 20
models/edb_data_calculate_ljztbpj.go

@@ -64,12 +64,11 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 		lastDateTime, _ = time.ParseInLocation(utils.FormatDate, lastEdbData.DataTime, time.Local)
 
 		//获取待拼接指标的数据列表
-		condition = ``
-		pars = make([]interface{}, 0)
-		condition += " AND data_time <= ? AND edb_info_id=? "
-		pars = append(pars, lastEdbData.DataTime, firstEdbInfo.EdbInfoId)
-
-		firstDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, firstEdbInfo.Source, firstEdbInfo.SubSource, 0)
+		firstDataList, tmpErr := GetEdbDataListAllByTo(to, firstEdbInfo.Source, firstEdbInfo.SubSource, FindEdbDataListAllCond{
+			EdbInfoId:       firstEdbInfo.EdbInfoId,
+			EndDataTime:     lastEdbData.DataTime,
+			EndDataTimeCond: "<=",
+		}, 0)
 		if tmpErr != nil {
 			err = tmpErr
 			return
@@ -475,14 +474,12 @@ func refreshAllCalculateLjztbpj(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, ex
 
 	//待拼接指标
 	{
-		var condition string
-		var pars []interface{}
-
-		condition += " AND data_time <= ? AND edb_info_id=? "
-		pars = append(pars, startCalculationDate, existItemA.FromEdbInfoId)
-
 		//第一个指标的数据列表
-		firstDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, existItemA.FromSource, existItemA.FromSubSource, 0)
+		firstDataList, tmpErr := GetEdbDataListAllByTo(to, existItemA.FromSource, existItemA.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId:       existItemA.FromEdbInfoId,
+			EndDataTime:     startCalculationDate.Format(utils.FormatDate),
+			EndDataTimeCond: "<=",
+		}, 0)
 		if tmpErr != nil {
 			return tmpErr
 		}
@@ -513,14 +510,12 @@ func refreshAllCalculateLjztbpj(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, ex
 
 	//同比值指标
 	{
-		var condition string
-		var pars []interface{}
-
-		condition += " AND data_time > ? AND edb_info_id = ? "
-		pars = append(pars, startCalculationDate, existItemB.FromEdbInfoId)
-
 		//第二个指标的数据列表
-		secondDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, existItemB.FromSource, existItemB.FromSubSource, 0)
+		secondDataList, tmpErr := GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId:         existItemB.FromEdbInfoId,
+			StartDataTime:     startCalculationDate.Format(utils.FormatDate),
+			StartDataTimeCond: ">",
+		}, 0)
 		if tmpErr != nil {
 			return tmpErr
 		}

+ 4 - 5
models/edb_data_calculate_ljzzj.go

@@ -247,11 +247,10 @@ func (obj Ljzzj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, fromE
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
 	// 获取来源指标的数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource,
+		FindEdbDataListAllCond{
+			EdbInfoId: fromEdbInfo.EdbInfoId,
+		}, 1)
 	if err != nil {
 		return err
 	}

+ 6 - 14
models/edb_data_calculate_ljzzy.go

@@ -212,21 +212,13 @@ func RefreshAllCalculateLjzzy(edbInfoId, source, subSource int, fromEdbInfo *Edb
 func refreshAllCalculateLjzzy(to orm.TxOrmer, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
 
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
-
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource,
+		FindEdbDataListAllCond{
+			EdbInfoId:         fromEdbInfo.EdbInfoId,
+			StartDataTime:     startDate,
+			StartDataTimeCond: ">=",
+		}, 1)
 	if err != nil {
 		return err
 	}

+ 3 - 5
models/edb_data_calculate_nh.go

@@ -225,13 +225,11 @@ func refreshAllCalculateNh(to orm.TxOrmer, edbInfoId, source, subSource int, fro
 	}
 
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
 
 	//获取来源指标的数据
-	fromDataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
+	fromDataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId: fromEdbInfo.EdbInfoId,
+	}, 1)
 	if err != nil {
 		return err
 	}

+ 6 - 12
models/edb_data_calculate_nhcc.go

@@ -751,14 +751,11 @@ func getNhccData(to orm.TxOrmer, existItemA, existItemB *EdbInfoCalculateMapping
 	aDataList = make([]EdbInfoSearchData, 0)
 	aDataMap = make(map[string]float64)
 	{
-		var condition string
-		var pars []interface{}
-
-		condition += " AND edb_info_id=? "
-		pars = append(pars, existItemA.FromEdbInfoId)
 
 		//第一个指标的数据列表
-		firstDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, existItemA.FromSource, existItemA.FromSubSource, 0)
+		firstDataList, tmpErr := GetEdbDataListAllByTo(to, existItemA.FromSource, existItemA.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId: existItemA.FromEdbInfoId,
+		}, 0)
 		if tmpErr != nil {
 			err = tmpErr
 			return
@@ -772,14 +769,11 @@ func getNhccData(to orm.TxOrmer, existItemA, existItemB *EdbInfoCalculateMapping
 	secondDataList = make([]*EdbInfoSearchData, 0)
 	bDataMap = make(map[string]float64)
 	{
-		condition := ``
-		pars := make([]interface{}, 0)
-
-		condition += "  AND edb_info_id = ? "
-		pars = append(pars, existItemB.FromEdbInfoId)
 
 		//第二个指标的数据列表
-		secondDataList, err = GetEdbDataListAllByTo(to, condition, pars, existItemB.FromSource, existItemB.FromSubSource, 0)
+		secondDataList, err = GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId: existItemB.FromEdbInfoId,
+		}, 0)
 		if err != nil {
 			return
 		}

+ 3 - 5
models/edb_data_calculate_sum.go

@@ -304,11 +304,9 @@ func (obj CalculateSum) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
 	}
 
 	for edbInfoIndex, v := range edbInfoIdArr {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.EdbInfoId)
-		dataList, err := GetEdbDataListAllByTo(to, condition, pars, v.Source, v.SubSource, 1)
+		dataList, err := GetEdbDataListAllByTo(to, v.Source, v.SubSource, FindEdbDataListAllCond{
+			EdbInfoId: v.EdbInfoId,
+		}, 1)
 		if err != nil {
 			return err
 		}

+ 5 - 16
models/edb_data_calculate_tcz.go

@@ -211,22 +211,11 @@ func refreshAllCalculateTcz(to orm.TxOrmer, edbInfoId, source, subSource int, fr
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	//计算数据
 
-	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
-
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId:         fromEdbInfo.EdbInfoId,
+		StartDataTime:     startDate,
+		StartDataTimeCond: ">=",
+	}, 0)
 	if err != nil {
 		return err
 	}

+ 5 - 14
models/edb_data_calculate_time_shift.go

@@ -223,19 +223,6 @@ func refreshAllCalculateTimeShift(to orm.TxOrmer, edbInfoId, source, subSource,
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
 	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-	//if endDate != "" {
-	//	condition += " AND data_time<=? "
-	//	pars = append(pars, endDate)
-	//}
 
 	var shiftDay int
 	switch moveFrequency {
@@ -257,7 +244,11 @@ func refreshAllCalculateTimeShift(to orm.TxOrmer, edbInfoId, source, subSource,
 		shiftDay = -shiftDay
 	}
 
-	dataList, err := GetEdbDataListAllByTo(to, condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
+	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
+		EdbInfoId:         fromEdbInfo.EdbInfoId,
+		StartDataTime:     startDate,
+		StartDataTimeCond: ">=",
+	}, 0)
 	if err != nil {
 		return err
 	}

+ 10 - 14
models/edb_data_calculate_zjpj.go

@@ -395,14 +395,12 @@ func refreshAllCalculateZjpj(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, exist
 	addDataList := make([]*EdbDataCalculateZjpj, 0)
 	//第一个指标
 	{
-		var condition string
-		var pars []interface{}
-
-		condition += " AND data_time < ? AND edb_info_id=? "
-		pars = append(pars, edbInfo.CalculateFormula, existItemA.FromEdbInfoId)
-
 		//第一个指标的数据列表
-		firstDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, existItemA.FromSource, existItemA.FromSubSource, 0)
+		firstDataList, tmpErr := GetEdbDataListAllByTo(to, existItemA.FromSource, existItemA.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId:       existItemA.FromEdbInfoId,
+			EndDataTime:     edbInfo.CalculateFormula,
+			EndDataTimeCond: "<",
+		}, 0)
 		if tmpErr != nil {
 			return tmpErr
 		}
@@ -441,14 +439,12 @@ func refreshAllCalculateZjpj(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, exist
 
 	//第二个指标
 	{
-		condition = ``
-		pars = make([]interface{}, 0)
-
-		condition += " AND data_time >= ? AND edb_info_id = ? "
-		pars = append(pars, edbInfo.CalculateFormula, existItemB.FromEdbInfoId)
-
 		//第二个指标的数据列表
-		secondDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, existItemB.FromSource, existItemB.FromSubSource, 0)
+		secondDataList, tmpErr := GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId:         existItemB.FromEdbInfoId,
+			StartDataTime:     edbInfo.CalculateFormula,
+			StartDataTimeCond: ">=",
+		}, 0)
 		if tmpErr != nil {
 			return tmpErr
 		}

+ 108 - 5
models/edb_info.go

@@ -3,10 +3,12 @@ package models
 import (
 	"encoding/json"
 	"errors"
+	"eta/eta_index_lib/models/mgo"
 	"eta/eta_index_lib/utils"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/shopspring/decimal"
+	"go.mongodb.org/mongo-driver/bson"
 	"strconv"
 	"time"
 )
@@ -180,10 +182,12 @@ func (edbInfo *EdbInfo) Update(cols []string) (err error) {
 
 // EdbInfoSearchData
 type EdbInfoSearchData struct {
-	EdbDataId int     `description:"数据ID"`
-	DataTime  string  `description:"数据日期"`
-	Value     float64 `description:"数据"`
-	EdbCode   string  `description:"指标编码"`
+	EdbDataId     int     `description:"数据ID"`
+	EdbInfoId     int     `description:"指标ID"`
+	DataTime      string  `description:"数据日期"`
+	Value         float64 `description:"数据"`
+	EdbCode       string  `description:"指标编码"`
+	DataTimestamp int64   `description:"时间戳"`
 }
 
 // GetEdbDataListAll 获取指标数据列表 order:1升序,其余值为降序
@@ -207,12 +211,48 @@ func GetEdbDataListAll(condition string, pars []interface{}, source, subSource,
 }
 
 // GetEdbDataListAllByTo 根据事务链接获取指标数据列表 order:1升序,其余值为降序
-func GetEdbDataListAllByTo(to orm.TxOrmer, condition string, pars []interface{}, source, subSource, order int) (item []*EdbInfoSearchData, err error) {
+func GetEdbDataListAllByTo(to orm.TxOrmer, source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (item []*EdbInfoSearchData, err error) {
+	if source == utils.DATA_SOURCE_BUSINESS {
+		return GetEdbDataListAllByMongo(source, subSource, findEdbDataListAllCond, order)
+	}
+
+	return GetEdbDataListAllByMysqlTo(to, source, subSource, findEdbDataListAllCond, order)
+}
+
+type FindEdbDataListAllCond struct {
+	EdbInfoId         int
+	StartDataTime     string
+	StartDataTimeCond string
+	EndDataTime       string
+	EndDataTimeCond   string
+}
+
+// GetEdbDataListAllByTo 根据事务链接获取指标数据列表 order:1升序,其余值为降序
+func GetEdbDataListAllByMysqlTo(to orm.TxOrmer, source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (item []*EdbInfoSearchData, err error) {
+	if findEdbDataListAllCond.EdbInfoId <= 0 {
+		return
+	}
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT * FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 
+	var condition string
+	var pars []interface{}
+	condition += " AND edb_info_id=? "
+	pars = append(pars, findEdbDataListAllCond.EdbInfoId)
+
+	// 开始日期
+	if findEdbDataListAllCond.StartDataTime != "" && findEdbDataListAllCond.StartDataTimeCond != `` {
+		condition += fmt.Sprintf(" AND data_time %s ? ", findEdbDataListAllCond.StartDataTimeCond)
+		pars = append(pars, findEdbDataListAllCond.StartDataTime)
+	}
+	// 结束日期
+	if findEdbDataListAllCond.EndDataTime != "" && findEdbDataListAllCond.EndDataTimeCond != `` {
+		condition += fmt.Sprintf(" AND data_time %s ? ", findEdbDataListAllCond.EndDataTimeCond)
+		pars = append(pars, findEdbDataListAllCond.EndDataTime)
+	}
+
 	if condition != "" {
 		sql += condition
 	}
@@ -225,6 +265,69 @@ func GetEdbDataListAllByTo(to orm.TxOrmer, condition string, pars []interface{},
 	return
 }
 
+// GetEdbDataListAllByTo 根据事务链接获取指标数据列表 order:1升序,其余值为降序
+func GetEdbDataListAllByMongo(source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (dataList []*EdbInfoSearchData, err error) {
+	dataList = make([]*EdbInfoSearchData, 0)
+	if findEdbDataListAllCond.EdbInfoId <= 0 {
+		return
+	}
+	mogDataObj := mgo.EdbDataBusiness{}
+	// 构建查询条件
+	queryConditions := bson.M{
+		"edb_info_id": findEdbDataListAllCond.EdbInfoId,
+	}
+	// 开始日期
+	if findEdbDataListAllCond.StartDataTime != "" {
+		startDateTime, tmpErr := time.ParseInLocation(utils.FormatDate, findEdbDataListAllCond.StartDataTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+
+		// 日期比较符
+		cond := utils.DateConvMysqlConvMongo(findEdbDataListAllCond.StartDataTimeCond)
+		if cond != `` {
+			queryConditions["data_time"] = bson.M{cond: startDateTime}
+		}
+	}
+	// 结束日期
+	if findEdbDataListAllCond.EndDataTime != "" {
+		endDateTime, tmpErr := time.ParseInLocation(utils.FormatDate, findEdbDataListAllCond.EndDataTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+
+		// 日期比较符
+		cond := utils.DateConvMysqlConvMongo(findEdbDataListAllCond.EndDataTimeCond)
+		if cond != `` {
+			queryConditions["data_time"] = bson.M{cond: endDateTime}
+		}
+	}
+
+	sortList := make([]string, 0)
+	if order == 1 {
+		sortList = append(sortList, "-data_time")
+	} else {
+		sortList = append(sortList, "data_time")
+	}
+	// 获取列表数据
+	tmpDataList, tmpErr := mogDataObj.GetAllDataList(queryConditions, sortList)
+	if tmpErr != nil {
+		err = tmpErr
+		return
+	}
+	for k, v := range tmpDataList {
+		dataList = append(dataList, &EdbInfoSearchData{
+			EdbDataId: k + 1,
+			EdbCode:   v.EdbCode,
+			DataTime:  v.DataTime.Format(utils.FormatDate),
+			Value:     v.Value,
+		})
+	}
+	return
+}
+
 // EdbInfoMaxAndMinInfo 指标最新数据记录结构体
 type EdbInfoMaxAndMinInfo struct {
 	MinDate     string  `description:"最小日期" bson:"min_date"`

+ 5 - 7
models/predict_edb_data_calculate_ljztbpj.go

@@ -444,14 +444,12 @@ func refreshAllPredictCalculateLjztbpj(to orm.TxOrmer, edbInfo, firstEdbInfo, se
 
 	//同比值指标
 	{
-		var condition string
-		pars := make([]interface{}, 0)
-
-		condition += " AND data_time > ? AND edb_info_id = ? "
-		pars = append(pars, startCalculationDate, existItemB.FromEdbInfoId)
-
 		//第二个指标的数据列表
-		secondDataList, tmpErr := GetEdbDataListAllByTo(to, condition, pars, existItemB.FromSource, existItemB.FromSubSource, 0)
+		secondDataList, tmpErr := GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
+			EdbInfoId:         existItemB.FromEdbInfoId,
+			StartDataTime:     startCalculationDate.Format(utils.FormatDate),
+			StartDataTimeCond: ">",
+		}, 0)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 22 - 0
utils/common.go

@@ -1234,3 +1234,25 @@ func FloatAlmostEqual(a, b float64) bool {
 func VerifyFrequency(frequency string) bool {
 	return InArrayByStr([]string{"年度", "半年度", "季度", "月度", "旬度", "周度", "日度"}, frequency)
 }
+
+// DateConvMysqlConvMongo
+// @Description: 将mysql中的日期比较符转换成mongo中的日期比较符
+// @author: Roc
+// @datetime 2024-05-08 11:03:26
+// @param dateCon string
+func DateConvMysqlConvMongo(dateCon string) string {
+	cond := ""
+	switch dateCon {
+	case "=":
+		cond = "$eq"
+	case "<":
+		cond = "$lt"
+	case "<=":
+		cond = "$lte"
+	case ">":
+		cond = "$gt"
+	case ">=":
+		cond = "$gte"
+	}
+	return cond
+}