|
@@ -42,28 +42,40 @@ func RefreshCalculateBp(edbInfoId int, fromEdbInfo *EdbInfo, edbCode, startDate,
|
|
|
return
|
|
|
}
|
|
|
edbInfoIdStr := strconv.Itoa(edbInfoId)
|
|
|
- //计算数据
|
|
|
-
|
|
|
//计算数据
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
|
condition += " AND edb_info_id=? "
|
|
|
pars = append(pars, fromEdbInfo.EdbInfoId)
|
|
|
-
|
|
|
if startDate != "" {
|
|
|
condition += " AND data_time>=? "
|
|
|
pars = append(pars, startDate)
|
|
|
}
|
|
|
+
|
|
|
if endDate != "" {
|
|
|
condition += " AND data_time<=? "
|
|
|
pars = append(pars, endDate)
|
|
|
}
|
|
|
-
|
|
|
dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
- existMap := make(map[string]string)
|
|
|
+
|
|
|
+ var existCondition string
|
|
|
+ var existPars []interface{}
|
|
|
+ existCondition += " AND edb_info_id=? "
|
|
|
+ existPars = append(existPars, edbInfoId)
|
|
|
+ dataExistList, err := GetEdbDataListAll(existCondition, existPars, utils.DATA_SOURCE_CALCULATE_BP, 0)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ existDataMap := make(map[string]*EdbInfoSearchData)
|
|
|
+ for _, v := range dataExistList {
|
|
|
+ existDataMap[v.DataTime] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ addExistMap := make(map[string]string)
|
|
|
dataLen := len(dataList)
|
|
|
addSql := ` INSERT INTO edb_data_calculate_bp(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
|
|
|
var isAdd bool
|
|
@@ -83,31 +95,42 @@ func RefreshCalculateBp(edbInfoId int, fromEdbInfo *EdbInfo, edbCode, startDate,
|
|
|
}
|
|
|
}
|
|
|
for k := 1; k <= day; k++ {
|
|
|
- needDay := currentDate.AddDate(0, 0, k).Format(utils.FormatDate)
|
|
|
- existKey := edbCode + needDay
|
|
|
- if _, ok := existMap[existKey]; !ok {
|
|
|
+ needDayForm := currentDate.AddDate(0, 0, k)
|
|
|
+ if needDayForm.Before(time.Now()) {
|
|
|
+ needDay := needDayForm.Format(utils.FormatDate)
|
|
|
+ if _, ok := existDataMap[needDay]; !ok {
|
|
|
+ existKey := edbCode + needDay
|
|
|
+ if _, ok := addExistMap[existKey]; !ok {
|
|
|
+ currentDate, _ := time.Parse(utils.FormatDate, currentItem.DataTime)
|
|
|
+ timestamp := currentDate.UnixNano() / 1e6
|
|
|
+ timestampStr := fmt.Sprintf("%d", timestamp)
|
|
|
+ valStr := decimal.NewFromFloat(currentItem.Value).String()
|
|
|
+ isAdd = true
|
|
|
+ addSql += GetAddSql(edbInfoIdStr, edbCode, needDay, timestampStr, valStr)
|
|
|
+ }
|
|
|
+ addExistMap[existKey] = needDay
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if _, ok := existDataMap[currentItem.DataTime]; !ok {
|
|
|
+ existKey := edbCode + currentItem.DataTime
|
|
|
+ if _, ok := addExistMap[existKey]; !ok {
|
|
|
currentDate, _ := time.Parse(utils.FormatDate, currentItem.DataTime)
|
|
|
timestamp := currentDate.UnixNano() / 1e6
|
|
|
timestampStr := fmt.Sprintf("%d", timestamp)
|
|
|
valStr := decimal.NewFromFloat(currentItem.Value).String()
|
|
|
- addSql += GetAddSql(edbInfoIdStr, edbCode, needDay, timestampStr, valStr)
|
|
|
+ isAdd = true
|
|
|
+ addSql += GetAddSql(edbInfoIdStr, edbCode, currentItem.DataTime, timestampStr, valStr)
|
|
|
}
|
|
|
- existMap[existKey] = needDay
|
|
|
+ addExistMap[existKey] = currentItem.DataTime
|
|
|
}
|
|
|
- existKey := edbCode + currentItem.DataTime
|
|
|
- if _, ok := existMap[existKey]; !ok {
|
|
|
- currentDate, _ := time.Parse(utils.FormatDate, currentItem.DataTime)
|
|
|
- timestamp := currentDate.UnixNano() / 1e6
|
|
|
- timestampStr := fmt.Sprintf("%d", timestamp)
|
|
|
- valStr := decimal.NewFromFloat(currentItem.Value).String()
|
|
|
- addSql += GetAddSql(edbInfoIdStr, edbCode, currentItem.DataTime, timestampStr, valStr)
|
|
|
- }
|
|
|
- existMap[existKey] = currentItem.DataTime
|
|
|
}
|
|
|
if isAdd {
|
|
|
addSql = strings.TrimRight(addSql, ",")
|
|
|
_, err = o.Raw(addSql).Exec()
|
|
|
if err != nil {
|
|
|
+ fmt.Println("add err:" + err.Error())
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
@@ -139,4 +162,4 @@ func GetEdbInfoCalculateBpDetail(edbInfoId int) (item *EdbInfoCalculateTbzDetail
|
|
|
WHERE a.edb_info_id=? `
|
|
|
err = o.Raw(sql, edbInfoId).QueryRow(&item)
|
|
|
return
|
|
|
-}
|
|
|
+}
|