package com.ssm.manage.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ssm.manage.utils.DateUtils;

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

/**
 * (ServiceProject)实体类
 *
 * @author makejava
 * @since 2022-05-10 12:05:11
 */
@Table(name = "service_project_${tab}")
public class ServiceProject implements Serializable {
    private static final long serialVersionUID = 200902542830383980L;
    /**
     * id
     */
    @Id
    private Long id;
    /**
     * 项目编码
     */
    @Column(name = "project_id")
    private Long projectId;
    /**
     * 项目名称
     */
    @Column(name = "project_name")
    private String projectName;
    /**
     * 大工现付业绩标准
     */
    @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;
    /**
     * 疗程付使用疗程账户ID
     */
    @Column(name = "course_account_id")
    private Long courseAccountId;
    /**
     * 标准服务时间（分钟）
     */
    @Column(name = "servicing_time")
    private String servicingTime;
    /**
     * 消费是否会员不打折（0=打折，1=不打折）
     */
    @Column(name = "no_discount")
    private Integer noDiscount;
    /**
     * 加钟固定时间：分钟（取整）
     */
    @Column(name = "overtime")
    private Integer overtime;
    /**
     * 加钟固定金额：金额
     */
    @Column(name = "overtime_money")
    private BigDecimal overtimeMoney;
    /**
     * 现付金额
     */
    @Column(name = "collection_cash_amount")
    private BigDecimal collectionCashAmount;
    /**
     * 卡付金额
     */
    @Column(name = "collection_recharge_amount")
    private BigDecimal collectionRechargeAmount;
    /**
     * 散客价
     */
    @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;
    /**
     * 主表id
     */
    @Column(name = "service_order_id")
    private Long serviceOrderId;
    /**
     * 赠品支付
     */
    @Column(name = "collection_gift_amount")
    private Integer collectionGiftAmount;
    /**
     * 实收总额
     */
    @Column(name = "cash_amount")
    private BigDecimal cashAmount;
    /**
     * 单据时间（用于分月表）
     */
    @Column(name = "doc_date")
    private Date docDate;


    /**
     * 加钟（0=正常，1=加钟）
     */
    @Column(name = "renew")
    private Integer renew;
    /**
     * 成交金额
     */
    @Column(name = "amount")
    private BigDecimal amount;

    /**
     * 次数
     */
    @Column(name = "number_times")
    private BigDecimal numberTimes;

    public ServiceProject() {
    }

    public ServiceProject(Long id, Long projectId, String projectName, BigDecimal achievementLarge, BigDecimal achievementZhonggong, BigDecimal achievementTechnician, BigDecimal achievementSmall, BigDecimal commissionLarge, BigDecimal commissionZhonggong, BigDecimal commissionTechnician, BigDecimal commissionSmall, BigDecimal cardAchievementLarge, BigDecimal cardAchievementZhonggong, BigDecimal cardAchievementTechnician, BigDecimal cardAchievementSmall, BigDecimal cardCommissionLarge, BigDecimal cardCommissionZhonggong, BigDecimal cardCommissionTechnician, BigDecimal cardCommissionSmall, Long courseAccountId, String servicingTime, Integer noDiscount, Integer overtime, BigDecimal overtimeMoney, BigDecimal collectionCashAmount, BigDecimal collectionRechargeAmount, BigDecimal price, BigDecimal minumumPrice, BigDecimal priceMember, BigDecimal minumumPriceMember, BigDecimal transactionPrice, Long serviceOrderId, Integer collectionGiftAmount, BigDecimal cashAmount, Date docDate, Integer renew, BigDecimal amount, BigDecimal numberTimes) {
        this.id = id;
        this.projectId = projectId;
        this.projectName = projectName;
        this.achievementLarge = achievementLarge;
        this.achievementZhonggong = achievementZhonggong;
        this.achievementTechnician = achievementTechnician;
        this.achievementSmall = achievementSmall;
        this.commissionLarge = commissionLarge;
        this.commissionZhonggong = commissionZhonggong;
        this.commissionTechnician = commissionTechnician;
        this.commissionSmall = commissionSmall;
        this.cardAchievementLarge = cardAchievementLarge;
        this.cardAchievementZhonggong = cardAchievementZhonggong;
        this.cardAchievementTechnician = cardAchievementTechnician;
        this.cardAchievementSmall = cardAchievementSmall;
        this.cardCommissionLarge = cardCommissionLarge;
        this.cardCommissionZhonggong = cardCommissionZhonggong;
        this.cardCommissionTechnician = cardCommissionTechnician;
        this.cardCommissionSmall = cardCommissionSmall;
        this.courseAccountId = courseAccountId;
        this.servicingTime = servicingTime;
        this.noDiscount = noDiscount;
        this.overtime = overtime;
        this.overtimeMoney = overtimeMoney;
        this.collectionCashAmount = collectionCashAmount;
        this.collectionRechargeAmount = collectionRechargeAmount;
        this.price = price;
        this.minumumPrice = minumumPrice;
        this.priceMember = priceMember;
        this.minumumPriceMember = minumumPriceMember;
        this.transactionPrice = transactionPrice;
        this.serviceOrderId = serviceOrderId;
        this.collectionGiftAmount = collectionGiftAmount;
        this.cashAmount = cashAmount;
        this.docDate = docDate;
        this.renew = renew;
        this.amount = amount;
        this.numberTimes = numberTimes;
    }

