644 lines
37 KiB
C#
644 lines
37 KiB
C#
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;
|
||
|
||
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
|
||
{
|
||
/// <summary>
|
||
/// 互换交易确认书
|
||
/// </summary>
|
||
[Table("A1005_SwapConfirmation")]
|
||
public class SwapConfirmationModel : ReportBaseModel
|
||
{
|
||
/// <summary>
|
||
/// 支付方式
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="PaymentMethodMap"/></para>
|
||
/// </summary>
|
||
[XmlIgnore]
|
||
[SacDescription("PaymentMethod", "支付方式", "2", true, "")]
|
||
public string PaymentMethod { 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>长度:100</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:双方约定</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 100)]
|
||
[DefaultValue("")]
|
||
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "双方约定;")]
|
||
public string MasterAgrmtNo { get; set; }
|
||
/// <summary>
|
||
/// 补充协议编号(双方约定)
|
||
/// <para>长度:100</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:双方约定</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 100)]
|
||
[DefaultValue("")]
|
||
[SacDescription("SupAgrmtNo", "补充协议编号(双方约定)", "100", true, "双方约定;")]
|
||
public string SupAgrmtNo { get; set; }
|
||
/// <summary>
|
||
/// 交易确认书编号
|
||
/// <para>长度:32</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:补正时必填;</para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(OperationType), ConditionValue = "A", CheckHandleNameArr = new[] { "B" })]
|
||
[CheckConditionStringNEQValue(ConditionName = nameof(OperationType), ConditionValue = "A", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckStringMaxLength(MaxLength = 32, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 32, Required = false, CheckHandleName = "B")]
|
||
[DefaultValue("")]
|
||
[SacDescription("ConfirmationID", "交易确认书编号", "32", false, "校验规则:补正时必填;")]
|
||
public string ConfirmationID { 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>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="ReportTypeMap"/>校验规则:首次提交时填0,补正时填1</para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("ConfirmationType", "交易确认书类型", "2", true, "校验规则:首次提交时填0,补正时填1;")]
|
||
public string ConfirmationType { get; set; }
|
||
/// <summary>
|
||
/// 填报方角色
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="FillPartyMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("FillParty", "填报方角色", "2", true, "")]
|
||
public string FillParty { get; set; }
|
||
/// <summary>
|
||
/// 收益互换交易类型
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="SwapTypeMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2", "99" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("SwapType", "收益互换交易类型", "2", true, "")]
|
||
public string SwapType { get; set; }
|
||
/// <summary>
|
||
/// 起始日
|
||
/// <para>长度:10</para>
|
||
/// <para>必填:是</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;")]
|
||
public string StartDate { get; set; }
|
||
/// <summary>
|
||
/// 到期日
|
||
/// <para>长度:10</para>
|
||
/// <para>必填:是</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;")]
|
||
public string DueDate { get; set; }
|
||
/// <summary>
|
||
/// 结算日
|
||
/// <para>长度:10</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:1 必须是YYYY-MM-DD;</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 10, Required = false)]
|
||
[CheckStringIsDateTimeFormat(Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("SettlementDate", "结算日", "10", false, "校验规则:\r\n1 必须是YYYY-MM-DD;")]
|
||
public string SettlementDate { get; set; }
|
||
/// <summary>
|
||
/// 结算货币
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="CurrencyEnum"/>使用货币通用代码(大写)</para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("Currency", "结算货币", "2", true, "使用货币通用代码(大写);")]
|
||
public string Currency { get; set; }
|
||
/// <summary>
|
||
/// 名义本金(元)
|
||
/// <para>长度:36,2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:校验规则:1 必须两位小数以内;2 补正时,如果该交易还有未被废除的存续期记录(包括展期\终止数据),名义本金额(人民币)字段不能修改;</para>
|
||
/// <para>说明:名义本金为标的期初价格乘以数量乘以乘数;多空组合填写多头名义本金与空头名义本金孰高</para>
|
||
/// </summary>
|
||
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, MinValue = 0)]
|
||
[DefaultValue("")]
|
||
[SacDescription("NotinalPrincipleAmt", "名义本金(元)", "36,2", true, "校验规则:\r\n1 必须两位小数以内;\r\n2 补正时,如果该交易还有未被废除的存续期记录(包括展期、终止数据),名义本金额(人民币)字段不能修改;")]
|
||
public string NotinalPrincipleAmt { get; set; }
|
||
/// <summary>
|
||
/// 清算机构
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.ClearingAgencyMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "3", "4", "5", "99" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("ClearingAgency", "清算机构", "2", true, "")]
|
||
public string ClearingAgency { get; set; }
|
||
/// <summary>
|
||
/// 交易场所
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.TradingPlaceMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2", "99" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("TradingPlace", "交易场所", "2", true, "")]
|
||
public string TradingPlace { get; set; }
|
||
/// <summary>
|
||
/// 交易场所(其他)
|
||
/// <para>长度:200</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:交易场所选"99:其他交易场所"时,必填</para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(TradingPlace), ConditionValue = "99", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckStringMaxLength(MaxLength = 200, CheckHandleName = "A")]
|
||
[DefaultValue("")]
|
||
[SacDescription("TradingPlaceOther", "交易场所(其他)", "200", false, "交易场所选99:其他交易场所时,必填;")]
|
||
public string TradingPlaceOther { get; set; }
|
||
/// <summary>
|
||
/// 标的类型
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.UndrlygAssetTypeMap"/>对于多类别资产组合,单一资产类别占比大等于80%的,分类为该类别,各资产类别占比均小于80%的,为混合类</para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("UndrlygAssetType", "标的类型", "2", true, "对于多类别资产组合,单一资产类别占比大等于80%的,分类为该类别,各资产类别占比均小于80%的,为混合类;")]
|
||
public string UndrlygAssetType { get; set; }
|
||
/// <summary>
|
||
/// 基本信息备注
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:填写上述字段或交易确认书中不能包含的信息</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("ConfirmationRemark", "基本信息备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
|
||
public string ConfirmationRemark { get; set; }
|
||
/// <summary>
|
||
/// 费用端支付
|
||
/// </summary>
|
||
[XmlElement]
|
||
[NotMapped]
|
||
[SacDescription("CostPaymentTuple", "费用端支付", "", false, "")]
|
||
public List<PaymentMethodModel> CostPaymentTuple { get; set; }
|
||
/// <summary>
|
||
/// 履约担保类型
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceGuaranteeMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceGuaranteeType", "履约担保类型", "2", true, "")]
|
||
public string PerformanceGuaranteeType { get; set; }
|
||
/// <summary>
|
||
/// 履约担保品提供方
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceCollProviderMap"/>检验规则"履约担保类型"为"部分担保"或"全额担保"时必填</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[] { "0", "1", "2", "3" }, CheckHandleName = "A")]
|
||
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceCollProvider", "履约担保品提供方", "2", false, "检验规则:履约担保类型为部分担保或全额担保时必填;")]
|
||
public string PerformanceCollProvider { get; set; }
|
||
/// <summary>
|
||
/// 担保品收取方是否可使用担保品
|
||
/// <para>长度:5</para>
|
||
/// <para>必填:否</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, "检验规则:履约担保类型为部分担保或全额担保时必填;")]
|
||
public string PartyUseColl { get; set; }
|
||
/// <summary>
|
||
/// 担保品使用说明
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:检验规则:当"担保品收取方是否可使用担保品"选择"是"时必填;</para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(PartyUseColl), ConditionValue = "true", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNEQValue(ConditionName = nameof(PartyUseColl), ConditionValue = "true", CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMaxLength(MaxLength = 1024, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false, CheckHandleName = "B")]
|
||
[DefaultValue("")]
|
||
[SacDescription("CollInstruction", "担保品使用说明", "1024", false, "检验规则:当担保品收取方是否可使用担保品选择是时必填;")]
|
||
public string CollInstruction { get; set; }
|
||
/// <summary>
|
||
/// 是否计算担保品价值产生利息
|
||
/// <para>长度:5</para>
|
||
/// <para>必填:否</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("CalculateCollInterest", "是否计算担保品价值产生利息", "5", false, "检验规则:当履约担保类型为部分担保、全额担保时必填;")]
|
||
public string CalculateCollInterest { get; set; }
|
||
/// <summary>
|
||
/// 履约担保品初始比率(%)
|
||
/// <para>长度:5,2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:校验规则:大于等于0的数字,最多2位小数,该值为100%时,填写100.00</para>
|
||
/// </summary>
|
||
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0)]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceCollInitialRatio", "履约担保品初始比率(%)", "5,2", true, "校验规则:大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
|
||
public string PerformanceCollInitialRatio { get; set; }
|
||
/// <summary>
|
||
/// 履约担保品追保比率(%)
|
||
/// <para>长度:5,2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:1 当"履约保障类型"选择"部分担保"或"全额担保"时必填;2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00</para>
|
||
/// </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, 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; }
|
||
/// <summary>
|
||
/// 履约担保品平仓比率(%)
|
||
/// <para>长度:5,2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:1 当"履约保障类型"选择"部分担保"或"全额担保"时必填;2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00</para>
|
||
/// </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, 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; }
|
||
/// <summary>
|
||
/// 维持担保比率(%)
|
||
/// <para>长度:5,2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:担保品占名义本金比例,大于等于0的数字,最多2位小数,担保比例为80.00%,则填写80.00</para>
|
||
/// </summary>
|
||
[CheckStringIntLength(BeforePointMaxLength = 5, AfterPointLength = 2, MinValue = 0)]
|
||
[SacDescription("MaintainGuaranteeRatio", "维持担保比率(%)", "5,2", true, "担保品占名义本金比例,大于等于0的数字,最多2位小数,担保比例为80.00%,则填写80.00;")]
|
||
public string MaintainGuaranteeRatio { get; set; }
|
||
/// <summary>
|
||
/// 履约担保附件
|
||
/// <para>长度:</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:只支持PDF格式;</para>
|
||
/// </summary>
|
||
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceGuaranteeAtt", "履约担保附件", "", false, "校验规则:只支持PDF格式;")]
|
||
public string PerformanceGuaranteeAtt { get; set; }
|
||
/// <summary>
|
||
/// 履约担保备注
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:填写上述字段或交易确认书中不能包含的信息</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceGuaranteeRemark", "履约担保备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
|
||
public string PerformanceGuaranteeRemark { get; set; }
|
||
/// <summary>
|
||
/// 履约担保品
|
||
/// <para>长度:</para>
|
||
/// <para>必填:</para>
|
||
/// <para>说明:数组结构,支持新增多条;校验规则:字段信息详见收益互换交易确认书【履约担保品】。检验规则:当“履约担保类型”为“部分担保”或“全额担保”时必填</para>
|
||
/// </summary>
|
||
[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>
|
||
/// 备注
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:上述所有字段没有涵盖且需要说明的信息</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("Remark", "备注", "1024", false, "上述所有字段没有涵盖且需要说明的信息;")]
|
||
public string Remark { get; set; }
|
||
/// <summary>
|
||
/// 合规意见书
|
||
/// <para>长度:</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:只支持PDF格式;</para>
|
||
/// </summary>
|
||
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("ComplianceOpinion", "合规意见书", "", false, "校验规则:只支持PDF格式;")]
|
||
public string ComplianceOpinion { get; set; }
|
||
/// <summary>
|
||
/// 标的个数
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明: <see cref="UndrlygAssetNoMap"/>多标的时,权益收益、浮动利率收益、固定利率收益信息需新增多个</para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("PtyAUndrlygAssetNo", "标的个数", "2", true, "多标的时,权益收益、浮动利率收益、固定利率收益信息需新增多个;")]
|
||
public string PtyAUndrlygAssetNo { get; set; }
|
||
/// <summary>
|
||
/// 收益计算说明
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:详细说明收益计算方式</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024)]
|
||
[DefaultValue("")]
|
||
[SacDescription("PtyAPrOfitCalculationInfo", "收益计算说明", "1024", true, "详细说明收益计算方式;")]
|
||
public string PtyAPrOfitCalculationInfo { get; set; }
|
||
/// <summary>
|
||
/// 收益备注
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:填写上述字段或交易确认书中不能包含的信息</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("PtyAProfitRemark", "收益备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
|
||
public string PtyAProfitRemark { get; set; }
|
||
/// <summary>
|
||
/// 甲方代签产品名称
|
||
/// <para>长度:200</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:1 如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;2 甲方代签产品名称必须在主协议关联产品列表-产品名称中存在;</para>
|
||
/// </summary>
|
||
[CheckConditionStringInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNotInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMaxLength(MaxLength = 200, Required = false, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
|
||
[DefaultValue("")]
|
||
[SacDescription("PtyAPdctName", "甲方代签产品名称", "200", false, "校验规则:\r\n1 如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;\r\n2 甲方代签产品名称必须在主协议关联产品列表-产品名称中存在;")]
|
||
public string PtyAPdctName { get; set; }
|
||
/// <summary>
|
||
/// 甲方交易对手码(产品)
|
||
/// <para>长度:20</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值</para>
|
||
/// </summary>
|
||
[CheckConditionStringInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNotInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMaxLength(MaxLength = 20, Required = false, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
|
||
[DefaultValue("")]
|
||
[SacDescription("PytAPdctCode", "甲方交易对手码(产品)", "20", false, "校验规则:如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;")]
|
||
public string PytAPdctCode { get; set; }
|
||
/// <summary>
|
||
/// 乙方代签产品名称
|
||
/// <para>长度:200</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:1 如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;2 乙方代签产品名称必须在主协议关联产品列表-产品名称中存在;</para>
|
||
/// </summary>
|
||
[CheckConditionStringInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNotInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMaxLength(MaxLength = 200, Required = false, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
|
||
[DefaultValue("")]
|
||
[SacDescription("PtyBPdctName", "乙方代签产品名称", "200", false, "校验规则:\r\n1 如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;\r\n2 乙方代签产品名称必须在主协议关联产品列表-产品名称中存在;")]
|
||
public string PtyBPdctName { get; set; }
|
||
/// <summary>
|
||
/// 乙方交易对手码(产品)
|
||
/// <para>长度:20</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值</para>
|
||
/// </summary>
|
||
[CheckConditionStringInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNotInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMaxLength(MaxLength = 20, Required = false, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
|
||
[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>
|
||
[DefaultValue("")]
|
||
[SacDescription("Blank1", "空白1", "", false, "")]
|
||
public string Blank1 { get; set; }
|
||
/// <summary>
|
||
/// 空白2
|
||
/// </summary>
|
||
[DefaultValue("")]
|
||
[SacDescription("Blank2", "空白2", "", false, "")]
|
||
public string Blank2 { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 履约担保品详情
|
||
/// </summary>
|
||
[Table("A1005_SwapPerformanceGuaranteeAtt")]
|
||
public class SwapPerformanceGuaranteeAttModel : ReportSubBaseModel
|
||
{
|
||
/// <summary>
|
||
/// 履约担保品类型
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:校验规则:当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceCollTypeMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "99" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceCollType", "履约担保品类型", "2", false, "校验规则:当履约保障类型选择部分担保或全额担保时必填;")]
|
||
public string PerformanceCollType { get; set; }
|
||
/// <summary>
|
||
/// 担保品担保范围
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceCollRangeMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2" }, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("PerformanceCollRange", "担保品担保范围", "2", false, "")]
|
||
public string PerformanceCollRange { get; set; }
|
||
/// <summary>
|
||
/// 多笔担保交易确认书编号
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("MultiConfirmationID", "多笔担保交易确认书编号", "1024", false, "")]
|
||
public string MultiConfirmationID { get; set; }
|
||
/// <summary>
|
||
/// 备注
|
||
/// <para>长度:1024</para>
|
||
/// <para>必填:否</para>
|
||
/// </summary>
|
||
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("Remarks", "备注", "1024", false, "")]
|
||
public string Remarks { get; set; }
|
||
|
||
[XmlIgnore]
|
||
[DefaultValue("")]
|
||
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
|
||
public string ConfirmationNo { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 收益互换交易费用端支付
|
||
/// </summary>
|
||
[Table("A1005_PaymentMethod")]
|
||
public class PaymentMethodModel : ReportSubBaseModel
|
||
{
|
||
/// <summary>
|
||
/// 支付方式
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="PaymentMethodMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "2", "3" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("PaymentMethod", "支付方式", "2", true, "")]
|
||
public string PaymentMethod { get; set; }
|
||
/// <summary>
|
||
/// 支付方
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="PayerMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("Payer", "支付方", "2", true, "")]
|
||
public string Payer { get; set; }
|
||
/// <summary>
|
||
/// 支付频率
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:是</para>
|
||
/// <para>说明:<see cref="PaymentFreqMap"/></para>
|
||
/// </summary>
|
||
[CheckStringInMap(Map = new[] { "0", "1", "2" })]
|
||
[DefaultValue("")]
|
||
[SacDescription("PaymentFreq", "支付频率", "2", true, "")]
|
||
public string PaymentFreq { get; set; }
|
||
/// <summary>
|
||
/// 固定利率(%)
|
||
/// <para>长度:8,2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:当"支付方式"选择为"固定利率时"时必填;</para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "3", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "3", CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2, CheckHandleName = "A")]
|
||
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2, CheckHandleName = "B", Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("FixedInterestRate", "固定利率(%)", "8,2", false, "当支付方式选择为固定利率时时必填;")]
|
||
public string FixedInterestRate { get; set; }
|
||
/// <summary>
|
||
/// 浮动利率类型
|
||
/// <para>长度:2</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:当"支付方式"选择为"浮动利率"时必填;应当符合标准规范<see cref="RefRateTypeMap"/></para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMinLength(MinLength = 1, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B", Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("FloatInterestRate", "浮动利率类型", "2", false, "当支付方式选择为浮动利率时必填;\r\n应当符合标准规范;")]
|
||
public string FloatInterestRate { get; set; }
|
||
/// <summary>
|
||
/// 浮动利率参考标的
|
||
/// <para>长度:200</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:当"支付方式"选择为"浮动利率"时必填;</para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringMinLength(MinLength = 1, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 200, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B", Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("ReferenceofFloatingInterestRate", "浮动利率参考标的", "200", false, "当支付方式选择为浮动利率时必填;")]
|
||
public string ReferenceofFloatingInterestRate { get; set; }
|
||
/// <summary>
|
||
/// 浮动基点
|
||
/// <para>长度:20</para>
|
||
/// <para>必填:否</para>
|
||
/// <para>说明:整数;当"支付方"式选择为"浮动利率"时,必填,如30\-30</para>
|
||
/// </summary>
|
||
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "A" })]
|
||
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "B" })]
|
||
[CheckStringIntLength(BeforePointMaxLength = 20, CheckHandleName = "A")]
|
||
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B", Required = false)]
|
||
[DefaultValue("")]
|
||
[SacDescription("BasePoint", "浮动基点", "20", false, "整数;\r\n当支付方式选择为浮动利率时,必填,如30、-30;")]
|
||
public string BasePoint { get; set; }
|
||
/// <summary>
|
||
/// 空白1
|
||
/// </summary>
|
||
[DefaultValue("")]
|
||
[SacDescription("Blank1", "空白1", "", false, "")]
|
||
public string Blank1 { get; set; }
|
||
/// <summary>
|
||
/// 空白2
|
||
/// </summary>
|
||
[DefaultValue("")]
|
||
[SacDescription("Blank2", "空白2", "", false, "")]
|
||
public string Blank2 { get; set; }
|
||
[XmlIgnore]
|
||
[DefaultValue("")]
|
||
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
|
||
public string ConfirmationNo { get; set; }
|
||
}
|
||
} |