Files
zszq-trs/Framework/YLErp.Core/DBModels/BondPayment.cs
T
hjhan 9df39491da fix(dividend): 分红按债权登记日(reg_date)口径计提,手动互换读取当日EOD快照 (GLMS-20260105-0006)
- BondPayment 实体补映射 reg_date(债权登记日,对应 bond_payment_info.reg_date 列)
- BondPaymentService.GetBondPayments 改按 reg_date 过滤(原错用 pay_date_PL/支付日;pay_date_PL 是理论付息日,仍属支付日,非登记日)
- SwapDealService.GetPreEodPositionByDate 由 ValueDate < dealDate 改 <=,登记日当天手动互换读当日EOD分红而非T-1
- 新增 GLMS20260105_0006_RegisterDateDividendTest 回归测试(手工合成内存,先RED复现后GREEN 2/2)

根因:bond_payment_info 表仅有 pay_date_PL(理论付息日)/pay_date_act(实际付息日) 两个支付日,缺登记日;
代码用支付日判定票息归属,且手动互换只读 T-1 EOD 快照;登记日≠支付日(恰差一工作日)时缺陷被掩盖,
导致对话框分红收益显示 0。
2026-08-13 12:31:45 +08:00

117 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YieldChain.Security;
using YLErp.DBModels.Base;
namespace YLErp.DBModels
{
/// <summary>
/// 债券期间付息表
/// </summary>
[Table("bond_payment_info")]
public class BondPayment
{
public long id { get; set; }
/// <summary>
/// 加密主键
/// </summary>
[NotMapped]
public string EncryptId
{
get { return DataProtect.Encrypt(id.ToString()); }
}
/// <summary>
/// 债券代码
/// </summary>
[Column("inner_code")]
public int inner_code { get; set; }
[Column("underlying_code")]
public string underlyingCode { get; set; }
/// <summary>
/// 债券代码
/// </summary>
[DisplayName("债券代码")]
[NotMapped]
public string security_id { get; set; }
/// <summary>
/// 债券名称
/// </summary>
[DisplayName("债券名称")]
[NotMapped]
public string symbol { get; set; }
/// <summary>
/// 利息税率(%)
/// </summary>
[DisplayName("利息税率(%)")]
[Column("interest_tax_rate")]
public decimal? coupon_rate { get; set; }
/// <summary>
/// 现金流发放日
/// </summary>
[DisplayName("理论付息(兑付)日")]
[Column("pay_date_PL")]
public DateTime? payment_date_pl { get; set; }
/// <summary>
/// 现金流发放日
/// </summary>
[DisplayName("实际付息(兑付)日")]
[Column("pay_date_act")]
public DateTime? payment_date { get; set; }
/// <summary>
/// 债权登记日(除息/归属截止日)——票息归属按此判定,而非支付日
/// </summary>
[DisplayName("债权登记日")]
[Column("reg_date")]
public DateTime? reg_date { get; set; }
/// <summary>
/// 每张兑付利息额
/// </summary>
[DisplayName("每张兑付利息额")]
[Column("paying_interest")]
public decimal? payment_interest { get; set; }
/// <summary>
/// 每张兑付本金额
/// </summary>
[DisplayName("每张兑付本金额")]
[Column("paying_principal")]
public decimal? payment_parvalue { get; set; }
/// <summary>
/// 每张兑付本息额
/// </summary>
[DisplayName("每张兑付本息额")]
[Column("paying_price")]
public decimal? paying_price { get; set; }
/// <summary>
/// 渠道来源
/// </summary>
[Column("info_source")]
public string channel_source { get; set; }
/// <summary>
/// 聚源JSID
/// </summary>
public long jsid { get; set; }
/// <summary>
/// 发布时间
/// </summary>
[Column("insert_time")]
public DateTime? create_time { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[DisplayName("更新时间")]
[Column("update_time")]
public DateTime? update_time { get; set; }
}
}