package com.hzs.ground.supplier.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.web.domain.BaseApprovalEntity;
import com.hzs.system.sys.dto.LoginUser;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 供应商申请VO
 * </p>
 *
 * @author hzs
 * @since 2024-03-21
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class ThSupplierApplyVO extends BaseApprovalEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Integer pkId;

    /**
     * 供应商名称
     */
    private String name;

    /**
     * 供应商简称
     */
    private String shortName;

    /**
     * 法人
     */
    private String legalBody;

    /**
     * 联系人
     */
    private String linkMan;

    /**
     * 纳税人登记号
     */
    private String taxpayerid;

    /**
     * 省
     */
    private Integer province;
    /**
     * 省
     */
    private String provinceName;

    /**
     * 市
     */
    private Integer city;
    /**
     * 市
     */
    private String cityName;

    /**
     * 区
     */
    private Integer county;
    /**
     * 区
     */
    private String countyName;

    /**
     * 地址
     */
    private String address;

    /**
     * 资质1
     */
    private String aptitude1;

    /**
     * 资质2
     */
    private String aptitude2;

    /**
     * 资质3
     */
    private String aptitude3;

    /**
     * 资质4
     */
    private String aptitude4;

    /**
     * 资质5
     */
    private String aptitude5;

    /**
     * 资质6
     */
    private String aptitude6;

    /**
     * 资质7
     */
    private String aptitude7;

    /**
     * 资质8
     */
    private String aptitude8;
    /**
     * 错误信息
     */
    private String errMsg;

    /**
     * 有效期
     */
    @Excel(name = "有效时间",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date validPeriod;

    /**
     * 结算方式 1=线上  2=线下 ESettleType
     */
    @Transaction(transactionKey = EnumsPrefixConstants.SETTLE_TYPE)
    private Integer settleType;
    /**
     * 结算方式 1=线上  2=线下 ESettleType
     */
    private String settleTypeVal;

    /**
     * 会员主键
     */
    private Long pkMember;
    /**
     * 会员编号
     */
    private String memberCode;

    /**
     * 证书
     */
    private String certificate;

    /**
     * 经营范围
     */
    private String tradeScope;

    /**
     * 创建人ID
     */
    private Long pkCreator;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 逻辑删除 (0=未删除，1已删除)
     */
    private Integer delFlag;

    /**
     * 国家
     */
    private Integer pkCountry;

    /**
     * 登录用户信息
     */
    private LoginUser loginUser;

    /**
     * 审批业务类型 来源枚举 EApprovalBusiness
     */
    private Integer editType;

    /**
     * 审核状态 来源枚举 EApproveStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_STATUS)
    private Integer approveStatus;
    /**
     * 审核状态 来源枚举 EApproveStatus
     */
    private String approveStatusVal;

    /**
     * 修改记录单号
     */
    private String thBusinessCode;

    private String pkIdListStr;
    /**
     * 供应商申请id集合
     */
    private List<Integer> pkIdList;
    /**
     * 供应商申请集合
     */
    @Transaction
    private List<ThSupplierApplyVO> petitionList;

    /**
     * 附件集合
     */
    private List<String> fileList;


}
