package com.ssm.manage.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.models.auth.In;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;

@Table(name = "base_project")
@FieldNameConstants
public class BaseProject implements Serializable {
    @Getter
    @Setter
    private CooperateList cooperateList;

    @Column(name = "cooperate_id")
    @Getter
    @Setter
    private Long cooperateId;

    @Transient
    @Getter
    @Setter
    private BigDecimal totalPrice;
    /**
     * 主键ID
     */
    @Id
    @ExcelIgnore
    private Long id;


    @ExcelIgnore
    private Long newId;
    /**
     * 门店ID
     */
    @Column(name = "store_id")
    @ExcelIgnore
    private Long storeId;

    /**
     * 建立人（用户名称（用户编码）），来源于员工档案
     */
    @Column(name = "founder_staff")
    @ExcelIgnore
    private String founderStaff;

    /**
     * 建立时间
     */
    @Column(name = "Founder_datetime")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelIgnore
    private Date founderDatetime;

    /**
     * 最近修改人（用户名称（用户编码）），来源于员工档案
     */
    @Column(name = "modify_by")
    @ExcelIgnore
    private String modifyBy;

    /**
     * 最近修改时间
     */
    @Column(name = "modify_datetime")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelIgnore
    private Date modifyDatetime;


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

    /**
     * 项目编码
     */
    @Column(name = "project_num")
    @ExcelProperty(index = 3)
    private String projectNum;

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

    /**
     * 状态 1：正常；0 停用
     */
    @ExcelProperty(index = 2)
    private Integer state;

    /**
     * 标签
     */
    @ExcelProperty(index = 11)
    private String label;

    /**
     * 黄金间隔期
     */
    @Column(name = "gold_interval")
    @ExcelProperty(index = 13)
    private Integer goldInterval;

    /**
     * 长发操作时长
     */
    @Column(name = "long_operation_time")
    @ExcelProperty(index = 14)
    private Integer longOperationTime;

    /**
     * 中发操作时长
     */
    @Column(name = "moderate_operation_time")
    @ExcelProperty(index = 15)
    private Integer moderateOperationTime;

    /**
     * 短发操作时长
     */
    @Column(name = "short_operation_time")
    @ExcelProperty(index = 16)
    private Integer shortOperationTime;





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

    /**
     * 直接消费（1:是，0：否）
     */
    @Column(name = "direct_consumption")
    @ExcelProperty(index = 10)
    private Integer directConsumption;

    /**
     * 散客价
     */
    @ExcelProperty(index = 5)
    private BigDecimal price;

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

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

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

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

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

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

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

    /**
     * 大工现付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "achievement_large")
    @ExcelProperty(index = 21)
    private BigDecimal achievementLarge;

    /**
     * 中工现付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "achievement_zhonggong")
    @ExcelProperty(index = 25)
    private BigDecimal achievementZhonggong;

    /**
     * 技师现付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "achievement_technician")
    @ExcelProperty(index = 29)
    private BigDecimal achievementTechnician;

    /**
     * 助理现付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "achievement_small")
    @ExcelProperty(index = 33)
    private BigDecimal achievementSmall;

    /**
     * 大工现付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "commission_large")
    @ExcelProperty(index = 23)
    private BigDecimal commissionLarge;

    /**
     * 中工现付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "commission_zhonggong")
    @ExcelProperty(index = 27)
    private BigDecimal commissionZhonggong;

    /**
     * 技师现付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "commission_technician")
    @ExcelProperty(index = 31)
    private BigDecimal commissionTechnician;

    /**
     * 助理现付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "commission_small")
    @ExcelProperty(index = 35)
    private BigDecimal commissionSmall;

    /**
     * 大工卡付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_achievement_large")
    @ExcelProperty(index = 22)
    private BigDecimal cardAchievementLarge;

    /**
     * 中工卡付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_achievement_zhonggong")
    @ExcelProperty(index = 26)
    private BigDecimal cardAchievementZhonggong;

    /**
     * 技师卡付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_achievement_technician")
    @ExcelProperty(index = 30)
    private BigDecimal cardAchievementTechnician;

    /**
     * 助理卡付业绩标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_achievement_small")
    @ExcelProperty(index = 34)
    private BigDecimal cardAchievementSmall;

    /**
     * 大工卡付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_commission_large")
    @ExcelProperty(index = 24)
    private BigDecimal cardCommissionLarge;

    /**
     * 中工卡付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_commission_zhonggong")
    @ExcelProperty(index = 28)
    private BigDecimal cardCommissionZhonggong;

    /**
     * 技师卡付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_commission_technician")
    @ExcelProperty(index = 32)
    private BigDecimal cardCommissionTechnician;

    /**
     * 助理卡付提成标准，小于1比率，大于等于1固定金额
     */
    @Column(name = "card_commission_small")
    @ExcelProperty(index = 36)
    private BigDecimal cardCommissionSmall;

    /**
     * 项目类别ID
     */
    @Column(name = "project_type_id")
    @ExcelProperty(index = 0)
    private Long projectTypeId;

    /**
     * 项目类别名称
     */
    @Column(name = "project_type_name")
    @ExcelProperty(index = 1)
    private String projectTypeName;



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

    /**
     * 合作项目抽佣比例
     */
    @Column(name = "brokerage")
    @ExcelProperty(index = 38)
    private BigDecimal brokerage;

    /**
     * 消费是否会员不打折（0=打折，1=不打折）
     */
    @Column(name = "no_discount")
    @ExcelProperty(index = 39)
    private Integer noDiscount;

