|
@@ -124,7 +124,13 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
|
|
|
for i, cell := range row {
|
|
|
// 单元格是日期类型,且是日导入指标日期(指标库的最新日期)
|
|
|
if cell.DataType == request.DateDT && cell.DataTimeType == request.EdbDateDT {
|
|
|
- if edbInfo, ok := edbInfoMap[cell.EdbInfoId]; ok {
|
|
|
+ // 指标id是在配置里面
|
|
|
+ var edbDateConfig request.EdbDateConf
|
|
|
+ err = json.Unmarshal([]byte(cell.Value), &edbDateConfig)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if edbInfo, ok := edbInfoMap[edbDateConfig.EdbInfoId]; ok {
|
|
|
cell.ShowValue = edbInfo.EndDate
|
|
|
cell.DataTime = edbInfo.EndDate
|
|
|
config[k][i] = cell
|
|
@@ -156,37 +162,69 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
|
|
|
cell.ShowValue = edbInfo.EdbName
|
|
|
}
|
|
|
case request.InsertDataDT, request.PopInsertDataDT: // 数据类型
|
|
|
- if cell.DataTime == `` {
|
|
|
- // 指标的最新日期
|
|
|
- if dateValList, ok := edbDataListMap[cell.EdbInfoId]; ok {
|
|
|
- tmpLenData := len(dateValList)
|
|
|
- if tmpLenData > 0 {
|
|
|
- cellKeyVal[cell.Uid] = dateValList[tmpLenData-1].Value
|
|
|
- //cell.ShowValue = utils.FormatTableDataShowValue(dateValList[tmpLenData-1].Value)
|
|
|
- cell.ShowValue = fmt.Sprint(dateValList[tmpLenData-1].Value)
|
|
|
- }
|
|
|
+ // 日期关系配置不存在,则默认最新数据
|
|
|
+ if relationConf, ok := cellRelationConfMap[cell.Uid]; ok {
|
|
|
+ if relationConf.RelationDate.Key == `` {
|
|
|
+ // 日期关系配置未绑定
|
|
|
+ continue
|
|
|
}
|
|
|
- } else {
|
|
|
- tmpDateList := strings.Split(cell.DataTime, "-")
|
|
|
- tmpDateValMap := make(map[string]float64)
|
|
|
- if len(tmpDateList) == 2 {
|
|
|
- //月度数据
|
|
|
- if dateValMap, ok := edbMonthDataListMap[cell.EdbInfoId]; ok {
|
|
|
- tmpDateValMap = dateValMap
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 日度数据
|
|
|
- if dateValMap, ok := edbDayDataListMap[cell.EdbInfoId]; ok {
|
|
|
- tmpDateValMap = dateValMap
|
|
|
- }
|
|
|
+ // 配置
|
|
|
+ relationCell, ok := cellDataRelationMap[relationConf.RelationDate.Key]
|
|
|
+ if !ok {
|
|
|
+ // 找不到对应日期的单元格
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ // 确实是找到了这个关联日期的单元格,那么就先清空当前单元格的数据,通过日期重新获取数据值
|
|
|
+ cell.ShowValue = ``
|
|
|
+ cell.Value = ``
|
|
|
|
|
|
+ tmpDateValMap := make(map[string]float64)
|
|
|
+ // 日度数据
|
|
|
+ if dateValMap, ok := edbDayDataListMap[cell.EdbInfoId]; ok {
|
|
|
+ tmpDateValMap = dateValMap
|
|
|
}
|
|
|
- if val, ok2 := tmpDateValMap[cell.DataTime]; ok2 {
|
|
|
+
|
|
|
+ if val, ok2 := tmpDateValMap[relationCell.DataTime]; ok2 {
|
|
|
//cell.ShowValue = fmt.Sprint(val)
|
|
|
cellKeyVal[cell.Uid] = val
|
|
|
- //cell.ShowValue = utils.FormatTableDataShowValue(val)
|
|
|
cell.ShowValue = fmt.Sprint(val)
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // 如果不是取得一个关联的日期,那么就是指定日期
|
|
|
+ // 如果没有指定日期,则默认最新数据
|
|
|
+ if cell.DataTime == `` {
|
|
|
+ // 指标的最新日期
|
|
|
+ if dateValList, ok := edbDataListMap[cell.EdbInfoId]; ok {
|
|
|
+ tmpLenData := len(dateValList)
|
|
|
+ if tmpLenData > 0 {
|
|
|
+ cellKeyVal[cell.Uid] = dateValList[tmpLenData-1].Value
|
|
|
+ //cell.ShowValue = utils.FormatTableDataShowValue(dateValList[tmpLenData-1].Value)
|
|
|
+ cell.ShowValue = fmt.Sprint(dateValList[tmpLenData-1].Value)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tmpDateList := strings.Split(cell.DataTime, "-")
|
|
|
+ tmpDateValMap := make(map[string]float64)
|
|
|
+ if len(tmpDateList) == 2 {
|
|
|
+ //月度数据
|
|
|
+ if dateValMap, ok := edbMonthDataListMap[cell.EdbInfoId]; ok {
|
|
|
+ tmpDateValMap = dateValMap
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 日度数据
|
|
|
+ if dateValMap, ok := edbDayDataListMap[cell.EdbInfoId]; ok {
|
|
|
+ tmpDateValMap = dateValMap
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if val, ok2 := tmpDateValMap[cell.DataTime]; ok2 {
|
|
|
+ //cell.ShowValue = fmt.Sprint(val)
|
|
|
+ cellKeyVal[cell.Uid] = val
|
|
|
+ //cell.ShowValue = utils.FormatTableDataShowValue(val)
|
|
|
+ cell.ShowValue = fmt.Sprint(val)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
calculateCellMap[cell.Uid] = Cell{
|
|
@@ -448,6 +486,16 @@ func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]r
|
|
|
dataEdbInfoIdList = append(dataEdbInfoIdList, cell.EdbInfoId)
|
|
|
|
|
|
case request.DateDT: // 日期类型
|
|
|
+ date, tmpErr, tmpErrMsg := handleDate(cell.DataTimeType, cell.Value)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ errMsg = tmpErrMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rowList[rk].DataTime = date
|
|
|
+ rowList[rk].ShowValue = date
|
|
|
+
|
|
|
+ // 指标日期类型单元格的需要额外将指标id取出来
|
|
|
if cell.DataTimeType == request.EdbDateDT {
|
|
|
var config request.EdbDateConf
|
|
|
err = json.Unmarshal([]byte(cell.Value), &config)
|
|
@@ -455,15 +503,6 @@ func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]r
|
|
|
return
|
|
|
}
|
|
|
edbInfoIdList = append(edbInfoIdList, config.EdbInfoId)
|
|
|
- } else {
|
|
|
- date, tmpErr, tmpErrMsg := handleDate(cell.DataTimeType, cell.Value)
|
|
|
- if tmpErr != nil {
|
|
|
- err = tmpErr
|
|
|
- errMsg = tmpErrMsg
|
|
|
- return
|
|
|
- }
|
|
|
- rowList[rk].DataTime = date
|
|
|
- rowList[rk].ShowValue = date
|
|
|
}
|
|
|
}
|
|
|
}
|