package com.ssm.manage.query;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.ssm.manage.page.BasePage;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * (StoreConversion)实体类
 *
 * @author makejava
 * @since 2022-03-14 18:55:24
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class StoreConversionQuery extends BasePage {
    /**
     * id
     */
    @Id
    private Long id;

    private String oldBrandNumber;

    /**
     * 前门店ID
     */
    @Column(name = "store_id")
    private Long storeId;
    /**
     * 前门店编码
     */
    @Column(name = "store_num")
    private String storeNum;
    /**
     * 前门店名称
     */
    @Column(name = "store_name")
    private String storeName;
    /**
     * 后门店ID
     */
    @Column(name = "stores_id")
    private Long storesId;
    /**
     * 后门店编码
     */
    @Column(name = "stores_num")
    private String storesNum;
    /**
     * 后门店名称
     */
    @Column(name = "stores_name")
    private String storesName;
    /**
     * 状态（0=新增，1=送审，2=审批通过，3=审核不通过）
     */
    @Column(name = "statu")
    private Integer statu;
    /**
     * 修改人ID
     */
    @Column(name = "update_id")
    private Long updateId;
    /**
     * 修改人名称
     */
    @Column(name = "update_name")
    private String updateName;
    /**
     * 修改时间
     */
    @Column(name = "update_date")
    private Date updateDate;

    /**
     * 申请时间
     */
    @Column(name = "proposer_date")
    private Date proposerDate;

    /**
     * 申请人
     */
    @Column(name = "proposer_id")
    private Long proposerId;

    /**
     * 申请人名称
     */
    @Column(name = "proposer_name")
    private String proposerName;

    /**
     * 单据编码
     */
    @Column(name = "order_code")
    private String orderCode;


    /**
     * 申请人名称
     */
    @Column(name = "staff_id")
    private Long staffId;

    /**
     * 单据编码
     */
    @Column(name = "brand_number")
    private String brandNumber;


    /**
     * 申请人名称
     */
    @Column(name = "staff_name")
    private String staffName;

    /**
     * 单据编码
     */
    @Column(name = "staff_num")
    private String staffNum;

    List<Long> ids;

    /**
     * 性别：1：男；0：女
     */
    private Integer sex;

    /**
     * 手机
     */
    private String mobilePhone;

    /**
     * QQ
     */
    private String qq;

    /**
     * 微信
     */
    private String wechat;

    /**
     * 入职日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date joinedDate;

    /**
     * 离职日期
     */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date leaveDate;

    /**
     * 复职时间
     */
    @Column(name = "reinstate_date")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reinstateDate;

    /**
     * 密码
     */
    private String password;

    /**
     * 身份证号
     */
    private String identityCard;

    /**
     * 状态 1:在职  0 :离职  2停用
     */
    private Integer state;

    /**
     * 工种：1:美发师/2:技术/3:助理/4:收银员/5:美容师
     */
    private Integer job;

    /**
     * 职务：1:店长/2:美发经理/3:美容经理/4:总监/51~59:美发师1级到9级/6:员工
     */
    private Integer grade;


    /**
     * 简介
     */
    private String briefIntroduction;

    /**
     * 擅长
     */
    private String goodAt;

    /**
     * 人气
     */
    private Integer popularity;

    /**
     * 是否用户：1:是用户/0:不是用户
     */
    private Integer userState;

    /**
     * 用户角色编码
     */
    private String roleNum;

    /**
     * 用户角色名称
     */
    private String roleName;


    /**
     * 父門店ID
     */
    private String parentId;


    /**
     * 是否排班   0:不排班/1:排班
     */
    private Integer row;

    /**
     * 月度任务
     */
    private String monthTask;

    /**
     * 底薪
     */
    private BigDecimal baseSalary;

    /**
     * 提成比率
     */
    private BigDecimal monthRatio;

    /**
     * 超额业绩：小于等于1表示超额比率，大于1表示金额
     */
    private BigDecimal monthHigherOne;

    /**
     * 超额提成：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthHigherOneRatio;

    /**
     * 超额业绩：小于等于1表示超额比率，大于1表示金额
     */
    private BigDecimal monthHigherTwo;

    /**
     * 超额提成：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthHigherTwoRatio;

    /**
     * 超额业绩：小于等于1表示超额比率，大于1表示金额
     */
    private BigDecimal monthHigherThree;

    /**
     * 超额提成：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthHigherThreeRatio;

    /**
     * 超额业绩：小于等于1表示超额比率，大于1表示金额
     */
    private BigDecimal monthHigherFour;

    /**
     * 超额提成：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthHigherFourRatio;

    /**
     * 未达标业绩：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerOne;

    /**
     * 未达标扣款：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerOneRatio;

    /**
     * 未达标业绩：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerTwo;

    /**
     * 未达标扣款：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerTwoRatio;

    /**
     * 未达标业绩：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerThree;

    /**
     * 未达标扣款：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerThreeRatio;


    /**
     * 未达标业绩：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerFour;

    /**
     * 未达标业绩：小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal monthLowerFourRatio;

    /**
     * 充值业绩任务
     */
    @Column(name = "recharge_achi")
    private BigDecimal rechargeAchi;

    /**
     * 疗程业绩任务
     */
    @Column(name = "course_achi")
    private BigDecimal courseAchi;

    /**
     * 服务单业绩任务
     */
    @Column(name = "cash_achi")
    private BigDecimal cashAchi;


    /*
     * 验证码
     * */
    private String passCode;

    /*
     * 新密码
     * */
    private String newPassword;

    /*
     * 业绩占比
     * */
    private BigDecimal ratio;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    private BigDecimal cardAchi;
    private BigDecimal cardComm;

    //业务员现付业绩
    private BigDecimal cashCashAchi;
    private BigDecimal cashComm;

    @Column(name = "source")
    private Integer source;

    /**
     * 员工类型
     */
    @Column(name = "type")
    @ExcelProperty("员工类型(员工类别（0=管理者，1=普通员工）)")
    private Integer type;


    //总店登录使用
    private Long reason;

    /**
     * 员工部门
     */
    @Column(name = "dept_name")
    @ExcelProperty("员工类型(员工类别（0=管理者，1=普通员工）)")
    private Integer deptName;


    //门店编码(转店前)
    private Long storeCodeBefore;


    //门店名称(转店前)
    private String storeNameBefore;

    //重复水牌号标识
    private Integer tag;
}

