123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package index_data
- import (
- "errors"
- "eta/eta_bridge/global"
- "eta/eta_bridge/models/jiayue"
- "eta/eta_bridge/models/response"
- "eta/eta_bridge/services/alarm_msg"
- "eta/eta_bridge/utils"
- "fmt"
- "time"
- )
- func GetIndexFromJiaYue(indexCode, source, startDate, endDate string) (data *response.IndexResp, err error, errMsg string) {
- defer func() {
- if err != nil {
- global.LOG.Info("GetIndexFromJiaYue Err: " + errMsg)
- go alarm_msg.SendAlarmMsg("GetIndexFromJiaYue Err: "+errMsg, 3)
- return
- }
- }()
- var sourceArray []interface{}
- if source == "wind" {
- sourceArray = append(sourceArray, "wind", "wind_stop", "wind_p", "wind_tmp")
- } else if source == "manual" {
- sourceArray = append(sourceArray, "manual", "manul", "munal")
- } else {
- sourceArray = append(sourceArray, source)
- }
- var indexPars []interface{}
- indexCond := ` SOURCE_TYPE IN (` + utils.GetOracleInReplace(len(sourceArray)) + `)`
- indexPars = append(indexPars, sourceArray...)
- if source == "wind" {
- indexCond += " AND SOURCE_CODE = :1 "
- indexPars = append(indexPars, indexCode)
- } else {
- indexCond += " AND ID = :1 "
- indexPars = append(indexPars, indexCode)
- }
- indexList, err := jiayue.GetDictIndex(indexCond, indexPars)
- if err != nil {
- errMsg = fmt.Sprintf("嘉悦物产指标信息查询失败,Err: %s", err)
- return
- }
- if len(indexList) <= 0 {
- return
- }
- index := indexList[0]
- //获取指标数据
- if index.TableName == "" {
- errMsg = "指标信息不全,指标数据对应的表名为空"
- err = errors.New(errMsg)
- return
- }
- if index.Id <= 0 {
- errMsg = "指标信息不全,指标对应的序号为空"
- err = errors.New(errMsg)
- return
- }
- var pars []interface{}
- condition := " INDEX_ID = :1"
- pars = append(pars, index.Id)
- if startDate != "" {
- condition += " AND INDEX_DATE >= TO_DATE (:1, 'yyyy-mm-dd')"
- pars = append(pars, startDate)
- }
- if endDate != "" {
- condition += " AND INDEX_DATE <= TO_DATE (:1, 'yyyy-mm-dd')"
- pars = append(pars, endDate)
- }
- indexData, err := jiayue.GetDictData(index.TableName, condition, pars)
- if err != nil {
- errMsg = fmt.Sprintf("嘉悦物产指标数据信息查询失败,Err: %s", err)
- return
- }
- var list []response.IndexData
- for _, v := range indexData {
- var dataTimeStr string
- if v.IndexDate != "" {
- dataTime, e := time.ParseInLocation(utils.FormatDateDefault, v.IndexDate, time.Local)
- if e != nil {
- err = e
- fmt.Println("解析时间失败:", err)
- return
- }
- dataTimeStr = dataTime.Format(utils.FormatDate)
- }
- var updateTimeStr string
- if v.UpdateTime != "" {
- updateTime, e := time.ParseInLocation(utils.FormatDateDefault, v.UpdateTime, time.Local)
- if e != nil {
- err = e
- fmt.Println("解析时间失败:", err)
- return
- }
- updateTimeStr = updateTime.Format(utils.FormatDateTime)
- }
- tmp := response.IndexData{
- Val: v.IndexValue,
- DataTime: dataTimeStr,
- UpdateTime: updateTimeStr,
- }
- list = append(list, tmp)
- }
- var dateLastStr, timeLastUpdateStr string
- if index.DateLast != "" {
- dateLast, e := time.ParseInLocation(utils.FormatDateDefault, index.DateLast, time.Local)
- if e != nil {
- err = e
- fmt.Println("解析时间失败:", err)
- return
- }
- dateLastStr = dateLast.Format(utils.FormatDate)
- }
- if index.TimeLastUpdate != "" {
- timeLastUpdate, e := time.ParseInLocation(utils.FormatDateDefault, index.TimeLastUpdate, time.Local)
- if e != nil {
- err = e
- fmt.Println("解析时间失败:", err)
- return
- }
- timeLastUpdateStr = timeLastUpdate.Format(utils.FormatDateTime)
- }
- data = new(response.IndexResp)
- data.IndexData = list
- data.IndexCode = indexCode
- data.LastDate = dateLastStr
- data.LastUpdateTime = timeLastUpdateStr
- data.Status = index.Status
- return
- }
|