package com.bonus.canteen.core.health.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

/**
 * 人员健康情况对象 health_person_info
 *
 * @author xsheng
 * @date 2025-05-25
 */


@Data
@ToString
public class HealthPersonInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 人员id */
    @Excel(name = "人员id")
    @ApiModelProperty(value = "人员id")
    private Long userId;

    /** 登记日期 */
    @ApiModelProperty(value = "登记日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "登记日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registerDate;

    /** 血型 */
    @Excel(name = "血型")
    @ApiModelProperty(value = "血型")
    private Long bloodType;

    /** 婚姻状态 (0-保密 1-未婚 2-已婚) */
    @Excel(name = "婚姻状态 (0-保密 1-未婚 2-已婚)")
    @ApiModelProperty(value = "婚姻状态 (0-保密 1-未婚 2-已婚)")
    private Long maritalStatus;

    /** 怀孕状态: 0-保密, 1-未怀孕, 2-孕妇(早期),3-孕妇(中期),4-孕妇(晚期) 5-乳母 */
    @Excel(name = "怀孕状态: 0-保密, 1-未怀孕, 2-孕妇(早期),3-孕妇(中期),4-孕妇(晚期) 5-乳母")
    @ApiModelProperty(value = "怀孕状态: 0-保密, 1-未怀孕, 2-孕妇(早期),3-孕妇(中期),4-孕妇(晚期) 5-乳母")
    private Long pregnantStatus;

    /** 怀孕日期 */
    @ApiModelProperty(value = "怀孕日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "怀孕日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pregnancyDate;

    /** 饮食医嘱 (1-禁食,2-流食,3-半流食,4-治疗饮食) */
    @Excel(name = "饮食医嘱 (1-禁食,2-流食,3-半流食,4-治疗饮食)")
    @ApiModelProperty(value = "饮食医嘱 (1-禁食,2-流食,3-半流食,4-治疗饮食)")
    private Long doctorAdvice;

    /** 是否住院(1-是 2-否) */
    @Excel(name = "是否住院(1-是 2-否)")
    @ApiModelProperty(value = "是否住院(1-是 2-否)")
    private Long ifHospitalized;

    /** 就诊号 */
    @Excel(name = "就诊号")
    @ApiModelProperty(value = "就诊号")
    private String doctorNum;

    /** 住院号 */
    @Excel(name = "住院号")
    @ApiModelProperty(value = "住院号")
    private String hospitalNum;

    /** 住院日期 */
    @ApiModelProperty(value = "住院日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "住院日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date inpatientDate;

    /** 住院诊断结果 */
    @Excel(name = "住院诊断结果")
    @ApiModelProperty(value = "住院诊断结果")
    private String inpatientResult;

    /** 体重控制 (1-减肥,2-增重) */
    @Excel(name = "体重控制 (1-减肥,2-增重)")
    @ApiModelProperty(value = "体重控制 (1-减肥,2-增重)")
    private Long weightControl;

    /** 过敏源 */
    @Excel(name = "过敏源")
    @ApiModelProperty(value = "过敏源")
    private String allergen;

    /** 劳动强度 (1-轻劳动,2-中等强度劳动,3-重强度劳动) */
    @Excel(name = "劳动强度 (1-轻劳动,2-中等强度劳动,3-重强度劳动)")
    @ApiModelProperty(value = "劳动强度 (1-轻劳动,2-中等强度劳动,3-重强度劳动)")
    private Long labourIntensity;

    /** 健康状态（1-健康、2-残疾、3-瘫痪） */
    @Excel(name = "健康状态", readConverterExp = "1=-健康、2-残疾、3-瘫痪")
    private Long healthState;

    private String articleTitle;

    @ApiModelProperty("人员名称")
    private String nickName;
    @ApiModelProperty("手机号")
    private String mobile;
    @ApiModelProperty("性别 1-男 2-女")
    private Integer sex;
    @ApiModelProperty("年龄")
    private Integer age;
    @ApiModelProperty("所属组织id")
    private Long orgId;
    @ApiModelProperty("所属组织名称")
    private String orgFullName;
    @ApiModelProperty("人员类别")
    private Integer userType;
    @ApiModelProperty("所属位置Id")
    private Long placeId;
    @ApiModelProperty("所属位置")
    private String placeFullName;
    @ApiModelProperty("生日")
    private LocalDate birthday;
    @ApiModelProperty("慢性病id多个用逗号分割")
    private String chronicIds;
    @ApiModelProperty("慢性病名称多个用逗号分割")
    private String chronicNames;
    @ApiModelProperty("是否删除 0-正常 2-删除")
    private Integer delFlag;
    @ApiModelProperty("身高")
    private BigDecimal height;
    @ApiModelProperty("体重")
    private BigDecimal weight;
    @ApiModelProperty("BMI指数")
    private BigDecimal bmi;
    @ApiModelProperty("体型")
    private String shape;
    @ApiModelProperty("胸围")
    private BigDecimal bust;
    @ApiModelProperty("腰围")
    private BigDecimal waistline;
    @ApiModelProperty("血糖")
    private BigDecimal bloodSugar;
    @ApiModelProperty("血脂")
    private Integer bloodFat;
    @ApiModelProperty("血压高")
    private BigDecimal bloodPressureHigh;
    @ApiModelProperty("血压低")
    private BigDecimal bloodPressureLow;
    @ApiModelProperty("心率")
    private BigDecimal heartRate;
    @ApiModelProperty("血氧")
    private BigDecimal bloodOxygen;
    @ApiModelProperty("尿酸")
    private Integer uricAcid;
    @ApiModelProperty("血压")
    private Integer bloodPressure;
    @ApiModelProperty("创建人")
    private String createBy;
    @ApiModelProperty("创建时间")
    private Date createTime;
    @ApiModelProperty("更新人")
    private String updateBy;
    @ApiModelProperty("更新时间")
    private Date updateTime;
    private String doctorAdvices;
    private String placeIds;
}
