Browse Source

处理历史数据变动修改

longyu 2 years ago
parent
commit
36a10c1ac2
2 changed files with 18 additions and 6 deletions
  1. 2 2
      models/index/index_data.go
  2. 16 4
      watch/watch.go

+ 2 - 2
models/index/index_data.go

@@ -37,10 +37,10 @@ func (r *BaseFromMysteelChemicalData) Add(runMod string, list []BaseFromMysteelC
 // 修改
 func (r *BaseFromMysteelChemicalData) Update(runMod string, updateCols []string) (err error) {
 	if runMod == "release" {
-		err = global.MYSQL["hzdata"].Model(r).Select(updateCols).Updates(r).Error
+		err = global.MYSQL["hzdata"].Model(r).Where("base_from_mysteel_chemical_data_id=?", r.BaseFromMysteelChemicalDataId).Select(updateCols).Updates(r).Error
 		return
 	} else {
-		err = global.DEFAULT_MYSQL.Model(r).Select(updateCols).Updates(r).Error
+		err = global.DEFAULT_MYSQL.Model(r).Where("base_from_mysteel_chemical_data_id=?", r.BaseFromMysteelChemicalDataId).Select(updateCols).Updates(r).Error
 		return
 	}
 }

+ 16 - 4
watch/watch.go

@@ -470,7 +470,7 @@ func mysteelIndexHandle(runMode, indexName, indexCode, unit, source, frequency,
 
 	addDataList := make([]index.BaseFromMysteelChemicalData, 0)
 
-	exitDataMap := make(map[string]string)
+	exitDataMap := make(map[string]*index.BaseFromMysteelChemicalData)
 
 	// 修改指标信息
 	if indexName == "" {
@@ -552,13 +552,14 @@ func mysteelIndexHandle(runMode, indexName, indexCode, unit, source, frequency,
 		fmt.Println("exitDataListLen:", len(exitDataList))
 		for _, v := range exitDataList {
 			dateStr := v.DataTime.Format(utils.FormatDate)
-			exitDataMap[dateStr] = v.Value
+			exitDataMap[dateStr] = v
 		}
 	}
 
+	dataObj := new(index.BaseFromMysteelChemicalData)
 	// 遍历excel数据,然后跟现有的数据做校验,不存在则入库
 	for date, value := range excelDataMap {
-		if _, ok := exitDataMap[date]; !ok {
+		if findData, ok := exitDataMap[date]; !ok {
 			dateTime, err := time.ParseInLocation(utils.FormatDate, date, time.Local)
 			if err != nil {
 				fmt.Println("time.ParseInLocation Err:" + err.Error())
@@ -572,11 +573,22 @@ func mysteelIndexHandle(runMode, indexName, indexCode, unit, source, frequency,
 			dataItem.CreateTime = time.Now()
 			dataItem.ModifyTime = time.Now()
 			addDataList = append(addDataList, *dataItem)
+		} else {
+			if findData != nil && findData.Value != value { //修改数据
+				dataObj.Value = value
+				dataObj.ModifyTime = time.Now()
+				dataObj.BaseFromMysteelChemicalDataId = findData.BaseFromMysteelChemicalDataId
+
+				updateDataColsArr := make([]string, 0)
+				updateDataColsArr = append(updateDataColsArr, "value")
+				updateDataColsArr = append(updateDataColsArr, "modify_time")
+				dataObj.Update(runMode, updateDataColsArr)
+				global.LOG.Info(findData.IndexCode + " " + findData.Value + "-" + value)
+			}
 		}
 	}
 
 	if len(addDataList) > 0 {
-		dataObj := new(index.BaseFromMysteelChemicalData)
 		err = dataObj.Add(runMode, addDataList)
 		if err != nil {
 			fmt.Println("dataObj.Add() Err:" + err.Error())