package com.zksy.system.basicData.domain;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.zksy.common.utils.file.ExcelExport;
import com.zksy.common.utils.file.ExcelImport;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;
import java.util.regex.Pattern;

/**
 * 行政处罚对象 crm_administrative_penalty
 *
 * @author sy
 * @date 2024-04-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("crm_administrative_penalty")
@ApiModel(value = "行政处罚")
public class CrmAdministrativePenalty extends Model<CrmAdministrativePenalty> {

private static final long serialVersionUID=1L;

@ApiModelProperty(value = "主键")
    /** 主键 */
        @TableId(type = IdType.AUTO)
    private Long id;

@ApiModelProperty(value = "行政相对人名称")
    /** 行政相对人名称 */
                @ExcelImport(value = "行政相对人名称")
                @ExcelExport(value = "行政相对人名称")
    private String administrativePartyName;

@ApiModelProperty(value = "行政相对人类别")
    /** 行政相对人类别 */
                @ExcelImport(value = "行政相对人类别")
                @ExcelExport(value = "行政相对人类别")
    private String administrativePartyType;

@ApiModelProperty(value = "主体编码")
    /** 主体编码 */
                @ExcelImport(value = "主体编码")
                @ExcelExport(value = "主体编码")
    private String unifiedSocialCreditCode;

@ApiModelProperty(value = "工商注册号")
    /** 工商注册号 */
                @ExcelImport(value = "工商注册号")
                @ExcelExport(value = "工商注册号")
    private String businessRegistrationNumber;

@ApiModelProperty(value = "法定代表人")
    /** 法定代表人 */
                @ExcelImport(value = "法定代表人")
                @ExcelExport(value = "法定代表人")
    private String legalRepresentative;
    // 姓名脱敏：只保留姓氏，名字部分用*代替
    public String getLegalRepresentative() {
        if (this.legalRepresentative == null || this.legalRepresentative.length() <= 1) {
            return this.legalRepresentative;
        }
        return this.legalRepresentative.substring(0, 1) + "*";
    }

@ApiModelProperty(value = "法定代表人证件类型")
    /** 法定代表人证件类型 */
                @ExcelImport(value = "法定代表人证件类型")
                @ExcelExport(value = "法定代表人证件类型")
    private String legalRepresentativeIdType;

@ApiModelProperty(value = "法定代表人证件类型其他类型说明")
    /** 法定代表人证件类型其他类型说明 */
                @ExcelImport(value = "法定代表人证件类型其他类型说明")
                @ExcelExport(value = "法定代表人证件类型其他类型说明")
    private String legalRepresentativeIdOtherTypeDesc;

@ApiModelProperty(value = "法定代表人证件号码")
    /** 法定代表人证件号码 */
                @ExcelImport(value = "法定代表人证件号码")
                @ExcelExport(value = "法定代表人证件号码")
    private String legalRepresentativeIdNumber;

@ApiModelProperty(value = "证件类型")
    /** 证件类型 */
                @ExcelImport(value = "证件类型")
                @ExcelExport(value = "证件类型")
    private String idType;

@ApiModelProperty(value = "证件类型其他类型说明")
    /** 证件类型其他类型说明 */
                @ExcelImport(value = "证件类型其他类型说明")
                @ExcelExport(value = "证件类型其他类型说明")
    private String idOtherTypeDesc;

@ApiModelProperty(value = "行政处罚决定文书名称")
    /** 行政处罚决定文书名称 */
                @ExcelImport(value = "行政处罚决定文书名称")
                @ExcelExport(value = "行政处罚决定文书名称")
    private String administrativePenaltyDecisionDocName;

@ApiModelProperty(value = "行政处罚决定书文号")
    /** 行政处罚决定书文号 */
                @ExcelImport(value = "行政处罚决定书文号")
                @ExcelExport(value = "行政处罚决定书文号")
    private String administrativePenaltyDecisionDocNumber;

@ApiModelProperty(value = "违法行为类型")
    /** 违法行为类型 */
                @ExcelImport(value = "违法行为类型")
                @ExcelExport(value = "违法行为类型")
    private String illegalActType;

@ApiModelProperty(value = "违法事实")
    /** 违法事实 */
                @ExcelImport(value = "违法事实")
                @ExcelExport(value = "违法事实")
    private String illegalFacts;

@ApiModelProperty(value = "处罚依据")
    /** 处罚依据 */
                @ExcelImport(value = "处罚依据")
                @ExcelExport(value = "处罚依据")
    private String penaltyBasis;

@ApiModelProperty(value = "处罚类别")
    /** 处罚类别 */
                @ExcelImport(value = "处罚类别")
                @ExcelExport(value = "处罚类别")
    private String penaltyType;

    @ApiModelProperty(value = "处罚类别其他类型说明")
    /** 处罚类别 */
    @ExcelImport(value = "处罚类别其他类型说明")
    @ExcelExport(value = "处罚类别其他类型说明")
    private String penaltyTypeExplain;

@ApiModelProperty(value = "处罚内容")
    /** 处罚内容 */
                @ExcelImport(value = "处罚内容")
                @ExcelExport(value = "处罚内容")
    private String penaltyContent;

@ApiModelProperty(value = "罚款金额（万元）")
    /** 罚款金额（万元） */
                @ExcelImport(value = "罚款金额")
                @ExcelExport(value = "罚款金额")
    private BigDecimal fineAmount;

@ApiModelProperty(value = "没收违法所得、没收非法财物的金额(万元)")
    /** 没收违法所得、没收非法财物的金额(万元) */
                @ExcelImport(value = "没收违法所得、没收非法财物的金额(万元)")
                @ExcelExport(value = "没收违法所得、没收非法财物的金额(万元)")
    private BigDecimal confiscationAmount;

@ApiModelProperty(value = "暂扣或吊销证照名称及编号")
    /** 暂扣或吊销证照名称及编号 */
                @ExcelImport(value = "暂扣或吊销证照名称及编号")
                @ExcelExport(value = "暂扣或吊销证照名称及编号")
    private String suspentionRevocationLicenseNameNumber;

@ApiModelProperty(value = "处罚决定日期")
    /** 处罚决定日期 */
                @ExcelImport(value = "处罚决定日期")
                @ExcelExport(value = "处罚决定日期")
    private Date penaltyDecisionDate;

@ApiModelProperty(value = "处罚有效期")
    /** 处罚有效期 */
                @ExcelImport(value = "处罚有效期")
                @ExcelExport(value = "处罚有效期")
    private Date penaltyValidityPeriod;

@ApiModelProperty(value = "处罚机关")
    /** 处罚机关 */
                @ExcelImport(value = "处罚机关")
                @ExcelExport(value = "处罚机关")
    private String penaltyAuthority;

@ApiModelProperty(value = "处罚机关统一社会信用代码")
    /** 处罚机关统一社会信用代码 */
                @ExcelImport(value = "处罚机关统一社会信用代码")
                @ExcelExport(value = "处罚机关统一社会信用代码")
    private String penaltyAuthorityUnifiedSocialCreditCode;

@ApiModelProperty(value = "备注")
    /** 备注 */
                @ExcelImport(value = "备注")
                @ExcelExport(value = "备注")
    private String remarks;


        }
