package com.gci.boot.modules.finance.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gci.boot.modules.finance.vo.FinanceItemVO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 测算结果
 */
@Data
@TableName("tb_finance_measure_result")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="财务测算测算结果关联表", description="财务测算测算结果关联表")
public class MeasureResult implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ExcelIgnore
    private String id;

    /**
     * 基础表id
     */
    private String baseId;

    /**
     * 购车成本回收期(年)
     */
    private BigDecimal carCostRecovery;
    /**
     * 融资成本(万元)
     */
    private BigDecimal financingCost;
    /**
     * 内部收益率(%)
     */
    private BigDecimal internalRate;
    /**
     * 实缴增值税及附加(万元)
     */
    private BigDecimal vatAndAdditional;
    /**
     * 所得税(万元)
     */
    private BigDecimal incomeTax;
    /**
     * 净利润(万元)
     */
    private BigDecimal netProfit;
    /**
     * 残值(万元)
     */
    private BigDecimal salvageValue;

    /**
     * 租金收入(万元)
     */
    private String rentalIncomeJson;
    @TableField(exist = false)
    private List<FinanceItemVO> rentalIncomeList;

    /**
     * 管理、运维、保险费用(万元)
     */
    private String manageCostJson;
    @TableField(exist = false)
    private List<FinanceItemVO> manageCostList;

    /**
     * 收入与税金表(万元)
     */
    private String incomeAndTaxJson;
    @TableField(exist = false)
    private List<FinanceItemVO> incomeAndTaxList;

    /**
     * 成本与利润表(万元)
     */
    private String costAndProfitJson;
    @TableField(exist = false)
    private List<FinanceItemVO> costAndProfitList;
}
