package com.yh.saas.plugin.yiliangyiyun.entity;

import java.util.Date;
import java.io.Serializable;


import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yh.saas.common.support.entity.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 合同费用
 * </p>
 *
 * @author Gdc
 * @since 2022-05-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("contract_expenses_info")
public class ContractExpensesInfo extends BaseModel<ContractExpensesInfo> {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(type = IdType.UUID)
    private String id;
    /**
     * 公司ID
     */
    private String compId;
    /**
     * 合同ID
     */
    private String contractId;
    /**
     * 合同号
     */
    private String contractNo;
    /**
     * 仓库id
     */
    private String warehouseId;
    /**
     * 所属库点
     */
    private String warehouseName;
    /**
     * 类型(1收入2支出)
     */
    private String expensesType;
    /**
     * 费用类型(1粮款3非粮款5保证金)
     */
    private String grainType;
    /**
     * 费用名称
     */
    private String expensesName;
    /**
     * 费用金额（元）
     */
    private Double expensesPrice;
    /**
     * 请款人/收款人
     */
    private String personName;
    /**
     * 支付日期
     */
    private Date payDeadline;
    /**
     * 支出粮款（元）
     */
    private Double foodExpenditure;
    /**
     * 收入粮款（元）
     */
    private Double grainIncome;
    /**
     * 费用收入（元）
     */
    private Double expenseIncome;
    /**
     * 费用支出（元）
     */
    private Double expensesPay;
    /**
     * 当期利润（元）
     */
    private Double currentProfit;
    /**
     * 费用表ID
     */
    private String expensesId;
    /**
     * 费用类型(1合同费用3库点费用)
     */
    private String costType;
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date startDate;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date endDate;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
