package com.ssm.manage.excelEntity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ssm.manage.entity.CardChangeInProject;
import com.ssm.manage.entity.CardChangeList;
import com.ssm.manage.entity.Salesman;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class ExcelCardChange {

    private String isDebtNew;
    private String storeNum;
    private String projectNum;
    private String changeOutProject;
    private String stateNew;
    private String payType;

    private String salmenOneNumber;
    private String salmenOneName;
    private String salmenOneRatio;

    private String salmenTwoNumber;
    private String salmenTwoName;
    private String salmenTwoRatio;

    private String salmenThreeNumber;
    private String salmenThreeName;
    private String salmenThreeRatio;

    private String salmenFourNumber;
    private String salmenFourName;
    private String salmenFourRatio;


    private String salmensOneNumber;
    private String salmensOneName;
    private String salmensOneRatio;

    private String salmensTwoNumber;
    private String salmensTwoName;
    private String salmensTwoRatio;

    private String salmensThreeNumber;
    private String salmensThreeName;
    private String salmensThreeRatio;

    private String salmensFourNumber;
    private String salmensFourName;
    private String salmensFourRatio;


        @Id
        private Long id;

        /**
         * 单据号
         */
        @Column(name = "doc_num")
        private String docNum;

        /**
         * 单据时间
         */
        @Column(name = "doc_date")
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date docDate;

        /**
         * 门店编码
         */
        @Column(name = "store_id")
        private Long storeId;

        /**
         * 门店名称
         */
        @Column(name = "store_name")
        private String storeName;

        /**
         * 会员编码
         */
        @Column(name = "member_id")
        private Long memberId;

        /**
         * 会员名称
         */
        @Column(name = "member_name")
        private String memberName;

        /**
         * 会员身份证号
         */
        @Column(name = "member_identity_card")
        private String memberIdentityCard;

        /**
         * 手机
         */
        @Column(name = "mobile_phone")
        private String mobilePhone;

        /**
         * 录单人ID
         */
        @Column(name = "input_id")
        private Long inputId;

        /**
         * 录单人名称
         */
        @Column(name = "input_by")
        private String inputBy;

        /**
         * 欠款金额
         */
        @Column(name = "debt_money")
        private BigDecimal debtMoney;

        /**
         * 转入支付金额
         */
        @Column(name = "change_in_pay_money")
        private BigDecimal changeInPayMoney;

        /**
         * 转入金额
         */
        @Column(name = "change_in_money")
        private BigDecimal changeInMoney;

        /**
         * 转出金额
         */
        @Column(name = "change_out_money")
        private BigDecimal changeOutMoney;

        /**
         * 差异金额
         */
        @Column(name = "difference_money")
        private BigDecimal differenceMoney;

        /**
         * 补单时间
         */
        @Column(name = "addition_date")
        @DateTimeFormat(pattern="yyyy-MM-dd")
        @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
        private Date additionDate;

        /**
         * 是否补单0:不是/1:是
         */
        @Column(name = "is_addition")
        private Integer isAddition;

        /**
         * 是否作废 1:作废/0:未作废
         */
        @Column(name = "is_cancel")
        private Integer isCancel;

        /**
         * 是否欠款 1:欠款/0:未欠款
         */
        @Column(name = "is_debt")
        private Integer isDebt;

        /**
         * 作废时间
         */
        @Column(name = "cancel_date")
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date cancelDate;

        /**
         * 作废人ID
         */
        @Column(name = "cancel_id")
        private Long cancelId;

        /**
         * 作废人名称
         */
        @Column(name = "cancel_by")
        private String cancelBy;

        /**
         * 内调单审核时间
         */
        @Column(name = "audit_date")
        @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date auditDate;

        /**
         * 内调单审核人ID
         */
        @Column(name = "audit_id")
        private Long auditId;

        /**
         * 内调单审核人名称
         */
        @Column(name = "audit_by")
        private String auditBy;

        /**
         * 状态 0:添加/1:送审/2:回收/3:审核/4:反审核
         */
        private Integer state;

        /**
         * 描述
         */
        private String description;

        /**
         * 描述
         */
        @Transient
        private List<Salesman> salesmens;

        public List<Salesman> getSalesmens() {
            return salesmens;
        }

        public void setSalesmens(List<Salesman> salesmens) {
            this.salesmens = salesmens;
        }

        private static final long serialVersionUID = 1L;





        /**
         * 项目编码
         */
        @Column(name = "project_id")
        private Long projectId;

        /**
         * 项目名称
         */
        @Column(name = "project_name")
        private String projectName;

        /**
         * 账户ID
         */
        @Column(name = "account_id")
        private Long accountId;

        /**
         * 开卡剩余次数
         */
        @Column(name = "course_rest_count")
        private Integer courseRestCount;

        /**
         * 开卡可用次数
         */
        @Column(name = "course_consume_count")
        private Integer courseConsumeCount;

        /**
         * 单次最小销售次数
         */
        @Column(name = "minumum_times")
        private Integer minumumTimes;

        /**
         * 散客价
         */
        private BigDecimal price;

        /**
         * 最低散客价
         */
        @Column(name = "minumum_price")
        private BigDecimal minumumPrice;

        /**
         * 会员价
         */
        @Column(name = "price_member")
        private BigDecimal priceMember;

        /**
         * 最低会员价
         */
        @Column(name = "minumum_price_member")
        private BigDecimal minumumPriceMember;

        /**
         * 现付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
         */
        @Column(name = "sales_achievement")
        private BigDecimal salesAchievement;

        /**
         * 现付销售提成，大于1表示固定提成，小于等于1表示比率提成
         */
        @Column(name = "sales_commission")
        private BigDecimal salesCommission;

        /**
         * 卡付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
         */
        @Column(name = "card_sales_achievement")
        private BigDecimal cardSalesAchievement;

        /**
         * 卡付销售提成，大于1表示固定提成，小于等于1表示比率提成
         */
        @Column(name = "card_sales_commission")
        private BigDecimal cardSalesCommission;

        /**
         * 有效期 单位:月
         */
        @Column(name = "valid_time")
        private Integer validTime;

        /**
         * 转入次数
         */
        @Column(name = "change_in_time")
        private Integer changeInTime;

        /**
         * 转入套数
         */
        @Column(name = "change_in_case_time")
        private Integer changeInCaseTime;

        /**
         * 退款金额
         */
        @Column(name = "refund_money")
        private BigDecimal refundMoney;

        /**
         * 成交金额
         */
        @Column(name = "transaction_money")
        private BigDecimal transactionMoney;

        /**
         * 现付销售业绩
         */
        @Column(name = "achievement_amount")
        private BigDecimal achievementAmount;

        /**
         * 现付销售提成
         */
        @Column(name = "commission_amount")
        private BigDecimal commissionAmount;

        /**
         * 卡付销售业绩
         */
        @Column(name = "card_achievement_amount")
        private BigDecimal cardAchievementAmount;

        /**
         * 卡付销售提成
         */
        @Column(name = "card_commission_amount")
        private BigDecimal cardCommissionAmount;


        /**
         * 门店高管编码
         */
        @Column(name = "manage_staff_id")
        private Long manageStaffId;

        /**
         * 门店高管名称
         */
        @Column(name = "manage_staff_name")
        private String manageStaffName;

        /**
         * 门店高管身份证号
         */
        @Column(name = "manage_identity")
        private String manageIdentity;

        /**
         * 门店高管水牌号
         */
        @Column(name = "manage_number")
        private String manageNumber;

        /**
         * 取消前单价
         */
        @Column(name = "before_price")
        private BigDecimal beforePrice;
        /**
         * 取消前剩余金额
         */
        @Column(name = "before_rest_money")
        private BigDecimal beforeRestMoney;
        /**
         * 取消前可用金额
         */
        @Column(name = "before_consume_money")
        private BigDecimal beforeConsumeMoney;

        /**
         * 取消前剩余赠送金额
         */
        @Column(name = "before_gift_consume_money")
        private BigDecimal beforeGiftConsumeMoney;

        /**
         * 取消前可用赠送金额
         */
        @Column(name = "before_gift_rest_money")
        private BigDecimal beforeGiftRestMoney;

        /**
         * 取消前剩余次数
         */
        @Column(name = "before_rest_count")
        private Integer  beforeRestCount;
        /**
         * 取消前可用次数
         */
        @Column(name = "before_consume_count")
        private Integer beforeConsumeCount;


        /**
         * 取消后单价
         */
        @Column(name = "back_price")
        private BigDecimal backPrice;
        /**
         * 取消后剩余金额
         */
        @Column(name = "back_rest_money")
        private BigDecimal backRestMoney;
        /**
         * 取消后可用金额
         */
        @Column(name = "back_consume_money")
        private BigDecimal backConsumeMoney;


        /**
         * 取消前剩余赠送金额
         */
        @Column(name = "back_gift_consume_money")
        private BigDecimal backGiftConsumeMoney;

        /**
         * 取消前可用赠送金额
         */
        @Column(name = "back_gift_rest_money")
        private BigDecimal backGiftRestMoney;

        /**
         * 取消后剩余次数
         */
        @Column(name = "back_rest_count")
        private Integer  backRestCount;
        /**
         * 取消后可用次数
         */
        @Column(name = "back_consume_count")
        private Integer backConsumeCount;

    /**
     * 销售员1水牌号
     */
    @Column(name = "sale_one_number")
    private String saleOneNumber;

    /**
     * 销售员2水牌号
     */
    @Column(name = "sale_two_number")
    private String saleTwoNumber;

    /**
     * 销售员3水牌号
     */
    @Column(name = "sale_three_number")
    private String saleThreeNumber;

    /**
     * 销售员4水牌号
     */
    @Column(name = "sale_four_number")
    private String saleFourNumber;

    /**
     * 销售员1编码
     */
    @Column(name = "sale_one_staff_id")
    private Long saleOneStaffId;

    /**
     * 销售员2编码
     */
    @Column(name = "sale_two_staff_id")
    private Long saleTwoStaffId;

    /**
     * 销售员3编码
     */
    @Column(name = "sale_three_staff_id")
    private Long saleThreeStaffId;

    /**
     * 销售员4编码
     */
    @Column(name = "sale_four_staff_id")
    private Long saleFourStaffId;

    /**
     * 销售员1名称
     */
    @Column(name = "sale_one_staff_name")
    private String saleOneStaffName;

    /**
     * 销售员2名称
     */
    @Column(name = "sale_two_staff_name")
    private String saleTwoStaffName;

    /**
     * 销售员3名称
     */
    @Column(name = "sale_three_staff_name")
    private String saleThreeStaffName;

    /**
     * 销售员4名称
     */
    @Column(name = "sale_four_staff_name")
    private String saleFourStaffName;

    /**
     * 销售员1身份证号
     */
    @Column(name = "sale_one_identity")
    private String saleOneIdentity;

    /**
     * 销售员2身份证号
     */
    @Column(name = "sale_two_identity")
    private String saleTwoIdentity;

    /**
     * 销售员3身份证号
     */
    @Column(name = "sale_three_identity")
    private String saleThreeIdentity;

    /**
     * 销售员4身份证号
     */
    @Column(name = "sale_four_identity")
    private String saleFourIdentity;

    /**
     * 销售员1占比
     */
    @Column(name = "sale_one_ratio")
    private BigDecimal saleOneRatio;

    /**
     * 销售员2占比
     */
    @Column(name = "sale_two_ratio")
    private BigDecimal saleTwoRatio;

    /**
     * 销售员3占比
     */
    @Column(name = "sale_three_ratio")
    private BigDecimal saleThreeRatio;

    /**
     * 销售员4占比
     */
    @Column(name = "sale_four_ratio")
    private BigDecimal saleFourRatio;

    /**
     * 销售员1业绩
     */
    @Column(name = "sale_one_achievement_amount")
    private BigDecimal saleOneAchievementAmount;

    /**
     * 销售员2业绩
     */
    @Column(name = "sale_two_achievement_amount")
    private BigDecimal saleTwoAchievementAmount;

    /**
     * 销售员3业绩
     */
    @Column(name = "sale_three_achievement_amount")
    private BigDecimal saleThreeAchievementAmount;

    /**
     * 销售员4业绩
     */
    @Column(name = "sale_four_achievement_amount")
    private BigDecimal saleFourAchievementAmount;

    /**
     * 销售员1提成
     */
    @Column(name = "sale_one_commission_amount")
    private BigDecimal saleOneCommissionAmount;

    /**
     * 销售员2提成
     */
    @Column(name = "sale_two_commission_amount")
    private BigDecimal saleTwoCommissionAmount;

    /**
     * 销售员3提成
     */
    @Column(name = "sale_three_commission_amount")
    private BigDecimal saleThreeCommissionAmount;

    /**
     * 销售员4提成
     */
    @Column(name = "sale_four_commission_amount")
    private BigDecimal saleFourCommissionAmount;


//新增字段

    /**
     * 销售员5水牌号
     */
    @Column(name = "sale_five_number")
    private String saleFiveNumber;


    /**
     * 销售员5编码
     */
    @Column(name = "sale_five_staff_id")
    private Long saleFiveStaffId;

    /**
     * 销售员5名称
     */
    @Column(name = "sale_five_staff_name")
    private String saleFiveStaffName;

    /**
     * 销售员5身份证号
     */
    @Column(name = "sale_five_identity")
    private String saleFiveIdentity;

    /**
     * 销售员5占比
     */
    @Column(name = "sale_five_ratio")
    private BigDecimal saleFiveRatio;

    /**
     * 销售员5业绩
     */
    @Column(name = "salefive_achievement_amount")
    private BigDecimal saleFiveAchievementAmount;

    /**
     * 销售员5提成
     */
    @Column(name = "sale_five_commission_amount")
    private BigDecimal saleFiveCommissionAmount;


    /**
     * 销售员6水牌号
     */
    @Column(name = "sale_six_number")
    private String saleSixNumber;


    /**
     * 销售员6编码
     */
    @Column(name = "sale_six_staff_id")
    private Long saleSixStaffId;

    /**
     * 销售员6名称
     */
    @Column(name = "sale_six_staff_name")
    private String saleSixStaffName;

    /**
     * 销售员6身份证号
     */
    @Column(name = "sale_six_identity")
    private String saleSixIdentity;

    /**
     * 销售员6占比
     */
    @Column(name = "sale_six_ratio")
    private BigDecimal saleSixRatio;

    /**
     * 销售员6业绩
     */
    @Column(name = "salesix_achievement_amount")
    private BigDecimal saleSixAchievementAmount;

    /**
     * 销售员6提成
     */
    @Column(name = "sale_six_commission_amount")
    private BigDecimal saleSixCommissionAmount;


    /**
     * 销售员7水牌号
     */
    @Column(name = "sale_seven_number")
    private String saleSevenNumber;


    /**
     * 销售员7编码
     */
    @Column(name = "sale_seven_staff_id")
    private Long saleSevenStaffId;

    /**
     * 销售员7名称
     */
    @Column(name = "sale_seven_staff_name")
    private String saleSevenStaffName;

    /**
     * 销售员7身份证号
     */
    @Column(name = "sale_seven_identity")
    private String saleSevenIdentity;

    /**
     * 销售员7占比
     */
    @Column(name = "sale_seven_ratio")
    private BigDecimal saleSevenRatio;

    /**
     * 销售员7业绩
     */
    @Column(name = "saleseven_achievement_amount")
    private BigDecimal saleSevenAchievementAmount;

    /**
     * 销售员7提成
     */
    @Column(name = "sale_seven_commission_amount")
    private BigDecimal saleSevenCommissionAmount;


    /**
     * 销售员8水牌号
     */
    @Column(name = "sale_eight_number")
    private String saleEightNumber;


    /**
     * 销售员8编码
     */
    @Column(name = "sale_eight_staff_id")
    private Long saleEightStaffId;

    /**
     * 销售员8名称
     */
    @Column(name = "sale_eight_staff_name")
    private String saleEightStaffName;

    /**
     * 销售员8身份证号
     */
    @Column(name = "sale_eight_identity")
    private String saleEightIdentity;

    /**
     * 销售员8占比
     */
    @Column(name = "sale_eight_ratio")
    private BigDecimal saleEightRatio;

    /**
     * 销售员8业绩
     */
    @Column(name = "saleeight_achievement_amount")
    private BigDecimal saleEightAchievementAmount;

    /**
     * 销售员8提成
     */
    @Column(name = "sale_eight_commission_amount")
    private BigDecimal saleEightCommissionAmount;



}
