|
@@ -526,6 +526,24 @@ func RefreshAllCalculateLjzzy(edbInfoId, source int, fromEdbInfo *EdbInfo, edbCo
|
|
|
val, _ = a.Div(b).Float64()
|
|
|
}
|
|
|
if i == 2 {
|
|
|
+ //1月无值:1月=2月/2
|
|
|
+ {
|
|
|
+ date = strconv.Itoa(yk) + "-01-31"
|
|
|
+ a := decimal.NewFromFloat(dataTwoItem.Value)
|
|
|
+ b := decimal.NewFromFloat(2.0)
|
|
|
+ val, _ = a.Div(b).Float64()
|
|
|
+
|
|
|
+ tmpSql, newAdd, tmpErr := calculateLjzzy(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, o)
|
|
|
+ if !isAdd {
|
|
|
+ isAdd = newAdd
|
|
|
+ }
|
|
|
+ addSql = tmpSql
|
|
|
+ if tmpErr != nil {
|
|
|
+ return tmpErr
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //end 1月无值
|
|
|
+
|
|
|
date = dataCurrentItem.DataTime
|
|
|
a := decimal.NewFromFloat(dataTwoItem.Value)
|
|
|
b := decimal.NewFromFloat(2.0)
|
|
@@ -544,26 +562,34 @@ func RefreshAllCalculateLjzzy(edbInfoId, source int, fromEdbInfo *EdbInfo, edbCo
|
|
|
}
|
|
|
}
|
|
|
if date != "" {
|
|
|
- saveValue := utils.SubFloatToString(val, 4)
|
|
|
- //判断数据是否存在
|
|
|
- if existVal, ok := dataMap[date]; !ok {
|
|
|
- dataTime, _ := time.Parse(utils.FormatDate, date)
|
|
|
- timestamp := dataTime.UnixNano() / 1e6
|
|
|
- timeStr := fmt.Sprintf("%d", timestamp)
|
|
|
- if _, existOk := existDataMap[date]; !existOk {
|
|
|
- addSql += GetAddSql(edbInfoIdStr, edbCode, date, timeStr, saveValue)
|
|
|
- isAdd = true
|
|
|
- }
|
|
|
- existDataMap[date] = date
|
|
|
- } else {
|
|
|
- if existVal != saveValue {
|
|
|
- sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
|
|
|
- sql = fmt.Sprintf(sql, dataTableName)
|
|
|
- _, err = o.Raw(sql, saveValue, edbInfoId, date).Exec()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- }
|
|
|
+ //saveValue := utils.SubFloatToString(val, 4)
|
|
|
+ ////判断数据是否存在
|
|
|
+ //if existVal, ok := dataMap[date]; !ok {
|
|
|
+ // dataTime, _ := time.Parse(utils.FormatDate, date)
|
|
|
+ // timestamp := dataTime.UnixNano() / 1e6
|
|
|
+ // timeStr := fmt.Sprintf("%d", timestamp)
|
|
|
+ // if _, existOk := existDataMap[date]; !existOk {
|
|
|
+ // addSql += GetAddSql(edbInfoIdStr, edbCode, date, timeStr, saveValue)
|
|
|
+ // isAdd = true
|
|
|
+ // }
|
|
|
+ // existDataMap[date] = date
|
|
|
+ //} else {
|
|
|
+ // if existVal != saveValue {
|
|
|
+ // sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
|
|
|
+ // sql = fmt.Sprintf(sql, dataTableName)
|
|
|
+ // _, err = o.Raw(sql, saveValue, edbInfoId, date).Exec()
|
|
|
+ // if err != nil {
|
|
|
+ // return err
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ tmpSql, newAdd, tmpErr := calculateLjzzy(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, o)
|
|
|
+ if !isAdd {
|
|
|
+ isAdd = newAdd
|
|
|
+ }
|
|
|
+ addSql = tmpSql
|
|
|
+ if tmpErr != nil {
|
|
|
+ return tmpErr
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -578,3 +604,26 @@ func RefreshAllCalculateLjzzy(edbInfoId, source int, fromEdbInfo *EdbInfo, edbCo
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func calculateLjzzy(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, o orm.Ormer) (newSql string, isAdd bool, err error) {
|
|
|
+ newSql = addSql
|
|
|
+ saveValue := utils.SubFloatToString(val, 4)
|
|
|
+ //判断数据是否存在
|
|
|
+ if existVal, ok := dataMap[date]; !ok {
|
|
|
+ dataTime, _ := time.Parse(utils.FormatDate, date)
|
|
|
+ timestamp := dataTime.UnixNano() / 1e6
|
|
|
+ timeStr := fmt.Sprintf("%d", timestamp)
|
|
|
+ if _, existOk := existDataMap[date]; !existOk {
|
|
|
+ newSql += GetAddSql(edbInfoIdStr, edbCode, date, timeStr, saveValue)
|
|
|
+ isAdd = true
|
|
|
+ }
|
|
|
+ existDataMap[date] = date
|
|
|
+ } else {
|
|
|
+ if existVal != saveValue {
|
|
|
+ sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
|
|
|
+ sql = fmt.Sprintf(sql, dataTableName)
|
|
|
+ _, err = o.Raw(sql, saveValue, edbInfoId, date).Exec()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|