|
@@ -781,85 +781,115 @@ func EditChartInfoAndMapping(req *EditChartInfoReq, edbInfoIdStr string, calenda
|
|
}
|
|
}
|
|
chartEdbMappingIdList := make([]string, 0)
|
|
chartEdbMappingIdList := make([]string, 0)
|
|
|
|
|
|
- for _, v := range chartEdbInfoList {
|
|
|
|
- // 查询该指标是否存在,如果存在的话,那么就去修改,否则新增
|
|
|
|
- var tmpChartEdbMapping *ChartEdbMapping
|
|
|
|
- csql := `SELECT * FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? AND source = ? `
|
|
|
|
- err = to.Raw(csql, req.ChartInfoId, v.EdbInfoId, utils.CHART_SOURCE_DEFAULT).QueryRow(&tmpChartEdbMapping)
|
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
- fmt.Println("QueryRow Err:", err.Error())
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- if tmpChartEdbMapping != nil {
|
|
|
|
- chartEdbMappingIdList = append(chartEdbMappingIdList, strconv.Itoa(tmpChartEdbMapping.ChartEdbMappingId))
|
|
|
|
- tmpChartEdbMapping.ModifyTime = time.Now()
|
|
|
|
- tmpChartEdbMapping.MaxData = v.MaxData
|
|
|
|
- tmpChartEdbMapping.MinData = v.MinData
|
|
|
|
- tmpChartEdbMapping.IsOrder = v.IsOrder
|
|
|
|
- tmpChartEdbMapping.IsAxis = v.IsAxis
|
|
|
|
- tmpChartEdbMapping.EdbInfoType = v.EdbInfoType
|
|
|
|
- tmpChartEdbMapping.LeadValue = v.LeadValue
|
|
|
|
- tmpChartEdbMapping.LeadUnit = v.LeadUnit
|
|
|
|
- tmpChartEdbMapping.ChartStyle = v.ChartStyle
|
|
|
|
- tmpChartEdbMapping.ChartColor = v.ChartColor
|
|
|
|
- tmpChartEdbMapping.PredictChartColor = v.PredictChartColor
|
|
|
|
- tmpChartEdbMapping.ChartWidth = v.ChartWidth
|
|
|
|
- tmpChartEdbMapping.EdbAliasName = v.EdbAliasName
|
|
|
|
- tmpChartEdbMapping.IsConvert = v.IsConvert
|
|
|
|
- tmpChartEdbMapping.ConvertType = v.ConvertType
|
|
|
|
- tmpChartEdbMapping.ConvertValue = v.ConvertValue
|
|
|
|
- tmpChartEdbMapping.ConvertUnit = v.ConvertUnit
|
|
|
|
- tmpChartEdbMapping.ConvertEnUnit = v.ConvertEnUnit
|
|
|
|
- _, err = to.Update(tmpChartEdbMapping, "ModifyTime", "MaxData", "MinData", "IsOrder", "IsAxis", "EdbInfoType", "LeadValue", "LeadUnit", "ChartStyle", "ChartColor", "PredictChartColor", "ChartWidth", "EdbAliasName",
|
|
|
|
- "IsConvert", "ConvertType", "ConvertValue", "ConvertUnit", "ConvertEnUnit")
|
|
|
|
- if err != nil {
|
|
|
|
- fmt.Println("chart_edb_mapping Err:" + err.Error())
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- mapItem := new(ChartEdbMapping)
|
|
|
|
- mapItem.ChartInfoId = req.ChartInfoId
|
|
|
|
- mapItem.EdbInfoId = v.EdbInfoId
|
|
|
|
- mapItem.CreateTime = time.Now()
|
|
|
|
- mapItem.ModifyTime = time.Now()
|
|
|
|
- timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
|
- mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp + "_" + strconv.Itoa(v.EdbInfoId))
|
|
|
|
- mapItem.MaxData = v.MaxData
|
|
|
|
- mapItem.MinData = v.MinData
|
|
|
|
- mapItem.IsOrder = v.IsOrder
|
|
|
|
- mapItem.IsAxis = v.IsAxis
|
|
|
|
- mapItem.EdbInfoType = v.EdbInfoType
|
|
|
|
- mapItem.LeadValue = v.LeadValue
|
|
|
|
- mapItem.LeadUnit = v.LeadUnit
|
|
|
|
- mapItem.ChartStyle = v.ChartStyle
|
|
|
|
- mapItem.ChartColor = v.ChartColor
|
|
|
|
- mapItem.PredictChartColor = v.PredictChartColor
|
|
|
|
- mapItem.ChartWidth = v.ChartWidth
|
|
|
|
- mapItem.Source = utils.CHART_SOURCE_DEFAULT
|
|
|
|
- mapItem.EdbAliasName = v.EdbAliasName
|
|
|
|
- mapItem.IsConvert = v.IsConvert
|
|
|
|
- mapItem.ConvertType = v.ConvertType
|
|
|
|
- mapItem.ConvertValue = v.ConvertValue
|
|
|
|
- mapItem.ConvertUnit = v.ConvertUnit
|
|
|
|
- mapItem.ConvertEnUnit = v.ConvertEnUnit
|
|
|
|
- tmpId, err := to.Insert(mapItem)
|
|
|
|
- if err != nil {
|
|
|
|
- fmt.Println("AddChartEdbMapping Err:" + err.Error())
|
|
|
|
- return err
|
|
|
|
|
|
+ // 获取已经配置的关联指标列表
|
|
|
|
+ var tmpChartEdbMappingList []*ChartEdbMapping
|
|
|
|
+ csql := `SELECT * FROM chart_edb_mapping WHERE chart_info_id=? AND source = ? ORDER BY chart_edb_mapping_id ASC`
|
|
|
|
+ _, err = to.Raw(csql, req.ChartInfoId, utils.CHART_SOURCE_DEFAULT).QueryRows(&tmpChartEdbMappingList)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("获取已经配置的关联指标列表 Err:", err.Error())
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 已经配置的关联指标列表长度下标
|
|
|
|
+ tmpEdbIndex := len(tmpChartEdbMappingList) - 1
|
|
|
|
+ // 当下要配置的关联指标列表长度下标
|
|
|
|
+ reqEdbIndex := len(chartEdbInfoList) - 1
|
|
|
|
+
|
|
|
|
+ addChartEdbList := make([]*ChartEdbMapping, 0)
|
|
|
|
+ removeIdList := make([]int, 0)
|
|
|
|
+ for k, v := range chartEdbInfoList {
|
|
|
|
+ // 如果当前下标小于等于已经配置的关联指标的最大长度,那么就校验
|
|
|
|
+ if k <= tmpEdbIndex {
|
|
|
|
+ tmpChartEdbMapping := tmpChartEdbMappingList[k]
|
|
|
|
+
|
|
|
|
+ // 顺序未变
|
|
|
|
+ if tmpChartEdbMapping.EdbInfoId == v.EdbInfoId {
|
|
|
|
+ chartEdbMappingIdList = append(chartEdbMappingIdList, strconv.Itoa(tmpChartEdbMapping.ChartEdbMappingId))
|
|
|
|
+ tmpChartEdbMapping.ModifyTime = time.Now()
|
|
|
|
+ tmpChartEdbMapping.MaxData = v.MaxData
|
|
|
|
+ tmpChartEdbMapping.MinData = v.MinData
|
|
|
|
+ tmpChartEdbMapping.IsOrder = v.IsOrder
|
|
|
|
+ tmpChartEdbMapping.IsAxis = v.IsAxis
|
|
|
|
+ tmpChartEdbMapping.EdbInfoType = v.EdbInfoType
|
|
|
|
+ tmpChartEdbMapping.LeadValue = v.LeadValue
|
|
|
|
+ tmpChartEdbMapping.LeadUnit = v.LeadUnit
|
|
|
|
+ tmpChartEdbMapping.ChartStyle = v.ChartStyle
|
|
|
|
+ tmpChartEdbMapping.ChartColor = v.ChartColor
|
|
|
|
+ tmpChartEdbMapping.PredictChartColor = v.PredictChartColor
|
|
|
|
+ tmpChartEdbMapping.ChartWidth = v.ChartWidth
|
|
|
|
+ tmpChartEdbMapping.EdbAliasName = v.EdbAliasName
|
|
|
|
+ tmpChartEdbMapping.IsConvert = v.IsConvert
|
|
|
|
+ tmpChartEdbMapping.ConvertType = v.ConvertType
|
|
|
|
+ tmpChartEdbMapping.ConvertValue = v.ConvertValue
|
|
|
|
+ tmpChartEdbMapping.ConvertUnit = v.ConvertUnit
|
|
|
|
+ tmpChartEdbMapping.ConvertEnUnit = v.ConvertEnUnit
|
|
|
|
+ _, err = to.Update(tmpChartEdbMapping, "ModifyTime", "MaxData", "MinData", "IsOrder", "IsAxis", "EdbInfoType", "LeadValue", "LeadUnit", "ChartStyle", "ChartColor", "PredictChartColor", "ChartWidth", "EdbAliasName",
|
|
|
|
+ "IsConvert", "ConvertType", "ConvertValue", "ConvertUnit", "ConvertEnUnit")
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("chart_edb_mapping Err:" + err.Error())
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ continue
|
|
|
|
+ } else {
|
|
|
|
+ // 如果是指标的顺序变了,那么需要删除该配置,进行新的配置
|
|
|
|
+ removeIdList = append(removeIdList, tmpChartEdbMapping.ChartEdbMappingId)
|
|
}
|
|
}
|
|
- mapItem.ChartEdbMappingId = int(tmpId)
|
|
|
|
- chartEdbMappingIdList = append(chartEdbMappingIdList, strconv.Itoa(mapItem.ChartEdbMappingId))
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 如果是指标的顺序变了 或者
|
|
|
|
+ // 如果当前下标是超过了已经配置的关联指标的最大长度,那么就新增
|
|
|
|
+ mapItem := new(ChartEdbMapping)
|
|
|
|
+ mapItem.ChartInfoId = req.ChartInfoId
|
|
|
|
+ mapItem.EdbInfoId = v.EdbInfoId
|
|
|
|
+ mapItem.CreateTime = time.Now()
|
|
|
|
+ mapItem.ModifyTime = time.Now()
|
|
|
|
+ timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
|
+ mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp + "_" + strconv.Itoa(v.EdbInfoId))
|
|
|
|
+ mapItem.MaxData = v.MaxData
|
|
|
|
+ mapItem.MinData = v.MinData
|
|
|
|
+ mapItem.IsOrder = v.IsOrder
|
|
|
|
+ mapItem.IsAxis = v.IsAxis
|
|
|
|
+ mapItem.EdbInfoType = v.EdbInfoType
|
|
|
|
+ mapItem.LeadValue = v.LeadValue
|
|
|
|
+ mapItem.LeadUnit = v.LeadUnit
|
|
|
|
+ mapItem.ChartStyle = v.ChartStyle
|
|
|
|
+ mapItem.ChartColor = v.ChartColor
|
|
|
|
+ mapItem.PredictChartColor = v.PredictChartColor
|
|
|
|
+ mapItem.ChartWidth = v.ChartWidth
|
|
|
|
+ mapItem.Source = utils.CHART_SOURCE_DEFAULT
|
|
|
|
+ mapItem.EdbAliasName = v.EdbAliasName
|
|
|
|
+ mapItem.IsConvert = v.IsConvert
|
|
|
|
+ mapItem.ConvertType = v.ConvertType
|
|
|
|
+ mapItem.ConvertValue = v.ConvertValue
|
|
|
|
+ mapItem.ConvertUnit = v.ConvertUnit
|
|
|
|
+ mapItem.ConvertEnUnit = v.ConvertEnUnit
|
|
|
|
+
|
|
|
|
+ addChartEdbList = append(addChartEdbList, mapItem)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 当前保存的指标数与已有的指标数不一致,需要删除已有的指标关联配置
|
|
|
|
+ if reqEdbIndex < tmpEdbIndex {
|
|
|
|
+ for i := reqEdbIndex + 1; i <= tmpEdbIndex; i++ {
|
|
|
|
+ removeIdList = append(removeIdList, tmpChartEdbMappingList[i].ChartEdbMappingId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if len(chartEdbMappingIdList) > 0 {
|
|
|
|
- chartEdbMappingIdStr := strings.Join(chartEdbMappingIdList, ",")
|
|
|
|
- dsql := `DELETE FROM chart_edb_mapping WHERE chart_info_id=? AND chart_edb_mapping_id NOT IN(` + chartEdbMappingIdStr + `)`
|
|
|
|
- _, err = to.Raw(dsql, req.ChartInfoId).Exec()
|
|
|
|
|
|
+
|
|
|
|
+ // 删除已经移除了的指标关联配置
|
|
|
|
+ removeNum := len(removeIdList)
|
|
|
|
+ if removeNum > 0 {
|
|
|
|
+ dsql := `DELETE FROM chart_edb_mapping WHERE chart_info_id=? AND chart_edb_mapping_id IN(` + utils.GetOrmInReplace(removeNum) + `)`
|
|
|
|
+ _, err = to.Raw(dsql, req.ChartInfoId, removeIdList).Exec()
|
|
if err != nil {
|
|
if err != nil {
|
|
fmt.Println("delete err:" + err.Error())
|
|
fmt.Println("delete err:" + err.Error())
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 将新的指标关联配置写入
|
|
|
|
+ if len(addChartEdbList) > 0 {
|
|
|
|
+ _, err = to.InsertMulti(500, addChartEdbList)
|
|
|
|
+ }
|
|
|
|
+
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|