package com.kcim.dao.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

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

/**
 * 报表项目
 *
 * @author huangrui
 * @email
 * @date 2021-08-03 13:53:52
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@TableName("cost_report_form")
public class ReportForm implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 报表项目编号一个医院中同一个类型必须唯一
     */
    private Integer num;
    /**
     * 报表名称
     */
    private String reportName;
    /**
     * 父级id
     */
    private Long parentId;
    /**
     * 计算类型 0.不设置，1.对应会计科目，2.对应分摊层级，3.小计，4.计算公式，5.按责任中心
     */
    private Integer calcType;
    /**
     * 报表类型：0.损益表、1.完全成本法表、2.变动成本表、3.全院损益表、4.全成本报表
     */
    private Integer reportType;
    /**
     * 计算公式，当计算类型为计算公式的时候必传
     */
    private String calcFormula;
    /**
     * 排序字段
     */
    private Integer sort;
    /**
     * 比率基数，默认100%，后续再进行修改
     */
    private String ratioBase;
    /**
     * 医院id
     */
    private Long hospId;

    /**
     * 旧id主键,暂时只在复制功能体现！！！
     */
    private Long oldId;

    /**
     * 仅在全院损益必须存在一个值1 的
     */
    private Integer isLoss;

    /**
     * 创建时间
     */
    private Long createTime;
    /**
     * 删除时间
     */
    @TableLogic(value = "0", delval = "UNIX_TIMESTAMP(NOW()) * 1000")
    private Long deleteTime;

    private Integer costType;

    private Integer fraction;
    @TableField(exist = false)
    private List<ReportForm> child;
    /**
     * 说明
     */
    private String description;
    /**
     * 0 隐藏 1显示  默认显示
     */
    private Integer hide;

    /**
     * 数据类型：0未知 1数值 2百分比
     */
    private Integer dataType;


    /**
     * 数据类型名称
     */
    @TableField(exist = false)
    private String dataTypeName;

    /**
     * 小数位
     */
    private Integer decimalPlace;

    /**
     * 是否有千分号
     */
    private Integer permil;

    /**
     * 字体颜色
     */
    private String fontColor;

}
