package com.hzs.member.base.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.member.account.dto.MemberAmountDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @Description: 特殊业务-修改结算国实体vo
 * @Author: zhangjing
 * @Time: 2022/12/28 11:21
 * @Classname: UpdateCodeVO
 * @PackageName: com.hzs.member.base.vo
 */
@Data
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class UpdateSettleCountryVO extends BaseApprovalEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 会员主键
     */
    private Long pkId;
    /**
     * 会员编号
     */
    @Excel(name = "会员编号")
    private String memberCode;

    /**
     * 会员姓名
     */
    @Excel(name = "会员姓名")
    private String memberName;
    private String shortName;
    private String shortName2;
    /**
     * 真实奖衔
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
    private Integer pkAwards;
    private String pkAwardsVal;

    /**
     * 隶属体系
     */
    private String vertexName;

    /**
     * 隶属团队
     */
    private String teamName;

    /**
     * 联系方式
     */
    private String phone;


    /**
     * 结算国ID
     */
    private Integer pkSettleCountry;
    /**
     * 变更后结算国ID
     */
    private Integer newPkSettleCountry;
    /**
     * 变更前值
     */
    @Excel(name = "结算国家")
    private String oldValue;
    /**
     * 变更后值
     */
    @Excel(name = "变更后结算国家")
    private String newValue;

    /**
     * 变更次数
     */
    @Excel(name = "变更次数")
    private Integer changeNumber=0;
    /**
     * 变更时间
     */
    @Excel(name = "变更时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;
    /**
     * 审核状态  2  待审核  4 已驳回   5 已完成(审核成功)  枚举 ： EApproveStatus
     */
    @Excel(name = "审核状态")
    private String approveStatusVal;
    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    /**
     * 流程类型（1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费）
     */
    private Integer processType;

    /**
     * 修改结算国集合(用于修改数据)
     */
    private List<UpdateSettleCountryVO>  upstcyVOList;

    /**
     * 修改结算国集合签呈页面
     */
    private List<UpdateSettleCountryVO>  updateParentParamList;

    /**
     * 业务单号
     */
    private String businessNo;

    /**
     * 审核状态  2  待审核  4 已驳回   5 已完成(审核成功)  枚举 ： EApproveStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_STATUS)
    private Integer approveStatus;



    /**
     * 修改编号业务记录表主键
     */
    private Long serviceLogId;
    /**
     * 费用
     */
    private BigDecimal cost;
    /**
     * 扣款币种类型
     */
    private Integer pkAccount;
    /**
     * 扣款币种类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkAccountKey;
    /**
     * 扣款币种类型
     */
    private String pkAccountKeyVal;
    /**
     * 会员手续费
     */
    List<MemberAmountDTO> memberAmountDTOList;

    /**
     * 错误信息
     */
    private String errorMsg;
    /**
     * 国家
     */
    private Integer pkCountry;
    /**
     * 业务涨及会员ID列表 --提交审核必传
     */
    private Set<Long> pkMemberList;
    /**
     * 新结算国家
     */
    private String newSettleCountry;










}

