Selaa lähdekoodia

Merge branch 'bug/3746' into debug

# Conflicts:
#	models/data_manage/edb_info.go
Roc 1 vuosi sitten
vanhempi
commit
c8111f8b64
1 muutettua tiedostoa jossa 64 lisäystä ja 20 poistoa
  1. 64 20
      services/data/excel/mixed_table.go

+ 64 - 20
services/data/excel/mixed_table.go

@@ -145,6 +145,69 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 					cell.ShowValue = edbInfo.EdbName
 				}
 			case request.InsertDataDT, request.PopInsertDataDT: // 数据类型
+				// 日期关系配置不存在,则默认最新数据
+				if relationConf, ok := cellRelationConfMap[cell.Uid]; ok {
+					if relationConf.RelationDate.Key == `` {
+						// 日期关系配置未绑定
+						continue
+					}
+					// 配置
+					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[relationCell.DataTime]; ok2 {
+						//cell.ShowValue = fmt.Sprint(val)
+						cellKeyVal[cell.Uid] = val
+						cell.ShowValue = utils.FormatTableDataShowValue(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)
+							}
+						}
+					} 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)
+						}
+					}
+				}
+
 				if cell.DataTime == `` {
 					// 指标的最新日期
 					if dateValList, ok := edbDataListMap[cell.EdbInfoId]; ok {
@@ -154,27 +217,8 @@ func GetMixedTableCellData(mixedTableReq request.MixedTableReq) (newMixedTableCe
 							cell.ShowValue = utils.FormatTableDataShowValue(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)
-					}
 				}
+
 				calculateCellMap[cell.Uid] = Cell{
 					Column:   k,
 					Row:      i,