    /**
     * 是否合作项目
     */
    @Column(name = "is_cooperation")
    @ExcelProperty(index = 40)
    private Integer isCooperation;

    /**
     * 门店类别/1=美容店/2=理发店
     */
    @Column(name = "store_type")
    @ExcelProperty(index = 41)
    private Integer storeType;

    /**
     * 项目类型编码
     */
    @Column(name = "project_type_num")
    @ExcelProperty(index = 42)
    private String projectTypeNum;

    /**
     * 最高散客价
     */
    @Column(name = "top_price")
    @ExcelProperty(index = 43)
    private BigDecimal topPrice;

    /**
     * 最高会员价
     */
    @Column(name = "top_price_member")
    @ExcelProperty(index = 44)
    private BigDecimal topPriceMember;

    /**
     * 抽佣方式，0=固定，1=比例
     */
    @Column(name = "smoke_commission_way")
    @ExcelProperty(index = 40)
    private Integer smokeCommissionWay;


    /**
     * 销售截止日期
     * */
    @Column(name = "sales_deadline")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(index = 45)
    private String salesDeadline;

    @Column(name = "unified_due")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String unifiedDue;

    @Column(name = "servicing_time")
    private Integer servicingTime;

    @Column(name = "overtime")
    private String overtime;

    @Column(name = "overtime_money")
    private BigDecimal overtimeMoney;

    /**
     * 推销提成点
     */
    @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 = "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;
    /**
     * 部门(0=美发，1=美容，2=其他)
     */
    @Column(name = "dept_name")
    private Integer deptName;


    /**
     * 是否允许卡付（0=允许，1=不允许）
     */
    @Column(name = "is_card_pay")
    private Integer isCardPay;



    public Integer getSmokeCommissionWay() {
        return smokeCommissionWay;
    }

    public void setSmokeCommissionWay(Integer smokeCommissionWay) {
        this.smokeCommissionWay = smokeCommissionWay;
    }

    public Integer getIsCardPay() {
        return isCardPay;
    }

    public void setIsCardPay(Integer isCardPay) {
        this.isCardPay = isCardPay;
    }

    public Integer getDeptName() {
        return deptName;
    }

    public void setDeptName(Integer deptName) {
        this.deptName = deptName;
    }

    public BigDecimal getCommodityCash() {
        return commodityCash;
    }

    public void setCommodityCash(BigDecimal commodityCash) {
        this.commodityCash = commodityCash;
    }

    public BigDecimal getCommodityCard() {
        return commodityCard;
    }

    public void setCommodityCard(BigDecimal commodityCard) {
        this.commodityCard = commodityCard;
    }

    public BigDecimal getCardMarketComm() {
        return cardMarketComm;
    }

    public void setCardMarketComm(BigDecimal cardMarketComm) {
        this.cardMarketComm = cardMarketComm;
    }

    public BigDecimal getCardClockComm() {
        return cardClockComm;
    }

    public void setCardClockComm(BigDecimal cardClockComm) {
        this.cardClockComm = cardClockComm;
    }

    public BigDecimal getCardRoundClockComm() {
        return cardRoundClockComm;
    }

    public void setCardRoundClockComm(BigDecimal cardRoundClockComm) {
        this.cardRoundClockComm = cardRoundClockComm;
    }

    public Integer getProjectNature() {
        return projectNature;
    }

    public void setProjectNature(Integer projectNature) {
        this.projectNature = projectNature;
    }

    public BigDecimal getMarketComm() {
        return marketComm;
    }

    public void setMarketComm(BigDecimal marketComm) {
        this.marketComm = marketComm;
    }

    public BigDecimal getClockComm() {
        return clockComm;
    }

    public void setClockComm(BigDecimal clockComm) {
        this.clockComm = clockComm;
    }

    public BigDecimal getRoundClockComm() {
        return roundClockComm;
    }

    public void setRoundClockComm(BigDecimal roundClockComm) {
        this.roundClockComm = roundClockComm;
    }

    public String getOvertime() {
        return overtime;
    }

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

    public BigDecimal getOvertimeMoney() {
        return overtimeMoney;
    }

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

    private static final long serialVersionUID = 1L;


    public BigDecimal getTopPrice() {
        return topPrice;
    }

    public void setTopPrice(BigDecimal topPrice) {
        this.topPrice = topPrice;
    }

    public BigDecimal getTopPriceMember() {
        return topPriceMember;
    }

    public void setTopPriceMember(BigDecimal topPriceMember) {
        this.topPriceMember = topPriceMember;
    }

    public Integer getServicingTime() {
        return servicingTime;
    }

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

    /**
     * 获取主键ID
     *
     * @return id - 主键ID
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置主键ID
     *
     * @param id 主键ID
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取项目编码
     *
     * @return project_num - 项目编码
     */
    public String getProjectNum() {
        return projectNum;
    }

    /**
     * 设置项目编码
     *
     * @param projectNum 项目编码
     */
    public void setProjectNum(String projectNum) {
        this.projectNum = projectNum;
    }

    /**
     * 获取项目名称
     *
     * @return project_name - 项目名称
     */
    public String getProjectName() {
        return projectName;
    }

    /**
     * 设置项目名称
     *
     * @param projectName 项目名称
     */
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    /**
     * 获取状态 1：正常；0 停用
     *
     * @return state - 状态 1：正常；0 停用
     */
    public Integer getState() {
        return state;
    }

