|
@@ -2,13 +2,15 @@ package eta_bridge
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ "encoding/json"
|
|
|
"eta/eta_task/models/data_manage"
|
|
|
"eta/eta_task/services/alarm_msg"
|
|
|
"eta/eta_task/utils"
|
|
|
"fmt"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
-// PushIndexValueParamReq
|
|
|
+// PushBaseParamReq
|
|
|
// @Description: 业务报文
|
|
|
type PushBaseParamReq struct {
|
|
|
SerialID string `json:"serialID" description:"流水号"`
|
|
@@ -18,19 +20,9 @@ type PushBaseParamReq struct {
|
|
|
Data interface{} `json:"data" description:"报文体"`
|
|
|
}
|
|
|
|
|
|
-// PushDataParamReq
|
|
|
-// @Description: 业务报文
|
|
|
-type PushDataParamReq struct {
|
|
|
- SerialID string `json:"serialID" description:"流水号"`
|
|
|
- TableCode string `json:"tableCode" description:"数据表编码"`
|
|
|
- Total int `json:"total" description:"本次落表数据总数"`
|
|
|
- IsEmailWarn int `json:"isEmailWarn" description:"是否发送预警邮件,(1-是 0-否)"`
|
|
|
- Data interface{} `json:"data" description:"报文体,指标数据列表"`
|
|
|
-}
|
|
|
-
|
|
|
-// PushDataParamDataReq
|
|
|
+// PushIndexParamDataReq
|
|
|
// @Description: 指标数据结构
|
|
|
-type PushDataParamDataReq struct {
|
|
|
+type PushIndexParamDataReq struct {
|
|
|
SourceIndexCode string `json:"source_index_code" description:"上游来源指标ID"`
|
|
|
IndexCode string `json:"index_code" description:""`
|
|
|
IndexName string `json:"index_name" description:""`
|
|
@@ -95,9 +87,9 @@ func SyncIndexList(cont context.Context) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- dataList := make([]PushDataParamDataReq, 0)
|
|
|
+ dataList := make([]PushIndexParamDataReq, 0)
|
|
|
for _, v := range list {
|
|
|
- dataList = append(dataList, PushDataParamDataReq{
|
|
|
+ dataList = append(dataList, PushIndexParamDataReq{
|
|
|
SourceIndexCode: v.EdbCode,
|
|
|
IndexCode: fmt.Sprint(v.Source, "_", v.EdbCode),
|
|
|
IndexName: v.EdbName,
|
|
@@ -114,7 +106,7 @@ func SyncIndexList(cont context.Context) (err error) {
|
|
|
OrginSource: v.SourceName, // todo
|
|
|
OrginSysSource: v.SourceName,
|
|
|
SysSource: "产研平台", //todo
|
|
|
- SourceType: "RPA", //TODO
|
|
|
+ SourceType: "RPA", //TODO
|
|
|
Status: 1,
|
|
|
})
|
|
|
}
|
|
@@ -147,16 +139,6 @@ func SyncIndexList(cont context.Context) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// PushIndexValueParamReq
|
|
|
-// @Description: 业务报文
|
|
|
-type PushIndexValueParamReq struct {
|
|
|
- SerialID string `json:"serialID" description:"流水号"`
|
|
|
- TableCode string `json:"tableCode" description:"数据表编码"`
|
|
|
- Total int `json:"total" description:"本次落表数据总数"`
|
|
|
- IsEmailWarn int `json:"isEmailWarn" description:"是否发送预警邮件,(1-是 0-否)"`
|
|
|
- Data []PushIndexValueItemReq `json:"data" description:"报文体,指标日期值数据列表"`
|
|
|
-}
|
|
|
-
|
|
|
// PushIndexValueItemReq
|
|
|
// @Description: 指标日期值数据结构
|
|
|
type PushIndexValueItemReq struct {
|
|
@@ -417,3 +399,484 @@ func SyncEdbClassifyList(cont context.Context) (err error) {
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func SyncIndex(cont context.Context) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ tips := "SyncIndex-定时同步ETA指标信息变更数据至第三方失败, ErrMsg:\n" + err.Error()
|
|
|
+ utils.FileLog.Info(tips)
|
|
|
+ go alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ //condition += " AND update_type in (?,?) "
|
|
|
+ //pars = append(pars, 1, 2)
|
|
|
+ condition += " AND id > ?"
|
|
|
+ pars = append(pars, 50)
|
|
|
+
|
|
|
+ list, err := data_manage.GetEdbUpdateLogByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //pushIndexData *PushIndexParamDataReq, pushEdbClassify *PushEdbClassifyItemReq, pushIndexValue *PushIndexValueItemReq
|
|
|
+
|
|
|
+ pushIndexList := make([]*PushIndexParamDataReq, 0)
|
|
|
+ pushEdbClassifyList := make([]*PushEdbClassifyItemReq, 0)
|
|
|
+ pushIndexValueList := make([]*PushIndexValueItemReq, 0)
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ pushIndexData, pushEdbClassify, pushIndexValue, err := handleData(v)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ if pushIndexData != nil {
|
|
|
+ pushIndexList = append(pushIndexList, pushIndexData)
|
|
|
+ }
|
|
|
+
|
|
|
+ if pushEdbClassify != nil {
|
|
|
+ pushEdbClassifyList = append(pushEdbClassifyList, pushEdbClassify)
|
|
|
+ }
|
|
|
+
|
|
|
+ if pushIndexValue != nil {
|
|
|
+ pushIndexValueList = append(pushIndexValueList, pushIndexValue)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func handleData(edbUpdateLog *data_manage.EdbUpdateLog) (pushIndexData *PushIndexParamDataReq, pushEdbClassify *PushEdbClassifyItemReq, pushIndexValue *PushIndexValueItemReq, err error) {
|
|
|
+ switch edbUpdateLog.OpType {
|
|
|
+ case "insert":
|
|
|
+ return handleInsert(edbUpdateLog)
|
|
|
+ case "update":
|
|
|
+ return handleUpdate(edbUpdateLog)
|
|
|
+ case "delete":
|
|
|
+ return handleDelete(edbUpdateLog)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func handleInsert(edbUpdateLog *data_manage.EdbUpdateLog) (pushIndexData *PushIndexParamDataReq, pushEdbClassify *PushEdbClassifyItemReq, pushIndexValue *PushIndexValueItemReq, err error) {
|
|
|
+ data := edbUpdateLog.NewData
|
|
|
+
|
|
|
+ //指标信息
|
|
|
+ if edbUpdateLog.OpTableName == "edb_info" {
|
|
|
+ var edbInfo *data_manage.EdbInfo
|
|
|
+ err = json.Unmarshal([]byte(data), &edbInfo)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标信息
|
|
|
+ pushIndexData = &PushIndexParamDataReq{
|
|
|
+ SourceIndexCode: edbInfo.EdbCode,
|
|
|
+ IndexCode: fmt.Sprint(edbInfo.Source, "_", edbInfo.EdbCode),
|
|
|
+ IndexName: edbInfo.EdbName,
|
|
|
+ IndexShortName: edbInfo.EdbName, //todo
|
|
|
+ FrequenceName: edbInfo.Frequency,
|
|
|
+ UnitName: edbInfo.Unit,
|
|
|
+ AssetBeginDate: edbInfo.StartDate,
|
|
|
+ AssetEndDate: edbInfo.EndDate,
|
|
|
+ CreateUser: edbInfo.SysUserRealName,
|
|
|
+ IndexCreateTime: edbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateUser: edbInfo.SysUserRealName, // todo
|
|
|
+ DetailUpdateTime: edbInfo.CreateTime.Format(utils.FormatDateTime), //todo
|
|
|
+ IndexUpdateTime: edbInfo.ModifyTime.Format(utils.FormatDateTime), //todo
|
|
|
+ OrginSource: edbInfo.SourceName, // todo
|
|
|
+ OrginSysSource: edbInfo.SourceName,
|
|
|
+ SysSource: "产研平台",
|
|
|
+ SourceType: getSourceType(edbInfo.Source),
|
|
|
+ Status: 1,
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标与分类的关系信息
|
|
|
+ pushEdbClassify = &PushEdbClassifyItemReq{
|
|
|
+ Id: fmt.Sprint(edbInfo.EdbInfoId),
|
|
|
+ ClassifyId: edbInfo.ClassifyId,
|
|
|
+ IndexCode: fmt.Sprint(edbInfo.Source, "_", edbInfo.EdbCode),
|
|
|
+ CreateTime: edbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ CreateUser: edbInfo.SysUserRealName,
|
|
|
+ UpdateTime: edbInfo.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateUser: edbInfo.SysUserRealName,
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分类信息
|
|
|
+ //if edbUpdateLog.OpTableName == "edb_classify" {
|
|
|
+ // var edbClassify *data_manage.EdbClassify
|
|
|
+ // err = json.Unmarshal([]byte(data), &edbClassify)
|
|
|
+ // if err != nil {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 指标信息
|
|
|
+ // pushClassify = PushClassifyItemReq{
|
|
|
+ // ClassifyId: int(edbClassify.ClassifyID),
|
|
|
+ // ClassifyType: int(edbClassify.ClassifyType),
|
|
|
+ // ClassifyName: edbClassify.ClassifyName,
|
|
|
+ // ParentId: int(edbClassify.ParentID),
|
|
|
+ // HasData: int(edbClassify.HasData),
|
|
|
+ // CreateTime: edbClassify.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ // UpdateTime: edbClassify.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ // SysUserId: int(edbClassify.SysUserID),
|
|
|
+ // SysUserRealName: edbClassify.SysUserRealName,
|
|
|
+ // Level: int(edbClassify.Level),
|
|
|
+ // UniqueCode: edbClassify.UniqueCode,
|
|
|
+ // SortColumn: int(edbClassify.Sort),
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+
|
|
|
+ // 数据信息
|
|
|
+ if strings.HasPrefix(edbUpdateLog.OpTableName, "edb_data_") {
|
|
|
+ var edbData *data_manage.EdbData
|
|
|
+ err = json.Unmarshal([]byte(data), &edbData)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbSource, ok := data_manage.EdbTableNameSourceMap[edbUpdateLog.OpTableName]
|
|
|
+ if !ok {
|
|
|
+ // 没有找到来源,那就过滤
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 数据信息
|
|
|
+ pushIndexValue = &PushIndexValueItemReq{
|
|
|
+ Id: utils.MD5(fmt.Sprint(edbSource.EdbSourceId, "_", edbSource.SourceName, "_", edbData.EdbDataId)),
|
|
|
+ IndexCode: fmt.Sprint(edbSource, "_", edbData.EdbCode),
|
|
|
+ Value: fmt.Sprint(edbData.Value),
|
|
|
+ BusinessDate: edbData.DataTime.Format(utils.FormatDate),
|
|
|
+ CreateTime: edbData.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateTime: edbData.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ Status: "1",
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func handleDelete(edbUpdateLog *data_manage.EdbUpdateLog) (pushIndexData *PushIndexParamDataReq, pushEdbClassify *PushEdbClassifyItemReq, pushIndexValue *PushIndexValueItemReq, err error) {
|
|
|
+ data := edbUpdateLog.OldData
|
|
|
+
|
|
|
+ //指标信息
|
|
|
+ if edbUpdateLog.OpTableName == "edb_info" {
|
|
|
+ var edbInfo *data_manage.EdbInfo
|
|
|
+ err = json.Unmarshal([]byte(data), &edbInfo)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标信息
|
|
|
+ pushIndexData = &PushIndexParamDataReq{
|
|
|
+ SourceIndexCode: edbInfo.EdbCode,
|
|
|
+ IndexCode: fmt.Sprint(edbInfo.Source, "_", edbInfo.EdbCode),
|
|
|
+ IndexName: edbInfo.EdbName,
|
|
|
+ IndexShortName: edbInfo.EdbName, //todo
|
|
|
+ FrequenceName: edbInfo.Frequency,
|
|
|
+ UnitName: edbInfo.Unit,
|
|
|
+ AssetBeginDate: edbInfo.StartDate,
|
|
|
+ AssetEndDate: edbInfo.EndDate,
|
|
|
+ CreateUser: edbInfo.SysUserRealName,
|
|
|
+ IndexCreateTime: edbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateUser: edbInfo.SysUserRealName, // todo
|
|
|
+ DetailUpdateTime: edbInfo.CreateTime.Format(utils.FormatDateTime), //todo
|
|
|
+ IndexUpdateTime: edbInfo.ModifyTime.Format(utils.FormatDateTime), //todo
|
|
|
+ OrginSource: edbInfo.SourceName, // todo
|
|
|
+ OrginSysSource: edbInfo.SourceName,
|
|
|
+ SysSource: "产研平台",
|
|
|
+ SourceType: getSourceType(edbInfo.Source),
|
|
|
+ Status: 0,
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标与分类的关系信息
|
|
|
+ pushEdbClassify = &PushEdbClassifyItemReq{
|
|
|
+ Id: fmt.Sprint(edbInfo.EdbInfoId),
|
|
|
+ ClassifyId: edbInfo.ClassifyId,
|
|
|
+ IndexCode: fmt.Sprint(edbInfo.Source, "_", edbInfo.EdbCode),
|
|
|
+ CreateTime: edbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ CreateUser: edbInfo.SysUserRealName,
|
|
|
+ UpdateTime: edbInfo.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateUser: edbInfo.SysUserRealName,
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分类信息
|
|
|
+ //if edbUpdateLog.OpTableName == "edb_classify" {
|
|
|
+ // var edbClassify *data_manage.EdbClassify
|
|
|
+ // err = json.Unmarshal([]byte(data), &edbClassify)
|
|
|
+ // if err != nil {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 指标信息
|
|
|
+ // pushClassify = PushClassifyItemReq{
|
|
|
+ // ClassifyId: int(edbClassify.ClassifyID),
|
|
|
+ // ClassifyType: int(edbClassify.ClassifyType),
|
|
|
+ // ClassifyName: edbClassify.ClassifyName,
|
|
|
+ // ParentId: int(edbClassify.ParentID),
|
|
|
+ // HasData: int(edbClassify.HasData),
|
|
|
+ // CreateTime: edbClassify.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ // UpdateTime: edbClassify.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ // SysUserId: int(edbClassify.SysUserID),
|
|
|
+ // SysUserRealName: edbClassify.SysUserRealName,
|
|
|
+ // Level: int(edbClassify.Level),
|
|
|
+ // UniqueCode: edbClassify.UniqueCode,
|
|
|
+ // SortColumn: int(edbClassify.Sort),
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+
|
|
|
+ // 数据信息
|
|
|
+ if strings.HasPrefix(edbUpdateLog.OpTableName, "edb_data_") {
|
|
|
+ var edbData *data_manage.EdbData
|
|
|
+ err = json.Unmarshal([]byte(data), &edbData)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbSource, ok := data_manage.EdbTableNameSourceMap[edbUpdateLog.OpTableName]
|
|
|
+ if !ok {
|
|
|
+ // 没有找到来源,那就过滤
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 数据信息
|
|
|
+ pushIndexValue = &PushIndexValueItemReq{
|
|
|
+ Id: utils.MD5(fmt.Sprint(edbSource.EdbSourceId, "_", edbSource.SourceName, "_", edbData.EdbDataId)),
|
|
|
+ IndexCode: fmt.Sprint(edbSource, "_", edbData.EdbCode),
|
|
|
+ Value: fmt.Sprint(edbData.Value),
|
|
|
+ BusinessDate: edbData.DataTime.Format(utils.FormatDate),
|
|
|
+ CreateTime: edbData.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateTime: edbData.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ Status: "0",
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func handleUpdate(edbUpdateLog *data_manage.EdbUpdateLog) (pushIndexData *PushIndexParamDataReq, pushEdbClassify *PushEdbClassifyItemReq, pushIndexValue *PushIndexValueItemReq, err error) {
|
|
|
+ oldData := edbUpdateLog.OldData
|
|
|
+ newData := edbUpdateLog.NewData
|
|
|
+
|
|
|
+ //指标信息
|
|
|
+ if edbUpdateLog.OpTableName == "edb_info" {
|
|
|
+ var oldEdbInfo *data_manage.EdbInfo
|
|
|
+ err = json.Unmarshal([]byte(oldData), &oldEdbInfo)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var newEdbInfo *data_manage.EdbInfo
|
|
|
+ err = json.Unmarshal([]byte(newData), &newEdbInfo)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ isUpdateEdbInfo := checkUpdateType(oldEdbInfo, newEdbInfo)
|
|
|
+ // 指标信息
|
|
|
+ if isUpdateEdbInfo {
|
|
|
+ pushIndexData = &PushIndexParamDataReq{
|
|
|
+ SourceIndexCode: newEdbInfo.EdbCode,
|
|
|
+ IndexCode: fmt.Sprint(newEdbInfo.Source, "_", newEdbInfo.EdbCode),
|
|
|
+ IndexName: newEdbInfo.EdbName,
|
|
|
+ IndexShortName: newEdbInfo.EdbName, //todo
|
|
|
+ FrequenceName: newEdbInfo.Frequency,
|
|
|
+ UnitName: newEdbInfo.Unit,
|
|
|
+ AssetBeginDate: newEdbInfo.StartDate,
|
|
|
+ AssetEndDate: newEdbInfo.EndDate,
|
|
|
+ CreateUser: newEdbInfo.SysUserRealName,
|
|
|
+ IndexCreateTime: newEdbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateUser: newEdbInfo.SysUserRealName, // todo
|
|
|
+ DetailUpdateTime: newEdbInfo.CreateTime.Format(utils.FormatDateTime), //todo
|
|
|
+ IndexUpdateTime: newEdbInfo.ModifyTime.Format(utils.FormatDateTime), //todo
|
|
|
+ OrginSource: newEdbInfo.SourceName, // todo
|
|
|
+ OrginSysSource: newEdbInfo.SourceName,
|
|
|
+ SysSource: "产研平台",
|
|
|
+ SourceType: getSourceType(newEdbInfo.Source),
|
|
|
+ Status: 1,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标与分类的关系信息
|
|
|
+ if oldEdbInfo.ClassifyId != newEdbInfo.ClassifyId {
|
|
|
+ pushEdbClassify = &PushEdbClassifyItemReq{
|
|
|
+ Id: fmt.Sprint(newEdbInfo.EdbInfoId),
|
|
|
+ ClassifyId: newEdbInfo.ClassifyId,
|
|
|
+ IndexCode: fmt.Sprint(newEdbInfo.Source, "_", newEdbInfo.EdbCode),
|
|
|
+ CreateTime: newEdbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ CreateUser: newEdbInfo.SysUserRealName,
|
|
|
+ UpdateTime: newEdbInfo.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateUser: newEdbInfo.SysUserRealName,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分类信息
|
|
|
+ //if edbUpdateLog.OpTableName == "edb_classify" {
|
|
|
+ // var edbClassify *data_manage.EdbClassify
|
|
|
+ // err = json.Unmarshal([]byte(newData), &edbClassify)
|
|
|
+ // if err != nil {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 指标信息
|
|
|
+ // pushClassify = PushClassifyItemReq{
|
|
|
+ // ClassifyId: int(edbClassify.ClassifyID),
|
|
|
+ // ClassifyType: int(edbClassify.ClassifyType),
|
|
|
+ // ClassifyName: edbClassify.ClassifyName,
|
|
|
+ // ParentId: int(edbClassify.ParentID),
|
|
|
+ // HasData: int(edbClassify.HasData),
|
|
|
+ // CreateTime: edbClassify.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ // UpdateTime: edbClassify.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ // SysUserId: int(edbClassify.SysUserID),
|
|
|
+ // SysUserRealName: edbClassify.SysUserRealName,
|
|
|
+ // Level: int(edbClassify.Level),
|
|
|
+ // UniqueCode: edbClassify.UniqueCode,
|
|
|
+ // SortColumn: int(edbClassify.Sort),
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+
|
|
|
+ // 数据信息
|
|
|
+ if strings.HasPrefix(edbUpdateLog.OpTableName, "edb_data_") {
|
|
|
+ var edbData *data_manage.EdbData
|
|
|
+ err = json.Unmarshal([]byte(newData), &edbData)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbSource, ok := data_manage.EdbTableNameSourceMap[edbUpdateLog.OpTableName]
|
|
|
+ if !ok {
|
|
|
+ // 没有找到来源,那就过滤
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 数据信息
|
|
|
+ pushIndexValue = &PushIndexValueItemReq{
|
|
|
+ Id: utils.MD5(fmt.Sprint(edbSource.EdbSourceId, "_", edbSource.SourceName, "_", edbData.EdbDataId)),
|
|
|
+ IndexCode: fmt.Sprint(edbSource, "_", edbData.EdbCode),
|
|
|
+ Value: fmt.Sprint(edbData.Value),
|
|
|
+ BusinessDate: edbData.DataTime.Format(utils.FormatDate),
|
|
|
+ CreateTime: edbData.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ UpdateTime: edbData.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ Status: "1",
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//PushIndexParamDataReq{
|
|
|
+//SourceIndexCode: edbInfo.EdbCode,
|
|
|
+//IndexCode: fmt.Sprint(edbInfo.Source, "_", edbInfo.EdbCode),
|
|
|
+//IndexName: edbInfo.EdbName,
|
|
|
+//IndexShortName: edbInfo.EdbName, //todo
|
|
|
+//FrequenceName: edbInfo.Frequency,
|
|
|
+//UnitName: edbInfo.Unit,
|
|
|
+//AssetBeginDate: edbInfo.StartDate,
|
|
|
+//AssetEndDate: edbInfo.EndDate,
|
|
|
+//CreateUser: edbInfo.SysUserRealName,
|
|
|
+//IndexCreateTime: edbInfo.CreateTime.Format(utils.FormatDateTime),
|
|
|
+//UpdateUser: edbInfo.SysUserRealName, // todo
|
|
|
+//DetailUpdateTime: edbInfo.CreateTime.Format(utils.FormatDateTime), //todo
|
|
|
+//IndexUpdateTime: edbInfo.ModifyTime.Format(utils.FormatDateTime), //todo
|
|
|
+//OrginSource: edbInfo.SourceName, // todo
|
|
|
+//OrginSysSource: edbInfo.SourceName,
|
|
|
+//SysSource: "产研平台",
|
|
|
+//SourceType: getSourceType(edbInfo.Source),
|
|
|
+//Status: 1,
|
|
|
+//}
|
|
|
+
|
|
|
+// getSourceType
|
|
|
+// @Description: 获取指标来源类型
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-03-01 13:40:03
|
|
|
+// @param source int
|
|
|
+// @return string
|
|
|
+func getSourceType(source int) string {
|
|
|
+ switch source {
|
|
|
+ case utils.DATA_SOURCE_MYSTEEL_CHEMICAL, utils.DATA_SOURCE_YS, utils.DATA_SOURCE_BAIINFO, utils.DATA_SOURCE_SCI: //钢联,有色,百川盈孚,红桃3
|
|
|
+ return "RPA"
|
|
|
+ case utils.DATA_SOURCE_MANUAL:
|
|
|
+ return "手工"
|
|
|
+ default:
|
|
|
+ return "接口"
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func checkUpdateType(oldEdbInfo, newEdbInfo *data_manage.EdbInfo) (isUpdateEdbInfo bool) {
|
|
|
+ //todo 外部来源名称需要处理;更新人姓名,指标更新时间
|
|
|
+
|
|
|
+ // eta内部名称
|
|
|
+ if oldEdbInfo.EdbName != newEdbInfo.EdbName {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldEdbInfo.Frequency != newEdbInfo.Frequency {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldEdbInfo.Unit != newEdbInfo.Unit {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldEdbInfo.StartDate != newEdbInfo.StartDate {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldEdbInfo.EndDate != newEdbInfo.EndDate {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldEdbInfo.SysUserId != newEdbInfo.SysUserId {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if oldEdbInfo.SysUserRealName != newEdbInfo.SysUserRealName {
|
|
|
+ isUpdateEdbInfo = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func pushIndex(pushIndexList []*PushIndexParamDataReq) {
|
|
|
+ if len(pushIndexList) <= 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ uri := "/xy/index/pushIndexData"
|
|
|
+ req := PushBaseParamReq{
|
|
|
+ SerialID: utils.GetRandString(32), //todo
|
|
|
+ TableCode: "",
|
|
|
+ Total: lenData,
|
|
|
+ IsEmailWarn: 0,
|
|
|
+ Data: dataList,
|
|
|
+ }
|
|
|
+
|
|
|
+ var pushIndexList []*PushIndexParamDataReq
|
|
|
+ dataLimitList := make([][]PushBaseParamReq, 0)
|
|
|
+
|
|
|
+ _, e, errMsg := HttpEtaBridgePost(uri, req)
|
|
|
+}
|