|
@@ -13,8 +13,9 @@ import (
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
-func HandleExtraConfig(chartType int, extraConfigStr string) (newExtraConfigStr string, newAllExtraConfigStr string, err error, errMsg string) {
|
|
|
|
|
|
+func HandleExtraConfig(chartInfoId int, chartType int, extraConfigStr string) (newExtraConfigStr string, newAllExtraConfigStr string, err error, errMsg string) {
|
|
newExtraConfigStr = extraConfigStr
|
|
newExtraConfigStr = extraConfigStr
|
|
|
|
+
|
|
switch chartType {
|
|
switch chartType {
|
|
case 10: // 截面散点图
|
|
case 10: // 截面散点图
|
|
var tmpExtraConfig data_manage.SectionScatterReq
|
|
var tmpExtraConfig data_manage.SectionScatterReq
|
|
@@ -46,7 +47,7 @@ func HandleExtraConfig(chartType int, extraConfigStr string) (newExtraConfigStr
|
|
err = errors.New(errMsg)
|
|
err = errors.New(errMsg)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- newAllExtraConfig, e, msg := handleChartSectionCombineData(sectionExtraConfig)
|
|
|
|
|
|
+ newAllExtraConfig, e, msg := handleChartSectionCombineData(chartInfoId, sectionExtraConfig)
|
|
if e != nil {
|
|
if e != nil {
|
|
err = e
|
|
err = e
|
|
errMsg = msg
|
|
errMsg = msg
|
|
@@ -244,95 +245,62 @@ func GetEnNameMapByCnNameList(cnNameList []string) (contentEnMap map[string]stri
|
|
}
|
|
}
|
|
|
|
|
|
// handleSectionScatterChartData 截面组合图的英文文案处理
|
|
// handleSectionScatterChartData 截面组合图的英文文案处理
|
|
-func handleChartSectionCombineData(extraConfig data_manage.ChartSectionAllExtraConf) (newExtraConfig data_manage.ChartSectionAllExtraConf, err error, errMsg string) {
|
|
|
|
- translateNameList := make([]string, 0)
|
|
|
|
- translateNameMap := make(map[string]bool, 0)
|
|
|
|
- for _, v := range extraConfig.DateConfList {
|
|
|
|
- if _, ok := translateNameMap[v.DateConfName]; !ok && v.DateConfNameEn == "" {
|
|
|
|
- translateNameMap[v.DateConfName] = true
|
|
|
|
- tmpName := strings.TrimSuffix(v.DateConfName, " ")
|
|
|
|
- tmpName = strings.TrimPrefix(tmpName, " ")
|
|
|
|
- translateNameList = append(translateNameList, tmpName)
|
|
|
|
|
|
+func handleChartSectionCombineData(chartInfoId int, extraConfig data_manage.ChartSectionAllExtraConf) (newExtraConfig data_manage.ChartSectionAllExtraConf, err error, errMsg string) {
|
|
|
|
+ dateConfListMapSave := make(map[string]bool)
|
|
|
|
+ for k, v := range extraConfig.DateConfList {
|
|
|
|
+ if v.DateConfNameEn == "" {
|
|
|
|
+ extraConfig.DateConfList[k].DateConfNameEn = v.DateConfName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if _, ok := translateNameMap[extraConfig.UnitList.LeftName]; !ok && extraConfig.UnitList.LeftNameEn == "" {
|
|
|
|
- translateNameMap[extraConfig.UnitList.LeftName] = true
|
|
|
|
- tmpName := strings.TrimSuffix(extraConfig.UnitList.LeftName, " ")
|
|
|
|
- tmpName = strings.TrimPrefix(tmpName, " ")
|
|
|
|
- translateNameList = append(translateNameList, tmpName)
|
|
|
|
|
|
+ if extraConfig.UnitList.LeftNameEn == "" {
|
|
|
|
+ extraConfig.UnitList.LeftNameEn = extraConfig.UnitList.LeftName
|
|
}
|
|
}
|
|
- if _, ok := translateNameMap[extraConfig.UnitList.RightName]; !ok && extraConfig.UnitList.RightNameEn == "" {
|
|
|
|
- translateNameMap[extraConfig.UnitList.RightName] = true
|
|
|
|
- tmpName := strings.TrimSuffix(extraConfig.UnitList.RightName, " ")
|
|
|
|
- tmpName = strings.TrimPrefix(tmpName, " ")
|
|
|
|
- translateNameList = append(translateNameList, tmpName)
|
|
|
|
|
|
+ if extraConfig.UnitList.RightNameEn == "" {
|
|
|
|
+ extraConfig.UnitList.RightNameEn = extraConfig.UnitList.RightName
|
|
}
|
|
}
|
|
- if _, ok := translateNameMap[extraConfig.UnitList.RightTwoName]; !ok && extraConfig.UnitList.RightTwoNameEn == "" {
|
|
|
|
- translateNameMap[extraConfig.UnitList.RightTwoName] = true
|
|
|
|
- tmpName := strings.TrimSuffix(extraConfig.UnitList.RightTwoName, " ")
|
|
|
|
- tmpName = strings.TrimPrefix(tmpName, " ")
|
|
|
|
- translateNameList = append(translateNameList, tmpName)
|
|
|
|
|
|
+ if extraConfig.UnitList.RightTwoNameEn == "" {
|
|
|
|
+ extraConfig.UnitList.RightTwoNameEn = extraConfig.UnitList.RightTwoName
|
|
}
|
|
}
|
|
|
|
|
|
- for _, v := range extraConfig.XDataList {
|
|
|
|
- if _, ok := translateNameMap[v.Name]; !ok && v.NameEn == "" {
|
|
|
|
- translateNameMap[v.Name] = true
|
|
|
|
- tmpName := strings.TrimSuffix(v.Name, " ")
|
|
|
|
- tmpName = strings.TrimPrefix(tmpName, " ")
|
|
|
|
- translateNameList = append(translateNameList, tmpName)
|
|
|
|
|
|
+ for k, v := range extraConfig.XDataList {
|
|
|
|
+ if v.NameEn == "" {
|
|
|
|
+ extraConfig.XDataList[k].NameEn = v.Name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- for _, v := range extraConfig.SeriesList {
|
|
|
|
|
|
+ for k, v := range extraConfig.SeriesList {
|
|
if v.SeriesNameEn == `` {
|
|
if v.SeriesNameEn == `` {
|
|
- if _, ok := translateNameMap[v.SeriesName]; !ok {
|
|
|
|
- translateNameMap[v.SeriesName] = true
|
|
|
|
- tmpName := strings.TrimSuffix(v.SeriesName, " ")
|
|
|
|
- tmpName = strings.TrimPrefix(tmpName, " ")
|
|
|
|
- translateNameList = append(translateNameList, tmpName)
|
|
|
|
|
|
+ extraConfig.SeriesList[k].SeriesNameEn = v.SeriesName
|
|
|
|
+ }
|
|
|
|
+ for _, info := range v.EdbInfoList {
|
|
|
|
+ if info.DateConfType == 1 && info.DateConfName != "" {
|
|
|
|
+ dateConfListMapSave[info.DateConfName] = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- // 获取英文名称map
|
|
|
|
- enNameMap, _, _ := GetEnNameMapByCnNameList(translateNameList)
|
|
|
|
-
|
|
|
|
- for k, seriesItem := range extraConfig.SeriesList {
|
|
|
|
- if len(seriesItem.EdbInfoList) <= 0 {
|
|
|
|
- errMsg = "指标不能为空"
|
|
|
|
- err = errors.New(errMsg)
|
|
|
|
|
|
+ if chartInfoId > 0 {
|
|
|
|
+ // 查询表里的系列信息
|
|
|
|
+ chartSectionCombineEdbList, e := data_manage.GetChartSeriesEdbByChartInfoId(chartInfoId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ err = e
|
|
|
|
+ errMsg = "查询图表系列信息失败"
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if seriesItem.SeriesNameEn == `` { //系列英文名称
|
|
|
|
- if tmpNameEn, ok := enNameMap[seriesItem.SeriesName]; ok {
|
|
|
|
- seriesItem.SeriesNameEn = tmpNameEn
|
|
|
|
|
|
+ for _, info := range chartSectionCombineEdbList {
|
|
|
|
+ if info.DateConfType == 1 && info.DateConfName != "" {
|
|
|
|
+ dateConfListMapSave[info.DateConfName] = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- extraConfig.SeriesList[k] = seriesItem
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- for k, v := range extraConfig.XDataList {
|
|
|
|
- if tmpNameEn, ok := enNameMap[v.Name]; ok && v.NameEn == "" {
|
|
|
|
- extraConfig.XDataList[k].NameEn = tmpNameEn
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if tmpNameEn, ok := enNameMap[extraConfig.UnitList.LeftName]; ok && extraConfig.UnitList.LeftNameEn == "" {
|
|
|
|
- extraConfig.UnitList.LeftName = tmpNameEn
|
|
|
|
- }
|
|
|
|
- if tmpNameEn, ok := enNameMap[extraConfig.UnitList.RightName]; ok && extraConfig.UnitList.RightNameEn == "" {
|
|
|
|
- extraConfig.UnitList.RightName = tmpNameEn
|
|
|
|
- }
|
|
|
|
- if tmpNameEn, ok := enNameMap[extraConfig.UnitList.RightTwoName]; ok && extraConfig.UnitList.RightTwoNameEn == "" {
|
|
|
|
- extraConfig.UnitList.RightTwoName = tmpNameEn
|
|
|
|
}
|
|
}
|
|
- for k, v := range extraConfig.DateConfList {
|
|
|
|
- if tmpNameEn, ok := enNameMap[v.DateConfName]; ok && v.DateConfNameEn == "" {
|
|
|
|
- extraConfig.DateConfList[k].DateConfNameEn = tmpNameEn
|
|
|
|
|
|
+ newExtraConfig = extraConfig
|
|
|
|
+ // 去掉没有被引用的配置
|
|
|
|
+ newExtraConfig.DateConfList = make([]*data_manage.ChartSectionDateConfItem, 0)
|
|
|
|
+ for _, v := range extraConfig.DateConfList {
|
|
|
|
+ if _, ok := dateConfListMapSave[v.DateConfName]; ok {
|
|
|
|
+ newExtraConfig.DateConfList = append(newExtraConfig.DateConfList, v)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- newExtraConfig = extraConfig
|
|
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
@@ -428,18 +396,34 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
|
|
}
|
|
}
|
|
// todo 根据日期变换得到最终日期
|
|
// todo 根据日期变换得到最终日期
|
|
edbDataListTmp := make([]*data_manage.EdbDataList, 0)
|
|
edbDataListTmp := make([]*data_manage.EdbDataList, 0)
|
|
- if dateConfItem.EdbInfoId > 0 {
|
|
|
|
- edbDataListTmp, ok1 = edbDataListMap[dateConfItem.EdbInfoId]
|
|
|
|
- if !ok1 {
|
|
|
|
- err = fmt.Errorf("指标%d的日期数据不存在", dateConfItem.EdbInfoId)
|
|
|
|
|
|
+ if dateConfItem.DateType == 0 {
|
|
|
|
+ if dateConfItem.EdbInfoId > 0 {
|
|
|
|
+ edbDataListTmp, ok1 = edbDataListMap[dateConfItem.EdbInfoId]
|
|
|
|
+ if !ok1 {
|
|
|
|
+ err = fmt.Errorf("指标%d的日期数据不存在", dateConfItem.EdbInfoId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ findDate, err = GetChartSectionSeriesDateByDateChange(dateConfItem.EdbInfoId, edbDataListTmp, dateConfItem.DateChange, dateConfItem.MoveForward)
|
|
|
|
+ if err != nil {
|
|
|
|
+ err = fmt.Errorf("指标%d的日期变换处理失败", dateConfItem.EdbInfoId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ err = fmt.Errorf("请选择指标")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- findDate, err = GetChartSectionSeriesDateByDateChange(dateConfItem.EdbInfoId, edbDataListTmp, dateConfItem.DateChange, dateConfItem.MoveForward)
|
|
|
|
- if err != nil {
|
|
|
|
- err = fmt.Errorf("指标%d的日期变换处理失败", dateConfItem.EdbInfoId)
|
|
|
|
- return
|
|
|
|
|
|
+ } else if dateConfItem.DateType == 1 {
|
|
|
|
+ findDate, err = GetChartSectionSeriesDateByDateChange(dateConfItem.EdbInfoId, edbDataListTmp, dateConfItem.DateChange, dateConfItem.MoveForward)
|
|
|
|
+ if err != nil {
|
|
|
|
+ err = fmt.Errorf("指标%d的日期变换处理失败", dateConfItem.EdbInfoId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ } else if dateConfItem.DateType == 2 {
|
|
|
|
+ if dateConfItem.StaticDate == "" {
|
|
|
|
+ err = fmt.Errorf("请输入固定日期")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ findDate = dateConfItem.StaticDate
|
|
}
|
|
}
|
|
}
|
|
}
|
|
findDateTime, _ := time.ParseInLocation(utils.FormatDate, findDate, time.Local)
|
|
findDateTime, _ := time.ParseInLocation(utils.FormatDate, findDate, time.Local)
|
|
@@ -525,9 +509,26 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
|
|
err = fmt.Errorf("基准系列不存在")
|
|
err = fmt.Errorf("基准系列不存在")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ defaultIndexXDataList := make([]int, 0) //默认排序时的横轴
|
|
|
|
+ defaultXDataMap := make(map[int]data_manage.XData) //默认排序时的横轴单位
|
|
|
|
+ for index, item := range baseSeries.EdbInfoList {
|
|
|
|
+ if index == 0 {
|
|
|
|
+ firstUnit = &data_manage.XData{
|
|
|
|
+ Name: item.Unit,
|
|
|
|
+ NameEn: item.UnitEn,
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ tmp := data_manage.XData{
|
|
|
|
+ Name: item.EdbName,
|
|
|
|
+ NameEn: item.EdbNameEn,
|
|
|
|
+ }
|
|
|
|
+ defaultXDataMap[index] = tmp
|
|
|
|
+ defaultIndexXDataList = append(defaultIndexXDataList, index)
|
|
|
|
+ }
|
|
// 处理系列排序
|
|
// 处理系列排序
|
|
if extraConfig.SortType > 0 {
|
|
if extraConfig.SortType > 0 {
|
|
- newSeriesDataListMap, newSeriesNoDataIndexMap := SortChartSeriesDataSet(baseSeries.SeriesName, baseSeries.DataList, baseSeries.NoDataEdbIndex, seriesDataListMap, seriesNoDataIndexMap, extraConfig.SortType)
|
|
|
|
|
|
+ newSeriesDataListMap, newSeriesNoDataIndexMap, newIndexXDataList := SortChartSeriesDataSet(baseSeries.SeriesName, baseSeries.DataList, baseSeries.NoDataEdbIndex, seriesDataListMap, seriesNoDataIndexMap, extraConfig.SortType)
|
|
for k, item := range extraConfig.SeriesList {
|
|
for k, item := range extraConfig.SeriesList {
|
|
dataList, ok := newSeriesDataListMap[item.SeriesName]
|
|
dataList, ok := newSeriesDataListMap[item.SeriesName]
|
|
if ok {
|
|
if ok {
|
|
@@ -538,28 +539,24 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
|
|
extraConfig.SeriesList[k].NoDataEdbIndex = noIndex
|
|
extraConfig.SeriesList[k].NoDataEdbIndex = noIndex
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ defaultIndexXDataList = newIndexXDataList
|
|
}
|
|
}
|
|
|
|
|
|
xDataList := make([]data_manage.XData, 0)
|
|
xDataList := make([]data_manage.XData, 0)
|
|
- for index, item := range baseSeries.EdbInfoList {
|
|
|
|
- if index == 0 {
|
|
|
|
- firstUnit = &data_manage.XData{
|
|
|
|
- Name: item.Unit,
|
|
|
|
- NameEn: item.UnitEn,
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- tmp := data_manage.XData{
|
|
|
|
- Name: item.EdbName,
|
|
|
|
- NameEn: item.EdbNameEn,
|
|
|
|
|
|
+ for index, itemIndex := range defaultIndexXDataList {
|
|
|
|
+ nameItem, ok := defaultXDataMap[itemIndex]
|
|
|
|
+ if !ok {
|
|
|
|
+ err = fmt.Errorf("单位不存在")
|
|
|
|
+ return
|
|
}
|
|
}
|
|
// 如果已经设置了横轴名称,则用设置的名称替换
|
|
// 如果已经设置了横轴名称,则用设置的名称替换
|
|
if len(extraConfig.XDataList) > index {
|
|
if len(extraConfig.XDataList) > index {
|
|
newItem := extraConfig.XDataList[index]
|
|
newItem := extraConfig.XDataList[index]
|
|
if newItem.Name != "" {
|
|
if newItem.Name != "" {
|
|
- tmp = newItem
|
|
|
|
|
|
+ nameItem = newItem
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- xDataList = append(xDataList, tmp)
|
|
|
|
|
|
+ xDataList = append(xDataList, nameItem)
|
|
}
|
|
}
|
|
dataListResp.XDataList = xDataList
|
|
dataListResp.XDataList = xDataList
|
|
|
|
|
|
@@ -634,7 +631,6 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
|
|
extraConfig.DateConfList[i].Frequency = edbItem.Frequency
|
|
extraConfig.DateConfList[i].Frequency = edbItem.Frequency
|
|
extraConfig.DateConfList[i].EndDate = edbItem.EndDate
|
|
extraConfig.DateConfList[i].EndDate = edbItem.EndDate
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -847,7 +843,7 @@ func handleSystemAppointDateT(currDate time.Time, appointDay, frequency string)
|
|
}
|
|
}
|
|
|
|
|
|
// sortTripleDataSet 以第一组数据为基准,排序之后,空数组的位置也要同步变更
|
|
// sortTripleDataSet 以第一组数据为基准,排序之后,空数组的位置也要同步变更
|
|
-func SortChartSeriesDataSet(baseName string, baseDataList []float64, baseSeriesNoDataIndexList []int, dataListMap map[string][]float64, noDataListIndexMap map[string][]int, asc int) (newDataListMap map[string][]float64, newNoDataListIndexMap map[string][]int) {
|
|
|
|
|
|
+func SortChartSeriesDataSet(baseName string, baseDataList []float64, baseSeriesNoDataIndexList []int, dataListMap map[string][]float64, noDataListIndexMap map[string][]int, asc int) (newDataListMap map[string][]float64, newNoDataListIndexMap map[string][]int, newIndexXDataList []int) {
|
|
newDataListMap = make(map[string][]float64)
|
|
newDataListMap = make(map[string][]float64)
|
|
newNoDataListIndexMap = make(map[string][]int)
|
|
newNoDataListIndexMap = make(map[string][]int)
|
|
|
|
|
|
@@ -886,6 +882,7 @@ func SortChartSeriesDataSet(baseName string, baseDataList []float64, baseSeriesN
|
|
newDataListMap[k][i] = dataListMap[k][idx]
|
|
newDataListMap[k][i] = dataListMap[k][idx]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
dataListMap = newDataListMap
|
|
dataListMap = newDataListMap
|
|
noDataListIndexMap = newNoDataListIndexMap
|
|
noDataListIndexMap = newNoDataListIndexMap
|
|
newDataListMap = make(map[string][]float64)
|
|
newDataListMap = make(map[string][]float64)
|
|
@@ -937,5 +934,6 @@ func SortChartSeriesDataSet(baseName string, baseDataList []float64, baseSeriesN
|
|
newDataListMap[k][i] = dataListMap[k][idx]
|
|
newDataListMap[k][i] = dataListMap[k][idx]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ newIndexXDataList = newIndices
|
|
return
|
|
return
|
|
}
|
|
}
|