    /**
     * 设置状态 1：正常；0 停用
     *
     * @param state 状态 1：正常；0 停用
     */
    public void setState(Integer state) {
        this.state = state;
    }

    /**
     * 获取标签
     *
     * @return label - 标签
     */
    public String getLabel() {
        return label;
    }

    /**
     * 设置标签
     *
     * @param label 标签
     */
    public void setLabel(String label) {
        this.label = label;
    }

    /**
     * 获取黄金间隔期
     *
     * @return gold_interval - 黄金间隔期
     */
    public Integer getGoldInterval() {
        return goldInterval;
    }

    /**
     * 设置黄金间隔期
     *
     * @param goldInterval 黄金间隔期
     */
    public void setGoldInterval(Integer goldInterval) {
        this.goldInterval = goldInterval;
    }

    /**
     * 获取长发操作时长
     *
     * @return long_operation_time - 长发操作时长
     */
    public Integer getLongOperationTime() {
        return longOperationTime;
    }

    /**
     * 设置长发操作时长
     *
     * @param longOperationTime 长发操作时长
     */
    public void setLongOperationTime(Integer longOperationTime) {
        this.longOperationTime = longOperationTime;
    }

    /**
     * 获取中发操作时长
     *
     * @return moderate_operation_time - 中发操作时长
     */
    public Integer getModerateOperationTime() {
        return moderateOperationTime;
    }

    /**
     * 设置中发操作时长
     *
     * @param moderateOperationTime 中发操作时长
     */
    public void setModerateOperationTime(Integer moderateOperationTime) {
        this.moderateOperationTime = moderateOperationTime;
    }

    /**
     * 获取短发操作时长
     *
     * @return short_operation_time - 短发操作时长
     */
    public Integer getShortOperationTime() {
        return shortOperationTime;
    }

    /**
     * 设置短发操作时长
     *
     * @param shortOperationTime 短发操作时长
     */
    public void setShortOperationTime(Integer shortOperationTime) {
        this.shortOperationTime = shortOperationTime;
    }

    /**
     * 获取建立人（用户名称（用户编码）），来源于员工档案
     *
     * @return founder_staff - 建立人（用户名称（用户编码）），来源于员工档案
     */
    public String getFounderStaff() {
        return founderStaff;
    }

    /**
     * 设置建立人（用户名称（用户编码）），来源于员工档案
     *
     * @param founderStaff 建立人（用户名称（用户编码）），来源于员工档案
     */
    public void setFounderStaff(String founderStaff) {
        this.founderStaff = founderStaff;
    }

    /**
     * 获取建立时间
     *
     * @return Founder_datetime - 建立时间
     */
    public Date getFounderDatetime() {
        return founderDatetime;
    }

    /**
     * 设置建立时间
     *
     * @param founderDatetime 建立时间
     */
    public void setFounderDatetime(Date founderDatetime) {
        this.founderDatetime = founderDatetime;
    }

    /**
     * 获取最近修改人（用户名称（用户编码）），来源于员工档案
     *
     * @return modify_by - 最近修改人（用户名称（用户编码）），来源于员工档案
     */
    public String getModifyBy() {
        return modifyBy;
    }

    /**
     * 设置最近修改人（用户名称（用户编码）），来源于员工档案
     *
     * @param modifyBy 最近修改人（用户名称（用户编码）），来源于员工档案
     */
    public void setModifyBy(String modifyBy) {
        this.modifyBy = modifyBy;
    }

    /**
     * 获取最近修改时间
     *
     * @return modify_datetime - 最近修改时间
     */
    public Date getModifyDatetime() {
        return modifyDatetime;
    }

    /**
     * 设置最近修改时间
     *
     * @param modifyDatetime 最近修改时间
     */
    public void setModifyDatetime(Date modifyDatetime) {
        this.modifyDatetime = modifyDatetime;
    }

    /**
     * 获取单次最小销售次数
     *
     * @return minumum_times - 单次最小销售次数
     */
    public Integer getMinumumTimes() {
        return minumumTimes;
    }

    /**
     * 设置单次最小销售次数
     *
     * @param minumumTimes 单次最小销售次数
     */
    public void setMinumumTimes(Integer minumumTimes) {
        this.minumumTimes = minumumTimes;
    }

    /**
     * 获取直接消费（1:是，0：否）
     *
     * @return direct_consumption - 直接消费（1:是，0：否）
     */
    public Integer getDirectConsumption() {
        return directConsumption;
    }

    /**
     * 设置直接消费（1:是，0：否）
     *
     * @param directConsumption 直接消费（1:是，0：否）
     */
    public void setDirectConsumption(Integer directConsumption) {
        this.directConsumption = directConsumption;
    }

    /**
     * 获取散客价
     *
     * @return price - 散客价
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * 设置散客价
     *
     * @param price 散客价
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    /**
     * 获取最低散客价
     *
     * @return minumum_price - 最低散客价
     */
    public BigDecimal getMinumumPrice() {
        return minumumPrice;
    }

    /**
     * 设置最低散客价
     *
     * @param minumumPrice 最低散客价
     */
    public void setMinumumPrice(BigDecimal minumumPrice) {
        this.minumumPrice = minumumPrice;
    }

    /**
     * 获取会员价
     *
     * @return price_member - 会员价
     */
    public BigDecimal getPriceMember() {
        return priceMember;
    }

