Browse Source

统一日期类型并优化日期处理- 将 EdbInfo 结构体中的 StartDate 和 EndDate 字段类型从 string 改为 time.Time
- 优化日期格式转换和解析,提高日期处理的一致性和效率
- 修改相关函数和服务以适应新的日期字段类型
- 调整数据库操作和日志记录中的日期格式

Roc 6 months ago
parent
commit
0ba402cd8f

+ 2 - 2
controllers/data_manage/chart_info.go

@@ -1983,8 +1983,8 @@ func (this *ChartInfoController) ChartInfoEdbInfoDetail() {
 	mapping.EdbType = edbInfo.EdbType
 	mapping.Frequency = edbInfo.Frequency
 	mapping.Unit = edbInfo.Unit
-	mapping.StartDate = edbInfo.StartDate
-	mapping.EndDate = edbInfo.EndDate
+	mapping.StartDate = utils.TimeToFormatDate(edbInfo.StartDate)
+	mapping.EndDate = utils.TimeToFormatDate(edbInfo.EndDate)
 	mapping.ChartEdbMappingId = 0
 	mapping.ChartInfoId = 0
 	mapping.MaxData = maxData

+ 2 - 2
controllers/data_manage/edb_info.go

@@ -146,8 +146,8 @@ func (this *EdbInfoController) EdbInfoSearch() {
 		resp.Status = 1
 		searchItem := new(data_manage.EdbInfoSearch)
 		searchItem.EdbCode = item.EdbCode
-		searchItem.StartDate = item.StartDate
-		searchItem.EndDate = item.EndDate
+		searchItem.StartDate = utils.TimeToFormatDate(item.StartDate)
+		searchItem.EndDate = utils.TimeToFormatDate(item.EndDate)
 		searchItem.EdbName = item.EdbName
 		resp.SearchItem = searchItem
 		//查询目录

+ 1 - 1
controllers/data_manage/edb_info_calculate.go

@@ -2465,7 +2465,7 @@ func (this *ChartInfoController) CalculateMultiSearch() {
 				ClassifyId:      info.ClassifyId,
 				SysUserRealName: info.SysUserRealName,
 				SysUserId:       info.SysUserId,
-				EndDate:         info.EndDate,
+				EndDate:         utils.TimeToFormatDate(info.EndDate),
 				EndValue:        info.EndValue,
 				HaveOperaAuth:   haveOperaAuth,
 				EdbInfoType:     info.EdbInfoType,

+ 2 - 2
controllers/data_manage/future_good/future_good_chart_info.go

@@ -2032,8 +2032,8 @@ func (this *FutureGoodChartInfoController) ChartInfoEdbInfoDetail() {
 	mapping.EdbType = edbInfo.EdbType
 	mapping.Frequency = edbInfo.Frequency
 	mapping.Unit = edbInfo.Unit
-	mapping.StartDate = edbInfo.StartDate
-	mapping.EndDate = edbInfo.EndDate
+	mapping.StartDate = utils.TimeToFormatDate(edbInfo.StartDate)
+	mapping.EndDate = utils.TimeToFormatDate(edbInfo.EndDate)
 	mapping.ChartEdbMappingId = 0
 	mapping.ChartInfoId = 0
 	mapping.MaxData = maxData

+ 2 - 2
controllers/data_manage/future_good/future_good_profit_chart_info.go

@@ -993,8 +993,8 @@ func (this *FutureGoodChartInfoController) PreviewProfitChartInfo() {
 			FrequencyEn:    data.GetFrequencyEn(v.Frequency),
 			Unit:           v.Unit,
 			UnitEn:         v.UnitEn,
-			StartDate:      v.StartDate,
-			EndDate:        v.EndDate,
+			StartDate:      utils.TimeToFormatDate(v.StartDate),
+			EndDate:        utils.TimeToFormatDate(v.EndDate),
 			ModifyTime:     v.ModifyTime.Format(utils.FormatDateTime),
 			MappingSource:  1,
 		})

+ 1 - 1
controllers/data_manage/supply_analysis/variety.go

@@ -584,7 +584,7 @@ func (this *VarietyController) Analysis() {
 						continue
 					}
 					// 刷新指标数据
-					go data.RefreshEdbData(edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, edbInfo.StartDate)
+					go data.RefreshEdbData(edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, utils.TimeToFormatDate(edbInfo.StartDate))
 				}
 			}
 		}

+ 7 - 7
controllers/data_manage/supply_analysis/variety_edb.go

