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.time.LocalDate; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.time.temporal.Temporal; import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonGetter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.kcim.constants.NumberConstant; import com.kcim.vo.UserInfoVO; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; /** * * * @author Wang.YS * @date 2024-11-18 22:20:15 */ @Data @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor @TableName("med_qualification_apply") public class QualificationApply implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId private Integer id; /** * 资质编码 */ private String qualificationCode; /** * 用户id */ private Long userId; /** * 授权期限 1长期授权 2临时授权 3单次授权 */ private Integer qualificationPeriod; /** * 申请授权时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") private Date applyDate; /** * 申请备注 */ private String applyMemo; /** * 授权开始时间 */ @JsonFormat(pattern = "yyyy-MM-dd") private Date beginDate; /** * 授权结束时间 */ @JsonFormat(pattern = "yyyy-MM-dd") private Date endDate; /** * 科主任审批意见 */ private String deptOpinion; /** * 医务部审批意见 */ private String managerOpinion; /** * 院领导审批意见 */ private String masterOpinion; /** * 申请状态: 1草稿 2待科主任审核 3待医务部审核 4待院长审核 5审核通过 6驳回 */ private Integer applyStatus; @TableField(exist = false) private String currentStatus; @JsonGetter("currentStatus") public String getCurrentStatus() { if(applyStatus ==null || !applyStatus.equals(NumberConstant.FIVE)){ return ""; } else{ if(beginDate==null || endDate==null){ return ""; } else{ if(beginDate.before(new Date()) && endDate.after(new Date())){ return "授权中"; } else{ return "已过期"; } } } } /** * 距离到期天数 */ @TableField(exist = false) private Integer daysToExpire; @JsonGetter("daysToExpire") public Integer getDaysToExpire() { if(getCurrentStatus().equals("授权中")){ LocalDate now = LocalDate.now(); LocalDate endDate = getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); return Math.toIntExact(ChronoUnit.DAYS.between(now, endDate)); } else { return -1; } } /** * 医院id */ @JsonIgnore private Long hospId; /** * 创建人 */ @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 UserInfo userInfo; @TableField(exist = false) private List userAttachment; @TableField(exist = false) private Qualification qualificationInfo; @TableField(exist = false) private List applyAttachment; @TableField(exist = false) private List applyAdjust; /** * 允许重新授权标志 */ @TableField(exist = false) private Integer allowReAuthorize = NumberConstant.ZERO; }