Files
zszq-trs/YLErpDAL/Modules/SuperviseReportModule/SAC/Model/MasterAgrmtModel.cs
T

276 lines
13 KiB
C#

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("A1001_MasterAgrmt")]
public class MasterAgrmtModel : 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>长度:32</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:补正时必填</para>
/// </summary>
[XmlElement(IsNullable = false)]
[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("MasterAgrmtID", "主协议编号", "32", false, "校验规则:补正时必填;")]
public string MasterAgrmtID { 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>长度:10</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:必须是yyyy-MM-dd</para>
/// </summary>
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("SigningDate", "签订时间", "10", true, "校验规则:必须是YYYY-MM-DD;")]
public string SigningDate { get; set; }
/// <summary>
/// 主协议版本
/// <para>长度:10(此处文档描述应该有错误,长度应为1~2)</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.MasterAgrmtVerMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "99" })]
[DefaultValue("")]
[SacDescription("MasterAgrmtVer", "主协议版本", "10(此处文档描述应该有错误,长度应为1~2)", true, "")]
public string MasterAgrmtVer { get; set; }
/// <summary>
/// 填报方角色
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.FillPartyMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[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, "")]
public string NameOfCounterparty { get; set; }
/// <summary>
/// 统一社会信用代码
/// <para>长度:18</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 = 1, CheckHandleName = "B")]
[CheckStringMaxLength(MaxLength = 18, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("CODS", "统一社会信用代码", "18", false, "校验规则:字段长度18位;\r\n当交易对手方类型是除了境外金融机构、境外非金融机构外的机构时,必填;")]
public string CODS { get; set; }
/// <summary>
/// 交易对手编码
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:应当符合标准规范</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 20, Required = false)]
[DefaultValue("")]
[SacDescription("CounterpartyCode", "交易对手编码", "20", false, "校验规则:应当符合标准规范;")]
public string CounterpartyCode { get; set; }
/// <summary>
/// LEI码
/// <para>长度:20</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, "校验规则:当交易对手方类型是境外金融机构、境外非金融机构时,必填;")]
public string LEI { get; set; }
/// <summary>
/// 交易对手类别
/// <para>长度:200</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.ProCounterpartyMap"/>应当符合《投资者适当性管理办法》</para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("ProCounterparty", "交易对手类别", "200", true, "应当符合《投资者适当性管理办法》;")]
public string ProCounterparty { get; set; }
/// <summary>
/// 交易对手方类型
/// <para>长度:20</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.CounterpartyTypeMap"/>其他金融机构为监管部门发牌的机构;应当符合标准规范</para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21" })]
[DefaultValue("")]
[SacDescription("CounterpartyType", "交易对手方类型", "20", true, "其他金融机构为监管部门发牌的机构;\r\n应当符合标准规范;")]
public string CounterpartyType { get; set; }
/// <summary>
/// 非金融机构行业代码
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:当“交易对手方类型”选择境内非金融机构时,必填;参照国家统计局发布的《国民经济行业分类》</para>
/// </summary>
[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参照国家统计局发布的《国民经济行业分类》;")]
public string NFICode { get; set; }
/// <summary>
/// 交易对手方注册资本(万元)
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留两位小数</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("CounterpartyRegdCptl", "交易对手方注册资本(万元)", "36,2", false, "校验规则:必须两位小数以内")]
public string CounterpartyRegdCptl { get; set; }
/// <summary>
/// 主协议备注
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:交易对手是否为国有或国有控股企业,及其他需要说明事项</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("MasterAgrmtRemark", "主协议备注", "1024", false, "交易对手是否为国有或国有控股企业,及其他需要说明事项;")]
public string MasterAgrmtRemark { get; set; }
/// <summary>
/// 主协议附件
/// <para>长度:</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:只支持PDF格式</para>
/// </summary>
[CheckStringEndsWith(EndsWithString = ".pdf")]
[DefaultValue("")]
[SacDescription("MasterAgrmtAtt", "主协议附件", "", true, "校验规则:只支持PDF格式;")]
public string MasterAgrmtAtt { get; set; }
/// <summary>
/// 交易对手方身份
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.CounterpartyIdentityMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "1", "2" })]
[DefaultValue("")]
[SacDescription("CounterpartyIdentity", "交易对手方身份", "2", true, "")]
public string CounterpartyIdentity { get; set; }
/// <summary>
/// 填报方业务代表明细
/// <para>长度:</para>
/// <para>必填:</para>
/// <para>说明:</para>
/// </summary>
[CheckIEnumerableTMinCount(MinCount = 1)]
[XmlElement]
[NotMapped]
[SacDescription("CounterpartyInformationTuple", "填报方业务代表明细", "", false, "")]
public List<CounterpartyInfomationModel> CounterpartyInformationTuple { get; set; }
}
/// <summary>
/// 填报方业务代表明细
/// </summary>
[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>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200)]
[DefaultValue("")]
[SacDescription("Name", "填报方业务代表姓名", "200", true, "")]
public string Name { get; set; }
/// <summary>
/// 职务
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
[SacDescription("Title", "职务", "200", false, "")]
public string Title { get; set; }
/// <summary>
/// 电话
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
[SacDescription("Telephone", "电话", "200", false, "")]
public string Telephone { get; set; }
/// <summary>
/// 手机
/// <para>长度:11</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:手机号</para>
/// </summary>
[CheckStringLength(Length = 11, Required = false)]
[DefaultValue("")]
[SacDescription("Mobile", "手机", "11", false, "校验规则:手机号;")]
public string Mobile { get; set; }
/// <summary>
/// 邮箱
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
[SacDescription("Email", "邮箱", "200", false, "")]
public string Email { get; set; }
}
}