    /**
     * 设置会员价
     *
     * @param priceMember 会员价
     */
    public void setPriceMember(BigDecimal priceMember) {
        this.priceMember = priceMember;
    }

    /**
     * 获取最低会员价
     *
     * @return minumum_price_member - 最低会员价
     */
    public BigDecimal getMinumumPriceMember() {
        return minumumPriceMember;
    }

    /**
     * 设置最低会员价
     *
     * @param minumumPriceMember 最低会员价
     */
    public void setMinumumPriceMember(BigDecimal minumumPriceMember) {
        this.minumumPriceMember = minumumPriceMember;
    }

    /**
     * 获取现付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     *
     * @return sales_achievement - 现付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     */
    public BigDecimal getSalesAchievement() {
        return salesAchievement;
    }

    /**
     * 设置现付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     *
     * @param salesAchievement 现付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     */
    public void setSalesAchievement(BigDecimal salesAchievement) {
        this.salesAchievement = salesAchievement;
    }

    /**
     * 获取现付销售提成，大于1表示固定提成，小于等于1表示比率提成 
     *
     * @return sales_commission - 现付销售提成，大于1表示固定提成，小于等于1表示比率提成 
     */
    public BigDecimal getSalesCommission() {
        return salesCommission;
    }

    /**
     * 设置现付销售提成，大于1表示固定提成，小于等于1表示比率提成 
     *
     * @param salesCommission 现付销售提成，大于1表示固定提成，小于等于1表示比率提成 
     */
    public void setSalesCommission(BigDecimal salesCommission) {
        this.salesCommission = salesCommission;
    }

    /**
     * 获取卡付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     *
     * @return card_sales_achievement - 卡付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     */
    public BigDecimal getCardSalesAchievement() {
        return cardSalesAchievement;
    }

    /**
     * 设置卡付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     *
     * @param cardSalesAchievement 卡付销售业绩，大于1表示固定业绩，小于等于1表示比率业绩
     */
    public void setCardSalesAchievement(BigDecimal cardSalesAchievement) {
        this.cardSalesAchievement = cardSalesAchievement;
    }

    /**
     * 获取卡付销售提成，大于1表示固定提成，小于等于1表示比率提成
     *
     * @return card_sales_commission - 卡付销售提成，大于1表示固定提成，小于等于1表示比率提成
     */
    public BigDecimal getCardSalesCommission() {
        return cardSalesCommission;
    }

    /**
     * 设置卡付销售提成，大于1表示固定提成，小于等于1表示比率提成
     *
     * @param cardSalesCommission 卡付销售提成，大于1表示固定提成，小于等于1表示比率提成
     */
    public void setCardSalesCommission(BigDecimal cardSalesCommission) {
        this.cardSalesCommission = cardSalesCommission;
    }

    /**
     * 获取大工现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return achievement_large - 大工现付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getAchievementLarge() {
        return achievementLarge;
    }

    /**
     * 设置大工现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param achievementLarge 大工现付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setAchievementLarge(BigDecimal achievementLarge) {
        this.achievementLarge = achievementLarge;
    }

    /**
     * 获取中工现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return achievement_zhonggong - 中工现付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getAchievementZhonggong() {
        return achievementZhonggong;
    }

    /**
     * 设置中工现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param achievementZhonggong 中工现付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setAchievementZhonggong(BigDecimal achievementZhonggong) {
        this.achievementZhonggong = achievementZhonggong;
    }

    /**
     * 获取技师现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return achievement_technician - 技师现付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getAchievementTechnician() {
        return achievementTechnician;
    }

    /**
     * 设置技师现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param achievementTechnician 技师现付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setAchievementTechnician(BigDecimal achievementTechnician) {
        this.achievementTechnician = achievementTechnician;
    }

    /**
     * 获取助理现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return achievement_small - 助理现付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getAchievementSmall() {
        return achievementSmall;
    }

    /**
     * 设置助理现付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param achievementSmall 助理现付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setAchievementSmall(BigDecimal achievementSmall) {
        this.achievementSmall = achievementSmall;
    }

    /**
     * 获取大工现付提成标准，小于1比率，大于等于1固定金额
     *
     * @return commission_large - 大工现付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCommissionLarge() {
        return commissionLarge;
    }

    /**
     * 设置大工现付提成标准，小于1比率，大于等于1固定金额
     *
     * @param commissionLarge 大工现付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCommissionLarge(BigDecimal commissionLarge) {
        this.commissionLarge = commissionLarge;
    }

    /**
     * 获取中工现付提成标准，小于1比率，大于等于1固定金额
     *
     * @return commission_zhonggong - 中工现付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCommissionZhonggong() {
        return commissionZhonggong;
    }

    /**
     * 设置中工现付提成标准，小于1比率，大于等于1固定金额
     *
     * @param commissionZhonggong 中工现付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCommissionZhonggong(BigDecimal commissionZhonggong) {
        this.commissionZhonggong = commissionZhonggong;
    }

    /**
     * 获取技师现付提成标准，小于1比率，大于等于1固定金额
     *
     * @return commission_technician - 技师现付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCommissionTechnician() {
        return commissionTechnician;
    }

    /**
     * 设置技师现付提成标准，小于1比率，大于等于1固定金额
     *
     * @param commissionTechnician 技师现付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCommissionTechnician(BigDecimal commissionTechnician) {
        this.commissionTechnician = commissionTechnician;
    }

    /**
     * 获取助理现付提成标准，小于1比率，大于等于1固定金额
     *
     * @return commission_small - 助理现付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCommissionSmall() {
        return commissionSmall;
    }

    /**
     * 设置助理现付提成标准，小于1比率，大于等于1固定金额
     *
     * @param commissionSmall 助理现付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCommissionSmall(BigDecimal commissionSmall) {
        this.commissionSmall = commissionSmall;
    }

    /**
     * 获取大工卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return card_achievement_large - 大工卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardAchievementLarge() {
        return cardAchievementLarge;
    }

    /**
     * 设置大工卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param cardAchievementLarge 大工卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setCardAchievementLarge(BigDecimal cardAchievementLarge) {
        this.cardAchievementLarge = cardAchievementLarge;
    }

    /**
     * 获取中工卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return card_achievement_zhonggong - 中工卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardAchievementZhonggong() {
        return cardAchievementZhonggong;
    }

    /**
     * 设置中工卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param cardAchievementZhonggong 中工卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setCardAchievementZhonggong(BigDecimal cardAchievementZhonggong) {
        this.cardAchievementZhonggong = cardAchievementZhonggong;
    }

    /**
     * 获取技师卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return card_achievement_technician - 技师卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardAchievementTechnician() {
        return cardAchievementTechnician;
    }

    /**
     * 设置技师卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param cardAchievementTechnician 技师卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setCardAchievementTechnician(BigDecimal cardAchievementTechnician) {
        this.cardAchievementTechnician = cardAchievementTechnician;
    }

    /**
     * 获取助理卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @return card_achievement_small - 助理卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardAchievementSmall() {
        return cardAchievementSmall;
    }

    /**
     * 设置助理卡付业绩标准，小于1比率，大于等于1固定金额
     *
     * @param cardAchievementSmall 助理卡付业绩标准，小于1比率，大于等于1固定金额
     */
    public void setCardAchievementSmall(BigDecimal cardAchievementSmall) {
        this.cardAchievementSmall = cardAchievementSmall;
    }