@@ -275,7 +275,7 @@ func (this *VarietyController) AddToEdb() {
 
 	// 更新ETA指标库信息
 	{
-		data.RefreshEdbData(edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, edbInfo.StartDate)
+		data.RefreshEdbData(edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, utils.TimeToFormatDate(edbInfo.StartDate))
 	}
 
 	//新增操作日志
@@ -597,8 +597,8 @@ func (this *VarietyController) EdbInfoDataTb() {
 		Frequency:        varietyEdbInfo.Frequency,
 		Unit:             ``,
 		UnitEn:           "",
-		StartDate:        varietyEdbInfo.StartDate.Format(utils.FormatDate),
-		EndDate:          varietyEdbInfo.EndDate.Format(utils.FormatDate),
+		StartDate:        varietyEdbInfo.StartDate,
+		EndDate:          varietyEdbInfo.EndDate,
 		ClassifyId:       0,
 		SysUserId:        0,
 		SysUserRealName:  "",
@@ -726,8 +726,8 @@ func (this *VarietyController) EdbInfoDataSeasonal() {
 		Frequency:        varietyEdbInfo.Frequency,
 		Unit:             ``,
 		UnitEn:           "",
-		StartDate:        varietyEdbInfo.StartDate.Format(utils.FormatDate),
-		EndDate:          varietyEdbInfo.EndDate.Format(utils.FormatDate),
+		StartDate:        varietyEdbInfo.StartDate,
+		EndDate:          varietyEdbInfo.EndDate,
 		ClassifyId:       0,
 		SysUserId:        0,
 		SysUserRealName:  "",
@@ -825,8 +825,8 @@ func (this *VarietyController) EdbDataListV2() {
 		Frequency:        varietyEdbInfo.Frequency,
 		Unit:             ``,
 		UnitEn:           "",
-		StartDate:        varietyEdbInfo.StartDate.Format(utils.FormatDate),
-		EndDate:          varietyEdbInfo.EndDate.Format(utils.FormatDate),
+		StartDate:        varietyEdbInfo.StartDate,
+		EndDate:          varietyEdbInfo.EndDate,
 		ClassifyId:       0,
 		SysUserId:        0,
 		SysUserRealName:  "",

+ 11 - 4
models/data_manage/edb_data_insert_config.go

@@ -97,7 +97,7 @@ func CreateEdbDataInsertConfigAndData(edbInfo *EdbInfo, date time.Time, value st
 			}
 			if !currLatestDate.IsZero() && (currLatestDate.After(date) || currLatestDate.Equal(date)) {
 				errMsg = `选择日期不能早于/等于数据最新日期`
-				err = errors.New("选择日期不能早于/等于数据最新日期,数据最新日期:" + edbInfo.EndDate + ";填写日期:" + dateStr)
+				err = errors.New("选择日期不能早于/等于数据最新日期,数据最新日期:" + utils.TimeToFormatDate(edbInfo.EndDate) + ";填写日期:" + dateStr)
 				isSendEmail = false
 				return
 			}
@@ -115,7 +115,7 @@ func CreateEdbDataInsertConfigAndData(edbInfo *EdbInfo, date time.Time, value st
 		} else {
 			if date.Equal(item.RealDate) || date.Before(item.RealDate) {
 				errMsg = `选择日期不能早于/等于数据最新日期`
-				err = errors.New("选择日期不能早于/等于数据最新日期,数据最新日期:" + edbInfo.EndDate + ";填写日期:" + dateStr)
+				err = errors.New("选择日期不能早于/等于数据最新日期,数据最新日期:" + utils.TimeToFormatDate(edbInfo.EndDate) + ";填写日期:" + dateStr)
 				isSendEmail = false
 				return
 			}
@@ -144,8 +144,15 @@ func CreateEdbDataInsertConfigAndData(edbInfo *EdbInfo, date time.Time, value st
 	}
 
 	// 指标信息更新
-	edbInfo.EndDate = dateStr
-	err = to.Select("EndDate").Updates(edbInfo).Error
+	if dateStr != `` {
+		endDateTime, tmpErr := utils.FormatDateStrToTime(dateStr)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		edbInfo.EndDate = endDateTime
+		err = to.Select("EndDate").Updates(edbInfo).Error
+	}
 
 	return
 }

+ 24 - 24
models/data_manage/edb_info.go

@@ -20,20 +20,20 @@ import (
 )
 
 type EdbInfo struct {
-	EdbInfoId        int    `gorm:"primaryKey" `
-	EdbInfoType      int    `description:"指标类型,0:普通指标,1:预测指标"`
-	SourceName       string `description:"来源名称"`
-	Source           int    `description:"来源id"`
-	EdbCode          string `description:"指标编码"`
-	EdbName          string `description:"指标名称"`
-	EdbNameEn        string `description:"英文指标名称"`
-	EdbNameSource    string `description:"指标名称来源"`
-	Frequency        string `description:"频率"`
-	Unit             string `description:"单位"`
-	UnitEn           string `description:"英文单位"`
-	StartDate        string `description:"起始日期"`
-	EndDate          string `description:"终止日期"`
-	ClassifyId       int    `description:"分类id"`
+	EdbInfoId        int       `gorm:"primaryKey" `
+	EdbInfoType      int       `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName       string    `description:"来源名称"`
+	Source           int       `description:"来源id"`
+	EdbCode          string    `description:"指标编码"`
+	EdbName          string    `description:"指标名称"`
+	EdbNameEn        string    `description:"英文指标名称"`
+	EdbNameSource    string    `description:"指标名称来源"`
+	Frequency        string    `description:"频率"`
+	Unit             string    `description:"单位"`
+	UnitEn           string    `description:"英文单位"`
+	StartDate        time.Time `description:"起始日期"`
+	EndDate          time.Time `description:"终止日期"`
+	ClassifyId       int       `description:"分类id"`
 	SysUserId        int
 	SysUserRealName  string
 	UniqueCode       string `description:"指标唯一编码"`
@@ -194,16 +194,16 @@ func (e *EdbInfo) AfterFind(db *gorm.DB) error {
 		return nil
 	}
 	e.LatestDate = tmpTime.Format(utils.FormatDate)
-	tmpTime, err = time.Parse(utils.FormatDateWallWithLoc, e.StartDate)
-	if err != nil {
-		return nil
-	}
-	e.StartDate = tmpTime.Format(utils.FormatDate)
-	tmpTime, err = time.Parse(utils.FormatDateWallWithLoc, e.EndDate)
-	if err != nil {
-		return nil
-	}
-	e.EndDate = tmpTime.Format(utils.FormatDate)
+	//tmpTime, err = time.Parse(utils.FormatDateWallWithLoc, e.StartDate)
+	//if err != nil {
+	//	return nil
+	//}
+	//e.StartDate = tmpTime.Format(utils.FormatDate)
+	//tmpTime, err = time.Parse(utils.FormatDateWallWithLoc, e.EndDate)
+	//if err != nil {
+	//	return nil
+	//}
+	//e.EndDate = tmpTime.Format(utils.FormatDate)
 	return nil
 }
 

+ 1 - 1
services/data/chart_extra_config.go

@@ -628,7 +628,7 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
 					extraConfig.DateConfList[i].EdbInfoId = edbItem.EdbInfoId
 					extraConfig.DateConfList[i].EdbInfoType = edbItem.EdbInfoType
 					extraConfig.DateConfList[i].Frequency = edbItem.Frequency
-					extraConfig.DateConfList[i].EndDate = edbItem.EndDate
+					extraConfig.DateConfList[i].EndDate = utils.TimeToFormatDate(edbItem.EndDate)
 				}
 			}
 		}

+ 12 - 9
services/data/chart_info.go

@@ -164,10 +164,10 @@ func refreshBaseEdbInfo(bv *data_manage.EdbInfo) (err error, errMsg string) {
 	edbCode := bv.EdbCode
 	//startDate := bv.StartDate
 	frequency := bv.Frequency
-	if bv.StartDate == "0000-00-00" {
+	if bv.StartDate.IsZero() {
 		return
 	}
-	sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
+	sTime := bv.EndDate
 	if err != nil {
 		return
 	}
@@ -216,17 +216,20 @@ func refreshBaseEdbInfo(bv *data_manage.EdbInfo) (err error, errMsg string) {
 
 // refreshCalculateEdbInfo 刷新计算指标
 func refreshCalculateEdbInfo(edbInfo *data_manage.EdbInfo) (err error, errMsg string) {
-	startDate := edbInfo.StartDate
+	startDate := utils.TimeToFormatDate(edbInfo.StartDate)
 	source := edbInfo.Source
 
 	if source == utils.DATA_SOURCE_CALCULATE {
-		startDate = edbInfo.StartDate
-		sTime, tmpErr := time.Parse(utils.FormatDate, edbInfo.EndDate)
-		if tmpErr != nil {
-			err = tmpErr
-			return
+		//startDate = edbInfo.StartDate
+		//sTime, tmpErr := time.Parse(utils.FormatDate, edbInfo.EndDate)
+		//if tmpErr != nil {
+		//	err = tmpErr
+		//	return
+		//}
+		if !edbInfo.EndDate.IsZero() {
+			startDate = utils.TimeToFormatDate(edbInfo.EndDate)
 		}
-		startDate = sTime.Format(utils.FormatDate)
+
 	}
 
 	result, err := RefreshEdbCalculateData(edbInfo.EdbInfoId, edbInfo.EdbCode, startDate)

+ 31 - 36
services/data/edb_info.go

@@ -274,22 +274,17 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 		//source := bv.Source
 		//edbInfoId := bv.EdbInfoId
 		//edbCode := bv.EdbCode
-		if bv.StartDate == "0000-00-00" {
+		fmt.Println(bv.StartDate)
+		if utils.TimeToFormatDate(bv.StartDate) == "0000-00-00" {
 			continue
 		}
 		//开始时间
 		startDate = ``
 		if refreshAll { //刷新所有数据,用开始时间作为起始日期去刷新
-			sTime, err := time.Parse(utils.FormatDate, bv.StartDate)
-			if err != nil {
-				return err
-			}
+			sTime := bv.StartDate
 			startDate = sTime.Format(utils.FormatDate)
 		} else {
-			sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
-			if err != nil {
-				return err
-			}
+			sTime := bv.EndDate
 			frequency := bv.Frequency
 			var limitDay int
 			switch frequency {
@@ -346,16 +341,13 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 		//计算指标就不用开始时间了吧,因为存在说开始时间变更的情况
 		startDate = ``
 		if !refreshAll { //如果不是全部更新,那么以指标的开始时间作为刷新
-			startDate = edbInfo.StartDate
+			startDate = utils.TimeToFormatDate(edbInfo.StartDate)
 			source := edbInfo.Source
 			if startDate == "" || startDate == "0000-00-00" { //如果没有开始日期,说明还没有计算出来数据,那么就往前面推40年吧(也意味着重新计算了)
 				startDate = time.Now().AddDate(-40, 0, 0).Format(utils.FormatDate)
 			} else {
 				if source == utils.DATA_SOURCE_CALCULATE {
-					sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
-					if err != nil {
-						return err
-					}
+					sTime := edbInfo.EndDate
 					frequency := edbInfo.Frequency
 					var limitDay int
 					switch frequency {
@@ -396,7 +388,7 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 		if edbInfo == nil {
 			return err
 		}
-		startDate = edbInfo.StartDate
+		startDate = utils.TimeToFormatDate(edbInfo.StartDate)
 		source := edbInfo.Source
 		if startDate == "" || startDate == "0000-00-00" { //如果没有开始日期,说明还没有计算出来数据,那么就往前面推40年吧(也意味着重新计算了)
 			startDate = time.Now().AddDate(-40, 0, 0).Format(utils.FormatDate)
@@ -404,12 +396,9 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 			if source == utils.DATA_SOURCE_PREDICT_CALCULATE {
 				startDate = ``
 				if refreshAll { //刷新所有数据,用开始时间作为起始日期去刷新
-					startDate = edbInfo.StartDate
+					startDate = utils.TimeToFormatDate(edbInfo.StartDate)
 				} else {
-					sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
-					if err != nil {
-						return err
-					}
+					sTime := edbInfo.EndDate
 					frequency := edbInfo.Frequency
 					var limitDay int
 					switch frequency {
@@ -478,7 +467,7 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 		if edbInfo == nil {
 			return err
 		}
-		startDate = edbInfo.StartDate
+		startDate = utils.TimeToFormatDate(edbInfo.StartDate)
 		source := edbInfo.Source
 		if startDate == "" || startDate == "0000-00-00" { //如果没有开始日期,说明还没有计算出来数据,那么就往前面推40年吧(也意味着重新计算了)
 			startDate = time.Now().AddDate(-40, 0, 0).Format(utils.FormatDate)
@@ -486,12 +475,9 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 			if source == utils.DATA_SOURCE_PREDICT_CALCULATE {
 				startDate = ``
 				if refreshAll { //刷新所有数据,用开始时间作为起始日期去刷新
-					startDate = edbInfo.StartDate
+					startDate = utils.TimeToFormatDate(edbInfo.StartDate)
 				} else {
-					sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
-					if err != nil {
-						return err
-					}
+					sTime := edbInfo.EndDate
 					frequency := edbInfo.Frequency
 					var limitDay int
 					switch frequency {
@@ -1875,8 +1861,23 @@ func EdbInfoAdd(source, subSource, classifyId int, edbCode, edbName, frequency,
 	edbInfo.Frequency = frequency
 	edbInfo.Unit = unit
 	edbInfo.UnitEn = unit
-	edbInfo.StartDate = startDate
-	edbInfo.EndDate = endDate
+	if startDate != `` {
+		startDateTime, tmpErr := utils.FormatDateStrToTime(startDate)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		edbInfo.StartDate = startDateTime
+	}
+	if endDate != `` {
+		endDateTime, tmpErr := utils.FormatDateStrToTime(endDate)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		edbInfo.EndDate = endDateTime
+	}
+
 	edbInfo.ClassifyId = classifyId
 	edbInfo.SysUserId = sysUserId
 	edbInfo.SysUserRealName = sysUserRealName
@@ -2324,18 +2325,12 @@ func getEdbRuleTitle(edbInfo, parentEdbInfo *data_manage.EdbInfo, childList []da
 		}
 		for _, v := range childEdbInfoIdList {
 			if childEdbInfo, ok := edbInfoMap[v]; ok {
-				tmpStartDate, tmpErr := time.ParseInLocation(utils.FormatDate, childEdbInfo.StartDate, time.Local)
-				if tmpErr != nil {
-					return
-				}
+				tmpStartDate := childEdbInfo.StartDate
 				if startDate.IsZero() || startDate.After(tmpStartDate) {
 					startDate = tmpStartDate
 				}
 
-				tmpEndDate, tmpErr := time.ParseInLocation(utils.FormatDate, childEdbInfo.EndDate, time.Local)
-				if tmpErr != nil {
-					return
-				}
+				tmpEndDate := childEdbInfo.EndDate
 				if endDate.IsZero() || endDate.Before(tmpEndDate) {
 					endDate = tmpEndDate
 				}

+ 1 - 1
services/data/future_good/profit_chart_info.go

@@ -188,7 +188,7 @@ func GetProfitChartEdbData(baseEdbInfo *data_manage.EdbInfo, edbInfoList []*data
 	}
 	var edbIdList []int
 
-	edbIdList, yDataList, err = ProfitChartChartData(baseEdbInfo, baseDataListMap, futureGoodEdbInfoDateMap, futureGoodDataListMap, chartInfoDateList, baseEdbInfo.EndDate, specialFutureGoodEdbInfoMap, formulaStr, tagEdbIdMap, dateList, maxN, reqEdbInfoIds)
+	edbIdList, yDataList, err = ProfitChartChartData(baseEdbInfo, baseDataListMap, futureGoodEdbInfoDateMap, futureGoodDataListMap, chartInfoDateList, utils.TimeToFormatDate(baseEdbInfo.EndDate), specialFutureGoodEdbInfoMap, formulaStr, tagEdbIdMap, dateList, maxN, reqEdbInfoIds)
 
 	// todo 最后处理数据
 	tmpXDataList, newYDataList, err := handleProfitResultData(xDataList, baseEdbInfo, yDataList, earliestDateTime, edbIdList)

+ 18 - 4
services/data/predict_edb_info.go

@@ -225,7 +225,14 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName string, ruleList
 			CreateTime: time.Now(),
 		}
 
-		edbInfo.EndDate = v.EndDate
+		if v.EndDate != `` {
+			endDateTime, tmpErr := utils.FormatDateStrToTime(v.EndDate)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			edbInfo.EndDate = endDateTime
+		}
 
 		predictEdbConfList = append(predictEdbConfList, tmpPredictEdbConf)
 	}
@@ -367,7 +374,14 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName string, ruleList []re
 		}
 		predictEdbConfList = append(predictEdbConfList, tmpPredictEdbConf)
 
-		edbInfo.EndDate = v.EndDate
+		if v.EndDate != `` {
+			endDateTime, tmpErr2 := utils.FormatDateStrToTime(v.EndDate)
+			if tmpErr2 != nil {
+				err = tmpErr2
+				return
+			}
+			edbInfo.EndDate = endDateTime
+		}
 	}
 
 	err = data_manage.EditPredictEdb(edbInfo, predictEdbConfList, updateEdbInfoCol)
@@ -960,11 +974,11 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, startDate,
 	// 获取预测指标未来的数据
 	predictDataList := make([]*data_manage.EdbDataList, 0)
 
-	endDateStr := edbInfo.EndDate //预测指标的结束日期
+	endDateStr := utils.TimeToFormatDate(edbInfo.EndDate) //预测指标的结束日期
 
 	if isTimeBetween && endDate != `` { //如果是时间区间,同时截止日期不为空的情况,那么
 		reqEndDateTime, _ := time.ParseInLocation(utils.FormatDate, endDate, time.Local)
-		endDateTime, _ := time.ParseInLocation(utils.FormatDate, edbInfo.EndDate, time.Local)
+		endDateTime := edbInfo.EndDate
 		// 如果选择的时间区间结束日期 晚于 当天,那么预测数据截止到当天
 		if reqEndDateTime.Before(endDateTime) {
 			endDateStr = endDate

+ 2 - 2
services/data_stat/edb_delete_log.go

@@ -23,8 +23,8 @@ func AddEdbDeleteLog(edbInfo *data_manage.EdbInfo, sysUser *system.Admin) (err e
 		log.Frequency = edbInfo.Frequency
 		log.Unit = edbInfo.Unit
 		log.UnitEn = edbInfo.UnitEn
-		log.StartDate = edbInfo.StartDate
-		log.EndDate = edbInfo.EndDate
+		log.StartDate = utils.TimeToFormatDate(edbInfo.StartDate)
+		log.EndDate = utils.TimeToFormatDate(edbInfo.EndDate)
 		log.SysUserId = edbInfo.SysUserId
 		log.SysUserRealName = edbInfo.SysUserRealName
 		log.UniqueCode = edbInfo.UniqueCode

+ 3 - 2
services/data_stat/edb_info_stat.go

@@ -4,6 +4,7 @@ import (
 	"eta_gn/eta_api/models/data_manage"
 	"eta_gn/eta_api/models/data_stat"
 	"eta_gn/eta_api/models/system"
+	"eta_gn/eta_api/utils"
 	"fmt"
 	"time"
 )
@@ -28,8 +29,8 @@ func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason str
 		log.EdbNameSource = edbInfo.SourceIndexName
 		log.Frequency = edbInfo.Frequency
 		log.Unit = edbInfo.Unit
-		log.StartDate = edbInfo.StartDate
-		log.EndDate = edbInfo.EndDate
+		log.StartDate = utils.TimeToFormatDate(edbInfo.StartDate)
+		log.EndDate = utils.TimeToFormatDate(edbInfo.EndDate)
 		log.SysUserId = edbInfo.SysUserId
 		log.SysUserRealName = edbInfo.SysUserRealName
 		log.UpdateSysUserId = sysUser.AdminId

+ 42 - 0
utils/common.go

@@ -2709,3 +2709,45 @@ func ExcelTimeToTime(excelTime float64) time.Time {
 	// 创建一个只包含时间部分的 time.Time 对象
 	return time.Date(baseTime.Year(), baseTime.Month(), baseTime.Day(), hours, minutes, seconds, 0, time.UTC)
 }
+
+// TimeToFormatDate
+// @Description: 时间格式转日期字符串
+// @param t
+// @return string
+func TimeToFormatDate(t time.Time) string {
+	if t.IsZero() {
+		return "0000-00-00"
+	}
+
+	return t.Format(FormatDate)
+}
+
+// TimeToFormatDateTime
+// @Description: 时间格式转日期+时间字符串
+// @param t
+// @return string
+func TimeToFormatDateTime(t time.Time) string {
+	if t.IsZero() {
+		return "0000-00-00 00:00:00"
+	}
+
+	return t.Format(FormatDateTime)
+}
+
+// FormatDateStrToTime
+// @Description: 日期字符串转日期格式
+// @param timeStr
+// @return currTime
+// @return err
+func FormatDateStrToTime(timeStr string) (currTime time.Time, err error) {
+	if timeStr != `` {
+		return
+	}
+	if strings.Contains(timeStr, "T") {
+		return time.ParseInLocation(FormatDateWallWithLoc, timeStr, time.Local)
+	}
+	if strings.Contains(timeStr, ":") {
+		return time.ParseInLocation(FormatDateTime, timeStr, time.Local)
+	}
+	return time.ParseInLocation(FormatDate, timeStr, time.Local)
+}