package com.ssm.manage.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.ssm.manage.entity.BaseProject;
import com.ssm.manage.entity.StoreSettlementProject;
import com.ssm.manage.page.BasePage;
import io.swagger.models.auth.In;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * (StoreSettlement)实体类
 *
 * @author makejava
 * @since 2022-04-12 17:01:05
 */


@Setter
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class StoreSettlementRequest extends BasePage implements Serializable {
    private static final long serialVersionUID = -64514278070459020L;
    /**
     * id
     */
    @Id
    private Long id;
    /**
     * 房间id
     */
    @Column(name = "room_id")
    private Long roomId;
    /**
     * 房间编码
     */
    @Column(name = "room_num")
    private String roomNum;
    /**
     * 房间名称
     */
    @Column(name = "room_name")
    private String roomName;
    /**
     * 房间手牌(床位)id
     */
    @Column(name = "room_hand_id")
    private Long roomHandId;
    /**
     * 服务开始时间（上钟）
     */
    @Column(name = "service_start_date")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date serviceStartDate;
    /**
     * 是否会员 1：是；0：否
     */
    @Column(name = "cash_number")
    private Integer cashNumber;
    /**
     * 会员编码
     */
    @Column(name = "member_id")
    private Long memberId;
    /**
     * 会员名称
     */
    @Column(name = "member_name")
    private String memberName;
    /**
     * 会员手机号
     */
    @Column(name = "mobile_phone")
    private String mobilePhone;
    /**
     * 会员身份证号
     */
    @Column(name = "member_identity_card")
    private String memberIdentityCard;
    /**
     * 会员卡
     */
    @Column(name = "card")
    private String card;
    /**
     * 项目编码
     */
    @Column(name = "project_id")
    private Long projectId;
    /**
     * 项目名称
     */
    @Column(name = "project_name")
    private String projectName;
    /**
     * 门店编码
     */
    @Column(name = "store_id")
    private Long storeId;
    /**
     * 门店名称
     */
    @Column(name = "store_name")
    private String storeName;
    /**
     * 散客价
     */
    @Column(name = "price")
    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;
    /**
     * 项目成交单价
     */
    @Column(name = "transaction_price")
    private BigDecimal transactionPrice;
    /**
     * 次数
     */
    @Column(name = "number_times")
    private Integer numberTimes;
    /**
     * 服务金额=项目成交单价*次数
     */
    @Column(name = "amount")
    private BigDecimal amount;
    /**
     * 现付金额
     */
    @Column(name = "collection_cash_amount")
    private BigDecimal collectionCashAmount;
    /**
     * 积分金额
     */
    @Column(name = "collection_integral_amount")
    private BigDecimal collectionIntegralAmount;
    /**
     * 使用积分
     */
    @Column(name = "integral")
    private Integer integral;
    /**
     * 消费赠送积分
     */
    @Column(name = "give_integral")
    private Integer giveIntegral;
    /**
     * 卡付金额
     */
    @Column(name = "collection_recharge_amount")
    private BigDecimal collectionRechargeAmount;
    /**
     * 赠品支付
     */
    @Column(name = "collection_gift_amount")
    private BigDecimal collectionGiftAmount;
    /**
     * 实收总额
     */
    @Column(name = "cash_amount")
    private BigDecimal cashAmount;
    /**
     * 大工现付业绩标准
     */
    @Column(name = "achievement_large")
    private BigDecimal achievementLarge;
    /**
     * 中工现付业绩标准
     */
    @Column(name = "achievement_zhonggong")
    private BigDecimal achievementZhonggong;
    /**
     * 技师现付业绩标准
     */
    @Column(name = "achievement_technician")
    private BigDecimal achievementTechnician;
    /**
     * 助理现付业绩标准
     */
    @Column(name = "achievement_small")
    private BigDecimal achievementSmall;
    /**
     * 大工现付提成标准
     */
    @Column(name = "commission_large")
    private BigDecimal commissionLarge;
    /**
     * 中工现付提成标准
     */
    @Column(name = "commission_zhonggong")
    private BigDecimal commissionZhonggong;
    /**
     * 技师现付提成标准
     */
    @Column(name = "commission_technician")
    private BigDecimal commissionTechnician;
    /**
     * 助理现付提成标准
     */
    @Column(name = "commission_small")
    private BigDecimal commissionSmall;
    /**
     * 卡付大工业绩标准
     */
    @Column(name = "card_achievement_large")
    private BigDecimal cardAchievementLarge;
    /**
     * 卡付中工业绩标准
     */
    @Column(name = "card_achievement_zhonggong")
    private BigDecimal cardAchievementZhonggong;
    /**
     * 卡付技师业绩标准
     */
    @Column(name = "card_achievement_technician")
    private BigDecimal cardAchievementTechnician;
    /**
     * 卡付助理业绩标准
     */
    @Column(name = "card_achievement_small")
    private BigDecimal cardAchievementSmall;
    /**
     * 卡付大工提成标准
     */
    @Column(name = "card_commission_large")
    private BigDecimal cardCommissionLarge;
    /**
     * 卡付中工提成标准
     */
    @Column(name = "card_commission_zhonggong")
    private BigDecimal cardCommissionZhonggong;
    /**
     * 卡付技师提成标准
     */
    @Column(name = "card_commission_technician")
    private BigDecimal cardCommissionTechnician;
    /**
     * 卡付助理提成标准
     */
    @Column(name = "card_commission_small")
    private BigDecimal cardCommissionSmall;
    /**
     * 技师1水牌号
     */
    @Column(name = "technician_one_number")
    private String technicianOneNumber;
    /**
     * 技师1编码（来源于员工档案）
     */
    @Column(name = "service_technician_one_staff_id")
    private Long serviceTechnicianOneStaffId;
    /**
     * 技师1名称（来源于员工档案）
     */
    @Column(name = "service_technician_one_staff_name")
    private String serviceTechnicianOneStaffName;
    /**
     * 技师1身份证号（来源于员工档案）
     */
    @Column(name = "service_technician_one_identity_card")
    private String serviceTechnicianOneIdentityCard;
    /**
     * 技师1业绩
     */
    @Column(name = "service_technician_one_achievement_amount")
    private BigDecimal serviceTechnicianOneAchievementAmount;
    /**
     * 技师1提成
     */
    @Column(name = "service_technician_one_commission_amount")
    private BigDecimal serviceTechnicianOneCommissionAmount;
    /**
     * 技师1占比
     */
    @Column(name = "service_technician_one_ratio")
    private BigDecimal serviceTechnicianOneRatio;
    /**
     * 赠送支付金额
     */
    @Column(name = "payment_amount")
    private BigDecimal paymentAmount;
    /**
     * 结算编码
     */
    @Column(name = "settlement_num")
    private String settlementNum;
    /**
     * 结算id
     */
    @Column(name = "settlement_id")
    private Long settlementId;
    /**
     * 状态：0=正常，1=作废
     */
    @Column(name = "state")
    private Integer state;
    /**
     * 服务结束时间（下钟）
     */
    @Column(name = "service_end_date")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date serviceEndDate;
    /**
     * 服务时长（时分秒）
     */
    @Column(name = "servicing_time")
    private Integer servicingTime;

    /**
     * 服务时长（时分秒）
     */
    @Column(name = "practical_servicing_time")
    private String practicalServicingTime;
    /**
     * 录单人ID
     */
    @Column(name = "input_id")
    private Long inputId;
    /**
     * 录单人名称
     */
    @Column(name = "input_by")
    private String inputBy;
    /**
     * 录单时间
     */
    @Column(name = "input_date")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date inputDate;
    /**
     * 修改人ID
     */
    @Column(name = "update_id")
    private Long updateId;
    /**
     * 修改人名称
     */
    @Column(name = "update_by")
    private String updateBy;
    /**
     * 修改时间
     */
    @Column(name = "update_date")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateDate;

    /**
     * 单据时间
     */
    @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;

    /**
     * 加钟（0=正常，1=加钟）
     */
    @Column(name = "renew")
    private Integer renew;

    /**
     * 会员消费是否打折
     */
    @Column(name = "no_discount")
    private Integer noDiscount;
    /**
     * 会员消费是否打折
     */
    @Column(name = "course_account_id")
    private Long courseAccountId;

    /**
     * 单据状态
     * @return
     */
    /**
     * 单据状态
     */
    @Column(name = "doc_state")
    private Integer docState;

    /**
     * 加钟固定时间：分钟（取整）
     */
    @Column(name = "overtime")
    private Integer overtime;
    /**
     * 加钟固定金额：金额
     */
    @Column(name = "overtime_money")
    private BigDecimal overtimeMoney;
    /**
     * 加钟固定金额：金额
     */
    @Column(name = "project_num")
    private String projectNum;
    /**
     * 手牌编码
     */
    @Column(name = "room_hand_num")
    private String roomHandNum;


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

    /**
     * 推销人员工编码
     */
    @Column(name = "staff_num")
    private String staffNum;

    /**
     * 推销人员工名称
     */
    @Column(name = "staff_name")
    private String staffName;
    /**
     * 推销人员工水牌号
     */
    @Column(name = "brand_number")
    private String brandNumber;

    /**
     * 推销人员工Id
     */
    @Column(name = "staff_id")
    private Long staffId;

    /**
     * 推销提成点
     */
    @Column(name = "market_comm")
    private BigDecimal marketComm;


    /**
     * 点钟提成点
     */
    @Column(name = "clock_comm")
    private BigDecimal clockComm;


    /**
     * 轮钟提成
     */
    @Column(name = "Round_clock_comm")
    private BigDecimal roundClockComm;


    /**
     * 是否点钟,0=否，1=是
     */
    @Column(name = "is_clock")
    private Integer isClock;


    /**
     * 数据性质，0=项目，1=商品
     */
    @Column(name = "project_nature")
    private Integer projectNature;


    /**
     * 推销提成点
     */
    @Column(name = "card_market_comm")
    private BigDecimal cardMarketComm;


    /**
     * 点钟提成点
     */
    @Column(name = "card_clock_comm")
    private BigDecimal cardClockComm;


    /**
     * 轮钟提成
     */
    @Column(name = "card_Round_clock_comm")
    private BigDecimal cardRoundClockComm;


    /**
     * 商品现付提成
     */
    @Column(name = "commodity_cash")
    private BigDecimal commodityCash;

    /**
     * 商品卡付提成
     */
    @Column(name = "commodity_card")
    private BigDecimal commodityCard;


    List<StoreSettlementProject> storeSettlementProjectList;
}

