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 com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

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

/**
 * 收费项目管理
 * 
 * @author Wang.YS

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

	/**
	 * 主键
	 */
	@TableId
	private Integer id;
	/**
	 * 医院id
	 */
	private Long hospId;
	/**
	 * 收费项目代码
	 */
	private String code;
	/**
	 * 收费项目名称
	 */
	private String name;
	/**
	 * 收费项目类别
	 */
	private String type;
	/**
	 *项目分类 公用字典：医疗服务项目分类
	 */
	private String itemType;
	@TableField(exist = false)
	private String itemTypeName;
	/**
	 * 康程分类代码
	 */
	private String kcCode;

	/**
	 * 康程分类代码
	 */
	@TableField(exist = false)
	private String kcCodeName;
	/**
	 * 国家编码
	 */
	private String nationalCode;
	/**
	 * 标准项目代码
	 */
	private String standItemCode;
	/**
	 * 标准项目名称
	 */
	private String standItemName;
	/**
	 * 单价
	 */
	private BigDecimal price;
	/**
	 * 创建人
	 */
	@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作废
	 */
	@TableLogic(value = "0",delval = "1")
	@JsonIgnore
	private Integer delFlag;

	/**
	 * 人员对照信息
	 */
	@TableField(exist = false)
	private List<ItemEmpMap> empMaps;
	/**
	 * 设备对照信息
	 */
	@TableField(exist = false)
	private List<ItemEquipmentMap> equipmentMaps;
	/**
	 * 空间对照信息
	 */
	@TableField(exist = false)
	private List<ItemSpaceMap> spaceMaps;

	/**
	 * 不计价材料
	 */
	@TableField(exist = false)
	private List<ItemNoValuationDrugMaterialMap> noValuation;

	/**
	 * 计价材料
	 */
	@TableField(exist = false)
	private List<ItemValuationDrugMaterialMap> valuation;

	@TableField(exist = false)
	private boolean match;

	@TableField(exist = false)
	private Double percent;

	@TableField(exist = false)
	private String percentDisplay;

	/**
	 * 科室代码
	 */
	private String departmentCode;
	/**
	 * 科室名称
	 */
	private String departmentName;
	@TableField(exist = false)
	private StandItem standItem;

	/**
	 * 责任中心代码
	 */
	@TableField(exist = false)
	private String responsibilityCode;
}
