|
@@ -56,56 +56,13 @@ func (this *RangeChartChartInfoController) Preview() {
|
|
|
br.Msg = "请选择指标"
|
|
|
return
|
|
|
}
|
|
|
- // todo 校验时间区间配置
|
|
|
- switch req.ExtraConfig.DateRangeType {
|
|
|
- case 0:
|
|
|
- case 1:
|
|
|
- if len(req.ExtraConfig.ManualDateConf) == 0 {
|
|
|
- br.Msg = "请选择时间区间"
|
|
|
- return
|
|
|
- }
|
|
|
- // 先按开始时间排序
|
|
|
- sort.Sort(data_manage.ChartRangeAnalysisManualDateConfList(req.ExtraConfig.ManualDateConf))
|
|
|
- // 校验日期
|
|
|
- // 1.如果截止时间小于指标的截止日期,需要重置为指标的截止日期
|
|
|
- // 2.时间区间不能重叠
|
|
|
- for i := 1; i < len(req.ExtraConfig.ManualDateConf); i++ {
|
|
|
- start1, err := time.Parse(utils.FormatDate, req.ExtraConfig.ManualDateConf[i-1].EndDate)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "截止日期格式有误"
|
|
|
- return
|
|
|
- }
|
|
|
- start2, err := time.Parse(utils.FormatDate, req.ExtraConfig.ManualDateConf[i].EndDate)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "截止日期格式有误"
|
|
|
- return
|
|
|
- }
|
|
|
|
|
|
- start3, err := time.Parse(utils.FormatDate, req.ExtraConfig.ManualDateConf[i].StartDate)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "截止日期格式有误"
|
|
|
- return
|
|
|
- }
|
|
|
- // 如果当前区间的开始时间小于等于前一个区间的结束时间,则存在重叠
|
|
|
- if !start2.After(start1) || start3.Before(start1) {
|
|
|
- br.Msg = "日期区间存在重叠"
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- //如果截止时间大于指标的截止日期,需要重置为指标的截止日期
|
|
|
- case 2:
|
|
|
- if req.ExtraConfig.YearDateConf.StartDay == "" || req.ExtraConfig.YearDateConf.EndDay == "" {
|
|
|
- br.Msg = "请选择时间区间"
|
|
|
- return
|
|
|
- }
|
|
|
- if _, e := time.Parse(utils.FormatMonthDay, req.ExtraConfig.YearDateConf.StartDay); e != nil {
|
|
|
- br.Msg = "开始日期格式有误"
|
|
|
- return
|
|
|
- }
|
|
|
- if _, e := time.Parse(utils.FormatMonthDay, req.ExtraConfig.YearDateConf.EndDay); e != nil {
|
|
|
- br.Msg = "结束日期格式有误"
|
|
|
- return
|
|
|
- }
|
|
|
+ err, msg, isSendEmail := rangeServ.CheckChartRangeExtraConfig(req.ExtraConfig)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = err.Error()
|
|
|
+ br.IsSendEmail = isSendEmail
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
// 获取指标信息
|
|
@@ -1338,31 +1295,40 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
|
|
|
}
|
|
|
|
|
|
// todo 校验配置合法性
|
|
|
- multipleGraphConfigEdbMapping, err := data_manage.GetMultipleGraphConfigEdbMappingByIdAndSource(req.MultipleGraphConfigId, 10)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ multipleGraphConfigEdbMappingList, err := data_manage.GetMultipleGraphConfigEdbMappingListByIdAndSource(req.MultipleGraphConfigId, 10)
|
|
|
+ if err != nil {
|
|
|
br.Msg = `保存失败`
|
|
|
- br.ErrMsg = "获取配置与图表的关联关系失败,ERR:" + err.Error()
|
|
|
+ br.ErrMsg = "查询配置与图表的关联关系失败,ERR:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- err = nil
|
|
|
- var isAdd bool
|
|
|
var edbInfoId int
|
|
|
- if multipleGraphConfigEdbMapping == nil {
|
|
|
- isAdd = true
|
|
|
+ addEdbInfoIds := make([]int, 0)
|
|
|
+ updateEdbInfoIds := make([]int, 0)
|
|
|
+ deleteEdbInfoIds := make([]int, 0)
|
|
|
+ if len(multipleGraphConfigEdbMappingList) == 0 {
|
|
|
+ // 需要新增的指标
|
|
|
} else {
|
|
|
- edbInfo, err := data_manage.GetEdbInfoById(multipleGraphConfigEdbMapping.EdbInfoId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ // 需要更新的指标
|
|
|
+ // 查询原先所有指标的来源指标,进一步筛选出需要新增,或者更新 或者删除的指标
|
|
|
+ oldEdbInfoIds := make([]int, 0)
|
|
|
+ for _, v := range multipleGraphConfigEdbMappingList {
|
|
|
+ oldEdbInfoIds = append(oldEdbInfoIds, v.EdbInfoId)
|
|
|
+ }
|
|
|
+
|
|
|
+ oldEdbCalculateMappingList, e := data_manage.GetEdbInfoCalculateMappingListByEdbInfoIds(oldEdbInfoIds)
|
|
|
+ if e != nil {
|
|
|
br.Msg = `保存失败`
|
|
|
- br.ErrMsg = "获取图表信息失败,ERR:" + err.Error()
|
|
|
+ br.ErrMsg = "获取计算指标信息失败,ERR:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
// 说明指标还在,没有被删除
|
|
|
- if edbInfo != nil && !req.IsSaveAs {
|
|
|
- edbInfoId = multipleGraphConfigEdbMapping.EdbInfoId
|
|
|
- req.EdbName = edbInfo.EdbName
|
|
|
- req.ClassifyId = edbInfo.ClassifyId
|
|
|
- req.Frequency = edbInfo.Frequency
|
|
|
- req.Unit = edbInfo.Unit
|
|
|
+ oldFromEdbInfoIds := make([]int, 0)
|
|
|
+ for _, v := range oldEdbCalculateMappingList {
|
|
|
+ if !utils.InArrayByInt(edbInfoIds, v.FromEdbInfoId) {
|
|
|
+ deleteEdbInfoIds = append(deleteEdbInfoIds, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ oldFromEdbInfoIds = append(oldFromEdbInfoIds, v.FromEdbInfoId)
|
|
|
}
|
|
|
}
|
|
|
|