# Conflicts: # YLErpDAL/Modules/EodModule/BondPaymentService.cs # YLErpDAL/Modules/SwapModule/SwapDealService.cs
241 lines
7.8 KiB
C#
241 lines
7.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using YLErp.DBModels;
|
|
using YLErp.Helpers;
|
|
|
|
namespace YLErp.DBModels
|
|
{
|
|
public class swap_event: DBModelBaseV2
|
|
{
|
|
/// <summary>
|
|
/// 事件日期
|
|
/// </summary>
|
|
[DisplayName("事件日期")]
|
|
[DataChange]
|
|
public DateTime ValueDate { get; set; }
|
|
/// <summary>
|
|
/// 互换交易编号id
|
|
/// </summary>
|
|
[DisplayName("互换交易编号id")]
|
|
[DataChange]
|
|
public int SwapTradeId { get; set; }
|
|
/// <summary>
|
|
/// 事件类型 1:合成持仓,2:平仓,3:收益互换
|
|
/// </summary>
|
|
[DisplayName("平仓事件")]
|
|
[DataChange]
|
|
public int EventType { get; set; }
|
|
/// <summary>
|
|
/// 事件类型名称
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string EventTypeName { get { return ((SwapEventTypeEnum)EventType).ToString(); } }
|
|
/// <summary>
|
|
/// 事件原因
|
|
/// </summary>
|
|
[DisplayName("事件原因")]
|
|
[DataChange]
|
|
public string EventReason { get; set; }
|
|
/// <summary>
|
|
/// 事件数据json
|
|
/// </summary>
|
|
[DisplayName("事件数据")]
|
|
[DataChange]
|
|
public string EventData { get; set; }
|
|
/// <summary>
|
|
/// 是否无效
|
|
/// </summary>
|
|
[DisplayName("是否无效")]
|
|
[DataChange]
|
|
public bool Invalid { get; set; }
|
|
/// <summary>
|
|
/// 客户资金记录id
|
|
/// </summary>
|
|
[DisplayName("客户资金记录id")]
|
|
[DataChange]
|
|
public int ClientCashId { get; set; }
|
|
/// <summary>
|
|
/// 回退记录id
|
|
/// </summary>
|
|
[DisplayName("回退记录id")]
|
|
[DataChange]
|
|
public long BackId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 展期信息
|
|
/// </summary>
|
|
[NotMapped]
|
|
public ExtenstionData extenstionData { get; set; }
|
|
/// <summary>
|
|
/// 交易编码
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string SwapTradeNumber { get; set; }
|
|
/// <summary>
|
|
/// 平仓/互换/自动互换主干数据
|
|
/// </summary>
|
|
[NotMapped]
|
|
public UnwindData unwindData { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 公司行为事件快照。登记日先写入待生效快照,真实除权日补齐调整后数据;
|
|
/// 已应用快照只允许追加回退事件,不覆盖原记录。
|
|
/// ExDividendDate 是登记日,EffectiveDate 是 Q/P 真实切换日;GiveShareAmount
|
|
/// 表示每 10 份增减数量,Split 表示独立拆/合股倍数(null 按 1)。Before/After
|
|
/// 分别保存调整前后名义本金、价格、数量和待实现分红,CashFlowChange 保存现金变化。
|
|
/// </summary>
|
|
public class CorporateActionEventData
|
|
{
|
|
public int ExDividendInfoId { get; set; }
|
|
public long PositionId { get; set; }
|
|
public string UnderlyingCode { get; set; }
|
|
public DateTime? ExDividendDate { get; set; }
|
|
public DateTime? EffectiveDate { get; set; }
|
|
public decimal GiveCashAmount { get; set; }
|
|
public decimal GiveShareAmount { get; set; }
|
|
public decimal? Split { get; set; }
|
|
public decimal RationedSharesAmount { get; set; }
|
|
public decimal RationedSharesPrice { get; set; }
|
|
public decimal BeforeNotional { get; set; }
|
|
public decimal BeforePrice { get; set; }
|
|
public decimal BeforeQuantity { get; set; }
|
|
public decimal AfterNotional { get; set; }
|
|
public decimal AfterPrice { get; set; }
|
|
public decimal AfterQuantity { get; set; }
|
|
public decimal BeforePendingDividend { get; set; }
|
|
public decimal AfterPendingDividend { get; set; }
|
|
public decimal CashFlowChange { get; set; }
|
|
public bool Applied { get; set; }
|
|
}
|
|
/// <summary>
|
|
/// 展期信息
|
|
/// </summary>
|
|
public class ExtenstionData
|
|
{
|
|
/// <summary>
|
|
/// 旧到期日
|
|
/// </summary>
|
|
public DateTime OldMaturityDate { get; set; }
|
|
/// <summary>
|
|
/// 新到期日
|
|
/// </summary>
|
|
public DateTime NewMaturityDate { get; set; }
|
|
}
|
|
|
|
public class UnwindData
|
|
{
|
|
public UnwindData()
|
|
{
|
|
FlowEvents = new List<swap_flow_event>();
|
|
ClientCashIds = new List<int>();
|
|
}
|
|
public int SwapTradeId { get; set; }
|
|
/// <summary>
|
|
/// 平仓类型 1:数量 ,2:名义本金
|
|
/// </summary>
|
|
public int CloseType { get; set; }
|
|
/// <summary>
|
|
/// 平仓数量
|
|
/// </summary>
|
|
public decimal CloseQty { get; set; }
|
|
/// <summary>
|
|
/// 平仓比例
|
|
/// </summary>
|
|
public decimal ClosePercent { get; set; }
|
|
/// <summary>
|
|
/// 是否计罚息(EQD-6977):提前终止平仓时利息端按持有至到期计息。默认 false=否。
|
|
/// 由平仓页“是否罚息”下拉写入,经 GetUnwindInterests 透传至罚息接缝层。
|
|
/// </summary>
|
|
public bool IsPenaltyInterest { get; set; }
|
|
/// <summary>
|
|
/// 平仓名义本金
|
|
/// </summary>
|
|
public decimal CloseNotionalValue { get; set; }
|
|
/// <summary>
|
|
/// 开始日期
|
|
/// </summary>
|
|
public DateTime StartDate { get; set; }
|
|
/// <summary>
|
|
/// 交易日期
|
|
/// </summary>
|
|
public DateTime ValueDate { get; set; }
|
|
/// <summary>
|
|
/// 收益结算日期上限
|
|
/// </summary>
|
|
[NotMapped]
|
|
public DateTime? MaxIncomeValueDate { get; set; }
|
|
/// <summary>
|
|
/// 平仓/互换日期
|
|
/// </summary>
|
|
public DateTime? UnwindDate { get; set; }
|
|
/// <summary>
|
|
/// 期初名义本金
|
|
/// </summary>
|
|
public decimal NotionalValue { get; set; }
|
|
/// <summary>
|
|
/// 期初持仓数量
|
|
/// </summary>
|
|
public decimal NotionalQty { get; set; }
|
|
/// <summary>
|
|
/// 持仓名义本金
|
|
/// </summary>
|
|
public decimal PosiNotionalValue { get; set; }
|
|
/// <summary>
|
|
/// 持仓数量
|
|
/// </summary>
|
|
public decimal PositionQty { get; set; }
|
|
/// <summary>
|
|
/// 年化天数
|
|
/// </summary>
|
|
public int AnnualDays { get; set; }
|
|
/// <summary>
|
|
/// 平仓方式
|
|
/// </summary>
|
|
public int CloseMethod { get; set; }
|
|
/// <summary>
|
|
/// 实现盈亏
|
|
/// </summary>
|
|
|
|
public decimal SwapRealizedPnL { get; set; }
|
|
/// <summary>
|
|
/// 预付金腿返息盈亏
|
|
/// </summary>
|
|
public decimal SwapMarginRebatePnl { get; set; }
|
|
/// <summary>
|
|
/// 预付金腿 返还预付金轧差
|
|
/// </summary>
|
|
public decimal SwapMarginAmount { get; set; }
|
|
/// <summary>
|
|
/// 平仓总额
|
|
/// </summary>
|
|
public decimal SwapCloseAmount { get; set; }
|
|
/// <summary>
|
|
/// 浮动端分红盈亏
|
|
/// </summary>
|
|
public decimal SwapDividendPnl { get; set; }
|
|
/// <summary>
|
|
/// 自动互换生成的客户资金记录ID集合
|
|
/// </summary>
|
|
public List<int> ClientCashIds { get; set; }
|
|
/// <summary>
|
|
/// 利息腿/浮动腿 集合,不序列化存储,只做查询
|
|
/// </summary>
|
|
public List<swap_flow_event> FlowEvents { get; set; }
|
|
|
|
public string StructureType { get; set; }
|
|
/// <summary>
|
|
/// 支付日
|
|
/// </summary>
|
|
public DateTime? PayDate { get; set; }
|
|
|
|
[NotMapped]
|
|
public DateTime? TradeStartDate { get; set; }
|
|
}
|
|
}
|