找回证券业报送的逻辑,仅支持Excel模板报送

This commit is contained in:
嬴政 时
2025-05-14 20:00:04 +08:00
parent 0c9cd64038
commit fe2ff3bbcf
52 changed files with 10829 additions and 7124 deletions
@@ -0,0 +1,101 @@
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
/// <summary>
/// 交易确认书附件
/// </summary>
[Table("A1019_ConfirmationAtt")]
public class ConfirmationAttModel : ReportBaseModel
{
/// <summary>
/// 交易确认书编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号(双方约定)", "100", true, "双方约定;")]
public string ConfirmationNo { get; set; }
/// <summary>
/// 操作标识
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("OperationType", "操作标识", "1", true, "")]
public OptFlagsEnum OperationType { get; set; }
/// <summary>
/// 交易确认书附件
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("ConfirmationAtt", "交易确认书附件", "1", true, "说明:校验规则:只支持PDF格式")]
public string ConfirmationAtt { get; set; }
/// <summary>
/// 交易确认书附件
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("ConfirmationFiles", "交易确认书附件", "1", true, "说明:校验规则:只支持PDF格式")]
public string ConfirmationFiles { get; set; }
/// <summary>
/// 交易确认书附件
/// <para>长度:</para>
/// <para>必填:是</para>
/// <para>说明:多附件;</para>
/// </summary>
[CheckIEnumerableTMinCount(MinCount = 1)]
[XmlElement]
[NotMapped]
[SacDescription("ConfirmationFilesTuple", "交易确认书附件", "", true, "多附件;")]
public List<ConfirmationFilesTupleModel> ConfirmationFilesTuple { get; set; }
}
public class ConfirmationFilesTupleModel
{
/// <summary>
/// 是否为收益互换
/// </summary>
//[CheckStringInMap(Map = new[] { "true", "false" })]
[XmlIgnore]
public string IsSwap { get; set; }
/// <summary>
/// 场外期权交易确认书附件
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:只支持PDF格式</para>
/// </summary>
[CheckConditionStringValue(ConditionName = "IsSwap", ConditionValue = "false", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringValue(ConditionName = "IsSwap", ConditionValue = "true", CheckHandleNameArr = new[] { "B" })]
[CheckStringEndsWith(EndsWithString = ".pdf", CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ConfirmationAtt", "交易确认书附件", "100", true, "校验规则:只支持PDF格式;")]
public string ConfirmationAtt { get; set; }
/// <summary>
/// 收益互换交易确认书附件
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:只支持PDF格式</para>
/// </summary>
[CheckConditionStringValue(ConditionName = "IsSwap", ConditionValue = "true", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringValue(ConditionName = "IsSwap", ConditionValue = "false", CheckHandleNameArr = new[] { "B" })]
[CheckStringEndsWith(EndsWithString = ".pdf", CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ConfirmationFiles", "交易确认书附件", "100", true, "校验规则:只支持PDF格式;")]
public string ConfirmationFiles { get; set; }
}
}
@@ -1,4 +1,5 @@
using System.ComponentModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +9,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 主协议
/// </summary>
[Table("A1001_MasterAgrmt")]
public class MasterAgrmtModel : ReportBaseModel
{
/// <summary>
@@ -44,7 +46,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "双方约定;")]
public string MasterAgrmtNo { get; set; }
/// <summary>
/// 签时间
/// 签时间
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:必须是yyyy-MM-dd</para>
@@ -52,7 +54,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("SigningDate", "签时间", "10", true, "校验规则:必须是yyyy-MM-dd;")]
[SacDescription("SigningDate", "签时间", "10", true, "校验规则:必须是YYYY-MM-DD;")]
public string SigningDate { get; set; }
/// <summary>
/// 主协议版本
@@ -75,28 +77,28 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("FillParty", "填报方角色", "2", true, "")]
public string FillParty { get; set; }
/// <summary>
/// 交易对手方名称
/// 交易对手方名称(全称)
/// <para>长度:200</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200)]
[DefaultValue("")]
[SacDescription("NameOfCounterparty", "交易对手方名称", "200", true, "")]
[SacDescription("NameOfCounterparty", "交易对手方名称(全称)", "200", true, "")]
public string NameOfCounterparty { get; set; }
/// <summary>
/// 统一社会信用代码
/// <para>长度:18</para>
/// <para>必填:</para>
/// <para>必填:</para>
/// <para>说明:校验规则:字段长度18位;当交易对手方类型是除了境外金融机构、境外非金融机构外的机构时,必填 </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "14", "15" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "14", "15" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 18, CheckHandleName = "A", Required = false)]
[CheckStringMinLength(MinLength = 18, CheckHandleName = "B")]
[CheckStringMinLength(MinLength = 1, CheckHandleName = "B")]
[CheckStringMaxLength(MaxLength = 18, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("CODS", "统一社会信用代码", "18", true, "校验规则:字段长度18位;\r\n当交易对手方类型是除了境外金融机构、境外非金融机构外的机构时,必填;")]
[SacDescription("CODS", "统一社会信用代码", "18", false, "校验规则:字段长度18位;\r\n当交易对手方类型是除了境外金融机构、境外非金融机构外的机构时,必填;")]
public string CODS { get; set; }
/// <summary>
/// 交易对手编码
@@ -112,13 +114,13 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// LEI码
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:当交易对手方类型是境外金融机构、境外非金融机构外的机构时,必填 </para>
/// <para>说明:校验规则:当交易对手方类型是境外金融机构、境外非金融机构时,必填 </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "14", "15" }, CheckHandleNameArr = new[] { "A" })]
[CheckStringMinLength(MinLength = 1, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 20, CheckHandleName = "A")]
[DefaultValue("")]
[SacDescription("LEI", "LEI码", "20", false, "校验规则:当交易对手方类型是境外金融机构、境外非金融机构外的机构时,必填;")]
[SacDescription("LEI", "LEI码", "20", false, "校验规则:当交易对手方类型是境外金融机构、境外非金融机构时,必填;")]
public string LEI { get; set; }
/// <summary>
/// 交易对手类别
@@ -144,14 +146,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 非金融机构行业代码
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:交易对手方类型非金融机构时必填;参照国家统计局发布的《国民经济行业分类》</para>
/// <para>说明:校验规则:当“交易对手方类型”选择境内非金融机构时必填;参照国家统计局发布的《国民经济行业分类》</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "13", "15" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "13", "15" }, CheckHandleNameArr = new[] { "B" })]
[CheckConditionStringInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "13" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(CounterpartyType), ConditionMap = new[] { "13" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 20, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 20, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("NFICode", "非金融机构行业代码", "20", false, "校验规则:交易对手方类型非金融机构时必填;\r\n参照国家统计局发布的《国民经济行业分类》;")]
[SacDescription("NFICode", "非金融机构行业代码", "20", false, "校验规则:当“交易对手方类型”选择境内非金融机构时必填;\r\n参照国家统计局发布的《国民经济行业分类》;")]
public string NFICode { get; set; }
/// <summary>
/// 交易对手方注册资本(万元)
@@ -161,7 +163,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("CounterpartyRegdCptl", "交易对手方注册资本(万元)", "36,2", false, "校验规则:保留两位小数;")]
[SacDescription("CounterpartyRegdCptl", "交易对手方注册资本(万元)", "36,2", false, "校验规则:必须两位小数以内")]
public string CounterpartyRegdCptl { get; set; }
/// <summary>
/// 主协议备注
@@ -201,6 +203,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckIEnumerableTMinCount(MinCount = 1)]
[XmlElement]
[NotMapped]
[SacDescription("CounterpartyInformationTuple", "填报方业务代表明细", "", false, "")]
public List<CounterpartyInfomationModel> CounterpartyInformationTuple { get; set; }
}
@@ -208,8 +211,17 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 填报方业务代表明细
/// </summary>
public class CounterpartyInfomationModel
[Table("A1001_CounterpartyInfomation")]
public class CounterpartyInfomationModel : ReportSubBaseModel
{
/// <summary>
/// 主协议编号
/// <para>长度:200</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
public string MasterAgrmtNo { get; set; }
/// <summary>
/// 填报方业务代表姓名
/// <para>长度:200</para>
@@ -1,4 +1,5 @@
using System.ComponentModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +9,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 主协议关联产品
/// </summary>
[Table("A1002_MasterAgrmtProduct")]
public class MasterAgrmtProductModel : ReportBaseModel
{
/// <summary>
@@ -52,11 +54,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 产品名称
/// <para>长度:100</para>
/// <para>必填:</para>
/// <para>必填:</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为产品管理人时必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// 2 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
@@ -64,26 +66,26 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 100, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ProductName", "产品名称", "100", true, "校验规则:\r\n1 主协议交易对手方身份为产品管理人时必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
[SacDescription("ProductName", "产品名称", "100", false, "校验规则:\r\n1 主协议交易对手方身份为产品管理人时必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
public string ProductName { get; set; }
/// <summary>
/// 交易对手码(产品)
/// <para>长度:20</para>
/// <para>必填:</para>
/// <para>说明:应当符合标准规范</para>
/// <para>必填:</para>
/// <para>说明:校验规则:1、主协议交易对手方身份为产品管理人必填;2、主协议交易对手方身份为自营禁止填值;3、应当符合标准规范</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 20)]
[DefaultValue("")]
[SacDescription("CounterpartyCodeProducts", "交易对手码(产品)", "20", true, "应当符合标准规范;")]
[SacDescription("CounterpartyCodeProducts", "交易对手码(产品)", "20", false, "校验规则:\r\n1、主协议交易对手方身份为产品管理人必填;\r\n2、主协议交易对手方身份为自营禁止填值;\r\n3、应当符合标准规范;")]
public string CounterpartyCodeProducts { get; set; }
/// <summary>
/// 产品投资经理姓名
/// <para>长度:100</para>
/// <para>必填:</para>
/// <para>必填:</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为产品管理人必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// 1 主协议交易对手方身份为产品管理人必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
@@ -91,16 +93,16 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 100, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ManagerName", "产品投资经理姓名", "100", true, "校验规则:\r\n1 主协议交易对手方身份为产品管理人必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
[SacDescription("ManagerName", "产品投资经理姓名", "100", false, "校验规则:\r\n1 主协议交易对手方身份为产品管理人必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
public string ManagerName { get; set; }
/// <summary>
/// 投资经理联系电话
/// <para>长度:20</para>
/// <para>必填:</para>
/// <para>必填:</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为产品管理人必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// 1 主协议交易对手方身份为产品管理人必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
@@ -108,7 +110,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 20, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("InvestmentManagerContactNumber", "投资经理联系电话", "20", true, "校验规则:\r\n1 主协议交易对手方身份为产品管理人必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
[SacDescription("InvestmentManagerContactNumber", "投资经理联系电话", "20", false, "校验规则:\r\n1 主协议交易对手方身份为产品管理人必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
public string InvestmentManagerContactNumber { get; set; }
/// <summary>
/// 托管机构(如有)
@@ -116,7 +118,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为自营禁止填值;
/// 1 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
@@ -124,17 +126,17 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 200, Required = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("TrusteeAgency", "托管机构(如有)", "200", false, "校验规则:\r\n1 主协议交易对手方身份为自营禁止填值;")]
[SacDescription("TrusteeAgency", "托管机构(如有)", "200", false, "校验规则:\r\n1 主协议交易对手方身份为自营禁止填值;")]
public string TrusteeAgency { get; set; }
/// <summary>
/// 入表日期
/// <para>长度:10</para>
/// <para>必填:</para>
/// <para>必填:</para>
/// <para>
/// 说明:校验规则:
/// 1 必须是yyyy-MM-dd;
/// 2 主协议交易对手方身份为产品管理人必填;
/// 3 主协议交易对手方身份为自营禁止填值;
/// 1 必须是YYYY-MM-DD;
/// 2 主协议交易对手方身份为产品管理人必填;
/// 3 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
@@ -143,17 +145,17 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd", CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("TheDateTable", "入表日期", "10", true, "校验规则:\r\n1 必须是yyyy-MM-dd;\r\n2 主协议交易对手方身份为产品管理人必填;\r\n3 主协议交易对手方身份为自营禁止填值;")]
[SacDescription("TheDateTable", "入表日期", "10", false, "校验规则:\r\n1 必须是YYYY-MM-DD;\r\n2 主协议交易对手方身份为产品管理人必填;\r\n3 主协议交易对手方身份为自营禁止填值;")]
public string TheDateTable { get; set; }
/// <summary>
/// 代签产品附件
/// <para>长度:10</para>
/// <para>必填:</para>
/// <para>必填:</para>
/// <para>
/// 说明:校验规则:
/// 1 只支持PDF格式;
/// 2 主协议交易对手方身份为产品管理人必填;
/// 3 主协议交易对手方身份为自营禁止填值;
/// 2 主协议交易对手方身份为产品管理人必填;
/// 3 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
@@ -161,7 +163,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringEndsWith(EndsWithString = ".pdf", CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("SuchProducts", "代签产品附件", "10", true, "校验规则:\r\n1 只支持PDF格式;\r\n2 主协议交易对手方身份为产品管理人必填;\r\n3 主协议交易对手方身份为自营禁止填值;")]
[SacDescription("SuchProducts", "代签产品附件", "10", false, "校验规则:\r\n1 只支持PDF格式;\r\n2 主协议交易对手方身份为产品管理人必填;\r\n3 主协议交易对手方身份为自营禁止填值;")]
public string SuchProducts { get; set; }
}
}
File diff suppressed because it is too large Load Diff
@@ -1,10 +1,18 @@
using System.ComponentModel;
using Newtonsoft.Json;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
/// <summary>
/// 了结确认书
/// </summary>
[Table("A1007_OptionTermination")]
public class OptionTerminationModel : ReportBaseModel
{
/// <summary>
@@ -30,6 +38,21 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("BizID", "业务编号", "50", false, "校验规则:补正时必填;")]
public new string BizID { get; set; }
/// <summary>
/// 操作事件编号
/// <para>长度:6</para>
/// <para>必填:是</para>
/// <para>
/// 说明:存续期发生相关事件时,必填;
/// 同一笔交易确认书下应当保证唯一性,并按照事件发生顺序进行编号,起始编号为0000.
/// 如一笔交易下依次发生展期\调仓\终止事件,编号应当分别为0000\0001\0002,
/// 场外业务报告系统返回编号分别为E0000\R0001\T0002
/// </para>
/// </summary>
[CheckStringLengthInMap(Map = new[] { 4, 5 })]
[DefaultValue("")]
[SacDescription("DurationEventNO", "操作事件编号", "6", true, "存续期发生相关事件时,必填;\r\n同一笔交易确认书下应当保证唯一性,并按照事件发生顺序进行编号,起始编号为0000.\r\n如一笔交易下依次发生展期、调仓、终止事件,编号应当分别为0000、0001、0002,\r\n场外业务报告系统返回编号分别为E0000、R0001、T0002;")]
public new string DurationEventNO { get; set; }
/// <summary>
/// 交易确认书编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
@@ -37,53 +60,37 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", true, "双方约定;")]
[SacDescription("ConfirmationNo", "交易确认书编号(双方约定)", "100", true, "双方约定;")]
public string ConfirmationNo { get; set; }
/// <summary>
/// 终止日期
/// 存续期操作类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OperationTypeMap"/>敲入、敲出只限于自动赎回、安全气囊、障碍及其组合类期权填写</para>
/// </summary>
[CheckStringInMap(Map = new[] { "01", "02", "03", "05", "06" })]
[DefaultValue("")]
[SacDescription("DurationOperationType", "存续期操作类型", "2", true, "敲入、敲出只限于自动赎回、安全气囊、障碍及其组合类期权填写")]
public string DurationOperationType { get; set; }
/// <summary>
/// 操作发生日期
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:1 当存续期操作类型,选择终止\违约终止时必填;2 必须是yyyy-MM-dd;3 不存在展期数据:不得等于晚于原合约到期日;4 存在展期数据:不得等于晚于最新展期日期;5 新增终止:一个日期只能存在一条终止数据;</para>
/// <para>说明:分别为“确定进行展期日期”“合约终止日期”“交易发生违约日期”“发生敲入事件日期”“发生敲出事件日期”</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 10, CheckHandleName = "A")]
[CheckStringIsDateTimeFormat(CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
// [CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "A" })]
// [CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 10)]
[CheckStringIsDateTimeFormat()]
// [CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ExpirationDate", "终止日期", "10", true, "校验规则:\r\n1 当存续期操作类型,选择终止、违约终止时必填;\r\n2 必须是yyyy-MM-dd;\r\n3 不存在展期数据:不得等于晚于原合约到期日;\r\n4 存在展期数据:不得等于晚于最新展期日期;\r\n5 新增终止:一个日期只能存在一条终止数据;")]
[SacDescription("ExpirationDate", "操作发生日期", "10", true, "分别为“确定进行展期日期”“合约终止日期”“交易发生违约日期”“发生敲入事件日期”“发生敲出事件日期”")]
public string ExpirationDate { get; set; }
/// <summary>
/// 违约方
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OptionTraderMap"/> 校验规则:存续期操作类型为违约终止时必填;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "01", "02" }, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("DefaultingParty", "违约方", "2", false, "校验规则:存续期操作类型为违约终止时必填;")]
public string DefaultingParty { get; set; }
/// <summary>
/// 违约事件说明
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:存续期操作类型为违约终止时必填;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 1024, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("DefaultEvent", "违约事件说明", "1024", false, "校验规则:存续期操作类型为违约终止时必填;")]
public string DefaultEvent { get; set; }
/// <summary>
/// 展期日期
/// 展期后到期日
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:1 存续期操作类型为展期时必填;2 必须是yyyy-MM-dd;3 不存在展期数据:不得早于等于原合约到期日;4 存在展期数据:不得早于等于最新展期日期;5 新增终止:一个日期只能存在一条终止数据;</para>
/// <para>说明:当“存续期操作类型”为“展期”时,必填;不存在展期操作数据不得早于原合约到期日存在展期操作数据不得早于最近一次展期数据的“展期后到期日”</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(DurationOperationType), ConditionValue = "01", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(DurationOperationType), ConditionValue = "01", CheckHandleNameArr = new[] { "B" })]
@@ -91,57 +98,120 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringIsDateTimeFormat(CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("RenewalDate", "展期日", "10", false, "校验规则:\r\n1 存续期操作类型为展期时必填;\r\n2 必须是yyyy-MM-dd;\r\n3 不存在展期数据:不得早于等于原合约到期日;\r\n4 存在展期数据:不得早于等于最新展期日期;\r\n5 新增终止:一个日期只能存在一条终止数据;")]
[SacDescription("RenewalDate", "展期后到期日", "10", false, "当“存续期操作类型”为“展期”时,必填;不存在展期操作数据不得早于原合约到期日存在展期操作数据不得早于最近一次展期数据的“展期后到期日”")]
public string RenewalDate { get; set; }
/// <summary>
/// 存续期操作类型
/// 违约方
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OperationTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "01", "02", "03" })]
[DefaultValue("")]
[SacDescription("DurationOperationType", "存续期操作类型", "2", true, "")]
public string DurationOperationType { get; set; }
/// <summary>
/// 本次终止金额
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:1 当存续期操作类型,选择终止\违约终止时必填;2 保留两位小数;3 TODO 选展期时,该字段不能填,否则报送失败.4 大于0且小于等于上次余额;</para>
/// <para>说明:<see cref="FillPartyMap"/>当"存续期操作类型"为"违约终止"时,必填</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new string[] { "02", "03" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new string[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntLength(AfterPointLength = 2, BeforePointMaxLength = 34, MinValue = 0.01, CheckHandleName = "A")]
[CheckConditionStringValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1" }, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("TerminationAmount", "本次终止金额", "36,2", false, "校验规则:\r\n1 当存续期操作类型,选择终止、违约终止时必填;\r\n2 保留两位小数;\r\n3 TODO 选展期时,该字段不能填,否则报送失败.4 大于0且小于等于上次余额;")]
[SacDescription("DefaultingParty", "违约方", "2", false, "当存续期操作类型违约终止时,必填;")]
public string DefaultingParty { get; set; }
/// <summary>
/// 违约事件说明
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:当"存续期操作类型"为"违约终止"时,必填</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(DurationOperationType), ConditionValue = "03", CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 1024, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("DefaultEvent", "违约事件说明", "1024", false, "当存续期操作类型为违约终止时,必填;")]
public string DefaultEvent { get; set; }
/// <summary>
/// 名义本金变动(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:当"存续期操作类型"选择"终止""违约终止"时,必填,数值必须为负数</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, MaxValue = 0, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("TerminationAmount", "名义本金变动(元)", "36,2", false, "当存续期操作类型选择终止、违约终止时,必填,数值必须为负数;")]
public string TerminationAmount { get; set; }
/// <summary>
/// 余额
/// 存量名义本金(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:1 保留两位小数;2 值等于该交易上次余额-本次终止金额;</para>
/// <para>说明:大于等于 0 的数字</para>
/// </summary>
[CheckStringIntLength(AfterPointLength = 2, BeforePointMaxLength = 34, MinValue = 0)]
[CheckStringIntLength(AfterPointLength = 2, BeforePointMaxLength = 36, MinValue = 0)]
[DefaultValue("")]
[SacDescription("Balance", "余额", "36,2", true, "校验规则:\r\n1 保留两位小数;\r\n2 值等于该交易上次余额-本次终止金额;")]
[SacDescription("Balance", "存量名义本金(元)", "36,2", true, "大于等于 0 的数字")]
public string Balance { get; set; }
/// <summary>
/// 本次支付金额
/// 本次支付金额(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:1 当存续期操作类型,选择终止\违约终止时必填;2 保留两位小数;3 TODO 选展期时,该字段不能填,否则报送失败;</para>
/// <para>说明:校验规则:1 当存续期操作类型,选择终止\违约终止时必填;2 支付为正,收取为负</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new string[] { "02", "03" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new string[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntLength(AfterPointLength = 2, BeforePointMaxLength = 34, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[CheckStringIntLength(AfterPointLength = 2, BeforePointMaxLength = 36, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("AmountPaidThisTime", "本次支付金额", "36,2", false, "校验规则:\r\n1 当存续期操作类型,选择终止、违约终止时必填;\r\n2 保留两位小数;\r\n3 TODO 选展期时,该字段不能填,否则报送失败;")]
[SacDescription("AmountPaidThisTime", "本次支付金额(元)", "36,2", false, "校验规则:\r\n1 当存续期操作类型,选择终止、违约终止时必填;\r\n2 支付为正,收取为负;")]
public string AmountPaidThisTime { get; set; }
/// <summary>
/// 已了结交易实际收益率(%)
/// <para>长度:8,2</para>
/// <para>必填:否</para>
/// <para>说明:当“存续期操作类型”选择“终止”“违约终止”时,必填;</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new string[] { "02", "03" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new string[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntLength(AfterPointLength = 2, BeforePointMaxLength = 8, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ClosedTransactionsRealRateReturn", "已了结交易实际收益率(%)", "8,2", false, "当“存续期操作类型”选择“终止”“违约终止”时,必填;")]
public string ClosedTransactionsRealRateReturn { get; set; }
/// <summary>
/// 存续期信息附件
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:只支持 PDF 格式</para>
/// </summary>
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
[DefaultValue("")]
[SacDescription("OptionDurationManagementAtt", "存续期信息附件", "", false, "校验规则:只支持 PDF 格式")]
public string OptionDurationManagementAtt { get; set; }
/// <summary>
/// 障碍事件状态
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="BarrierEventStatusMap"/>根据存续期操作类型中 05 敲入、06 敲出的填写情况,由系统自动取值,填报方无需填写报送</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("BarrierEventStatus", "障碍事件状态", "2", false, "根据存续期操作类型中 05 敲入、06 敲出的填写情况,由系统自动取值,填报方无需填写报送")]
public string BarrierEventStatus { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("TradeId", "本次支付金额", "36,2", false, "校验规则:\r\n1 当存续期操作类型,选择终止、违约终止时必填;\r\n2 保留两位小数;\r\n3 TODO 选展期时,该字段不能填,否则报送失败;")]
public string TradeId { get; set; }
/// <summary>
/// 空白1
/// </summary>
[XmlIgnore]
[DefaultValue("")]
[SacDescription("Blank1", "空白1", "", false, "")]
public string Blank1 { get; set; }
/// <summary>
/// 空白2
/// </summary>
[XmlIgnore]
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
}
}
@@ -50,7 +50,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("Telephone", "手机", "11", true, "校验规则:手机号")]
public string Telephone { get; set; }
/// <summary>
/// 固定电话
/// 手机
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:</para>
@@ -1,4 +1,5 @@
using System.ComponentModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +9,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 履约保证书
/// </summary>
[Table("A1008_PerformanceGuaranteeAgrmt")]
public class PerformanceGuaranteeAgrmtModel : ReportBaseModel
{
/// <summary>
@@ -72,7 +74,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("SigningDate", "签署时间", "10", true, "校验规则:必须是yyyy-MM-dd;")]
[SacDescription("SigningDate", "签署时间", "10", true, "校验规则:必须是YYYY-MM-DD;")]
public string SigningDate { get; set; }
}
}
@@ -1,4 +1,5 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -683,55 +684,55 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 上月末收益互换存量交易对应履约担保品价值(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 32, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeLastMonth", "上月末收益互换存量交易对应履约担保品价值(元)", "36,2", true, "校验规则:保留位小数;")]
[SacDescription("TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeLastMonth", "上月末收益互换存量交易对应履约担保品价值(元)", "36,2", true, "校验规则:保留位小数;")]
public string TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeLastMonth { get; set; }
/// <summary>
/// 本月末收益互换现金担保物价值(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 32, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapCashCollateralValueThisMonth", "本月末收益互换现金担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
[SacDescription("SwapCashCollateralValueThisMonth", "本月末收益互换现金担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
public string SwapCashCollateralValueThisMonth { get; set; }
/// <summary>
/// 上月末收益互换现金担保物价值(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 32, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapCashCollateralValueLastMonth", "上月末收益互换现金担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
[SacDescription("SwapCashCollateralValueLastMonth", "上月末收益互换现金担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
public string SwapCashCollateralValueLastMonth { get; set; }
/// <summary>
/// 本月末收益互换证券担保物价值(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 32, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapSecuritiesCollateralValueThisMonth", "本月末收益互换证券担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
[SacDescription("SwapSecuritiesCollateralValueThisMonth", "本月末收益互换证券担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
public string SwapSecuritiesCollateralValueThisMonth { get; set; }
/// <summary>
/// 上月末收益互换证券担保物价值(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 32, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapSecuritiesCollateralValueLastMonthThisMonth", "上月末收益互换证券担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
[SacDescription("SwapSecuritiesCollateralValueLastMonthThisMonth", "上月末收益互换证券担保物价值(元)", "36,2", true, "校验规则:保留位小数;")]
public string SwapSecuritiesCollateralValueLastMonthThisMonth { get; set; }
/// <summary>
@@ -1329,14 +1330,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string SwapExpensesCashFlow { get; set; }
/// <summary>
/// 互换使用预付金形成的净收益对应现金流(万元)
/// 互换使用保证金形成的净收益对应现金流(万元)
/// <para>长度:36,4</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 32, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("CashFlowCorrespondingToNetIncomeOnSwapMargin", "互换使用预付金形成的净收益对应现金流(万元)", "36,4", true, "校验规则:保留四位小数;")]
[SacDescription("CashFlowCorrespondingToNetIncomeOnSwapMargin", "互换使用保证金形成的净收益对应现金流(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string CashFlowCorrespondingToNetIncomeOnSwapMargin { get; set; }
/// <summary>
@@ -1560,7 +1561,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 标的情况与对冲
/// </summary>
public class ISDATargetCaseAndHedgeModel
public class ISDATargetCaseAndHedgeModel : ReportSubBaseModel
{
/// <summary>
/// 报送机构名称(全称)
@@ -1621,7 +1622,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 标的交易场所
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// <para>说明:股指期货和大宗商品买入对冲包括开多仓和平空仓;保留两位小数</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
@@ -1674,13 +1675,13 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 本月末持仓数量(股/手)
/// <para>长度:36,4</para>
/// <para>长度:36,6</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:大于等于0;\r\n权益类填写股数</para>
/// <para>说明:校验规则:大于等于0;\r\n权益类填写股数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4, Required = false)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 6, Required = false)]
[DefaultValue("")]
[SacDescription("TheNumberOfPositionsHeldAtTheEndOfThisMonth", "本月末持仓数量(股/手)", "36,4", false, "校验规则:大于等于0;\r\n权益类填写股数;")]
[SacDescription("TheNumberOfPositionsHeldAtTheEndOfThisMonth", "本月末持仓数量(股/手)", "36,6", false, "校验规则:大于等于0;\r\n权益类填写股数;")]
public string TheNumberOfPositionsHeldAtTheEndOfThisMonth { get; set; }
/// <summary>
@@ -1693,12 +1694,21 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("AveragePriceAtTheEndOfTheMonth", "本月末持仓平均价格(元)", "36,2", false, "校验规则:保留两位小数;")]
public string AveragePriceAtTheEndOfTheMonth { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
/// <summary>
/// 本月末存量业务明细
/// </summary>
public class ISDAInventoryBusinessDetailsAtTheEndOfThisMonthModel
public class ISDAInventoryBusinessDetailsAtTheEndOfThisMonthModel : ReportSubBaseModel
{
/// <summary>
/// 报送机构名称(全称)
@@ -1769,22 +1779,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 名义本金(或多头名义本金)(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为18位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为18位;")]
public string NotionalPrincipalAmountLNotionalPrincipalAmount { get; set; }
/// <summary>
/// 空头名义本金(元)(多空组合填写)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为18位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为18位;")]
public string SNotionalPrincipalAmount { get; set; }
/// <summary>
@@ -1859,7 +1869,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 场外期权标的小类(场外期权填写)
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="UndrlygAssetDtldTypeMap"/></para>
/// <para>说明:<see cref="SwapUndrlygAssetDtldTypeMap"/></para>
/// </summary>
[CheckStringMaxLength(MaxLength = 2, Required = false)]
[DefaultValue("")]
@@ -1897,24 +1907,27 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:否</para>
/// <para>说明:<see cref="OptionStructureTypeMap"/>校验规则:当"业务类型"为"场外期权"时,必填</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 2, Required = false)]
[CheckConditionStringValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionType", "期权类型(场外期权填写)", "5,2", false, "校验规则:当业务类型为场外期权时,必填;")]
public string OptionType { get; set; }
/// <summary>
/// 本月末维持预付金比例(%)
/// 本月末维持保证金比例(%)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>
/// 说明:指月末维持预付金加浮动盈亏占合约存续名义本金的比例;
/// 对于多空互换,指维持预付金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.
/// 例如维持预付金比例为50%,填写50.00
/// 说明:指月末维持保证金加浮动盈亏占合约存续名义本金的比例;
/// 对于多空互换,指维持保证金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.
/// 例如维持保证金比例为50%,填写50.00
/// </para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("MaitainMarginRation", "本月末维持预付金比例(%)", "36,2", false, "指月末维持预付金加浮动盈亏占合约存续名义本金的比例;\r\n对于多空互换,指维持预付金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.\r\n例如维持预付金比例为50%,填写50.00;")]
[SacDescription("MaitainMarginRation", "本月末维持保证金比例(%)", "36,2", false, "指月末维持保证金加浮动盈亏占合约存续名义本金的比例;\r\n对于多空互换,指维持保证金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.\r\n例如维持保证金比例为50%,填写50.00;")]
public string MaitainMarginRation { get; set; }
/// <summary>
@@ -1958,12 +1971,21 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("ShortPositionContractValue", "空头合约价值(元)", "36,2", false, "客户空头、多空组合收益互换需填写;\r\n保留两位小数;")]
public string ShortPositionContractValue { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
/// <summary>
/// 本月新增业务明细
/// </summary>
public class ISDAIncreaseBusinessDetailsThisMonthModel
public class ISDAIncreaseBusinessDetailsThisMonthModel : ReportSubBaseModel
{
/// <summary>
/// 报送机构名称(全称)
@@ -2034,22 +2056,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 名义本金(或多头名义本金)(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,多空组合填写多头名义本;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留2位小数,多空组合填写多头;")]
public string NotionalPrincipalAmountLNotionalPrincipalAmount { get; set; }
/// <summary>
/// 空头名义本金(元)(多空组合填写)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留2位小数;")]
public string SNotionalPrincipalAmount { get; set; }
/// <summary>
@@ -2109,11 +2131,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("UndrlygAssetCode", "标的编码", "200", false, "")]
public string UndrlygAssetCode { get; set; }
/// <summary>
/// 标的交易场所
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
[SacDescription("UndrlygAssetTradgPlc", "标的交易场所", "200", false, "")]
public string UndrlygAssetTradgPlc { get; set; }
/// <summary>
/// 场外期权标的小类(场外期权填写)
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="UndrlygAssetDtldTypeMap"/></para>
/// <para>说明:<see cref="SwapUndrlygAssetDtldTypeMap"/></para>
/// </summary>
[CheckStringMaxLength(MaxLength = 2, Required = false)]
[DefaultValue("")]
@@ -2151,9 +2184,21 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:否</para>
/// <para>说明:<see cref="OptionStructureTypeMap"/></para>
/// </summary>
[CheckStringMaxLength(MaxLength = 2, Required = false)]
[CheckConditionStringValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionType", "期权类型(场外期权填写)", "5,2", false, "")]
public string OptionType { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
}
@@ -1,4 +1,5 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -812,10 +813,10 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 其他交易明细表
/// </summary>
public class ScheduleOfOtherTransactionModel
public class ScheduleOfOtherTransactionModel : ReportSubBaseModel
{
/// <summary>
/// 交易日期
/// 起始日
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:必须是YYYY-MM-DD;</para>
@@ -823,7 +824,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 10, Required = false)]
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("TradingDate", "交易日期", "10", false, "校验规则:必须是YYYY-MM-DD;")]
[SacDescription("TradingDate", "起始日", "10", false, "校验规则:必须是YYYY-MM-DD;")]
public string TradingDate { get; set; }
/// <summary>
@@ -907,11 +908,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 名义本金(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留4位小数,同时总的字符长度不能超过20,即整数位最多可为15位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("NotionalPrincipalAmount", "名义本金(元)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("NotionalPrincipalAmount", "名义本金(元)", "36,2", false, "校验规则:保留4位小数,同时总的字符长度不能超过20,即整数位最多可为15位;")]
public string NotionalPrincipalAmount { get; set; }
/// <summary>
@@ -960,15 +961,25 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("ContractExpirationDate", "合约到期日", "10", false, "校验规则:必须是YYYY-MM-DD;\r\n合约到期日不能小于合约起始日;")]
public string ContractExpirationDate { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
/// <summary>
/// 利率期权明细
/// </summary>
public class InterestRateOptionDetailModel
public class InterestRateOptionDetailModel : ReportSubBaseModel
{
/// <summary>
/// 交易日期
/// 起始日
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:必须是YYYY-MM-DD;</para>
@@ -976,7 +987,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 10, Required = false)]
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("TradingDate", "交易日期", "10", false, "校验规则:必须是YYYY-MM-DD;")]
[SacDescription("TradingDate", "起始日", "10", false, "校验规则:必须是YYYY-MM-DD;")]
public string TradingDate { get; set; }
/// <summary>
@@ -1152,12 +1163,21 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("ContractExpirationDate", "合约到期日", "10", false, "校验规则:必须是YYYY-MM-DD;\r\n合约到期日不能小于合约起始日;")]
public string ContractExpirationDate { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
/// <summary>
/// 利率互换明细
/// </summary>
public class InterestRateSwapDetailModel
public class InterestRateSwapDetailModel : ReportSubBaseModel
{
/// <summary>
/// 交易日期
@@ -1263,11 +1283,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 名义本金金额
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 15, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("NotionalPrincipalAmount", "名义本金金额", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("NotionalPrincipalAmount", "名义本金金额", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;")]
public string NotionalPrincipalAmount { get; set; }
/// <summary>
@@ -1309,11 +1329,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 固定利率
/// <para>长度:8,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为18位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("FixedRate", "固定利率", "8,2", false, "校验规则:保留位小数;")]
[SacDescription("FixedRate", "固定利率", "8,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为18位;")]
public string FixedRate { get; set; }
/// <summary>
@@ -1404,5 +1424,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("FirstInterestPaymentDay", "首次利息支付(互换)日", "10", false, "校验规则:必须是YYYY-MM-DD;")]
public string FirstInterestPaymentDay { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
}
@@ -1,4 +1,5 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -1348,7 +1349,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("TotalNominalPrincipalAmountOfSwapThisMonth", "本月末互换存量名义本金总额(亿元)", "36,4", true, "校验规则:保留四位小数;")]
public string TotalNominalPrincipalAmountOfSwapThisMonth { get; set; }
@@ -1359,7 +1360,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("TotalNominalPrincipalAmountOfSwapLastMonth", "上月末互换存量名义本金总额(亿元)", "36,4", true, "校验规则:保留四位小数;")]
public string TotalNominalPrincipalAmountOfSwapLastMonth { get; set; }
@@ -1370,7 +1371,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeThisMonth", "本月末互换存量交易对应履约担保品价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeThisMonth { get; set; }
@@ -1381,7 +1382,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeLastMonth", "上月末互换存量交易对应履约担保品价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string TheValueOfTheStockSwapInTheCorrespondingPerformanceGuaranteeLastMonth { get; set; }
@@ -1392,7 +1393,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapCashCollateralValueThisMonth", "本月末互换现金担保物价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string SwapCashCollateralValueThisMonth { get; set; }
@@ -1403,7 +1404,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapCashCollateralValueLastMonth", "上月末互换现金担保物价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string SwapCashCollateralValueLastMonth { get; set; }
@@ -1414,7 +1415,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapSecuritiesCollateralValueThisMonth", "本月末互换证券担保物价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string SwapSecuritiesCollateralValueThisMonth { get; set; }
@@ -1425,7 +1426,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("SwapSecuritiesCollateralValueLastMonthThisMonth", "上月末互换证券担保物价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string SwapSecuritiesCollateralValueLastMonthThisMonth { get; set; }
@@ -1436,7 +1437,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("ProportionOfTheOverallPerformanceOfTheSwapBusinessThisMonthFull", "本月末互换业务整体履约担保比例(全额)(%)", "36,2", true, "校验规则:保留两位小数;")]
public string ProportionOfTheOverallPerformanceOfTheSwapBusinessThisMonthFull { get; set; }
@@ -1447,7 +1448,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("ProportionOfTheOverallPerformanceOfTheSwapBusinessLastMonthFull", "上月末互换业务整体履约担保比例(全额)(%)", "36,2", true, "校验规则:保留两位小数;")]
public string ProportionOfTheOverallPerformanceOfTheSwapBusinessLastMonthFull { get; set; }
@@ -1458,7 +1459,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("ProportionOfTheOverallPerformanceOfTheSwapBusinessThisMonthNet", "本月末互换业务整体履约担保比例(净额)(%)", "36,2", true, "校验规则:保留两位小数;")]
public string ProportionOfTheOverallPerformanceOfTheSwapBusinessThisMonthNet { get; set; }
@@ -1469,7 +1470,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("ProportionOfTheOverallPerformanceOfTheSwapBusinessLastMonthNet", "上月末互换业务整体履约担保比例(净额)(%)", "36,2", true, "校验规则:保留两位小数;")]
public string ProportionOfTheOverallPerformanceOfTheSwapBusinessLastMonthNet { get; set; }
@@ -1568,7 +1569,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("StockTradingCorrespondsToValueOfCollateralAtEndOfThisMonth", "本月末存量交易对应履约担保品价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string StockTradingCorrespondsToValueOfCollateralAtEndOfThisMonth { get; set; }
@@ -1579,7 +1580,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("StockTradingCorrespondsToValueOfCollateralAtEndOfLastMonth", "上月末存量交易对应履约担保品价值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string StockTradingCorrespondsToValueOfCollateralAtEndOfLastMonth { get; set; }
@@ -1590,7 +1591,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("CashBalanceAtEndOfThisMonth", "本月末持有现金余额(元)", "36,2", true, "校验规则:保留两位小数;")]
public string CashBalanceAtEndOfThisMonth { get; set; }
@@ -1601,7 +1602,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("CashBalanceAtEndOfLastMonth", "上月末持有现金余额(元)", "36,2", true, "校验规则:保留两位小数;")]
public string CashBalanceAtEndOfLastMonth { get; set; }
@@ -1612,7 +1613,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldStockMarketValueAtEndOfThisMonth", "本月末持有股票市值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldStockMarketValueAtEndOfThisMonth { get; set; }
@@ -1623,7 +1624,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldStockMarketValueAtEndOfLastMonth", "上月末持有股票市值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldStockMarketValueAtEndOfLastMonth { get; set; }
@@ -1634,7 +1635,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldMarketValueOfBondsAtTheEndOfThisMonth", "本月末持有债券市值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldMarketValueOfBondsAtTheEndOfThisMonth { get; set; }
@@ -1645,7 +1646,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldMarketValueOfBondsAtTheEndOfLastMonth", "上月末持有债券市值(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldMarketValueOfBondsAtTheEndOfLastMonth { get; set; }
@@ -1656,7 +1657,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("OwnedAssetManagementProductsAtTheEndOfThisMonth", "本月末持有证券公司资产管理产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string OwnedAssetManagementProductsAtTheEndOfThisMonth { get; set; }
@@ -1667,7 +1668,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("OwnedAssetManagementProductsAtTheEndOfLastMonth", "上月末持有证券公司资产管理产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string OwnedAssetManagementProductsAtTheEndOfLastMonth { get; set; }
@@ -1678,7 +1679,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("OwnedBankFinanceAtTheEndOfThisMonth", "本月末持有银行理财(元)", "36,2", true, "校验规则:保留两位小数;")]
public string OwnedBankFinanceAtTheEndOfThisMonth { get; set; }
@@ -1689,7 +1690,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("OwnedBankFinanceAtTheEndOfLastMonth", "上月末持有银行理财(元)", "36,2", true, "校验规则:保留两位小数;")]
public string OwnedBankFinanceAtTheEndOfLastMonth { get; set; }
@@ -1700,7 +1701,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldTrustProductAtTheEndOfThisMonth", "本月末持有信托产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldTrustProductAtTheEndOfThisMonth { get; set; }
@@ -1711,7 +1712,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldTrustProductAtTheEndOfLastMonth", "上月末持有信托产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldTrustProductAtTheEndOfLastMonth { get; set; }
@@ -1722,7 +1723,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("InsuranceProductsAreHeldAtTheEndOfThisMonth", "本月末持有保险产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string InsuranceProductsAreHeldAtTheEndOfThisMonth { get; set; }
@@ -1733,7 +1734,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("InsuranceProductsAreHeldAtTheEndOfLastMonth", "上月末持有保险产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string InsuranceProductsAreHeldAtTheEndOfLastMonth { get; set; }
@@ -1744,7 +1745,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldOtherProductsAtTheEndOfThisMonth", "本月末持有其他产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldOtherProductsAtTheEndOfThisMonth { get; set; }
@@ -1755,7 +1756,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 2)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("HoldOtherProductsAtTheEndOfLastMonth", "上月末持有其他产品(元)", "36,2", true, "校验规则:保留两位小数;")]
public string HoldOtherProductsAtTheEndOfLastMonth { get; set; }
@@ -1777,7 +1778,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("SettledSwapTransactionInvolvesNotionalPrincipalAtThisMonth", "互换本月了结交易涉及名义本金(亿元)", "36,4", true, "校验规则:保留四位小数;")]
public string SettledSwapTransactionInvolvesNotionalPrincipalAtThisMonth { get; set; }
@@ -1788,7 +1789,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("SwapIncomeCashFlow", "互换收入现金流(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string SwapIncomeCashFlow { get; set; }
@@ -1799,20 +1800,20 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("SwapExpensesCashFlow", "互换支出现金流(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string SwapExpensesCashFlow { get; set; }
/// <summary>
/// 互换使用预付金形成的净收益对应现金流(万元)
/// 互换使用保证金形成的净收益对应现金流(万元)
/// <para>长度:36,4</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("CashFlowCorrespondingToNetIncomeOnSwapMargin", "互换使用预付金形成的净收益对应现金流(万元)", "36,4", true, "校验规则:保留四位小数;")]
[SacDescription("CashFlowCorrespondingToNetIncomeOnSwapMargin", "互换使用保证金形成的净收益对应现金流(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string CashFlowCorrespondingToNetIncomeOnSwapMargin { get; set; }
/// <summary>
@@ -1821,7 +1822,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("SwapHedgeCost", "互换对冲成本(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string SwapHedgeCost { get; set; }
@@ -1843,7 +1844,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("SettledOptionTransactionInvolvesNotionalPrincipalAtThisMonth", "期权本月了结交易涉及名义本金(亿元)", "36,4", true, "校验规则:保留四位小数;")]
public string SettledOptionTransactionInvolvesNotionalPrincipalAtThisMonth { get; set; }
@@ -1854,7 +1855,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("OptionPremiumIncome", "期权权利金收入(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string OptionPremiumIncome { get; set; }
@@ -1865,7 +1866,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("OptionHedgeCost", "期权对冲成本(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string OptionHedgeCost { get; set; }
@@ -1876,7 +1877,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfSwapRealizedGainsAndLossesAtThisMonth", "互换合约端损益本月发生额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfSwapRealizedGainsAndLossesAtThisMonth { get; set; }
@@ -1887,7 +1888,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfOptionRealizedGainsAndLossesAtThisMonth", "期权合约端损益本月发生额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfOptionRealizedGainsAndLossesAtThisMonth { get; set; }
@@ -1898,7 +1899,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfSwapRealizedGainsAndLossesAtThisYear", "互换合约端损益本年累计额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfSwapRealizedGainsAndLossesAtThisYear { get; set; }
@@ -1909,7 +1910,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfOptionRealizedGainsAndLossesAtThisYear", "期权合约端损益本年累计额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfOptionRealizedGainsAndLossesAtThisYear { get; set; }
@@ -1920,7 +1921,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfSwapChangedGainsAndLossesInFairValueAtThisMonth", "互换对冲端损益本月发生额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfSwapChangedGainsAndLossesInFairValueAtThisMonth { get; set; }
@@ -1931,7 +1932,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfOptionChangedGainsAndLossesInFairValueAtThisMonth", "期权对冲端损益本月发生额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfOptionChangedGainsAndLossesInFairValueAtThisMonth { get; set; }
@@ -1942,7 +1943,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfSwapChangedGainsAndLossesInFairValueAtThisYear", "互换对冲端损益本年累计额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfSwapChangedGainsAndLossesInFairValueAtThisYear { get; set; }
@@ -1953,7 +1954,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfOptionChangedGainsAndLossesInFairValueAtThisYear", "期权对冲端损益本年累计额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfOptionChangedGainsAndLossesInFairValueAtThisYear { get; set; }
@@ -1964,7 +1965,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfSwapTotalGainsAndLossesAtThisMonth", "互换损益合计本月发生额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfSwapTotalGainsAndLossesAtThisMonth { get; set; }
@@ -1975,7 +1976,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfOptionTotalGainsAndLossesAtThisMonth", "期权损益合计本月发生额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfOptionTotalGainsAndLossesAtThisMonth { get; set; }
@@ -1986,7 +1987,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfSwapTotalGainsAndLossesAtThisYear", "互换损益合计本年累计额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfSwapTotalGainsAndLossesAtThisYear { get; set; }
@@ -1997,7 +1998,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>必填:是</para>
/// <para>说明:校验规则:保留四位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 34, AfterPointLength = 4)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 4)]
[DefaultValue("")]
[SacDescription("BalanceOfOptionTotalGainsAndLossesAtThisYear", "期权损益合计本年累计额(万元)", "36,4", true, "校验规则:保留四位小数;")]
public string BalanceOfOptionTotalGainsAndLossesAtThisYear { get; set; }
@@ -2033,14 +2034,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public List<TargetCaseAndHedgeModel> TargetCaseAndHedgeTuple { get; set; }
/// <summary>
/// 收益互换整体业务存量对应预付金(元)+ 期权费(元)
/// 收益互换整体业务存量对应保证金(元)+ 期权费(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginOfSubsistSwap", "收益互换整体业务存量对应预付金(元)+", "36,2", true, "校验规则:保留两位小数;")]
[SacDescription("MarginOfSubsistSwap", "收益互换整体业务存量对应保证金(元)+ 期权费(元)", "36,2", true, "校验规则:保留两位小数;")]
public string MarginOfSubsistSwap { get; set; }
/// <summary>
@@ -2066,14 +2067,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string LeverageRatiOfSwap { get; set; }
/// <summary>
/// 收益互换股指标的存量对应预付金(元)+ 期权费(元)
/// 收益互换股指标的存量对应保证金(元)+ 期权费(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginOfSubsistStockIndexSwap", "收益互换股指标的存量对应预付金(元)+", "36,2", true, "校验规则:保留两位小数;")]
[SacDescription("MarginOfSubsistStockIndexSwap", "收益互换股指标的存量对应保证金(元)+ 期权费(元)", "36,2", true, "校验规则:保留两位小数;")]
public string MarginOfSubsistStockIndexSwap { get; set; }
/// <summary>
@@ -2099,14 +2100,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string LeverageRatioOfStockIndexSwap { get; set; }
/// <summary>
/// 收益互换个股标的存量对应预付金(元)+ 期权费(元)
/// 收益互换个股标的存量对应保证金(元)+ 期权费(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginOfSubsistStockSwap", "收益互换个股标的存量对应预付金(元)+", "36,2", true, "校验规则:保留两位小数;")]
[SacDescription("MarginOfSubsistStockSwap", "收益互换个股标的存量对应保证金(元)+ 期权费(元)", "36,2", true, "校验规则:保留两位小数;")]
public string MarginOfSubsistStockSwap { get; set; }
/// <summary>
@@ -2132,14 +2133,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string LeverageRatioOfStockSwap { get; set; }
/// <summary>
/// 场外期权整体业务存量对应预付金(元)+ 期权费(元)
/// 场外期权整体业务存量对应保证金(元)+ 期权费(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginandPremiumOfSubsistOption", "场外期权整体业务存量对应预付金(元)+", "36,2", true, "校验规则:保留两位小数;")]
[SacDescription("MarginandPremiumOfSubsistOption", "场外期权整体业务存量对应保证金(元)+ 期权费(元)", "36,2", true, "校验规则:保留两位小数;")]
public string MarginandPremiumOfSubsistOption { get; set; }
/// <summary>
@@ -2165,14 +2166,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string LeverageRatioOfOption { get; set; }
/// <summary>
/// 场外期权股指标的存量对应预付金(元)+ 期权费(元)
/// 场外期权股指标的存量对应保证金(元)+ 期权费(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginandPremiumOfSubsistStockIndexOption", "场外期权股指标的存量对应预付金(元)+", "36,2", true, "校验规则:保留两位小数;")]
[SacDescription("MarginandPremiumOfSubsistStockIndexOption", "场外期权股指标的存量对应保证金(元)+ 期权费(元)", "36,2", true, "校验规则:保留两位小数;")]
public string MarginandPremiumOfSubsistStockIndexOption { get; set; }
/// <summary>
@@ -2198,14 +2199,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string LeverageRatioOfStockIndexOption { get; set; }
/// <summary>
/// 场外期权个股标的存量对应预付金(元)+ 期权费(元)
/// 场外期权个股标的存量对应保证金(元)+ 期权费(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginandPremiumOfSubsistStockOption", "场外期权个股标的存量对应预付金(元)+", "36,2", true, "校验规则:保留两位小数;")]
[SacDescription("MarginandPremiumOfSubsistStockOption", "场外期权个股标的存量对应保证金(元)+ 期权费(元)", "36,2", true, "校验规则:保留两位小数;")]
public string MarginandPremiumOfSubsistStockOption { get; set; }
/// <summary>
@@ -2454,7 +2455,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 标的情况与对冲
/// </summary>
public class TargetCaseAndHedgeModel
public class TargetCaseAndHedgeModel : ReportSubBaseModel
{
/// <summary>
/// 报送机构名称(全称)
@@ -2576,7 +2577,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 权益类填写股数
/// </para>
/// </summary>
[CheckStringIntLength(MinValue = 0, BeforePointMaxLength = 36, AfterPointLength = 6, Required = false)]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 6, Required = false)]
[DefaultValue("")]
[SacDescription("TheNumberOfPositionsHeldAtTheEndOfThisMonth", "本月末持仓数量(股/手)", "36,6", false, "校验规则:大于等于0;\r\n权益类填写股数;")]
public string TheNumberOfPositionsHeldAtTheEndOfThisMonth { get; set; }
@@ -2591,12 +2592,21 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("AveragePriceAtTheEndOfTheMonth", "本月末持仓平均价格(元)", "36,2", false, "校验规则:保留两位小数;")]
public string AveragePriceAtTheEndOfTheMonth { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
/// <summary>
/// 本月末存量业务明细
/// </summary>
public class InventoryBusinessDetailsAtTheEndOfThisMonthModel
public class InventoryBusinessDetailsAtTheEndOfThisMonthModel : ReportSubBaseModel
{
/// <summary>
/// 报送机构名称(全称)
@@ -2667,22 +2677,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 名义本金(或多头名义本金)(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;")]
public string NotionalPrincipalAmountLNotionalPrincipalAmount { get; set; }
/// <summary>
/// 空头名义本金(元)(多空组合填写)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;")]
public string SNotionalPrincipalAmount { get; set; }
/// <summary>
@@ -2754,12 +2764,12 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 期权标的小类(场外期权填写)
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="UndrlygAssetDtldTypeMap"/>校验规则:如业务类型为期权,需填写本字段;</para>
/// <para>说明:<see cref="SwapUndrlygAssetDtldTypeMap"/>校验规则:如业务类型为期权,需填写本字段;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "99" }, Required = false, CheckHandleName = "B")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "99" }, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionSumInvestmentTargetType", "期权标的小类(场外期权填写)", "2", false, "校验规则:如业务类型为期权,需填写本字段;")]
public string OptionSumInvestmentTargetType { get; set; }
@@ -2793,27 +2803,27 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string OptionFee { get; set; }
/// <summary>
/// 期权类型
/// 期权结构类型(期权填写)
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OptionStructureTypeMap"/> 校验规则:如业务类型为期权,需填写本字段;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "4", "5", "6", "7", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "4", "5", "6", "7", "99" }, Required = false, CheckHandleName = "B")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionType", "期权类型", "2", false, "校验规则:如业务类型为期权,需填写本字段;")]
[SacDescription("OptionType", "期权结构类型(期权填写)", "2", false, "校验规则:如业务类型为期权,需填写本字段;")]
public string OptionType { get; set; }
/// <summary>
/// 本月末维持预付金比例(%)
/// 本月末维持保证金比例(%)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>
/// 说明:指月末维持预付金加浮动盈亏占合约存续名义本金的比例;
/// 对于多空互换,指维持预付金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.
/// 例如维持预付金比例为50%,填写50.00
/// 说明:指月末维持保证金加浮动盈亏占合约存续名义本金的比例;
/// 对于多空互换,指维持保证金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.
/// 例如维持保证金比例为50%,填写50.00
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(BusinessType), ConditionMap = new[] { "11", "12" }, CheckHandleNameArr = new[] { "A" })]
@@ -2821,7 +2831,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, CheckHandleName = "A")]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("MaitainMarginRation", "本月末维持预付金比例(%)", "36,2", false, "指月末维持预付金加浮动盈亏占合约存续名义本金的比例;\r\n对于多空互换,指维持预付金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.\r\n例如维持预付金比例为50%,填写50.00;")]
[SacDescription("MaitainMarginRation", "本月末维持保证金比例(%)", "36,2", false, "指月末维持保证金加浮动盈亏占合约存续名义本金的比例;\r\n对于多空互换,指维持保证金加浮动盈亏占多头名义本金和空头名义本金孰高的比例.\r\n例如维持保证金比例为50%,填写50.00;")]
public string MaitainMarginRation { get; set; }
/// <summary>
/// 标的相关系数
@@ -2870,12 +2880,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("ShortPositionContractValue", "空头合约价值(元)", "36,2", false, "客户空头、多空组合收益互换需填写;\r\n保留两位小数;")]
public string ShortPositionContractValue { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
/// <summary>
/// 本月新增业务明细
/// </summary>
public class IncreaseBusinessDetailsThisMonthModel
public class IncreaseBusinessDetailsThisMonthModel : ReportSubBaseModel
{
/// <summary>
/// 报送机构名称(全称)
@@ -2949,22 +2969,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 名义本金(或多头名义本金)(元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留4位小数,同时总的字符长度不能超过20,即整数位最多可为15位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("NotionalPrincipalAmountLNotionalPrincipalAmount", "名义本金(或多头名义本金)(元)", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;")]
public string NotionalPrincipalAmountLNotionalPrincipalAmount { get; set; }
/// <summary>
/// 空头名义本金(元)(多空组合填写)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留位小数;</para>
/// <para>说明:校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留位小数;")]
[SacDescription("SNotionalPrincipalAmount", "空头名义本金(元)(多空组合填写)", "36,2", false, "校验规则:保留2位小数,同时总的字符长度不能超过20,即整数位最多可为15位;")]
public string SNotionalPrincipalAmount { get; set; }
/// <summary>
@@ -3030,12 +3050,12 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 期权标的小类(场外期权填写)
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="UndrlygAssetDtldTypeMap"/>校验规则:如业务类型为场外期权,需填写本字段;</para>
/// <para>说明:<see cref="SwapUndrlygAssetDtldTypeMap"/>校验规则:如业务类型为场外期权,需填写本字段;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "99" }, Required = false, CheckHandleName = "B")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "99" }, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionObjectSecondClass", "期权标的小类(场外期权填写)", "2", false, "校验规则:如业务类型为场外期权,需填写本字段;")]
public string OptionObjectSecondClass { get; set; }
@@ -3072,17 +3092,26 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
public string NonAnnualOptionFee { get; set; }
/// <summary>
/// 期权类型(期权填写)
/// 期权结构类型(期权填写)
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="OptionStructureTypeMap"/>校验规则:如业务类型为期权,需填写本字段;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(BusinessType), ConditionValue = "02", CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "4", "5", "6", "7", "99" }, Required = false, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "4", "5", "6", "7", "99" }, Required = false, CheckHandleName = "B")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" }, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionType", "期权类型(期权填写)", "2", false, "校验规则:如业务类型为期权,需填写本字段;")]
[SacDescription("OptionType", "期权结构类型(期权填写)", "2", false, "校验规则:如业务类型为期权,需填写本字段;")]
public string OptionType { get; set; }
/// <summary>
/// 序号
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[SacDescription("Index", "序号", "", false, "")]
public string Index { get; set; }
}
}
@@ -1,4 +1,6 @@
using System.Collections.ObjectModel;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -95,6 +97,18 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 报告类型
/// </summary>
public List<int> ReportTypes { get; set; }
/// <summary>
/// 证券业报送中定期报告取值模式
/// <para>1=Db;</para>
/// <para>2=Excel模板;</para>
/// <para>3=Db+Excel模板(该方式中涉及百分比汇总计算时仍使用模板中数据)</para>
/// <para>4=金仕达视图(该方式只涉及互换确认书及存续期的数据)</para>
/// <para>5=Db+金仕达视图</para>
/// <para>6=Excel+金仕达视图</para>
/// <para>7=Db+Excel+金仕达视图</para>
/// </summary>
public SAC_ReportDataSourceEnum DataSource { get; set; }
}
public class ReportResponse
@@ -112,7 +126,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
return "";
}
return $"OTC_{Infos[0].Header.SenderCode}_{Infos[0].Header.ReceiverCode}_{Infos[0].Header.ReportType}_{Infos[0].Header.SendDate.Replace("-", "")}_{Index.ToString("0000")}";
return $"OTC_{Infos[0].Header.SenderCode}_{Infos[0].Header.ReceiverCode}_{Infos[0].Header.ReportType}_{Infos[0].Header.SendDate.Replace("-", "")}_{Index.ToString("0000")}{(Infos.Any(O => O.Header.BusiDataType == DataFlagsEnum.A1015) ? "_checked" : "")}";
}
}
@@ -126,13 +140,26 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>仅外部数据来源使用</para>
/// </summary>
[XmlIgnore]
[NotMapped]
public bool IgnoreCheck { get; set; }
[Key]
[XmlIgnore]
public int Id { get; set; }
/// <summary>
/// 报送日期
/// </summary>
[XmlIgnore]
public DateTime ReportDate { get; set; }
/// <summary>
/// 业务数据流水号
/// <para>长度:28</para>
/// <para>必填:是</para>
/// <para>说明:文件创建人代码(6位)+文件接收人代码(6位)+报送日期(8位)+当日顺序编号(8位)</para>
/// </summary>
[CheckStringLength(Length = 28)]
[SacDescription("ExceID", "业务数据流水号", "28", true, "文件创建人代码(6位)+文件接收人代码(6位)+报送日期(8位)+当日顺序编号(8位);")]
public string ExceID { get; set; }
@@ -143,6 +170,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>说明:<see cref="Consts.RetCodeMap"/>报送时该字段应为Null</para>
/// </summary>
[XmlElement(IsNullable = false)]
[NotMapped]
[SacDescription("RetCode", "响应码", "6", true, "报送时该字段应为Null;")]
public string RetCode { get; set; }
/// <summary>
@@ -152,6 +180,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>说明:报送时该字段应为Null</para>
/// </summary>
[XmlElement(IsNullable = false)]
[NotMapped]
[SacDescription("RetMsg", "响应描述", "1000", true, "报送时该字段应为Null;")]
public string RetMsg { get; set; }
/// <summary>
@@ -162,6 +191,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>报送时该字段应为Null</para>
/// </summary>
[XmlElement(IsNullable = false)]
[NotMapped]
[SacDescription("BizID", "报送数据业务编号", "50", false, "报告库接口返回,数据处理异常时为空\r\n报送时该字段应为Null;")]
public string BizID { get; set; }
/// <summary>
@@ -172,10 +202,30 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>报送时该字段应为Null</para>
/// </summary>
[XmlElement(IsNullable = false)]
[NotMapped]
[SacDescription("DurationEventNO", "操作事件编号", "6", false, "场外证券业务系统接口返回,当报送存续期业务时,返回操作时间编号ID\r\n报送时该字段应为Null;")]
public string DurationEventNO { get; set; }
}
public abstract class ReportSubBaseModel
{
[Key]
[XmlIgnore]
public int Id { get; set; }
/// <summary>
/// 报送日期
/// </summary>
[XmlIgnore]
public DateTime ReportDate { get; set; }
/// <summary>
/// 来源报送文件 ExceID
/// </summary>
[XmlIgnore]
public string ExceID { get; set; }
}
/// <summary>
/// 报告状态
/// </summary>
@@ -198,8 +248,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
private long limitFileLength => MaxFileLength - 5242880;//留出5MB余量
private long _currentLength = 0;
public long CurrentLength => _currentLength;
public long CurrentLength { get; private set; } = 0;
public bool Continue { get; private set; }
@@ -208,7 +257,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
public void ResetCurrentLength()
{
_currentLength = 0;
CurrentLength = 0;
Continue = false;
}
@@ -226,22 +275,22 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
return true;
}
var length = new FileInfo(path).Length;
if (length > limitFileLength)
{
LogFactory.GetLogger("CheckFileLength").Error($"单一文件大小不应超过30MB,错误文件:{path}");
throw new ServiceException("单一文件大小不应超过30MB");
}
_currentLength += length;
if (_currentLength <= limitFileLength)
{
return true;
}
else
{
Continue = true;
return false;
}
//var length = new FileInfo(path).Length;
//if (length > MaxAnnexLength)
//{
// LogFactory.GetLogger("CheckFileLength").Error($"单一文件大小不应超过30MB,错误文件:{path}");
// throw new ServiceException("单一文件大小不应超过30MB");
//}
//CurrentLength += length;
//if (CurrentLength <= limitFileLength)
//{
return true;
//}
//else
//{
// Continue = true;
// return false;
//}
}
/// <summary>
@@ -252,10 +301,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <returns>缓存是否存在value</returns>
public bool CheckCacheInfo(string key, string value)
{
if (CacheInfo == null)
{
CacheInfo = new Dictionary<string, List<string>>();
}
CacheInfo ??= new Dictionary<string, List<string>>();
if (!CacheInfo.ContainsKey(key))
{
CacheInfo[key] = new List<string>();
@@ -270,10 +316,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <returns></returns>
public ReadOnlyCollection<string> GetCacheInfo(string key)
{
if (CacheInfo == null)
{
CacheInfo = new Dictionary<string, List<string>>();
}
CacheInfo ??= new Dictionary<string, List<string>>();
if (!CacheInfo.ContainsKey(key))
{
CacheInfo[key] = new List<string>();
@@ -288,10 +331,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <param name="value"></param>
public void AddCacheInfo(string key, string value)
{
if (CacheInfo == null)
{
CacheInfo = new Dictionary<string, List<string>>();
}
CacheInfo ??= new Dictionary<string, List<string>>();
if (!CacheInfo.ContainsKey(key))
{
CacheInfo[key] = new List<string>();
@@ -1,4 +1,9 @@
using System.ComponentModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
using YLErp.Helpers;
@@ -58,30 +63,40 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
private string check(string xml)
{
var result = xml;
if (Header.BusiDataType == DataFlagsEnum.A1016)
switch (this.Header.BusiDataType)
{
try
{
var doc = new System.Xml.XmlDocument();
doc.LoadXml(xml);
var body = doc.GetElementsByTagName("SwapEquityPayment");
if (body.Count > 0)
case DataFlagsEnum.A1016:
try
{
foreach (XmlElement item in body)
var doc = new System.Xml.XmlDocument();
doc.LoadXml(xml);
var body = doc.GetElementsByTagName("SwapEquityPayment");
if (body.Count > 0)
{
var taget = item.GetElementsByTagName("DurationEventNO");
var frist = item.GetElementsByTagName("SwapEquityPaymentTuple");
if (taget.Count > 0)
foreach (XmlElement item in body)
{
item.InsertAfter(taget[0], frist[frist.Count - 1]);
var target = item.GetElementsByTagName("DurationEventNO");
var frist = item.GetElementsByTagName("SwapEquityPaymentTuple");
if (target.Count > 0)
{
item.InsertAfter(target[0], frist[frist.Count - 1]);
}
}
result = XmlHelper.FormatXml(doc.OuterXml);
}
result = XmlHelper.FormatXml(doc.OuterXml);
}
}
catch
{
}
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
{
}
break;
case DataFlagsEnum.A1004:
if (result.Contains("<PerformanceCollTuple />"))
{
result = result.Replace("<PerformanceCollTuple />", "");
}
break;
}
return result;
}
@@ -161,7 +176,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>说明:<see cref="DataFlagsEnum"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "A1001", "A1002","A1003","A1004", "A1005", "A1006" ,"A1007",
"A1008", "A1009","A1010", "A1011", "A1012","A1013","A1014","A1015","A1016","A1017" })]
"A1008", "A1009","A1010", "A1011", "A1012","A1013","A1014","A1015","A1016","A1017","A1018","A1019" })]
[SacDescription("BusiDataType", "接口标识", "5", true, "")]
public DataFlagsEnum BusiDataType { get; set; }
/// <summary>
@@ -241,11 +256,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("SwapEquityPayment", "收益互换交易权益端支付", "", false, "")]
public List<SwapEquityPaymentModel> SwapEquityPayment { get; set; }
/// <summary>
/// 互换交易确认书附件
/// 交易确认书附件
/// </summary>
[XmlElement]
[SacDescription("ConfirmationAtt", "互换交易确认书附件", "", false, "")]
public List<SwapConfirmationAttModel> ConfirmationAtt { get; set; }
[SacDescription("ConfirmationAtt", "交易确认书附件", "", false, "")]
public List<ConfirmationAttModel> ConfirmationAtt { get; set; }
/// <summary>
/// 期权交易存续期管理
/// </summary>
@@ -259,6 +274,12 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("SwapDurationManagement", "收益互换交易存续期管理", "", false, "")]
public List<SwapDurationManagementModel> SwapDurationManagement { get; set; }
/// <summary>
/// 场外期权合约估值信息
/// </summary>
[XmlElement]
[SacDescription("ValuationInformation", "场外期权合约估值信息", "", false, "")]
public List<ValuationInformationModel> ValuationInformation { get; set; }
/// <summary>
/// 定期报告-SAC模板
/// </summary>
[XmlElement]
@@ -1,4 +1,6 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +10,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 补充协议
/// </summary>
[Table("A1003_SupAgrmt")]
public class SupAgrmtModel : ReportBaseModel
{
/// <summary>
@@ -23,14 +26,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 主协议编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:双方约定</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "校验规则:双方约定;")]
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "双方约定;")]
public string MasterAgrmtNo { get; set; }
/// <summary>
/// 补充议编号
/// 补充议编号
/// <para>长度:32</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:补正时必填</para>
@@ -40,17 +43,17 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 32, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 32, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("SupAgrmtID", "补充议编号", "32", false, "校验规则:补正时必填;")]
[SacDescription("SupAgrmtID", "补充议编号", "32", false, "校验规则:补正时必填;")]
public string SupAgrmtID { get; set; }
/// <summary>
/// 补充协议编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:双方约定</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("SupAgrmtNo", "补充协议编号(双方约定)", "100", true, "校验规则:双方约定;")]
[SacDescription("SupAgrmtNo", "补充协议编号(双方约定)", "100", true, "双方约定;")]
public string SupAgrmtNo { get; set; }
/// <summary>
/// 补充协议类型
@@ -61,7 +64,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 2)]
[DefaultValue("")]
[SacDescription("SupAgrmtType", "补充协议类型", "2", true, "")]
public string SupAgrmtType { get; set; }
public string? SupAgrmtType { get; set; }
/// <summary>
/// 签署时间
/// <para>长度:10</para>
@@ -71,7 +74,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("SigningDate", "签署时间", "10", true, "校验规则:必须是yyyy-MM-dd;")]
[SacDescription("SigningDate", "签署时间", "10", true, "校验规则:必须是YYYY-MM-DD;")]
public string SigningDate { get; set; }
/// <summary>
/// 补充协议备注
@@ -82,7 +85,17 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("SupAgrmtRemark", "补充协议备注", "1024", false, "上述所有字段未能包含的信息;")]
public string SupAgrmtRemark { get; set; }
public string? SupAgrmtRemark { get; set; }
/// <summary>
/// 补充协议附件
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:上述所有字段未能包含的信息</para>
/// </summary>
[XmlIgnore]
public string SupAgrmtAtt { get; set; }
/// <summary>
/// 补充协议附件
/// <summary>
/// 补充协议附件
/// <para>长度:</para>
@@ -90,14 +103,15 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>说明:</para>
/// </summary>
[XmlElement]
[NotMapped]
[SacDescription("SupAgrmtAttTuple", "补充协议附件", "", true, "")]
public List<SupAgrmtAttModel> SupAgrmtAttTuple { get; set; }
public List<SupAgrmtAttModel>? SupAgrmtAttTuple { get; set; }
}
/// <summary>
/// 补充协议附件
/// </summary>
public class SupAgrmtAttModel
public class SupAgrmtAttModel : ReportSubBaseModel
{
/// <summary>
/// 补充协议附件
@@ -108,6 +122,6 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringEndsWith(EndsWithString = ".pdf")]
[DefaultValue("")]
[SacDescription("SupAgrmtAtt", "补充协议附件", "", true, "校验规则:只支持PDF格式;")]
public string SupAgrmtAtt { get; set; }
public string? SupAgrmtAtt { get; set; }
}
}
@@ -1,57 +0,0 @@
using System.ComponentModel;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
/// <summary>
/// 互换交易确认书附件
/// </summary>
public class SwapConfirmationAttModel : ReportBaseModel
{
/// <summary>
/// 交易确认书编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号(双方约定)", "100", true, "双方约定;")]
public string ConfirmationNo { get; set; }
/// <summary>
/// 操作标识
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("OperationType", "操作标识", "1", true, "")]
public OptFlagsEnum OperationType { get; set; }
/// <summary>
/// 交易确认书附件
/// <para>长度:</para>
/// <para>必填:是</para>
/// <para>说明:多附件;</para>
/// </summary>
[CheckIEnumerableTMinCount(MinCount = 1)]
[XmlElement]
[SacDescription("ConfirmationFilesTuple", "交易确认书附件", "", true, "多附件;")]
public List<ConfirmationFilesTupleModel> ConfirmationFilesTuple { get; set; }
}
public class ConfirmationFilesTupleModel
{
/// <summary>
/// 交易确认书附件
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:只支持PDF格式</para>
/// </summary>
[CheckStringEndsWith(EndsWithString = ".pdf")]
[DefaultValue("")]
[SacDescription("ConfirmationFiles", "交易确认书附件", "100", true, "校验规则:只支持PDF格式;")]
public string ConfirmationFiles { get; set; }
}
}
@@ -1,4 +1,6 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +10,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 互换交易确认书
/// </summary>
[Table("A1005_SwapConfirmation")]
public class SwapConfirmationModel : ReportBaseModel
{
/// <summary>
@@ -17,6 +20,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>说明:<see cref="PaymentMethodMap"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("PaymentMethod", "支付方式", "2", true, "")]
public string PaymentMethod { get; set; }
/// <summary>
/// 操作标识
@@ -64,7 +68,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 交易确认书编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:双方约定;</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
@@ -74,11 +78,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 交易确认书类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="ReportTypeMap"/></para>
/// <para>说明:<see cref="ReportTypeMap"/>校验规则:首次提交时填0,补正时填1</para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("ConfirmationType", "交易确认书类型", "2", true, "")]
[SacDescription("ConfirmationType", "交易确认书类型", "2", true, "校验规则:首次提交时填0,补正时填1;")]
public string ConfirmationType { get; set; }
/// <summary>
/// 填报方角色
@@ -104,34 +108,34 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 起始日
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:1 起始日不能大于到期日日期;2 必须是yyyy-MM-dd</para>
/// <para>说明:校验规则:1 起始日不能大于到期日日期;2 必须是YYYY-MM-DD</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 10)]
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("StartDate", "起始日", "10", true, "校验规则:\r\n1 起始日不能大于到期日日期;\r\n2 必须是yyyy-MM-dd;")]
[SacDescription("StartDate", "起始日", "10", true, "校验规则:\r\n1 起始日不能大于到期日日期;\r\n2 必须是YYYY-MM-DD;")]
public string StartDate { get; set; }
/// <summary>
/// 到期日
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>说明:指定的进行结算金额收付的日期. 校验规则:1 到期日不能小于起始日日期;2 必须是yyyy-MM-dd;3 补正时,如果该交易还有未被废除的存续期记录(包括展期\终止数据),到期日字段不能修改;</para>
/// <para>说明:指定的进行结算金额收付的日期. 校验规则:1 到期日不能小于起始日日期;2 必须是YYYY-MM-DD;</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 10)]
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("DueDate", "到期日", "10", true, "指定的进行结算金额收付的日期.\r\n校验规则:\r\n1 到期日不能小于起始日日期;\r\n2 必须是yyyy-MM-dd;\r\n3 补正时,如果该交易还有未被废除的存续期记录(包括展期、终止数据),到期日字段不能修改;")]
[SacDescription("DueDate", "到期日", "10", true, "指定的进行结算金额收付的日期.\r\n校验规则:\r\n1 到期日不能小于起始日日期;\r\n2 必须是YYYY-MM-DD;")]
public string DueDate { get; set; }
/// <summary>
/// 结算日
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>说明:交易双方在交易有效约定中指定的进行结算金额收付的日期;校验规则:1 必须是yyyy-MM-dd;</para>
/// <para>说明:校验规则:1 必须是YYYY-MM-DD;</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 10, Required = false)]
[CheckStringIsDateTimeFormat(Required = false)]
[DefaultValue("")]
[SacDescription("SettlementDate", "结算日", "10", false, "交易双方在交易有效约定中指定的进行结算金额收付的日期;\r\n校验规则:\r\n1 必须是yyyy-MM-dd;")]
[SacDescription("SettlementDate", "结算日", "10", false, "校验规则:\r\n1 必须是YYYY-MM-DD;")]
public string SettlementDate { get; set; }
/// <summary>
/// 结算货币
@@ -144,7 +148,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("Currency", "结算货币", "2", true, "使用货币通用代码(大写);")]
public string Currency { get; set; }
/// <summary>
/// 名义本金额(人民币、元)
/// 名义本金(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:1 必须两位小数以内;2 补正时,如果该交易还有未被废除的存续期记录(包括展期\终止数据),名义本金额(人民币)字段不能修改;</para>
@@ -152,7 +156,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, MinValue = 0)]
[DefaultValue("")]
[SacDescription("NotinalPrincipleAmt", "名义本金额(人民币、元)", "36,2", true, "校验规则:\r\n1 必须两位小数以内;\r\n2 补正时,如果该交易还有未被废除的存续期记录(包括展期、终止数据),名义本金额(人民币)字段不能修改;\r\n名义本金为标的期初价格乘以数量乘以乘数;\r\n多空组合填写多头名义本金与空头名义本金孰高;")]
[SacDescription("NotinalPrincipleAmt", "名义本金(元)", "36,2", true, "校验规则:\r\n1 必须两位小数以内;\r\n2 补正时,如果该交易还有未被废除的存续期记录(包括展期、终止数据),名义本金额(人民币)字段不能修改;")]
public string NotinalPrincipleAmt { get; set; }
/// <summary>
/// 清算机构
@@ -181,7 +185,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <para>说明:交易场所选"99:其他交易场所"时,必填</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(TradingPlace), ConditionValue = "99", CheckHandleNameArr = new[] { "A" })]
[CheckStringMinLength(MinLength = 1, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 200, CheckHandleName = "A")]
[DefaultValue("")]
[SacDescription("TradingPlaceOther", "交易场所(其他)", "200", false, "交易场所选99:其他交易场所时,必填;")]
public string TradingPlaceOther { get; set; }
@@ -209,6 +213,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 费用端支付
/// </summary>
[XmlElement]
[NotMapped]
[SacDescription("CostPaymentTuple", "费用端支付", "", false, "")]
public List<PaymentMethodModel> CostPaymentTuple { get; set; }
/// <summary>
@@ -232,26 +237,26 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringInMap(Map = new[] { "0", "1", "2", "3" }, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollProvider", "履约担保品提供方", "2", false, "检验规则履约担保类型为部分担保或全额担保时必填;")]
[SacDescription("PerformanceCollProvider", "履约担保品提供方", "2", false, "检验规则:履约担保类型为部分担保或全额担保时必填;")]
public string PerformanceCollProvider { get; set; }
/// <summary>
/// 担保品收取方是否可使用担保品
/// <para>长度:5</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BoolMap"/>检验规则:履约担保类型为部分担保,全额担保时必填;</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BoolMap"/>检验规则:履约担保类型为"部分担保"或"全额担保"时必填;</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "true", "false" }, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PartyUseColl", "担保品收取方是否可使用担保品", "5", false, "检验规则:履约担保类型为部分担保,全额担保时必填;")]
[SacDescription("PartyUseColl", "担保品收取方是否可使用担保品", "5", false, "检验规则:履约担保类型为部分担保全额担保时必填;")]
public string PartyUseColl { get; set; }
/// <summary>
/// 担保品使用说明
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:检验规则:当担保品收取方是否可使用担保品选择时必填;</para>
/// <para>说明:检验规则:当"担保品收取方是否可使用担保品"选择"是"时必填;</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(PartyUseColl), ConditionValue = "true", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(PartyUseColl), ConditionValue = "true", CheckHandleNameArr = new[] { "B" })]
@@ -264,7 +269,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 是否计算担保品价值产生利息
/// <para>长度:5</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BoolMap"/>检验规则:当"履约担保类型"为"部分担保"\"全额担保"时必填</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BoolMap"/>检验规则:当"履约担保类型"为"部分担保""全额担保"时必填</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
@@ -277,11 +282,11 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 履约担保品初始比率(%
/// <para>长度:5,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:1 当"履约保障类型"选择"部分担保"或"全额担保"时必填;2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00</para>
/// <para>说明:校验规则:大于等于0的数字,最多2位小数,该值为100%时,填写100.00</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0)]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0)]
[DefaultValue("")]
[SacDescription("PerformanceCollInitialRatio", "履约担保品初始比率(%", "5,2", true, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
[SacDescription("PerformanceCollInitialRatio", "履约担保品初始比率(%", "5,2", true, "校验规则:大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
public string PerformanceCollInitialRatio { get; set; }
/// <summary>
/// 履约担保品追保比率(%
@@ -291,8 +296,8 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, Required = false, CheckHandleName = "B")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollAddtlRatio", "履约担保品追保比率(%", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
public string PerformanceCollAddtlRatio { get; set; }
@@ -304,8 +309,8 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, Required = false, CheckHandleName = "B")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollOffsetRatio", "履约担保品平仓比率(%", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
public string PerformanceCollOffsetRatio { get; set; }
@@ -347,6 +352,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckIEnumerableTMinCount(CheckHandleName = "A", MinCount = 1)]
[XmlElement]
[NotMapped]
[SacDescription("PerformanceCollTuple", "履约担保品", "", false, "数组结构,支持新增多条;\r\n校验规则:字段信息详见收益互换交易确认书【履约担保品】。检验规则:当“履约担保类型”为“部分担保”或“全额担保”时必填;")]
public List<SwapPerformanceGuaranteeAttModel> PerformanceCollTuple { get; set; }
/// <summary>
@@ -373,31 +379,31 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 标的个数
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明: <see cref="UndrlygAssetNoMap"/>多标的时,权益收益\浮动利率收益固定利率收益信息需新增多个</para>
/// <para>说明: <see cref="UndrlygAssetNoMap"/>多标的时,权益收益浮动利率收益固定利率收益信息需新增多个</para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("PtyAUndrlygAssetNo", "标的个数", "2", true, "多标的时,权益收益、浮动利率收益固定利率收益信息需新增多个;")]
[SacDescription("PtyAUndrlygAssetNo", "标的个数", "2", true, "多标的时,权益收益、浮动利率收益固定利率收益信息需新增多个;")]
public string PtyAUndrlygAssetNo { get; set; }
/// <summary>
/// 收益计算说明
/// <para>长度:1024</para>
/// <para>必填:是</para>
/// <para>说明:甲方支付乙方,详细说明收益计算方式;</para>
/// <para>说明:详细说明收益计算方式</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024)]
[DefaultValue("")]
[SacDescription("PtyAPrOfitCalculationInfo", "收益计算说明", "1024", true, "甲方支付乙方,详细说明收益计算方式;")]
[SacDescription("PtyAPrOfitCalculationInfo", "收益计算说明", "1024", true, "详细说明收益计算方式;")]
public string PtyAPrOfitCalculationInfo { get; set; }
/// <summary>
/// 收益备注
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:甲方支付乙方,填写上述字段或交易确认书中不能包含的信息;</para>
/// <para>说明:填写上述字段或交易确认书中不能包含的信息</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("PtyAProfitRemark", "收益备注", "1024", false, "甲方支付乙方,填写上述字段或交易确认书中不能包含的信息;")]
[SacDescription("PtyAProfitRemark", "收益备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
public string PtyAProfitRemark { get; set; }
/// <summary>
/// 甲方代签产品名称
@@ -451,6 +457,17 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("PytBPdctCode", "乙方交易对手码(产品)", "20", false, "校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;")]
public string PytBPdctCode { get; set; }
//TODO: 2.3互换上线时取消注释
///// <summary>
///// 是否为跨境交易
///// <para>长度:5</para>
///// <para>必填:是</para>
///// <para>说明:<see cref="BoolMap"/></para>
///// </summary>
//[CheckStringInMap(Map = new[] { "true", "false" })]
//[DefaultValue("")]
//[SacDescription("CrossBorderTransactions", "是否为跨境交易", "5", true, "")]
//public string CrossBorderTransactions { get; set; }
/// <summary>
/// 空白1
/// </summary>
@@ -468,7 +485,8 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 履约担保品详情
/// </summary>
public class SwapPerformanceGuaranteeAttModel
[Table("A1005_SwapPerformanceGuaranteeAtt")]
public class SwapPerformanceGuaranteeAttModel : ReportSubBaseModel
{
/// <summary>
/// 履约担保品类型
@@ -510,12 +528,18 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("Remarks", "备注", "1024", false, "")]
public string Remarks { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
public string ConfirmationNo { get; set; }
}
/// <summary>
/// 收益互换交易费用端支付
/// </summary>
public class PaymentMethodModel
[Table("A1005_PaymentMethod")]
public class PaymentMethodModel : ReportSubBaseModel
{
/// <summary>
/// 支付方式
@@ -612,5 +636,9 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
public string ConfirmationNo { get; set; }
}
}
@@ -1,4 +1,6 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +10,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 收益互换交易存续期管理
/// </summary>
[Table("A1006_SwapDurationManagement")]
public class SwapDurationManagementModel : ReportBaseModel
{
/// <summary>
@@ -57,12 +60,12 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 存续期操作类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OperationTypeMap"/>当"收益互换交易类型"为"多空组合"时,可选"调仓"</para>
/// <para>说明:<see cref="SwapOperationTypeMap"/>当"收益互换交易类型"为"多空组合"时,可选"调仓"</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(SwapType), ConditionValue = "2", CheckHandleNameArr = new[] { "A", "C" })]
[CheckConditionStringNEQValue(ConditionName = nameof(SwapType), ConditionValue = "2", CheckHandleNameArr = new[] { "B", "C" })]
[CheckStringInMap(Map = new[] { "01", "04" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "01", "02", "03" }, CheckHandleName = "B")]
[CheckStringInMap(Map = new[] { "1", "4" }, CheckHandleName = "A")]
[CheckStringInMap(Map = new[] { "1", "2", "3" }, CheckHandleName = "B")]
[CheckStringIntMaxLength(MaxValue = 4, MinValue = 1, BeforePointMaxLength = 2, CheckHandleName = "C")]
[DefaultValue("")]
[SacDescription("DurationOperationType", "存续期操作类型", "2", true, "当收益互换交易类型为多空组合时,可选调仓;")]
@@ -131,7 +134,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// 当"存续期操作类型"选择"调仓"时,可增可减
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03", "04" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "04" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03" }, CheckHandleNameArr = new[] { "B" })]
[CheckConditionStringNotInMap(ConditionName = nameof(DurationOperationType), ConditionMap = new[] { "02", "03", "04" }, CheckHandleNameArr = new[] { "C" })]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, CheckHandleName = "A")]
@@ -170,14 +173,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[SacDescription("AmountPaidThisTime", "本次支付金额(元)", "36,2", false, "当存续期操作类型选择终止、违约终止、调仓时,必填;\r\n支付为正,收取为负;")]
public string AmountPaidThisTime { get; set; }
/// <summary>
/// 预付金比例(%)
/// 保证金比例(%)
/// <para>长度:8,2</para>
/// <para>必填:是</para>
/// <para>说明:为预付金占存量名义本金比例,其中多空组合收益互换存量名义本金为存量多头名义本金和空头名义本金孰大者</para>
/// <para>说明:为保证金占存量名义本金比例,其中多空组合收益互换存量名义本金为存量多头名义本金和空头名义本金孰大者</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("MarginRatio", "预付金比例(%)", "8,2", true, "为预付金占存量名义本金比例,其中多空组合收益互换存量名义本金为存量多头名义本金和空头名义本金孰大者;")]
[SacDescription("MarginRatio", "保证金比例(%)", "8,2", true, "为保证金占存量名义本金比例,其中多空组合收益互换存量名义本金为存量多头名义本金和空头名义本金孰大者;")]
public string MarginRatio { get; set; }
/// <summary>
/// 合约持仓明细
@@ -189,6 +192,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckConditionIntInRange(ConditionName = nameof(Balance), MinValue = 0, MaxValue = 0, CheckHandleNameArr = new[] { "B" })]
[CheckIEnumerableTMaxCount(CheckHandleName = "A", MaxCount = 0)]
[CheckIEnumerableTMaxCount(CheckHandleName = "B", MaxCount = 0)]
[NotMapped]
[SacDescription("CurrentPositionDetails", "合约持仓明细", "", false, "校验规则:当存量名义本金(元)为0时,非必填;\r\n展期数据不允许添加合约持仓明细;")]
public List<CurrentPositionDetailModel> CurrentPositionDetails { get; set; }
/// <summary>
@@ -216,7 +220,8 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 合约持仓明细
/// </summary>
public class CurrentPositionDetailModel
[Table("A1006_CurrentPositionDetail")]
public class CurrentPositionDetailModel : ReportSubBaseModel
{
/// <summary>
/// 挂钩标的编码
@@ -320,5 +325,9 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
public string ConfirmationNo { get; set; }
}
}
@@ -1,4 +1,8 @@
using System.ComponentModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
@@ -8,6 +12,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 收益互换交易权益端支付
/// </summary>
[Table("A1016_SwapEquityPayment")]
public class SwapEquityPaymentModel : ReportBaseModel
{
/// <summary>
@@ -27,13 +32,14 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书", "100", true, "双方约定;")]
[SacDescription("ConfirmationNo", "交易确认书(双方约定)", "100", true, "双方约定;")]
public string ConfirmationNo { get; set; }
/// <summary>
/// 权益端支付
/// </summary>
[XmlElement]
[CheckIEnumerableTMinCount(MinCount = 1)]
[NotMapped]
[SacDescription("SwapEquityPaymentTuple", "权益端支付", "", false, "")]
public List<SwapEquityPaymentTupleModel> SwapEquityPaymentTuple { get; set; }
/// <summary>
@@ -50,7 +56,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringLengthInMap(Map = new[] { 4, 5 }, Required = false)]
[SacDescription("DurationEventNO", "操作事件编号", "6", false, "首次随交易确认书上报时,不填;\r\n存续期发生相关事件时,必填;\r\n同一笔交易确认书下应当保证唯一性,并按照事件发生顺序进行编号,起始编号为0000.\r\n如一笔交易下依次发生展期、调仓、终止事件,编号应当分别为0000、0001、0002,\r\n场外业务报告系统返回编号分别为E0000、R0001、T0002;")]
public new string DurationEventNO { get; set; }
public new string? DurationEventNO { get; set; }
/// <summary>
/// 空白1
/// </summary>
@@ -68,7 +74,8 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// <summary>
/// 权益端支付
/// </summary>
public class SwapEquityPaymentTupleModel
[Table("A1016_SwapEquityPaymentTuple")]
public class SwapEquityPaymentTupleModel : ReportSubBaseModel
{
/// <summary>
/// 支付方式
@@ -106,7 +113,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("OpenandClosingDate", "标的开/平仓日期", "2", true, "yyyy-MM-dd;")]
[SacDescription("OpenandClosingDate", "标的开/平仓日期", "10", true, "yyyy-MM-dd;")]
public string OpenandClosingDate { get; set; }
/// <summary>
/// 标的小类
@@ -197,7 +204,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("LNotinalPrincipleAmt", "多头名义本金", "36,2", false, "标的数量*合约乘数*标的价格;\r\n当支付方式选择权益收益(多头)、浮动利率收益、权益收益多空组合时,必填;")]
[SacDescription("LNotinalPrincipleAmt", "多头名义本金(元)", "36,2", false, "标的数量*合约乘数*标的价格;\r\n当支付方式选择权益收益(多头)、浮动利率收益、权益收益多空组合时,必填;")]
public string LNotinalPrincipleAmt { get; set; }
/// <summary>
/// 空头名义本金(元)
@@ -210,7 +217,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, MaxValue = 0, CheckHandleName = "A")]
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, MaxValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("SNotinalPrincipleAmt", "空头名义本金", "36,2", false, "-(标的数量*合约乘数* 标的价格)\r\n当支付方式选择权益收益(空头)、浮动利率收益、权益收益多空组合时,必填;")]
[SacDescription("SNotinalPrincipleAmt", "空头名义本金(元)", "36,2", false, "-(标的数量*合约乘数* 标的价格)\r\n当支付方式选择权益收益(空头)、浮动利率收益、权益收益多空组合时,必填;")]
public string SNotinalPrincipleAmt { get; set; }
/// <summary>
/// 利率(%)
@@ -220,7 +227,7 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2, MinValue = 0, Required = false)]
[DefaultValue("")]
[SacDescription("InterestRate", "利率", "8,2", false, "校验规则:大于等于0的两位小数,如5.12;")]
[SacDescription("InterestRate", "利率(%)", "8,2", false, "校验规则:大于等于0的两位小数,如5.12;")]
public string InterestRate { get; set; }
/// <summary>
/// 空白1
@@ -234,5 +241,9 @@ namespace YLErp.Modules.SuperviseReportModule.SAC.Model
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
public string ConfirmationNo { get; set; }
}
}
@@ -0,0 +1,240 @@
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 System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
/// <summary>
/// 场外期权合约估值信息
/// </summary>
[Table("A1018_ValuationInformation")]
public class ValuationInformationModel : ReportBaseModel
{
/// <summary>
/// 操作标识
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("OperationType", "操作标识", "1", true, "")]
public OptFlagsEnum OperationType { get; set; }
/// <summary>
/// 交易确认书编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号(双方约定)", "100", true, "双方约定;")]
public string ConfirmationNo { get; set; }
/// <summary>
/// 估值日期
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("ValuationDate", "估值日期", "10", true, "")]
public string ValuationDate { get; set; }
/// <summary>
/// 存量名义本金(元)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:两位小数;大于等于0的数字</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, MinValue = 0)]
[DefaultValue("")]
[SacDescription("Balance", "存量名义本金(元)", "36,2", true, "大于等于0的数字;")]
public string Balance { get; set; }
/// <summary>
/// 保证金比例(%
/// <para>长度:8,2</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 8, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("MarginRatio", "保证金比例(%", "8,2", false, "")]
public string MarginRatio { get; set; }
/// <summary>
/// 期权估值
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("OptionValuation", "期权估值", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string OptionValuation { get; set; }
/// <summary>
/// Delta
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("Delta", "Delta", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string Delta { get; set; }
/// <summary>
/// Gamma
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("Gamma", "Gamma", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string Gamma { get; set; }
/// <summary>
/// Vega
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("Vega", "Vega", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string Vega { get; set; }
/// <summary>
/// Theta
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("Theta", "Theta", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string Theta { get; set; }
/// <summary>
/// Rho
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("Rho", "Rho", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string Rho { get; set; }
/// <summary>
/// RhoQ
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("RhoQ", "RhoQ", "36,2", false, "")]
public string RhoQ { get; set; }
/// <summary>
/// DeltaCash
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("DeltaCash", "DeltaCash", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string DeltaCash { get; set; }
/// <summary>
/// GammaCash
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("GammaCash", "GammaCash", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string GammaCash { get; set; }
/// <summary>
/// VegaCash
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:期权生效后,每个交易日更新,直至期权终止</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2)]
[DefaultValue("")]
[SacDescription("VegaCash", "VegaCash", "36,2", true, "期权生效后,每个交易日更新,直至期权终止;")]
public string VegaCash { get; set; }
/// <summary>
/// ThetaCash
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("ThetaCash", "ThetaCash", "36,2", false, "")]
public string ThetaCash { get; set; }
/// <summary>
/// RhoCash
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("RhoCash", "RhoCash", "36,2", false, "")]
public string RhoCash { get; set; }
/// <summary>
/// RhoQCash
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("RhoQCash", "RhoQCash", "36,2", false, "")]
public string RhoQCash { get; set; }
/// <summary>
/// 空白1
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[DefaultValue("")]
[SacDescription("Blank1", "空白1", "", false, "")]
public string Blank1 { get; set; }
/// <summary>
/// 空白2
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[XmlIgnore]
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
}
}