    public BigDecimal getNumberTimes() {
        return numberTimes;
    }

    public void setNumberTimes(BigDecimal numberTimes) {
        this.numberTimes = numberTimes;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getRenew() {
        return renew;
    }

    public void setRenew(Integer renew) {
        this.renew = renew;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public BigDecimal getAchievementLarge() {
        return achievementLarge;
    }

    public void setAchievementLarge(BigDecimal achievementLarge) {
        this.achievementLarge = achievementLarge;
    }

    public BigDecimal getAchievementZhonggong() {
        return achievementZhonggong;
    }

    public void setAchievementZhonggong(BigDecimal achievementZhonggong) {
        this.achievementZhonggong = achievementZhonggong;
    }

    public BigDecimal getAchievementTechnician() {
        return achievementTechnician;
    }

    public void setAchievementTechnician(BigDecimal achievementTechnician) {
        this.achievementTechnician = achievementTechnician;
    }

    public BigDecimal getAchievementSmall() {
        return achievementSmall;
    }

    public void setAchievementSmall(BigDecimal achievementSmall) {
        this.achievementSmall = achievementSmall;
    }

    public BigDecimal getCommissionLarge() {
        return commissionLarge;
    }

    public void setCommissionLarge(BigDecimal commissionLarge) {
        this.commissionLarge = commissionLarge;
    }

    public BigDecimal getCommissionZhonggong() {
        return commissionZhonggong;
    }

    public void setCommissionZhonggong(BigDecimal commissionZhonggong) {
        this.commissionZhonggong = commissionZhonggong;
    }

    public BigDecimal getCommissionTechnician() {
        return commissionTechnician;
    }

    public void setCommissionTechnician(BigDecimal commissionTechnician) {
        this.commissionTechnician = commissionTechnician;
    }

    public BigDecimal getCommissionSmall() {
        return commissionSmall;
    }

    public void setCommissionSmall(BigDecimal commissionSmall) {
        this.commissionSmall = commissionSmall;
    }

    public BigDecimal getCardAchievementLarge() {
        return cardAchievementLarge;
    }

    public void setCardAchievementLarge(BigDecimal cardAchievementLarge) {
        this.cardAchievementLarge = cardAchievementLarge;
    }

    public BigDecimal getCardAchievementZhonggong() {
        return cardAchievementZhonggong;
    }

    public void setCardAchievementZhonggong(BigDecimal cardAchievementZhonggong) {
        this.cardAchievementZhonggong = cardAchievementZhonggong;
    }

    public BigDecimal getCardAchievementTechnician() {
        return cardAchievementTechnician;
    }

    public void setCardAchievementTechnician(BigDecimal cardAchievementTechnician) {
        this.cardAchievementTechnician = cardAchievementTechnician;
    }

    public BigDecimal getCardAchievementSmall() {
        return cardAchievementSmall;
    }

    public void setCardAchievementSmall(BigDecimal cardAchievementSmall) {
        this.cardAchievementSmall = cardAchievementSmall;
    }

    public BigDecimal getCardCommissionLarge() {
        return cardCommissionLarge;
    }

    public void setCardCommissionLarge(BigDecimal cardCommissionLarge) {
        this.cardCommissionLarge = cardCommissionLarge;
    }

    public BigDecimal getCardCommissionZhonggong() {
        return cardCommissionZhonggong;
    }

    public void setCardCommissionZhonggong(BigDecimal cardCommissionZhonggong) {
        this.cardCommissionZhonggong = cardCommissionZhonggong;
    }

    public BigDecimal getCardCommissionTechnician() {
        return cardCommissionTechnician;
    }

    public void setCardCommissionTechnician(BigDecimal cardCommissionTechnician) {
        this.cardCommissionTechnician = cardCommissionTechnician;
    }

    public BigDecimal getCardCommissionSmall() {
        return cardCommissionSmall;
    }

    public void setCardCommissionSmall(BigDecimal cardCommissionSmall) {
        this.cardCommissionSmall = cardCommissionSmall;
    }

    public Long getCourseAccountId() {
        return courseAccountId;
    }

    public void setCourseAccountId(Long courseAccountId) {
        this.courseAccountId = courseAccountId;
    }

    public String getServicingTime() {
        return servicingTime;
    }

    public void setServicingTime(String servicingTime) {
        this.servicingTime = servicingTime;
    }

    public Integer getNoDiscount() {
        return noDiscount;
    }

    public void setNoDiscount(Integer noDiscount) {
        this.noDiscount = noDiscount;
    }

    public Integer getOvertime() {
        return overtime;
    }

    public void setOvertime(Integer overtime) {
        this.overtime = overtime;
    }

    public BigDecimal getOvertimeMoney() {
        return overtimeMoney;
    }

    public void setOvertimeMoney(BigDecimal overtimeMoney) {
        this.overtimeMoney = overtimeMoney;
    }

    public BigDecimal getCollectionCashAmount() {
        return collectionCashAmount;
    }

    public void setCollectionCashAmount(BigDecimal collectionCashAmount) {
        this.collectionCashAmount = collectionCashAmount;
    }

    public BigDecimal getCollectionRechargeAmount() {
        return collectionRechargeAmount;
    }

    public void setCollectionRechargeAmount(BigDecimal collectionRechargeAmount) {
        this.collectionRechargeAmount = collectionRechargeAmount;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getMinumumPrice() {
        return minumumPrice;
    }

    public void setMinumumPrice(BigDecimal minumumPrice) {
        this.minumumPrice = minumumPrice;
    }

    public BigDecimal getPriceMember() {
        return priceMember;
    }

    public void setPriceMember(BigDecimal priceMember) {
        this.priceMember = priceMember;
    }

    public BigDecimal getMinumumPriceMember() {
        return minumumPriceMember;
    }

    public void setMinumumPriceMember(BigDecimal minumumPriceMember) {
        this.minumumPriceMember = minumumPriceMember;
    }

    public BigDecimal getTransactionPrice() {
        return transactionPrice;
    }

    public void setTransactionPrice(BigDecimal transactionPrice) {
        this.transactionPrice = transactionPrice;
    }

    public Long getServiceOrderId() {
        return serviceOrderId;
    }

    public void setServiceOrderId(Long serviceOrderId) {
        this.serviceOrderId = serviceOrderId;
    }

    public Integer getCollectionGiftAmount() {
        return collectionGiftAmount;
    }

    public void setCollectionGiftAmount(Integer collectionGiftAmount) {
        this.collectionGiftAmount = collectionGiftAmount;
    }

    public BigDecimal getCashAmount() {
        return cashAmount;
    }

    public void setCashAmount(BigDecimal cashAmount) {
        this.cashAmount = cashAmount;
    }

    public Date getDocDate() {
        return docDate;
    }

    public void setDocDate(Date docDate) {
        this.docDate = docDate;
    }

    @JsonIgnore
    public String getTab(){
        return DateUtils.YMFormat(docDate);
    }
}

