feat fina indicator
This commit is contained in:
@@ -36,20 +36,221 @@ func GetFinaIndicator() {
|
||||
return
|
||||
}
|
||||
|
||||
records := make([]*models.StockFinaIndicator, 0)
|
||||
itemData := make(map[string]any)
|
||||
for _, item := range reply.Data.Items {
|
||||
t := utils.String2Int(item[1].(string))
|
||||
for i := 0; i < len(item); i++ {
|
||||
itemData[reply.Data.Fields[i]] = item[i]
|
||||
}
|
||||
t := utils.String2Int(itemData["ann_date"].(string))
|
||||
if t == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
var cnt int64
|
||||
impl.DBService.Model(&models.StockFinaIndicator{}).Where("ts_code=? and AnnDate=?", item[0].(string), t).Count(&cnt)
|
||||
impl.DBService.Model(&models.StockFinaIndicator{}).Where("ts_code=? and ann_date=?", itemData["ts_code"].(string), t).Count(&cnt)
|
||||
if cnt == 0 {
|
||||
impl.DBService.Create(&models.StockFinaIndicator{
|
||||
TsCode: item[0].(string),
|
||||
records = append(records, &models.StockFinaIndicator{
|
||||
TsCode: itemData["ts_code"].(string),
|
||||
AnnDate: t,
|
||||
EndDate: itemData["end_date"].(string),
|
||||
|
||||
// 每股指标
|
||||
Eps: Any2Float(itemData["eps"]),
|
||||
DtEps: Any2Float(itemData["dt_eps"]),
|
||||
TotalRevenuePs: Any2Float(itemData["total_revenue_ps"]),
|
||||
RevenuePs: Any2Float(itemData["revenue_ps"]),
|
||||
CapitalResePs: Any2Float(itemData["capital_rese_ps"]),
|
||||
SurplusResePs: Any2Float(itemData["surplus_rese_ps"]),
|
||||
UndistProfitPs: Any2Float(itemData["undist_profit_ps"]),
|
||||
Diluted2Eps: Any2Float(itemData["diluted2_eps"]),
|
||||
Bps: Any2Float(itemData["bps"]),
|
||||
Ocfps: Any2Float(itemData["ocfps"]),
|
||||
Retainedps: Any2Float(itemData["retainedps"]),
|
||||
Cfps: Any2Float(itemData["cfps"]),
|
||||
EbitPs: Any2Float(itemData["ebit_ps"]),
|
||||
FcffPs: Any2Float(itemData["fcff_ps"]),
|
||||
FcfePs: Any2Float(itemData["fcfe_ps"]),
|
||||
|
||||
// 利润表相关
|
||||
ExtraItem: Any2Float(itemData["extra_item"]),
|
||||
ProfitDedt: Any2Float(itemData["profit_dedt"]),
|
||||
GrossMargin: Any2Float(itemData["gross_margin"]),
|
||||
OpIncome: Any2Float(itemData["op_income"]),
|
||||
ValuechangeIncome: Any2Float(itemData["valuechange_income"]),
|
||||
InterstIncome: Any2Float(itemData["interst_income"]),
|
||||
Daa: Any2Float(itemData["daa"]),
|
||||
Ebit: Any2Float(itemData["ebit"]),
|
||||
Ebitda: Any2Float(itemData["ebitda"]),
|
||||
Fcff: Any2Float(itemData["fcff"]),
|
||||
Fcfe: Any2Float(itemData["fcfe"]),
|
||||
RdExp: Any2Float(itemData["rd_exp"]),
|
||||
FixedAssets: Any2Float(itemData["fixed_assets"]),
|
||||
ProfitPrefinExp: Any2Float(itemData["profit_prefin_exp"]),
|
||||
NonOpProfit: Any2Float(itemData["non_op_profit"]),
|
||||
|
||||
// 资产负债表相关
|
||||
CurrentExint: Any2Float(itemData["current_exint"]),
|
||||
NoncurrentExint: Any2Float(itemData["noncurrent_exint"]),
|
||||
Interestdebt: Any2Float(itemData["interestdebt"]),
|
||||
Netdebt: Any2Float(itemData["netdebt"]),
|
||||
TangibleAsset: Any2Float(itemData["tangible_asset"]),
|
||||
WorkingCapital: Any2Float(itemData["working_capital"]),
|
||||
NetworkingCapital: Any2Float(itemData["networking_capital"]),
|
||||
InvestCapital: Any2Float(itemData["invest_capital"]),
|
||||
RetainedEarnings: Any2Float(itemData["retained_earnings"]),
|
||||
|
||||
// 偿债能力指标
|
||||
CurrentRatio: Any2Float(itemData["current_ratio"]),
|
||||
QuickRatio: Any2Float(itemData["quick_ratio"]),
|
||||
CashRatio: Any2Float(itemData["cash_ratio"]),
|
||||
DebtToAssets: Any2Float(itemData["debt_to_assets"]),
|
||||
AssetsToEqt: Any2Float(itemData["assets_to_eqt"]),
|
||||
DpAssetsToEqt: Any2Float(itemData["dp_assets_to_eqt"]),
|
||||
DebtToEqt: Any2Float(itemData["debt_to_eqt"]),
|
||||
EqtToDebt: Any2Float(itemData["eqt_to_debt"]),
|
||||
OcfToShortdebt: Any2Float(itemData["ocf_to_shortdebt"]),
|
||||
EbitToInterest: Any2Float(itemData["ebit_to_interest"]),
|
||||
|
||||
// 运营能力指标
|
||||
InvturnDays: Any2Float(itemData["invturn_days"]),
|
||||
ArturnDays: Any2Float(itemData["arturn_days"]),
|
||||
InvTurn: Any2Float(itemData["inv_turn"]),
|
||||
ArTurn: Any2Float(itemData["ar_turn"]),
|
||||
CaTurn: Any2Float(itemData["ca_turn"]),
|
||||
FaTurn: Any2Float(itemData["fa_turn"]),
|
||||
AssetsTurn: Any2Float(itemData["assets_turn"]),
|
||||
TurnDays: Any2Float(itemData["turn_days"]),
|
||||
TotalFaTrun: Any2Float(itemData["total_fa_trun"]),
|
||||
|
||||
// 盈利能力指标
|
||||
NetprofitMargin: Any2Float(itemData["netprofit_margin"]),
|
||||
GrossprofitMargin: Any2Float(itemData["grossprofit_margin"]),
|
||||
CogsOfSales: Any2Float(itemData["cogs_of_sales"]),
|
||||
ExpenseOfSales: Any2Float(itemData["expense_of_sales"]),
|
||||
Roe: Any2Float(itemData["roe"]),
|
||||
RoeWaa: Any2Float(itemData["roe_waa"]),
|
||||
RoeDt: Any2Float(itemData["roe_dt"]),
|
||||
Roa: Any2Float(itemData["roa"]),
|
||||
Npta: Any2Float(itemData["npta"]),
|
||||
Roic: Any2Float(itemData["roic"]),
|
||||
RoaDp: Any2Float(itemData["roa_dp"]),
|
||||
|
||||
// 结构指标
|
||||
CaToAssets: Any2Float(itemData["ca_to_assets"]),
|
||||
NcaToAssets: Any2Float(itemData["nca_to_assets"]),
|
||||
TbassetsToTotalassets: Any2Float(itemData["tbassets_to_totalassets"]),
|
||||
IntToTalcap: Any2Float(itemData["int_to_talcap"]),
|
||||
EqtToTalcapital: Any2Float(itemData["eqt_to_talcapital"]),
|
||||
CurrentdebtToDebt: Any2Float(itemData["currentdebt_to_debt"]),
|
||||
LongdebToDebt: Any2Float(itemData["longdeb_to_debt"]),
|
||||
TangibleassetToDebt: Any2Float(itemData["tangibleasset_to_debt"]),
|
||||
|
||||
// 单季度指标
|
||||
QOpincome: Any2Float(itemData["q_opincome"]),
|
||||
QInvestincome: Any2Float(itemData["q_investincome"]),
|
||||
QDtprofit: Any2Float(itemData["q_dtprofit"]),
|
||||
QEps: Any2Float(itemData["q_eps"]),
|
||||
QNetprofitMargin: Any2Float(itemData["q_netprofit_margin"]),
|
||||
QGscaleprofitMargin: Any2Float(itemData["q_gsprofit_margin"]),
|
||||
QExpToSales: Any2Float(itemData["q_exp_to_sales"]),
|
||||
QRoe: Any2Float(itemData["q_roe"]),
|
||||
QDtRoe: Any2Float(itemData["q_dt_roe"]),
|
||||
QNpta: Any2Float(itemData["q_npta"]),
|
||||
|
||||
// 同比增长率
|
||||
BasicEpsYoy: Any2Float(itemData["basic_eps_yoy"]),
|
||||
DtEpsYoy: Any2Float(itemData["dt_eps_yoy"]),
|
||||
CfpsYoy: Any2Float(itemData["cfps_yoy"]),
|
||||
OpYoy: Any2Float(itemData["op_yoy"]),
|
||||
EbtYoy: Any2Float(itemData["ebt_yoy"]),
|
||||
NetprofitYoy: Any2Float(itemData["netprofit_yoy"]),
|
||||
DtNetprofitYoy: Any2Float(itemData["dt_netprofit_yoy"]),
|
||||
OcfYoy: Any2Float(itemData["ocf_yoy"]),
|
||||
RoeYoy: Any2Float(itemData["roe_yoy"]),
|
||||
BpsYoy: Any2Float(itemData["bps_yoy"]),
|
||||
AssetsYoy: Any2Float(itemData["assets_yoy"]),
|
||||
EqtYoy: Any2Float(itemData["eqt_yoy"]),
|
||||
TrYoy: Any2Float(itemData["tr_yoy"]),
|
||||
OrYoy: Any2Float(itemData["or_yoy"]),
|
||||
EquityYoy: Any2Float(itemData["equity_yoy"]),
|
||||
|
||||
// 其他比率指标
|
||||
ProfitToGr: Any2Float(itemData["profit_to_gr"]),
|
||||
SaleexpToGr: Any2Float(itemData["saleexp_to_gr"]),
|
||||
AdminexpOfGr: Any2Float(itemData["adminexp_of_gr"]),
|
||||
FinaexpOfGr: Any2Float(itemData["finaexp_of_gr"]),
|
||||
ImpaiTtm: Any2Float(itemData["impai_ttm"]),
|
||||
GcOfGr: Any2Float(itemData["gc_of_gr"]),
|
||||
OpOfGr: Any2Float(itemData["op_of_gr"]),
|
||||
EbitOfGr: Any2Float(itemData["ebit_of_gr"]),
|
||||
OpincomeOfEbt: Any2Float(itemData["opincome_of_ebt"]),
|
||||
InvestincomeOfEbt: Any2Float(itemData["investincome_of_ebt"]),
|
||||
NOpProfitOfEbt: Any2Float(itemData["n_op_profit_of_ebt"]),
|
||||
TaxToEbt: Any2Float(itemData["tax_to_ebt"]),
|
||||
DtprofitToProfit: Any2Float(itemData["dtprofit_to_profit"]),
|
||||
SalescashToOr: Any2Float(itemData["salescash_to_or"]),
|
||||
OcfToOr: Any2Float(itemData["ocf_to_or"]),
|
||||
OcfToOpincome: Any2Float(itemData["ocf_to_opincome"]),
|
||||
CapitalizedToDa: Any2Float(itemData["capitalized_to_da"]),
|
||||
OcfToDebt: Any2Float(itemData["ocf_to_debt"]),
|
||||
OcfToInterestdebt: Any2Float(itemData["ocf_to_interestdebt"]),
|
||||
OcfToNetdebt: Any2Float(itemData["ocf_to_netdebt"]),
|
||||
LongdebtToWorkingcapital: Any2Float(itemData["longdebt_to_workingcapital"]),
|
||||
EbitdaToDebt: Any2Float(itemData["ebitda_to_debt"]),
|
||||
OpToEbt: Any2Float(itemData["op_to_ebt"]),
|
||||
NopToEbt: Any2Float(itemData["nop_to_ebt"]),
|
||||
OcfToProfit: Any2Float(itemData["ocf_to_profit"]),
|
||||
CashToLiqdebt: Any2Float(itemData["cash_to_liqdebt"]),
|
||||
CashToLiqdebtWithinterest: Any2Float(itemData["cash_to_liqdebt_withinterest"]),
|
||||
OpToLiqdebt: Any2Float(itemData["op_to_liqdebt"]),
|
||||
OpToDebt: Any2Float(itemData["op_to_debt"]),
|
||||
ProfitToOp: Any2Float(itemData["profit_to_op"]),
|
||||
|
||||
// 年度化指标
|
||||
RoeYearly: Any2Float(itemData["roe_yearly"]),
|
||||
Roa2Yearly: Any2Float(itemData["roa2_yearly"]),
|
||||
RoaYearly: Any2Float(itemData["roa_yearly"]),
|
||||
RoicYearly: Any2Float(itemData["roic_yearly"]),
|
||||
RoeAvg: Any2Float(itemData["roe_avg"]),
|
||||
|
||||
// 单季度增长比率
|
||||
QGrYoy: Any2Float(itemData["q_gr_yoy"]),
|
||||
QGrQoq: Any2Float(itemData["q_gr_qoq"]),
|
||||
QSalesYoy: Any2Float(itemData["q_sales_yoy"]),
|
||||
QSalesQoq: Any2Float(itemData["q_sales_qoq"]),
|
||||
QOpYoy: Any2Float(itemData["q_op_yoy"]),
|
||||
QOpQoq: Any2Float(itemData["q_op_qoq"]),
|
||||
QProfitYoy: Any2Float(itemData["q_profit_yoy"]),
|
||||
QProfitQoq: Any2Float(itemData["q_profit_qoq"]),
|
||||
QNetprofitYoy: Any2Float(itemData["q_netprofit_yoy"]),
|
||||
QNetprofitQoq: Any2Float(itemData["q_netprofit_qoq"]),
|
||||
|
||||
// 单季度比率指标
|
||||
QProfitToGr: Any2Float(itemData["q_profit_to_gr"]),
|
||||
QSaleexpToGr: Any2Float(itemData["q_saleexp_to_gr"]),
|
||||
QAdminexpToGr: Any2Float(itemData["q_adminexp_to_gr"]),
|
||||
QFinaexpToGr: Any2Float(itemData["q_finaexp_to_gr"]),
|
||||
QImpairToGrTtm: Any2Float(itemData["q_impair_to_gr_ttm"]),
|
||||
QGcToGr: Any2Float(itemData["q_gc_to_gr"]),
|
||||
QOpToGr: Any2Float(itemData["q_op_to_gr"]),
|
||||
QOpincomeToEbt: Any2Float(itemData["q_opincome_to_ebt"]),
|
||||
QInvestincomeToEbt: Any2Float(itemData["q_investincome_to_ebt"]),
|
||||
QDtprofitToProfit: Any2Float(itemData["q_dtprofit_to_profit"]),
|
||||
QSalescashToOr: Any2Float(itemData["q_salescash_to_or"]),
|
||||
QOcfToSales: Any2Float(itemData["q_ocf_to_sales"]),
|
||||
QOcfToOr: Any2Float(itemData["q_ocf_to_or"]),
|
||||
|
||||
// 其他
|
||||
UpdateFlag: itemData["update_flag"].(string),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if len(records) > 0 {
|
||||
impl.DBService.CreateInBatches(records, 100)
|
||||
}
|
||||
|
||||
time.Sleep(200 * time.Microsecond)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user