找回证券业报送的逻辑,仅支持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
@@ -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; }
}
}