Files
zszq-trs/Framework/YLErp.Core/DBModels/TradeAction.cs
T
2024-05-09 14:06:26 +08:00

211 lines
4.6 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
namespace YLErp.DBModels
{
[Table("trade_action")]
public class TradeAction : DBModelBase
{
public int TradeId { get; set; }
/// <summary>
/// 执行日期
/// </summary>
public DateTime ValueDate { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public TradeActionType ActionType { get; set; }
/// <summary>
/// 操作标识(增加扩展性)
/// </summary>
public int ActionFlag { get; set; }
/// <summary>
/// 操作备注
/// </summary>
public string ActionRemark { get; set; }
/// <summary>
/// 审核标识(0:无需审核,1:等待第一步审核,2...,100:审核通过)
/// </summary>
public byte CheckFlag { get; set; }
/// <summary>
/// 是否有效数据
/// </summary>
public bool IsValid { get; set; }
/// <summary>
/// 资金ID
/// </summary>
public int? CashId { get; set; }
/// <summary>
/// 回退ID
/// </summary>
public long? BackId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
public string ActionData { get; set; }
/// <summary>
/// 操作人ID
/// </summary>
public int? OptId { get; set; }
/// <summary>
/// 操作人名称
/// </summary>
[NotMapped]
public string OptName { get; set; }
public TradeAction Clone()
{
return (TradeAction)MemberwiseClone();
}
public override string ToString()
{
return $"{id}-{TradeId}--{ValueDate}--{ActionType}";
}
}
/// <summary>
/// 交易操作类型
/// </summary>
public enum TradeActionType
{
//---------开仓操作--------------
/// <summary>
/// 新增交易
/// </summary>
NewTrade = 1,
/// <summary>
/// 修改交易
/// </summary>
ModifyTrade = 2,
/// <summary>
/// 确认交易
/// </summary>
ConfirmTrade = 3,
/// <summary>
/// 删除交易
/// </summary>
DeleteTrade = 10,
//---------交易回退--------------
/// <summary>
/// 回退交易
/// </summary>
BackTrade = 11,
//---------要素变更--------------
/// <summary>
/// 除权除息
/// </summary>
ExDividend = 40,
/// <summary>
/// 累计期权换月
/// </summary>
AccumulatorChange = 50,
//---------观察日结算--------------
/// <summary>
/// 期权敲入
/// </summary>
KnockIn = 101,
/// <summary>
/// 支付票息
/// </summary>
ObCoupon = 102,
/// <summary>
/// 现金支付
/// </summary>
ObCash = 103,
/// <summary>
/// 转远期
/// </summary>
ToForward = 110,
//---------了结操作--------------
/// <summary>
/// 平仓
/// </summary>
Close = 201,
/// <summary>
/// 执行
/// </summary>
Exercise = 202,
/// <summary>
/// 敲出
/// </summary>
KnockOut = 210,
/// <summary>
/// 到期
/// </summary>
Expire = 220
}
public static class TradeActionHelper
{
/// <summary>
/// 资金当期结算
/// </summary>
public const int Flag_CashAtHit = 0;
/// <summary>
/// 资金期末结算
/// </summary>
public const int Flag_CashAtEnd = 1;
/// <summary>
/// 全部了结
/// </summary>
public const int Flag_FullClosed = byte.MaxValue;
/// <summary>
///
/// </summary>
public const TradeActionType Close_Begin = TradeActionType.Close;
/// <summary>
/// 获取观察日结算产生的行为种类
/// </summary>
public static readonly IEnumerable<TradeActionType> ObActionTypes;
static TradeActionHelper()
{
ObActionTypes = new List<TradeActionType> {
TradeActionType.KnockIn, TradeActionType.KnockOut, TradeActionType.ObCash, TradeActionType.ObCoupon, TradeActionType.ToForward
}.AsReadOnly();
}
}
[NotMapped]
public class TradeActionDto : TradeAction
{
}
}