|
@@ -245,6 +245,7 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
|
|
dataMap[v.DataTime] = v.Value
|
|
dataMap[v.DataTime] = v.Value
|
|
removeDateMap[v.DataTime] = true
|
|
removeDateMap[v.DataTime] = true
|
|
}
|
|
}
|
|
|
|
+
|
|
existDataMap := make(map[string]string)
|
|
existDataMap := make(map[string]string)
|
|
for yk, yv := range yearMap {
|
|
for yk, yv := range yearMap {
|
|
_, oneMonthOk := yv[1]
|
|
_, oneMonthOk := yv[1]
|
|
@@ -253,10 +254,12 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
for i := 1; i <= 12; i++ {
|
|
for i := 1; i <= 12; i++ {
|
|
- fmt.Println(yk, i, yv[i])
|
|
|
|
dataCurrentItem := yv[i]
|
|
dataCurrentItem := yv[i]
|
|
var date string
|
|
var date string
|
|
var val float64
|
|
var val float64
|
|
|
|
+
|
|
|
|
+ //fmt.Println("delete:", yk, i, yv[i], dataCurrentItem)
|
|
|
|
+
|
|
if dataCurrentItem != nil {
|
|
if dataCurrentItem != nil {
|
|
if i == 1 || i == 2 {
|
|
if i == 1 || i == 2 {
|
|
if _, mok := yv[1]; mok { //1月有值
|
|
if _, mok := yv[1]; mok { //1月有值
|
|
@@ -314,6 +317,18 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
|
|
val, _ = a.Sub(b).Float64()
|
|
val, _ = a.Sub(b).Float64()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ if i == 1 && len(yv) > 1 {
|
|
|
|
+ _, mok := yv[1]
|
|
|
|
+ _, tok := yv[2]
|
|
|
|
+
|
|
|
|
+ if !mok && tok {
|
|
|
|
+ year := strconv.Itoa(yk)
|
|
|
|
+ month := strconv.Itoa(i)
|
|
|
|
+ _, date = utils.GetMonthStartAndEnd(year, month)
|
|
|
|
+ delete(removeDateMap, date)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if date != "" {
|
|
if date != "" {
|
|
//saveValue := utils.SubFloatToString(val, utils.DataDigits)
|
|
//saveValue := utils.SubFloatToString(val, utils.DataDigits)
|
|
@@ -393,7 +408,17 @@ func calculateLjzzy(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, a
|
|
}
|
|
}
|
|
existDataMap[date] = date
|
|
existDataMap[date] = date
|
|
} else {
|
|
} else {
|
|
- if existVal != saveValue {
|
|
|
|
|
|
+ existValFloat, err := decimal.NewFromString(existVal)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return "", false, err
|
|
|
|
+ }
|
|
|
|
+ saveValueFloat, err := decimal.NewFromString(saveValue)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return "", false, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if !existValFloat.Equal(saveValueFloat) {
|
|
|
|
+ //fmt.Println("modify:", existVal, saveValue)
|
|
sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
|
|
sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
|
|
sql = fmt.Sprintf(sql, dataTableName)
|
|
sql = fmt.Sprintf(sql, dataTableName)
|
|
err = to.Exec(sql, saveValue, edbInfoId, date).Error
|
|
err = to.Exec(sql, saveValue, edbInfoId, date).Error
|