using System.ComponentModel.DataAnnotations.Schema; using YLErp.Commons; namespace YLErp.Modules.SuperviseReportModule.CFMMC.Model { public abstract class SuperviseReportBaseModel { /// /// 报告主体名称 /// public string MainName { get; set; } /// /// 报告主体的统一社会信用代码 /// public string MainCode { get; set; } /// /// 交易对手方名称 /// public string ClientName { get; set; } /// /// 交易对手方的统一社会信用代码 /// public string ClientLicenseCode { get; set; } /// /// 交易编号 /// public string TradeNumber { get; set; } /// /// 交易确认时间 /// public DateTime? TradeDate { get; set; } /// /// 交易确认时间 /// public string TradeDateString { get { return TradeDate == null ? "" : TradeDate.Value.ToString("yyyy-MM-dd"); } } /// /// 标的资产类型 /// public string VarietyType { get; set; } /// /// 买入卖出 /// public string BuySell { get; set; } /// /// 工具类型 /// public string ToolType { get; set; } /// /// 期权行权时间类型 /// public string ExerciseMode { get; set; } /// /// 期权权利类型 /// public string OptionType { get; set; } /// /// 产品结构 /// public string TradeType { get; set; } /// /// 产品结构En /// public string TradeTypeEn { get; set; } /// /// 结构化交易中的组合类型 /// 确定产品结构时使用 /// public string StructureType { get; set; } /// /// 二元期权PayoffType /// 确定产品结构时使用 /// public string PayoffType { get; set; } /// /// 资产类型En /// public string AssetTypeEn { get; set; } /// /// 标的资产品种 /// public string VarietyCode { get; set; } /// /// 标的资产对应合约 /// public string UnderlyingCode { get; set; } /// /// 数量单位 /// public string QuoteUnit { get; set; } /// /// 数量单位En /// public string QuoteUnitEn { get; set; } /// /// 总名义数量 /// public string TradeAmount { get; set; } /// /// 已平仓总名义数量/交易名义数量 /// 该笔成交为部分解约或者解约,终止合约,所涉及的名义数量;成交对应合约手数*标的合约的合约乘数。 /// public string EndTradeAmount { get; set; } /// /// 价格符号 /// public int PriceSymbol { get; set; } private double _strike; /// /// 执行价格 /// public double Strike { get { return _strike; } set { if (PS.Config.Company == Configuration.CompanyEnum.国投) { _strike = OtcFormatHelper.FormatValue(value, 2); } else { _strike = OtcFormatHelper.FormatValue(value, 6); } } } /// /// 互换成交报送可能有两个Strike /// public List Strike2 { get; set; } public string StrikeString { get { var strikeString = ""; if (Strike2 != null && Strike2.Count > 0) { foreach (var x in Strike2) { if (PS.Config.Company == Configuration.CompanyEnum.国投) { strikeString += x.ToString("0.##") + ","; } else { strikeString += x.ToString("0.######") + ","; } } strikeString = strikeString.Substring(0, strikeString.Length - 1); } else { if (PS.Config.Company == Configuration.CompanyEnum.国投) { strikeString += Strike.ToString("0.##"); } else { strikeString += Strike.ToString("0.######"); } } return strikeString; } } private double? _foreignCurrencyRate; /// /// 外汇对人民币汇率 /// public double? ForeignCurrencyRate { get { return _foreignCurrencyRate; } set { _foreignCurrencyRate = value.HasValue ? (double?)OtcFormatHelper.FormatValue(value ?? 0, 4) : null; } } private double _participateRate; /// /// 参与率 /// public double ParticipateRate { get { return _participateRate; } set { _participateRate = OtcFormatHelper.FormatValue(value, 6); } } /// /// 参与率 /// public string ParticipateRateString { get { return ParticipateRate.ToString("0.######"); } } /// /// 计价货币 /// public string QuoteCurrency { get; set; } /// /// 总名义金额 /// public string StockEqvNotional { get; set; } /// /// 已平仓总名义金额/交易名义金额 /// 该笔成交为部分解约或者解约,终止合约,所涉及的名义金额;交易名义数量*成交时标的期初价格。 /// public string EndStockEqvNotional { get; set; } private double _pv; /// /// 合约价值 /// public double Pv { get { return _pv; } set { _pv = Math.Abs(OtcFormatHelper.FormatValue(value, 4)); } } /// /// 合约价值 /// public string PvString { get { return Pv.ToString("0.####"); } } /// /// 交易Id /// public int TradeId { get; set; } /// /// 交易确认书编号 /// public string ContractCode { get; set; } /// /// 是否为年化期权 /// public string IsAnnualTrade { get; set; } /// /// 估值方法 /// public string ValuationMethod { get; set; } /// /// 浮动盈亏 /// public decimal? UnRealizedPnL { get; set; } /// /// 到期日 /// public DateTime? ExerciseDate { get; set; } /// /// 到期日 /// public string ExerciseDateString { get { return ExerciseDate == null ? "" : ExerciseDate.Value.ToString("yyyy-MM-dd"); } } public string DeltaCash { get; set; } #region 辅助属性 [NotMapped] public string OriginalTradeNumber { get; set; } public trade _trade; public trade originalTrade { get; set; } [NotMapped] public trade trade { get { try { if (_trade == null) { if (!string.IsNullOrWhiteSpace(TradeJson)) { _trade = trade.Deserialize(TradeJson); } else { _trade = originalTrade; } } } catch (Exception ex) { LogFactory.GetLogger("SuperviseReportBaseModel").Error(ex); } return _trade; } } [NotMapped] public string TradeJson { get; set; } ///// ///// 报价单位比率 ///// 通常情况下只有鸡蛋会是2 ///// //[NotMapped] //public int CountRatio { get; set; } [NotMapped] public string OriginalVarietyCode { get; set; } /// /// 平仓比例 /// [NotMapped] public double? UnwindPercentRate { get; set; } /// /// 客户Id /// [NotMapped] public int ClientId { get; set; } /// /// 父交易Id /// [NotMapped] public int? ParentTradeId { get; set; } /// /// 交易状态 /// [NotMapped] public string TradeStatus { get; set; } public int IsGroup { get; set; } public double? _deltaCash { get; set; } #endregion } }