Browse Source

混合表格增加日期变换

xyxie 1 year ago
parent
commit
883b1d3ea9

+ 1 - 1
controllers/data_manage/excel/mixed_table.go

@@ -38,7 +38,7 @@ func (c *ExcelInfoController) GetSystemDate() {
 		return
 		return
 	}
 	}
 
 
-	date, _, err, errMsg := excel2.HandleDate(req.DataTimeType, req.Value, req.Extra)
+	date, _, err, errMsg := excel2.HandleDate(req.DataTimeType, req.Value)
 	if err != nil {
 	if err != nil {
 		br.Msg = "获取系统日期失败"
 		br.Msg = "获取系统日期失败"
 		if errMsg != `` {
 		if errMsg != `` {

+ 34 - 16
models/data_manage/excel/request/mixed_table.go

@@ -2,13 +2,14 @@ package request
 
 
 // 单元格的数据类型
 // 单元格的数据类型
 const (
 const (
-	DateDT                   = iota + 1 //日期
-	EdbDT                               // 2 指标类型
-	CustomTextDT                        // 3 自定义文本
-	InsertDataDT                        // 4 插值(插入指标值,表格上,自动判断日期和指标的交集位置,插入值)
-	PopInsertDataDT                     // 5 弹框插值(在表格上选择日期,然后空白单元格选择弹框并选择指标,插入该指标与该日期的值)
-	FormulateCalculateDataDT            // 6 公式计算(A+B这种)
-	InsertEdbCalculateDataDT            // 7 插入指标系统计算公式生成的值
+	DateDT                       = iota + 1 //日期
+	EdbDT                                   // 2 指标类型
+	CustomTextDT                            // 3 自定义文本
+	InsertDataDT                            // 4 插值(插入指标值,表格上,自动判断日期和指标的交集位置,插入值)
+	PopInsertDataDT                         // 5 弹框插值(在表格上选择日期,然后空白单元格选择弹框并选择指标,插入该指标与该日期的值)
+	FormulateCalculateDataDT                // 6 公式计算(A+B这种)
+	InsertEdbCalculateDataDT                // 7 插入指标系统计算公式生成的值
+	FormulateCalculateDateDataDT            // 8 日期计算
 )
 )
 
 
 // 单元格的日期类型类型
 // 单元格的日期类型类型
@@ -34,13 +35,14 @@ type MixedTableReq struct {
 // MixedTableCellDataReq 混合表格单元格参数
 // MixedTableCellDataReq 混合表格单元格参数
 type MixedTableCellDataReq struct {
 type MixedTableCellDataReq struct {
 	Uid          string `description:"单元格唯一标识"`
 	Uid          string `description:"单元格唯一标识"`
-	DataType     int    `description:"数据类型,1:日期,2:指标,3:自定义文本,4:插值, 5:日期计算"`
+	DataType     int    `description:"数据类型,1:日期,2:指标,3:自定义文本,4:插值"`
 	DataTime     string `description:"所属日期"`
 	DataTime     string `description:"所属日期"`
 	DataTimeType int    `description:"日期类型:0:手动输入日期(固定日期);1:导入系统日期;;3:导入指标日期(指标库的最新日期);"`
 	DataTimeType int    `description:"日期类型:0:手动输入日期(固定日期);1:导入系统日期;;3:导入指标日期(指标库的最新日期);"`
 	EdbInfoId    int    `description:"指标id"`
 	EdbInfoId    int    `description:"指标id"`
 	ShowValue    string `description:"展示值"`
 	ShowValue    string `description:"展示值"`
 	Value        string `description:"实际值"`
 	Value        string `description:"实际值"`
 	Extra        string `description:"额外参数"`
 	Extra        string `description:"额外参数"`
+	ShowStyle    string `description:"展示的样式配置"`
 }
 }
 
 
 // CellRelationConf
 // CellRelationConf
@@ -74,30 +76,44 @@ type SystemDateConf struct {
 // @Description: 导入指标日期配置
 // @Description: 导入指标日期配置
 type EdbDateConf struct {
 type EdbDateConf struct {
 	EdbInfoId int `description:"指标id"`
 	EdbInfoId int `description:"指标id"`
+	EdbDateChangeConf
+	CustomerDate string `description:"自定义日期"`
 }
 }
 
 
 // EdbDateExtraConf
 // EdbDateExtraConf
 // @Description: 导入指标日期前移和日期变换
 // @Description: 导入指标日期前移和日期变换
-type EdbDateExtraConf struct {
-	EdbInfoId   int `description:"指标id"`
+type EdbDateChangeConf struct {
 	MoveForward int `description:"前移的期数"`
 	MoveForward int `description:"前移的期数"`
-	DateChange  []*EdbDateExtraDateChange
+	DateChange  []*EdbDateConfDateChange
 }
 }
-type EdbDateExtraDateChange struct {
-	DateCalculate   *EdbDateExtraDateCalculate
-	FrequencyChange *EdbDateExtraFrequencyChange
+
+type EdbDateConfDateChange struct {
+	DateCalculate   *EdbDateConfDateCalculate
+	FrequencyChange *EdbDateConfFrequencyChange
 }
 }
-type EdbDateExtraDateCalculate struct {
+type EdbDateConfDateCalculate struct {
 	Year  int
 	Year  int
 	Month int
 	Month int
 	Day   int
 	Day   int
 }
 }
 
 
-type EdbDateExtraFrequencyChange struct {
+type EdbDateConfFrequencyChange struct {
 	Frequency    string `description:"频度变换"`
 	Frequency    string `description:"频度变换"`
 	FrequencyDay string `description:"频度的固定日期"`
 	FrequencyDay string `description:"频度的固定日期"`
 }
 }
 
 
+// DateCalculate 混合表格中的日期计算
+type DateCalculateExtra struct {
+	Formula string                          `description:"计算公式"`
+	CellArr []DateCalculateExtraCellFromTag `description:"表格中的单元格"`
+}
+
+// DateCalculateExtraCellFromTag 日期计算的关联单元格
+type DateCalculateExtraCellFromTag struct {
+	Uid     string `description:"单元格唯一值"`
+	FromTag string `description:"指标对应标签"`
+}
+
 // CalculateConf
 // CalculateConf
 // @Description: 计算公式
 // @Description: 计算公式
 type CalculateConf struct {
 type CalculateConf struct {
@@ -109,6 +125,8 @@ type CalculateConf struct {
 	MoveType      int         `description:"移动方式:1:领先(默认),2:滞后"`
 	MoveType      int         `description:"移动方式:1:领先(默认),2:滞后"`
 	MoveFrequency string      `description:"移动频度"`
 	MoveFrequency string      `description:"移动频度"`
 	Source        int         `description:"1:累计值转月;2:累计值转季;3:同比值;4:同差值;5:N数值移动平均数计算;6:环比值;7:环差值;8:升频;9:降频;10:时间移位;11:超季节性;12:年化;13:累计值;14:累计值年初至今;15:指数修匀;16:日均值"`
 	Source        int         `description:"1:累计值转月;2:累计值转季;3:同比值;4:同差值;5:N数值移动平均数计算;6:环比值;7:环差值;8:升频;9:降频;10:时间移位;11:超季节性;12:年化;13:累计值;14:累计值年初至今;15:指数修匀;16:日均值"`
+
+	EdbDateChangeConf
 }
 }
 
 
 // BaseCalculateConf
 // BaseCalculateConf

+ 131 - 51
services/data/excel/mixed_table.go

@@ -120,13 +120,13 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 					return
 					return
 				}
 				}
 				if dataList, ok := edbDataListMap[edbDateConfig.EdbInfoId]; ok {
 				if dataList, ok := edbDataListMap[edbDateConfig.EdbInfoId]; ok {
-					// todo 获取配置信息,根据配置信息进行日期变换
+					// todo 获取配置信息,根据配置信息进行日期变换, 是否需要更新当前记录,将历史记录逐渐转换成新的记录
 					var newDate string
 					var newDate string
-					newDate, err = GetEdbDateByMoveForward(config[k][i].Extra, dataList)
+					newDate, err = GetEdbDateByMoveForward(config[k][i].Value, dataList)
 					if err != nil {
 					if err != nil {
 						return
 						return
 					}
 					}
-					newDate, err = HandleMixTableDateChange(newDate, config[k][i].Extra)
+					newDate, err = HandleMixTableDateChange(newDate, config[k][i].Value)
 					if err != nil {
 					if err != nil {
 						return
 						return
 					}
 					}
@@ -166,7 +166,7 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 				//cell.Value = ``
 				//cell.Value = ``
 
 
 				// 日期关系配置不存在,则默认最新数据
 				// 日期关系配置不存在,则默认最新数据
-				if relationConf, ok := cellRelationConfMap[cell.Uid]; ok {
+				if relationConf, ok := cellRelationConfMap[cell.Uid]; ok { //表示表格日期
 					if relationConf.RelationDate.Key == `` {
 					if relationConf.RelationDate.Key == `` {
 						// 日期关系配置未绑定
 						// 日期关系配置未绑定
 						continue
 						continue
@@ -184,8 +184,18 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 					if dateValMap, ok := edbDayDataListMap[cell.EdbInfoId]; ok {
 					if dateValMap, ok := edbDayDataListMap[cell.EdbInfoId]; ok {
 						tmpDateValMap = dateValMap
 						tmpDateValMap = dateValMap
 					}
 					}
+					// todo 根据配置进行日期变换
+					relationDate := relationCell.DataTime
+					if strings.Contains(cell.Value, "{") {
+						relationDate, err = HandleMixTableDateChange(relationDate, cell.Value)
+						if err != nil {
+							return
+						}
+					} else {
+						cell.Value = ""
+					}
 
 
-					if val, ok2 := tmpDateValMap[relationCell.DataTime]; ok2 {
+					if val, ok2 := tmpDateValMap[relationDate]; ok2 {
 						//cell.ShowValue = fmt.Sprint(val)
 						//cell.ShowValue = fmt.Sprint(val)
 						cellKeyVal[cell.Uid] = val
 						cellKeyVal[cell.Uid] = val
 						cell.ShowValue = utils.FormatTableDataShowValue(val)
 						cell.ShowValue = utils.FormatTableDataShowValue(val)
@@ -198,11 +208,32 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 						if dateValList, ok := edbDataListMap[cell.EdbInfoId]; ok {
 						if dateValList, ok := edbDataListMap[cell.EdbInfoId]; ok {
 							tmpLenData := len(dateValList)
 							tmpLenData := len(dateValList)
 							if tmpLenData > 0 {
 							if tmpLenData > 0 {
-								cellKeyVal[cell.Uid] = dateValList[tmpLenData-1].Value
+								//做期数前移动和日期变换
+								if !strings.Contains(cell.Value, "{") {
+									cell.Value = ""
+								}
+								var newDate string
+								newDate, err = GetEdbDateByMoveForward(cell.Value, dateValList)
+								if err != nil {
+									return
+								}
+								newDate, err = HandleMixTableDateChange(newDate, cell.Value)
+								if err != nil {
+									return
+								}
+								var finalVal float64
+								for _, v := range dateValList {
+									if v.DataTime == newDate {
+										finalVal = v.Value
+										break
+									}
+								}
+								cellKeyVal[cell.Uid] = finalVal
 								cell.ShowValue = utils.FormatTableDataShowValue(dateValList[tmpLenData-1].Value)
 								cell.ShowValue = utils.FormatTableDataShowValue(dateValList[tmpLenData-1].Value)
 							}
 							}
 						}
 						}
 					} else {
 					} else {
+						// todo 既没有绑定单元格,又存在一个日期数据,是否需要做日期变换
 						tmpDateList := strings.Split(cell.DataTime, "-")
 						tmpDateList := strings.Split(cell.DataTime, "-")
 						tmpDateValMap := make(map[string]float64)
 						tmpDateValMap := make(map[string]float64)
 						if len(tmpDateList) == 2 {
 						if len(tmpDateList) == 2 {
@@ -260,6 +291,7 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 				// 日期
 				// 日期
 				var cellDateTime string
 				var cellDateTime string
 				// 日期关系配置不存在,则默认最新数据
 				// 日期关系配置不存在,则默认最新数据
+				// 从绑定的单元格中获取数据的日期
 				if relationConf, ok := cellRelationConfMap[cell.Uid]; ok {
 				if relationConf, ok := cellRelationConfMap[cell.Uid]; ok {
 					if relationConf.RelationDate.Key == `` {
 					if relationConf.RelationDate.Key == `` {
 						// 日期关系配置未绑定
 						// 日期关系配置未绑定
@@ -330,10 +362,21 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 
 
 					lenDataList := len(respItem.Data.DateList)
 					lenDataList := len(respItem.Data.DateList)
 					if cellDateTime == `` && lenDataList > 0 {
 					if cellDateTime == `` && lenDataList > 0 {
+						//判断是否需要做期数前移动
 						cellDateTime = respItem.Data.DateList[lenDataList-1]
 						cellDateTime = respItem.Data.DateList[lenDataList-1]
+						cellDateTime, err = GetEdbDateByMoveForwardByDateList(cell.Value, respItem.Data.DateList)
+						if err != nil {
+							utils.FileLog.Error(fmt.Sprintf("日期前移失败,配置信息;%s", cell.Value))
+							continue
+						}
 					}
 					}
 				}
 				}
-
+				// 进行日期变换
+				cellDateTime, err = HandleMixTableDateChange(cellDateTime, cell.Value)
+				if err != nil {
+					utils.FileLog.Error(fmt.Sprintf("日期变换失败,配置信息;%s, 日期:%s", cell.Value, cellDateTime))
+					continue
+				}
 				val := tmpDataMap[cellDateTime]
 				val := tmpDataMap[cellDateTime]
 				cellKeyVal[cell.Uid] = val
 				cellKeyVal[cell.Uid] = val
 				cell.ShowValue = utils.FormatTableDataShowValue(val)
 				cell.ShowValue = utils.FormatTableDataShowValue(val)
@@ -485,7 +528,7 @@ func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]r
 				dataEdbInfoIdList = append(dataEdbInfoIdList, cell.EdbInfoId)
 				dataEdbInfoIdList = append(dataEdbInfoIdList, cell.EdbInfoId)
 
 
 			case request.DateDT: // 日期类型
 			case request.DateDT: // 日期类型
-				date, extra, tmpErr, tmpErrMsg := handleDate(cell.DataTimeType, cell.Value, cell.Extra)
+				date, newVal, tmpErr, tmpErrMsg := handleDate(cell.DataTimeType, cell.Value)
 				if tmpErr != nil {
 				if tmpErr != nil {
 					err = tmpErr
 					err = tmpErr
 					errMsg = tmpErrMsg
 					errMsg = tmpErrMsg
@@ -493,7 +536,7 @@ func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]r
 				}
 				}
 				rowList[rk].DataTime = date
 				rowList[rk].DataTime = date
 				rowList[rk].ShowValue = date
 				rowList[rk].ShowValue = date
-				rowList[rk].Extra = extra //兼容原有的历史数据中系统导入日期,把value里的值赋值给了extra字段
+				rowList[rk].Value = newVal //兼容原有的历史数据中系统导入日期
 
 
 				// 指标日期类型的单元格需要额外将指标id取出来
 				// 指标日期类型的单元格需要额外将指标id取出来
 				if cell.DataTimeType == request.EdbDateDT {
 				if cell.DataTimeType == request.EdbDateDT {
@@ -523,8 +566,8 @@ func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]r
 // @return date string
 // @return date string
 // @return err error
 // @return err error
 // @return errMsg string
 // @return errMsg string
-func HandleDate(dataTimeType int, val, extra string) (date string, newExtra string, err error, errMsg string) {
-	return handleDate(dataTimeType, val, extra)
+func HandleDate(dataTimeType int, val string) (date string, newVal string, err error, errMsg string) {
+	return handleDate(dataTimeType, val)
 }
 }
 
 
 // handleDate
 // handleDate
@@ -536,8 +579,8 @@ func HandleDate(dataTimeType int, val, extra string) (date string, newExtra stri
 // @return date string
 // @return date string
 // @return err error
 // @return err error
 // @return errMsg string
 // @return errMsg string
-func handleDate(dataTimeType int, val, extra string) (date string, newExtra string, err error, errMsg string) {
-	newExtra = extra
+func handleDate(dataTimeType int, val string) (date string, newVal string, err error, errMsg string) {
+	newVal = val
 	if val == `` {
 	if val == `` {
 		errMsg = "错误的日期数据"
 		errMsg = "错误的日期数据"
 		err = errors.New(errMsg)
 		err = errors.New(errMsg)
@@ -546,24 +589,28 @@ func handleDate(dataTimeType int, val, extra string) (date string, newExtra stri
 
 
 	switch dataTimeType {
 	switch dataTimeType {
 	case request.CustomDateT: //手动输入日期
 	case request.CustomDateT: //手动输入日期
-		date = val
-		date, err = HandleMixTableDateChange(date, extra)
+		if !strings.Contains(val, "{") {
+			newVal, err, errMsg = handleOldCustomerDateT(val)
+			if err != nil {
+				return
+			}
+		}
+		date, err = HandleMixTableDateChange("", newVal)
 		if err != nil {
 		if err != nil {
 			return
 			return
 		}
 		}
+		return
 	case request.SystemDateT: // 系统日期
 	case request.SystemDateT: // 系统日期
 		date = time.Now().Format(utils.FormatDate)
 		date = time.Now().Format(utils.FormatDate)
-		if extra == "" { //旧版的系统日期计算, 需要处理成新版本的系统,整理成extra 里的值,并将value值处理成空值
-			extra, err, errMsg = handleOldSystemDateT(val)
-			if err != nil {
-				return
-			}
+		newVal, err, errMsg = handleOldSystemDateT(val)
+		if err != nil {
+			return
 		}
 		}
-		date, err = HandleMixTableDateChange(date, extra)
+		date, err = HandleMixTableDateChange(date, newVal)
 		if err != nil {
 		if err != nil {
 			return
 			return
 		}
 		}
-		newExtra = extra
+
 	case request.EdbDateDT: // 导入指标日期(指标库的最新日期)
 	case request.EdbDateDT: // 导入指标日期(指标库的最新日期)
 	default:
 	default:
 		errMsg = "错误的日期类型"
 		errMsg = "错误的日期类型"
@@ -574,47 +621,66 @@ func handleDate(dataTimeType int, val, extra string) (date string, newExtra stri
 	return
 	return
 }
 }
 
 
-func GetEdbDateByMoveForward(extra string, edbDataList []*data_manage.EdbDataList) (date string, err error) {
+func GetEdbDateByMoveForward(conf string, edbDataList []*data_manage.EdbDataList) (date string, err error) {
+	dateList := make([]string, 0)
+	for _, v := range edbDataList {
+		dateList = append(dateList, v.DataTime)
+	}
+
+	date, err = GetEdbDateByMoveForwardByDateList(conf, dateList)
+	return
+}
+
+func GetEdbDateByMoveForwardByDateList(conf string, dateList []string) (date string, err error) {
 	moveForward := 0
 	moveForward := 0
-	if extra != "" {
-		var edbDateExtraConf request.EdbDateExtraConf
-		err = json.Unmarshal([]byte(extra), &edbDateExtraConf)
+	if conf != "" {
+		var edbDateConf request.EdbDateChangeConf
+		err = json.Unmarshal([]byte(conf), &edbDateConf)
 		if err != nil {
 		if err != nil {
 			err = fmt.Errorf("日期变换配置json解析失败失败: %s", err.Error())
 			err = fmt.Errorf("日期变换配置json解析失败失败: %s", err.Error())
 			return
 			return
 		}
 		}
-		moveForward = edbDateExtraConf.MoveForward
+		moveForward = edbDateConf.MoveForward
 	}
 	}
 	// 根据日期进行排序
 	// 根据日期进行排序
-	index := len(edbDataList) - 1 - moveForward
-	for k, v := range edbDataList {
+	index := len(dateList) - 1 - moveForward
+	for k, v := range dateList {
 		if k == index {
 		if k == index {
-			date = v.DataTime
+			date = v
+			return
 		}
 		}
 	}
 	}
 	return
 	return
 }
 }
 
 
 // HandleMixTableDateChange 处理表格中的日期变换
 // HandleMixTableDateChange 处理表格中的日期变换
-func HandleMixTableDateChange(date, extra string) (newDate string, err error) {
+func HandleMixTableDateChange(date, conf string) (newDate string, err error) {
 	newDate = date
 	newDate = date
-	if extra == "" {
+	if conf == "" {
 		return
 		return
 	}
 	}
-	var edbDateExtraConf request.EdbDateExtraConf
-	err = json.Unmarshal([]byte(extra), &edbDateExtraConf)
+	var edbDateConf request.EdbDateConf
+	err = json.Unmarshal([]byte(conf), &edbDateConf)
 	if err != nil {
 	if err != nil {
-		err = fmt.Errorf("日期变换配置json解析失败失败: %s", err.Error())
+		err = fmt.Errorf("日期变换配置json解析失败失败: %s, Err:%s", conf, err.Error())
 		return
 		return
 	}
 	}
-	if len(edbDateExtraConf.DateChange) > 0 {
+	if newDate == "" {
+		// 用户写死的固定日期
+		newDate = edbDateConf.CustomerDate
+	}
+	if newDate == "" {
+		err = fmt.Errorf("日期配置失败: %s", conf)
+		return
+	}
+	if len(edbDateConf.DateChange) > 0 {
 		var dateTime time.Time
 		var dateTime time.Time
 		dateTime, err = time.ParseInLocation(utils.FormatDate, newDate, time.Local)
 		dateTime, err = time.ParseInLocation(utils.FormatDate, newDate, time.Local)
 		if err != nil {
 		if err != nil {
 			err = fmt.Errorf("日期解析失败: %s", err.Error())
 			err = fmt.Errorf("日期解析失败: %s", err.Error())
 			return
 			return
 		}
 		}
-		for _, v := range edbDateExtraConf.DateChange {
+		for _, v := range edbDateConf.DateChange {
 			if v.DateCalculate != nil {
 			if v.DateCalculate != nil {
 				dateTime = dateTime.AddDate(v.DateCalculate.Year, v.DateCalculate.Month, v.DateCalculate.Day)
 				dateTime = dateTime.AddDate(v.DateCalculate.Year, v.DateCalculate.Month, v.DateCalculate.Day)
 				newDate = dateTime.Format(utils.FormatDate)
 				newDate = dateTime.Format(utils.FormatDate)
@@ -636,6 +702,19 @@ func HandleMixTableDateChange(date, extra string) (newDate string, err error) {
 	return
 	return
 }
 }
 
 
+func handleOldCustomerDateT(confStr string) (newConf string, err error, errMsg string) {
+	date := confStr
+	dateConf := new(request.EdbDateConf)
+	dateConf.CustomerDate = date
+	newConfByte, e := json.Marshal(dateConf)
+	if e != nil {
+		err = fmt.Errorf("日期计算额外配置,json序列化失败: %s", e.Error())
+		return
+	}
+	newConf = string(newConfByte)
+	return
+}
+
 // handleOldSystemDateT
 // handleOldSystemDateT
 // @Description: 历史数据中的导入系统日期
 // @Description: 历史数据中的导入系统日期
 // @author: Roc
 // @author: Roc
@@ -644,17 +723,18 @@ func HandleMixTableDateChange(date, extra string) (newDate string, err error) {
 // @return date string
 // @return date string
 // @return err error
 // @return err error
 // @return errMsg string
 // @return errMsg string
-func handleOldSystemDateT(confStr string) (extra string, err error, errMsg string) {
+func handleOldSystemDateT(confStr string) (newConf string, err error, errMsg string) {
 	var config request.SystemDateConf
 	var config request.SystemDateConf
 	err = json.Unmarshal([]byte(confStr), &config)
 	err = json.Unmarshal([]byte(confStr), &config)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
-	var extraConf request.EdbDateExtraConf
-	dateChange := new(request.EdbDateExtraDateChange)
-	dateCalculate := new(request.EdbDateExtraDateCalculate)
-	frequencyChange := new(request.EdbDateExtraFrequencyChange)
-	dateChangeList := make([]*request.EdbDateExtraDateChange, 0)
+
+	newConfig := new(request.EdbDateConf)
+	dateChange := new(request.EdbDateConfDateChange)
+	dateCalculate := new(request.EdbDateConfDateCalculate)
+	frequencyChange := new(request.EdbDateConfFrequencyChange)
+	dateChangeList := make([]*request.EdbDateConfDateChange, 0)
 
 
 	switch config.Source {
 	switch config.Source {
 	case request.SystemCurrDateT:
 	case request.SystemCurrDateT:
@@ -664,13 +744,13 @@ func handleOldSystemDateT(confStr string) (extra string, err error, errMsg strin
 		dateCalculate.Day = config.CalculateNum
 		dateCalculate.Day = config.CalculateNum
 		dateChange.DateCalculate = dateCalculate
 		dateChange.DateCalculate = dateCalculate
 		dateChangeList = append(dateChangeList, dateChange)
 		dateChangeList = append(dateChangeList, dateChange)
-		extraConf.DateChange = dateChangeList
-		extraByte, e := json.Marshal(extraConf)
+		newConfig.DateChange = dateChangeList
+		newConfByte, e := json.Marshal(newConfig)
 		if e != nil {
 		if e != nil {
 			err = fmt.Errorf("日期计算额外配置,json序列化失败: %s", e.Error())
 			err = fmt.Errorf("日期计算额外配置,json序列化失败: %s", e.Error())
 			return
 			return
 		}
 		}
-		extra = string(extraByte)
+		newConf = string(newConfByte)
 		return
 		return
 	case request.SystemFrequencyDateT: // 处理系统日期相关的指定频率(所在周/旬/月/季/半年/年的最后/最早一天)
 	case request.SystemFrequencyDateT: // 处理系统日期相关的指定频率(所在周/旬/月/季/半年/年的最后/最早一天)
 		frequencyChange.FrequencyDay = config.Day
 		frequencyChange.FrequencyDay = config.Day
@@ -678,17 +758,17 @@ func handleOldSystemDateT(confStr string) (extra string, err error, errMsg strin
 
 
 		dateChange.FrequencyChange = frequencyChange
 		dateChange.FrequencyChange = frequencyChange
 		dateChangeList = append(dateChangeList, dateChange)
 		dateChangeList = append(dateChangeList, dateChange)
-		extraConf.DateChange = dateChangeList
-		extraByte, e := json.Marshal(extraConf)
+		newConfig.DateChange = dateChangeList
+		newConfByte, e := json.Marshal(newConfig)
 		if e != nil {
 		if e != nil {
 			err = fmt.Errorf("日期计算额外配置,json序列化失败: %s", e.Error())
 			err = fmt.Errorf("日期计算额外配置,json序列化失败: %s", e.Error())
 			return
 			return
 		}
 		}
-		extra = string(extraByte)
+		newConf = string(newConfByte)
 		return
 		return
 	default:
 	default:
-		errMsg = "错误的日期日期导入方式"
-		err = errors.New(fmt.Sprint("错误的日期日期导入方式:", config.Source))
+		//errMsg = "错误的日期日期导入方式"
+		//err = errors.New(fmt.Sprint("错误的日期日期导入方式:", config.Source))
 		return
 		return
 	}
 	}