Browse Source

fix:达梦sql语法问题修复

Roc 3 months ago
parent
commit
cee5c1556c

+ 4 - 3
models/data_manage/chart_info.go

@@ -1984,11 +1984,12 @@ type BatchChartRefreshReq struct {
 
 // GetChartInfoListByUniqueCodeSlice 根据图表编码获取图表列表数据
 func GetChartInfoListByUniqueCodeSlice(uniqueCodeSlice []string) (total int64, items []*ChartInfo, err error) {
-	if len(uniqueCodeSlice) <= 0 {
+	num := len(uniqueCodeSlice)
+	if num <= 0 {
 		return
 	}
-	sql := ` SELECT * FROM chart_info WHERE unique_code in ("` + strings.Join(uniqueCodeSlice, `","`) + `") `
-	err = global.DmSQL["data"].Raw(sql).Scan(&items).Error
+	sql := ` SELECT * FROM chart_info WHERE unique_code in (` + utils.GetOrmInReplace(num) + `) `
+	err = global.DmSQL["data"].Raw(sql, uniqueCodeSlice).Scan(&items).Error
 	if err != nil {
 		return
 	}

+ 7 - 0
models/data_manage/edb_info.go

@@ -833,6 +833,13 @@ func (edbInfo *EdbInfo) Update(cols []string) (err error) {
 	return
 }
 
+// UpdateById 更新指标基础信息
+func (m *EdbInfo) UpdateById(edbInfoId int, updateMap map[string]interface{}) (err error) {
+	err = global.DmSQL["data"].Model(m).Where("edb_info_id = ? ", edbInfoId).Updates(updateMap).Error
+
+	return
+}
+
 type EdbInfoDataResp struct {
 	EdbInfo  *EdbInfo
 	DataList []*EdbDataList

+ 9 - 0
models/data_manage/predict_edb_conf.go

@@ -160,3 +160,12 @@ func GetGroupPredictEdbBySourceEdbInfoId(sourceEdbInfoId int) (items []*EdbInfo,
 	err = global.DmSQL["data"].Raw(sql, sourceEdbInfoId).Find(&items).Error
 	return
 }
+
+// GetGroupPredictEdbInfoIdListBySourceEdbInfoId 根据来源指标id获取配置
+func GetGroupPredictEdbInfoIdListBySourceEdbInfoId(sourceEdbInfoId int) (items []int, err error) {
+	sql := ` SELECT a.edb_info_id FROM edb_info AS a 
+	JOIN predict_edb_conf AS b  on a.edb_info_id = b.predict_edb_info_id
+	     WHERE b.source_edb_info_id=? group by a.edb_info_id`
+	err = global.DmSQL["data"].Raw(sql, sourceEdbInfoId).Scan(&items).Error
+	return
+}

+ 1 - 1
models/data_manage/predict_edb_conf_calculate_mapping.go

@@ -81,7 +81,7 @@ func GetPredictEdbConfCalculateMappingDetailListByEdbInfoId(fromEdbInfoIdList []
 
 	sql := ` SELECT a.predict_edb_conf_calculate_mapping_id,a.edb_info_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source as from_edb_name,b.start_date,b.end_date,b.edb_type,b.edb_code FROM predict_edb_conf_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
-			WHERE a.edb_info_id in (` + utils.GetOrmInReplace(num) + `) GROUP BY a.edb_info_id ORDER BY sort ASC `
+			WHERE a.edb_info_id in (` + utils.GetOrmInReplace(num) + `) GROUP BY a.edb_info_id,a.predict_edb_conf_calculate_mapping_id,a.from_edb_info_id,a.from_edb_code,a.from_source,a.from_source_name,a.sort,a.create_time,a.modify_time,a.from_tag,b.edb_name_source,b.start_date,b.end_date,b.edb_type,b.edb_code ORDER BY sort ASC `
 
 	err = global.DmSQL["data"].Raw(sql, fromEdbInfoIdList).Find(&list).Error
 	if err != nil {

+ 13 - 34
services/data/predict_edb_info.go

@@ -754,50 +754,29 @@ func GetPredictCalculateDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, s
 
 // ModifyPredictEdbBaseInfoBySourceEdb  根据来源ETA指标修改预测指标的基础信息
 func ModifyPredictEdbBaseInfoBySourceEdb(sourceEDdbInfo *data_manage.EdbInfo, frequency, unit string) {
-	list, err := data_manage.GetGroupPredictEdbBySourceEdbInfoId(sourceEDdbInfo.EdbInfoId)
+	idList, err := data_manage.GetGroupPredictEdbInfoIdListBySourceEdbInfoId(sourceEDdbInfo.EdbInfoId)
 	if err != nil {
 		return
 	}
-	for _, v := range list {
-		v.Frequency = frequency
-		v.Unit = unit
-		v.Update([]string{"Frequency", "Unit"})
-		AddOrEditEdbInfoToEs(v.EdbInfoId)
+
+	obj := data_manage.EdbInfo{}
+	for _, v := range idList {
+		updateMap := map[string]interface{}{"frequency": frequency, "unit": unit}
+		_ = obj.UpdateById(v, updateMap)
+		AddOrEditEdbInfoToEs(v)
 	}
 }
 
 // ModifyPredictEdbEnBaseInfoBySourceEdb  根据来源ETA指标修改预测指标的英文基础信息
 func ModifyPredictEdbEnBaseInfoBySourceEdb(sourceEDdbInfo *data_manage.EdbInfo, unitEn string) {
-	list, err := data_manage.GetGroupPredictEdbBySourceEdbInfoId(sourceEDdbInfo.EdbInfoId)
+	idList, err := data_manage.GetGroupPredictEdbInfoIdListBySourceEdbInfoId(sourceEDdbInfo.EdbInfoId)
 	if err != nil {
 		return
 	}
-	for _, v := range list {
-		v.UnitEn = unitEn
-		v.Update([]string{"UnitEn"})
-		AddOrEditEdbInfoToEs(v.EdbInfoId)
+	obj := data_manage.EdbInfo{}
+	for _, v := range idList {
+		updateMap := map[string]interface{}{"unit_en": unitEn}
+		_ = obj.UpdateById(v, updateMap)
+		AddOrEditEdbInfoToEs(v)
 	}
 }
-
-// ModifyPredictEdbUnitBySourceEdbInfoId
-// @Description: 根据来源ETA指标修改预测指标的频度和单位基础信息
-// @author: Roc
-// @datetime 2024-01-05 11:07:39
-// @param sourceEdbInfoId int
-// @param frequency string
-// @param unit string
-// @return err error
-func ModifyPredictEdbUnitBySourceEdbInfoId(sourceEdbInfoId int, frequency, unit string) (err error) {
-	list, err := data_manage.GetGroupPredictEdbBySourceEdbInfoId(sourceEdbInfoId)
-	if err != nil {
-		return
-	}
-
-	for _, v := range list {
-		v.Frequency = frequency
-		v.Unit = unit
-		v.Update([]string{"Frequency", "Unit"})
-		AddOrEditEdbInfoToEs(v.EdbInfoId)
-	}
-	return
-}