|
@@ -75,38 +75,38 @@ func AddEdbDataFromCoal(edbCode string) (err error) {
|
|
|
var dataTime time.Time
|
|
|
var sDataTime string
|
|
|
var timestamp int64
|
|
|
- if suffix == "firm_index"{
|
|
|
+ if suffix == "firm_index" {
|
|
|
syear := eDate[:4]
|
|
|
- year,_ := strconv.Atoi(syear)
|
|
|
+ year, _ := strconv.Atoi(syear)
|
|
|
smonth := eDate[7:]
|
|
|
smonth = strings.Split(smonth, "月份")[0]
|
|
|
- month,_ :=strconv.Atoi(smonth)
|
|
|
+ month, _ := strconv.Atoi(smonth)
|
|
|
var day int
|
|
|
- if strings.Contains(eDate,"上旬"){
|
|
|
+ if strings.Contains(eDate, "上旬") {
|
|
|
day = 15
|
|
|
currentLocation := time.Now().Location()
|
|
|
- dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
|
|
|
+ dataTime = time.Date(year, time.Month(month), day, 0, 0, 0, 0, currentLocation)
|
|
|
sDataTime = dataTime.Format(utils.FormatDate)
|
|
|
timestamp = dataTime.UnixNano() / 1e6
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
- } else if strings.Contains(eDate,"中旬") {
|
|
|
+ } else if strings.Contains(eDate, "中旬") {
|
|
|
day = 25
|
|
|
currentLocation := time.Now().Location()
|
|
|
- dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
|
|
|
+ dataTime = time.Date(year, time.Month(month), day, 0, 0, 0, 0, currentLocation)
|
|
|
sDataTime = dataTime.Format(utils.FormatDate)
|
|
|
timestamp = dataTime.UnixNano() / 1e6
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
currentLocation := time.Now().Location()
|
|
|
- firstOfMonth := time.Date(year, time.Month(month),1,0,0,0,0,currentLocation)
|
|
|
- dataTime = firstOfMonth.AddDate(0,1,-1)
|
|
|
+ firstOfMonth := time.Date(year, time.Month(month), 1, 0, 0, 0, 0, currentLocation)
|
|
|
+ dataTime = firstOfMonth.AddDate(0, 1, -1)
|
|
|
sDataTime = dataTime.Format(utils.FormatDate)
|
|
|
timestamp = dataTime.UnixNano() / 1e6
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
sDataTime = eDate
|
|
|
- dataTime, err = time.Parse(utils.FormatDate, eDate)
|
|
|
+ dataTime, err = time.ParseInLocation(utils.FormatDate, eDate, time.Local)
|
|
|
if err != nil {
|
|
|
fmt.Println("time.Parse Err:" + eDate)
|
|
|
return err
|
|
@@ -115,7 +115,7 @@ func AddEdbDataFromCoal(edbCode string) (err error) {
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
}
|
|
|
|
|
|
- value := strings.Replace(sv.DealValue,"%","",-1)
|
|
|
+ value := strings.Replace(sv.DealValue, "%", "", -1)
|
|
|
if _, ok := existMap[sDataTime]; !ok {
|
|
|
addSql += GetAddSql("0", edbCode, sDataTime, timeStr, value)
|
|
|
fmt.Println("edbCode:", edbCode)
|
|
@@ -171,6 +171,23 @@ func RefreshEdbDataFromCoal(edbInfoId int, edbCode, startDate string) (err error
|
|
|
}
|
|
|
|
|
|
glDataList, err := GetCoalDataByTradeCode(suffix, condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 真实数据的最大日期 , 插入规则配置的日期
|
|
|
+ var realDataMaxDate, edbDataInsertConfigDate time.Time
|
|
|
+ var edbDataInsertConfig *EdbDataInsertConfig
|
|
|
+ var isFindConfigDateRealData bool //是否找到配置日期的实际数据的值
|
|
|
+ {
|
|
|
+ edbDataInsertConfig, err = GetEdbDataInsertConfigByEdbId(edbInfoId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if edbDataInsertConfig != nil {
|
|
|
+ edbDataInsertConfigDate = edbDataInsertConfig.Date
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
//获取指标所有数据
|
|
|
var existCondition string
|
|
@@ -196,7 +213,7 @@ func RefreshEdbDataFromCoal(edbInfoId int, edbCode, startDate string) (err error
|
|
|
var isAdd bool
|
|
|
for _, v := range glDataList {
|
|
|
var value string
|
|
|
- value = strings.Replace(v.DealValue,"%","",-1)
|
|
|
+ value = strings.Replace(v.DealValue, "%", "", -1)
|
|
|
item := v
|
|
|
itemValue := value
|
|
|
if _, ok := existMap[v.DataTime]; !ok {
|
|
@@ -205,38 +222,38 @@ func RefreshEdbDataFromCoal(edbInfoId int, edbCode, startDate string) (err error
|
|
|
var dataTime time.Time
|
|
|
var sDataTime string
|
|
|
var timestamp int64
|
|
|
- if suffix == "firm_index"{
|
|
|
+ if suffix == "firm_index" {
|
|
|
syear := eDate[:4]
|
|
|
- year,_ := strconv.Atoi(syear)
|
|
|
+ year, _ := strconv.Atoi(syear)
|
|
|
smonth := eDate[7:]
|
|
|
smonth = strings.Split(smonth, "月份")[0]
|
|
|
- month,_ :=strconv.Atoi(smonth)
|
|
|
+ month, _ := strconv.Atoi(smonth)
|
|
|
var day int
|
|
|
- if strings.Contains(eDate,"上旬"){
|
|
|
+ if strings.Contains(eDate, "上旬") {
|
|
|
day = 15
|
|
|
currentLocation := time.Now().Location()
|
|
|
- dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
|
|
|
+ dataTime = time.Date(year, time.Month(month), day, 0, 0, 0, 0, currentLocation)
|
|
|
sDataTime = dataTime.Format(utils.FormatDate)
|
|
|
timestamp = dataTime.UnixNano() / 1e6
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
- } else if strings.Contains(eDate,"中旬") {
|
|
|
+ } else if strings.Contains(eDate, "中旬") {
|
|
|
day = 25
|
|
|
currentLocation := time.Now().Location()
|
|
|
- dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
|
|
|
+ dataTime = time.Date(year, time.Month(month), day, 0, 0, 0, 0, currentLocation)
|
|
|
sDataTime = dataTime.Format(utils.FormatDate)
|
|
|
timestamp = dataTime.UnixNano() / 1e6
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
currentLocation := time.Now().Location()
|
|
|
- firstOfMonth := time.Date(year, time.Month(month),1,0,0,0,0,currentLocation)
|
|
|
- dataTime = firstOfMonth.AddDate(0,1,-1)
|
|
|
+ firstOfMonth := time.Date(year, time.Month(month), 1, 0, 0, 0, 0, currentLocation)
|
|
|
+ dataTime = firstOfMonth.AddDate(0, 1, -1)
|
|
|
sDataTime = dataTime.Format(utils.FormatDate)
|
|
|
timestamp = dataTime.UnixNano() / 1e6
|
|
|
timeStr = fmt.Sprintf("%d", timestamp)
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
sDataTime = eDate
|
|
|
- dataTime, err = time.Parse(utils.FormatDate, eDate)
|
|
|
+ dataTime, err = time.ParseInLocation(utils.FormatDate, eDate, time.Local)
|
|
|
if err != nil {
|
|
|
fmt.Println("time.Parse Err:" + eDate)
|
|
|
return err
|
|
@@ -260,8 +277,23 @@ func RefreshEdbDataFromCoal(edbInfoId int, edbCode, startDate string) (err error
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 下面代码主要目的是处理掉手动插入的数据判断
|
|
|
+ {
|
|
|
+ if realDataMaxDate.IsZero() || dataTime.After(realDataMaxDate) {
|
|
|
+ realDataMaxDate = dataTime
|
|
|
+ }
|
|
|
+ if edbDataInsertConfigDate.IsZero() || dataTime.Equal(edbDataInsertConfigDate) {
|
|
|
+ isFindConfigDateRealData = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 处理手工数据补充的配置
|
|
|
+ HandleConfigInsertEdbData(realDataMaxDate, edbDataInsertConfig, edbInfoId, source, existMap, isFindConfigDateRealData)
|
|
|
+
|
|
|
if isAdd {
|
|
|
addSql = strings.TrimRight(addSql, ",")
|
|
|
_, err = o.Raw(addSql).Exec()
|
|
@@ -269,5 +301,6 @@ func RefreshEdbDataFromCoal(edbInfoId int, edbCode, startDate string) (err error
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return
|
|
|
-}
|
|
|
+}
|