Explorar o código

fix: 修改指标最大最小值

hsun hai 1 ano
pai
achega
6c46347e0f
Modificáronse 1 ficheiros con 23 adicións e 9 borrados
  1. 23 9
      models/edb_info.go

+ 23 - 9
models/edb_info.go

@@ -238,6 +238,14 @@ func ModifyEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err
 	return
 }
 
+// ModifyEdbTimeAndLastInfo 修改指标的最新数据信息(除上下限)
+func ModifyEdbTimeAndLastInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE edb_info SET start_date = ?, end_date = ?, is_update = 2,latest_date = ?, latest_value = ?, modify_time = NOW() WHERE edb_info_id = ?`
+	_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.MaxDate, item.LatestValue, edbInfoId).Exec()
+	return
+}
+
 // GetEdbDataCount 获取edb指标数据的数量; order:1升序,其余值为降序
 func GetEdbDataCount(condition string, pars []interface{}, source int) (count int, err error) {
 	o := orm.NewOrm()
@@ -373,10 +381,6 @@ func GetEdbInfoByCondition(condition string, pars []interface{}, order int) (ite
 
 // UnifiedModifyEdbInfoMaxAndMinInfo 统一修改指标的最大最小值
 func UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo *EdbInfo) (err error, errMsg string) {
-	// ETA1.0.3改-如果指标有手动保存过, 那么就不更新指标的最大最小值
-	if edbInfo.ManualSave == 1 {
-		return
-	}
 	// 修改最大最小值
 	maxAndMinItem, err := GetEdbInfoMaxAndMinInfo(edbInfo.Source, edbInfo.EdbCode)
 	if err != nil {
@@ -391,11 +395,21 @@ func UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo *EdbInfo) (err error, errMsg stri
 	}
 
 	if maxAndMinItem != nil {
-		err = ModifyEdbInfoMaxAndMinInfo(edbInfo.EdbInfoId, maxAndMinItem)
-		if err != nil {
-			errMsg = "刷新指标失败!"
-			err = errors.New("修改指标最大最小值失败,err:" + err.Error())
-			return
+		// ETA1.0.3改-如果指标有手动保存过, 那么就不更新指标的最大最小值
+		if edbInfo.ManualSave == 1 {
+			err = ModifyEdbTimeAndLastInfo(edbInfo.EdbInfoId, maxAndMinItem)
+			if err != nil {
+				errMsg = "刷新指标失败!"
+				err = errors.New("修改指标最新日期和数据失败,err:" + err.Error())
+				return
+			}
+		} else {
+			err = ModifyEdbInfoMaxAndMinInfo(edbInfo.EdbInfoId, maxAndMinItem)
+			if err != nil {
+				errMsg = "刷新指标失败!"
+				err = errors.New("修改指标最大最小值失败,err:" + err.Error())
+				return
+			}
 		}
 	}
 	// 修改关联的预测指标