    /**
     * 获取大工卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @return card_commission_large - 大工卡付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardCommissionLarge() {
        return cardCommissionLarge;
    }

    /**
     * 设置大工卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @param cardCommissionLarge 大工卡付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCardCommissionLarge(BigDecimal cardCommissionLarge) {
        this.cardCommissionLarge = cardCommissionLarge;
    }

    /**
     * 获取中工卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @return card_commission_zhonggong - 中工卡付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardCommissionZhonggong() {
        return cardCommissionZhonggong;
    }

    /**
     * 设置中工卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @param cardCommissionZhonggong 中工卡付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCardCommissionZhonggong(BigDecimal cardCommissionZhonggong) {
        this.cardCommissionZhonggong = cardCommissionZhonggong;
    }

    /**
     * 获取技师卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @return card_commission_technician - 技师卡付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardCommissionTechnician() {
        return cardCommissionTechnician;
    }

    /**
     * 设置技师卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @param cardCommissionTechnician 技师卡付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCardCommissionTechnician(BigDecimal cardCommissionTechnician) {
        this.cardCommissionTechnician = cardCommissionTechnician;
    }

    /**
     * 获取助理卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @return card_commission_small - 助理卡付提成标准，小于1比率，大于等于1固定金额
     */
    public BigDecimal getCardCommissionSmall() {
        return cardCommissionSmall;
    }

    /**
     * 设置助理卡付提成标准，小于1比率，大于等于1固定金额
     *
     * @param cardCommissionSmall 助理卡付提成标准，小于1比率，大于等于1固定金额
     */
    public void setCardCommissionSmall(BigDecimal cardCommissionSmall) {
        this.cardCommissionSmall = cardCommissionSmall;
    }

    /**
     * 获取项目类别ID
     *
     * @return project_type_id - 项目类别ID
     */
    public Long getProjectTypeId() {
        return projectTypeId;
    }

    /**
     * 设置项目类别ID
     *
     * @param projectTypeId 项目类别ID
     */
    public void setProjectTypeId(Long projectTypeId) {
        this.projectTypeId = projectTypeId;
    }

    /**
     * 获取项目类别名称
     *
     * @return project_type_name - 项目类别名称
     */
    public String getProjectTypeName() {
        return projectTypeName;
    }

    /**
     * 设置项目类别名称
     *
     * @param projectTypeName 项目类别名称
     */
    public void setProjectTypeName(String projectTypeName) {
        this.projectTypeName = projectTypeName;
    }

    /**
     * 获取门店ID
     *
     * @return store_id - 门店ID
     */
    public Long getStoreId() {
        return storeId;
    }

    /**
     * 设置门店ID
     *
     * @param storeId 门店ID
     */
    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    /**
     * 获取门店名称
     *
     * @return store_name - 门店名称
     */
    public String getStoreName() {
        return storeName;
    }

    /**
     * 设置门店名称
     *
     * @param storeName 门店名称
     */
    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    /**
     * 获取有效期 单位:月
     *
     * @return valid_time - 有效期 单位:月
     */
    public Integer getValidTime() {
        return validTime;
    }

    /**
     * 设置有效期 单位:月
     *
     * @param validTime 有效期 单位:月
     */
    public void setValidTime(Integer validTime) {
        this.validTime = validTime;
    }

    /**
     * 获取合作项目抽佣
     *
     * @return brokerage - 合作项目抽佣
     */
    public BigDecimal getBrokerage() {
        return brokerage;
    }

