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 java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 成本报表项目设置表
 * 
 * @author Wang.YS

 * @date 2023-10-17 15:35:59
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@TableName("com_report_column")
public class ReportColumn implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@TableId
	private Integer id;
	/**
	 * 医院id
	 */
	private Long hospId;
	/**
	 * 报表代码（中台字典）
	 */
	private String reportCode;
	/**
	 * 报表列代码
	 */
	private Long columnCode;
	/**
	 * 报表列名称
	 */
	private String columnName;
	/**
	 * 计算方式 1 项目类别 2 计算公式 3 合计
	 */
	private Integer computeType;
	@TableField(exist = false)
	private String computeTypeName;

	/**
	 * 计算来源 1 项目类别时（存公用字典代码） 2 计算公式（存计算公式） 3 合计 （无）
	 */
	private String computeSource;
	@TableField(exist = false)
	private String computeSourceName;

	/**
	 * 上级父类代码
	 */
	private Long parentColumnCode;
	/**
	 * 排序
	 */
	private Integer sort;
	/**
	 * 数据格式 1数值 2百分比
	 */
	private Integer dataType;
	/**
	 * 下钻路径字典代码
	 */
	private String redirect;

	/**
	 * 下钻路径字典代码
	 */
	@TableField(exist = false)
	private String redirectUrl;
	@TableField(exist = false)
	private String redirectName;
	/**
	 * 下钻参数
	 */
	private String redirectParameter;

	/**
	 * 下钻参数
	 */
	@TableField(exist = false)
	private String redirectParameterName;
	/**
	 * 创建人
	 */
	@JsonIgnore
	private String createUser;
	/**
	 * 创建时间
	 */
	@JsonIgnore
	private Date createTime;
	/**
	 * 更新人
	 */
	@JsonIgnore
	private String updateUser;
	/**
	 * 更新时间
	 */
	@JsonIgnore
	private Date updateTime;
	/**
	 * 删除人
	 */
	@JsonIgnore
	private String deleteUser;
	/**
	 * 删除时间
	 */
	@JsonIgnore
	private Date deleteTime;
	/**
	 * 删除标志  0正常 1作废
	 */
	@JsonIgnore
	@TableLogic(value = "0",delval = "1")
	private Integer delFlag;
	/**
	 * 子类
	 */
	@TableField(exist = false)
	private List<ReportColumn> childColumns;
}