    /**
     * 设置合作项目抽佣
     *
     * @param brokerage 合作项目抽佣
     */
    public void setBrokerage(BigDecimal brokerage) {
        this.brokerage = brokerage;
    }

    /**
     * 获取是否合作项目
     *
     * @return is_cooperation - 是否合作项目
     */
    public Integer getIsCooperation() {
        return isCooperation;
    }

    /**
     * 设置是否合作项目
     *
     * @param isCooperation 是否合作项目
     */
    public void setIsCooperation(Integer isCooperation) {
        this.isCooperation = isCooperation;
    }

    public Integer getNoDiscount() {
        return noDiscount;
    }

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

    public Integer getStoreType() {
        return storeType;
    }

    public void setStoreType(Integer storeType) {
        this.storeType = storeType;
    }

    public Long getNewId() {
        return newId;
    }

    public void setNewId(Long newId) {
        this.newId = newId;
    }

    public String getProjectTypeNum() {
        return projectTypeNum;
    }

    public void setProjectTypeNum(String projectTypeNum) {
        this.projectTypeNum = projectTypeNum;
    }

    public String getSalesDeadline() {
        return salesDeadline;
    }

    public void setSalesDeadline(String salesDeadline) {
        this.salesDeadline = salesDeadline;
    }

    public String getUnifiedDue() {
        return unifiedDue;
    }

    public void setUnifiedDue(String unifiedDue) {
        this.unifiedDue = unifiedDue;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        BaseProject other = (BaseProject) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getProjectNum() == null ? other.getProjectNum() == null : this.getProjectNum().equals(other.getProjectNum()))
            && (this.getProjectName() == null ? other.getProjectName() == null : this.getProjectName().equals(other.getProjectName()))
            && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState()))
            && (this.getLabel() == null ? other.getLabel() == null : this.getLabel().equals(other.getLabel()))
            && (this.getGoldInterval() == null ? other.getGoldInterval() == null : this.getGoldInterval().equals(other.getGoldInterval()))
            && (this.getLongOperationTime() == null ? other.getLongOperationTime() == null : this.getLongOperationTime().equals(other.getLongOperationTime()))
            && (this.getModerateOperationTime() == null ? other.getModerateOperationTime() == null : this.getModerateOperationTime().equals(other.getModerateOperationTime()))
            && (this.getShortOperationTime() == null ? other.getShortOperationTime() == null : this.getShortOperationTime().equals(other.getShortOperationTime()))
            && (this.getFounderStaff() == null ? other.getFounderStaff() == null : this.getFounderStaff().equals(other.getFounderStaff()))
            && (this.getFounderDatetime() == null ? other.getFounderDatetime() == null : this.getFounderDatetime().equals(other.getFounderDatetime()))
            && (this.getModifyBy() == null ? other.getModifyBy() == null : this.getModifyBy().equals(other.getModifyBy()))
            && (this.getModifyDatetime() == null ? other.getModifyDatetime() == null : this.getModifyDatetime().equals(other.getModifyDatetime()))
            && (this.getMinumumTimes() == null ? other.getMinumumTimes() == null : this.getMinumumTimes().equals(other.getMinumumTimes()))
            && (this.getDirectConsumption() == null ? other.getDirectConsumption() == null : this.getDirectConsumption().equals(other.getDirectConsumption()))
            && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
            && (this.getMinumumPrice() == null ? other.getMinumumPrice() == null : this.getMinumumPrice().equals(other.getMinumumPrice()))
            && (this.getPriceMember() == null ? other.getPriceMember() == null : this.getPriceMember().equals(other.getPriceMember()))
            && (this.getMinumumPriceMember() == null ? other.getMinumumPriceMember() == null : this.getMinumumPriceMember().equals(other.getMinumumPriceMember()))
            && (this.getSalesAchievement() == null ? other.getSalesAchievement() == null : this.getSalesAchievement().equals(other.getSalesAchievement()))
            && (this.getSalesCommission() == null ? other.getSalesCommission() == null : this.getSalesCommission().equals(other.getSalesCommission()))
            && (this.getCardSalesAchievement() == null ? other.getCardSalesAchievement() == null : this.getCardSalesAchievement().equals(other.getCardSalesAchievement()))
            && (this.getCardSalesCommission() == null ? other.getCardSalesCommission() == null : this.getCardSalesCommission().equals(other.getCardSalesCommission()))
            && (this.getAchievementLarge() == null ? other.getAchievementLarge() == null : this.getAchievementLarge().equals(other.getAchievementLarge()))
            && (this.getAchievementZhonggong() == null ? other.getAchievementZhonggong() == null : this.getAchievementZhonggong().equals(other.getAchievementZhonggong()))
            && (this.getAchievementTechnician() == null ? other.getAchievementTechnician() == null : this.getAchievementTechnician().equals(other.getAchievementTechnician()))
            && (this.getAchievementSmall() == null ? other.getAchievementSmall() == null : this.getAchievementSmall().equals(other.getAchievementSmall()))
            && (this.getCommissionLarge() == null ? other.getCommissionLarge() == null : this.getCommissionLarge().equals(other.getCommissionLarge()))
            && (this.getCommissionZhonggong() == null ? other.getCommissionZhonggong() == null : this.getCommissionZhonggong().equals(other.getCommissionZhonggong()))
            && (this.getCommissionTechnician() == null ? other.getCommissionTechnician() == null : this.getCommissionTechnician().equals(other.getCommissionTechnician()))
            && (this.getCommissionSmall() == null ? other.getCommissionSmall() == null : this.getCommissionSmall().equals(other.getCommissionSmall()))
            && (this.getCardAchievementLarge() == null ? other.getCardAchievementLarge() == null : this.getCardAchievementLarge().equals(other.getCardAchievementLarge()))
            && (this.getCardAchievementZhonggong() == null ? other.getCardAchievementZhonggong() == null : this.getCardAchievementZhonggong().equals(other.getCardAchievementZhonggong()))
            && (this.getCardAchievementTechnician() == null ? other.getCardAchievementTechnician() == null : this.getCardAchievementTechnician().equals(other.getCardAchievementTechnician()))
            && (this.getCardAchievementSmall() == null ? other.getCardAchievementSmall() == null : this.getCardAchievementSmall().equals(other.getCardAchievementSmall()))
            && (this.getCardCommissionLarge() == null ? other.getCardCommissionLarge() == null : this.getCardCommissionLarge().equals(other.getCardCommissionLarge()))
            && (this.getCardCommissionZhonggong() == null ? other.getCardCommissionZhonggong() == null : this.getCardCommissionZhonggong().equals(other.getCardCommissionZhonggong()))
            && (this.getCardCommissionTechnician() == null ? other.getCardCommissionTechnician() == null : this.getCardCommissionTechnician().equals(other.getCardCommissionTechnician()))
            && (this.getCardCommissionSmall() == null ? other.getCardCommissionSmall() == null : this.getCardCommissionSmall().equals(other.getCardCommissionSmall()))
            && (this.getProjectTypeId() == null ? other.getProjectTypeId() == null : this.getProjectTypeId().equals(other.getProjectTypeId()))
            && (this.getProjectTypeName() == null ? other.getProjectTypeName() == null : this.getProjectTypeName().equals(other.getProjectTypeName()))
            && (this.getStoreId() == null ? other.getStoreId() == null : this.getStoreId().equals(other.getStoreId()))
            && (this.getStoreName() == null ? other.getStoreName() == null : this.getStoreName().equals(other.getStoreName()))
            && (this.getValidTime() == null ? other.getValidTime() == null : this.getValidTime().equals(other.getValidTime()))
            && (this.getBrokerage() == null ? other.getBrokerage() == null : this.getBrokerage().equals(other.getBrokerage()))
            && (this.getNoDiscount() == null ? other.getNoDiscount() == null : this.getNoDiscount().equals(other.getNoDiscount()))
            && (this.getStoreType() == null ? other.getStoreType() == null : this.getStoreType().equals(other.getStoreType()))
            && (this.getNewId() == null ? other.getNewId() == null : this.getNewId().equals(other.getNewId()))
            && (this.getIsCooperation() == null ? other.getIsCooperation() == null : this.getIsCooperation().equals(other.getIsCooperation()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getProjectNum() == null) ? 0 : getProjectNum().hashCode());
        result = prime * result + ((getProjectName() == null) ? 0 : getProjectName().hashCode());
        result = prime * result + ((getState() == null) ? 0 : getState().hashCode());
        result = prime * result + ((getLabel() == null) ? 0 : getLabel().hashCode());
        result = prime * result + ((getGoldInterval() == null) ? 0 : getGoldInterval().hashCode());
        result = prime * result + ((getLongOperationTime() == null) ? 0 : getLongOperationTime().hashCode());
        result = prime * result + ((getModerateOperationTime() == null) ? 0 : getModerateOperationTime().hashCode());
        result = prime * result + ((getShortOperationTime() == null) ? 0 : getShortOperationTime().hashCode());
        result = prime * result + ((getFounderStaff() == null) ? 0 : getFounderStaff().hashCode());
        result = prime * result + ((getFounderDatetime() == null) ? 0 : getFounderDatetime().hashCode());
        result = prime * result + ((getModifyBy() == null) ? 0 : getModifyBy().hashCode());
        result = prime * result + ((getModifyDatetime() == null) ? 0 : getModifyDatetime().hashCode());
        result = prime * result + ((getMinumumTimes() == null) ? 0 : getMinumumTimes().hashCode());
        result = prime * result + ((getDirectConsumption() == null) ? 0 : getDirectConsumption().hashCode());
        result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
        result = prime * result + ((getMinumumPrice() == null) ? 0 : getMinumumPrice().hashCode());
        result = prime * result + ((getPriceMember() == null) ? 0 : getPriceMember().hashCode());
        result = prime * result + ((getMinumumPriceMember() == null) ? 0 : getMinumumPriceMember().hashCode());
        result = prime * result + ((getSalesAchievement() == null) ? 0 : getSalesAchievement().hashCode());
        result = prime * result + ((getSalesCommission() == null) ? 0 : getSalesCommission().hashCode());
        result = prime * result + ((getCardSalesAchievement() == null) ? 0 : getCardSalesAchievement().hashCode());
        result = prime * result + ((getCardSalesCommission() == null) ? 0 : getCardSalesCommission().hashCode());
        result = prime * result + ((getAchievementLarge() == null) ? 0 : getAchievementLarge().hashCode());
        result = prime * result + ((getAchievementZhonggong() == null) ? 0 : getAchievementZhonggong().hashCode());
        result = prime * result + ((getAchievementTechnician() == null) ? 0 : getAchievementTechnician().hashCode());
        result = prime * result + ((getAchievementSmall() == null) ? 0 : getAchievementSmall().hashCode());
        result = prime * result + ((getCommissionLarge() == null) ? 0 : getCommissionLarge().hashCode());
        result = prime * result + ((getCommissionZhonggong() == null) ? 0 : getCommissionZhonggong().hashCode());
        result = prime * result + ((getCommissionTechnician() == null) ? 0 : getCommissionTechnician().hashCode());
        result = prime * result + ((getCommissionSmall() == null) ? 0 : getCommissionSmall().hashCode());
        result = prime * result + ((getCardAchievementLarge() == null) ? 0 : getCardAchievementLarge().hashCode());
        result = prime * result + ((getCardAchievementZhonggong() == null) ? 0 : getCardAchievementZhonggong().hashCode());
        result = prime * result + ((getCardAchievementTechnician() == null) ? 0 : getCardAchievementTechnician().hashCode());
        result = prime * result + ((getCardAchievementSmall() == null) ? 0 : getCardAchievementSmall().hashCode());
        result = prime * result + ((getCardCommissionLarge() == null) ? 0 : getCardCommissionLarge().hashCode());
        result = prime * result + ((getCardCommissionZhonggong() == null) ? 0 : getCardCommissionZhonggong().hashCode());
        result = prime * result + ((getCardCommissionTechnician() == null) ? 0 : getCardCommissionTechnician().hashCode());
        result = prime * result + ((getCardCommissionSmall() == null) ? 0 : getCardCommissionSmall().hashCode());
        result = prime * result + ((getProjectTypeId() == null) ? 0 : getProjectTypeId().hashCode());
        result = prime * result + ((getProjectTypeName() == null) ? 0 : getProjectTypeName().hashCode());
        result = prime * result + ((getStoreId() == null) ? 0 : getStoreId().hashCode());
        result = prime * result + ((getStoreName() == null) ? 0 : getStoreName().hashCode());
        result = prime * result + ((getValidTime() == null) ? 0 : getValidTime().hashCode());
        result = prime * result + ((getBrokerage() == null) ? 0 : getBrokerage().hashCode());
        result = prime * result + ((getNoDiscount() == null) ? 0 : getNoDiscount().hashCode());
        result = prime * result + ((getIsCooperation() == null) ? 0 : getIsCooperation().hashCode());
        result = prime * result + ((getStoreType() == null) ? 0 : getStoreType().hashCode());
        result = prime * result + ((getNewId() == null) ? 0 : getNewId().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", projectNum=").append(projectNum);
        sb.append(", projectName=").append(projectName);
        sb.append(", state=").append(state);
        sb.append(", label=").append(label);
        sb.append(", goldInterval=").append(goldInterval);
        sb.append(", longOperationTime=").append(longOperationTime);
        sb.append(", moderateOperationTime=").append(moderateOperationTime);
        sb.append(", shortOperationTime=").append(shortOperationTime);
        sb.append(", founderStaff=").append(founderStaff);
        sb.append(", founderDatetime=").append(founderDatetime);
        sb.append(", modifyBy=").append(modifyBy);
        sb.append(", modifyDatetime=").append(modifyDatetime);
        sb.append(", minumumTimes=").append(minumumTimes);
        sb.append(", directConsumption=").append(directConsumption);
        sb.append(", price=").append(price);
        sb.append(", minumumPrice=").append(minumumPrice);
        sb.append(", priceMember=").append(priceMember);
        sb.append(", minumumPriceMember=").append(minumumPriceMember);
        sb.append(", salesAchievement=").append(salesAchievement);
        sb.append(", salesCommission=").append(salesCommission);
        sb.append(", cardSalesAchievement=").append(cardSalesAchievement);
        sb.append(", cardSalesCommission=").append(cardSalesCommission);
        sb.append(", achievementLarge=").append(achievementLarge);
        sb.append(", achievementZhonggong=").append(achievementZhonggong);
        sb.append(", achievementTechnician=").append(achievementTechnician);
        sb.append(", achievementSmall=").append(achievementSmall);
        sb.append(", commissionLarge=").append(commissionLarge);
        sb.append(", commissionZhonggong=").append(commissionZhonggong);
        sb.append(", commissionTechnician=").append(commissionTechnician);
        sb.append(", commissionSmall=").append(commissionSmall);
        sb.append(", cardAchievementLarge=").append(cardAchievementLarge);
        sb.append(", cardAchievementZhonggong=").append(cardAchievementZhonggong);
        sb.append(", cardAchievementTechnician=").append(cardAchievementTechnician);
        sb.append(", cardAchievementSmall=").append(cardAchievementSmall);
        sb.append(", cardCommissionLarge=").append(cardCommissionLarge);
        sb.append(", cardCommissionZhonggong=").append(cardCommissionZhonggong);
        sb.append(", cardCommissionTechnician=").append(cardCommissionTechnician);
        sb.append(", cardCommissionSmall=").append(cardCommissionSmall);
        sb.append(", projectTypeId=").append(projectTypeId);
        sb.append(", projectTypeName=").append(projectTypeName);
        sb.append(", storeId=").append(storeId);
        sb.append(", storeName=").append(storeName);
        sb.append(", validTime=").append(validTime);
        sb.append(", brokerage=").append(brokerage);
        sb.append(", isCooperation=").append(isCooperation);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append(", noDiscount=").append(noDiscount);
        sb.append(", storeType=").append(storeType);
        sb.append(", newId=").append(newId);
        sb.append("]");
        return sb.toString();
    }

}