QualificationApply.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package com.kcim.dao.model;
  2. import com.baomidou.mybatisplus.annotation.TableField;
  3. import com.baomidou.mybatisplus.annotation.TableId;
  4. import com.baomidou.mybatisplus.annotation.TableLogic;
  5. import com.baomidou.mybatisplus.annotation.TableName;
  6. import java.io.Serializable;
  7. import java.time.LocalDate;
  8. import java.time.ZoneId;
  9. import java.time.temporal.ChronoUnit;
  10. import java.time.temporal.Temporal;
  11. import java.util.Date;
  12. import java.util.List;
  13. import com.fasterxml.jackson.annotation.JsonFormat;
  14. import com.fasterxml.jackson.annotation.JsonGetter;
  15. import com.fasterxml.jackson.annotation.JsonIgnore;
  16. import com.kcim.constants.NumberConstant;
  17. import com.kcim.vo.UserInfoVO;
  18. import lombok.AllArgsConstructor;
  19. import lombok.Data;
  20. import lombok.NoArgsConstructor;
  21. import lombok.experimental.Accessors;
  22. /**
  23. *
  24. *
  25. * @author Wang.YS
  26. * @date 2024-11-18 22:20:15
  27. */
  28. @Data
  29. @Accessors(chain = true)
  30. @AllArgsConstructor
  31. @NoArgsConstructor
  32. @TableName("med_qualification_apply")
  33. public class QualificationApply implements Serializable {
  34. private static final long serialVersionUID = 1L;
  35. /**
  36. * 主键
  37. */
  38. @TableId
  39. private Integer id;
  40. /**
  41. * 资质编码
  42. */
  43. private String qualificationCode;
  44. /**
  45. * 用户id
  46. */
  47. private Long userId;
  48. /**
  49. * 授权期限 1长期授权 2临时授权 3单次授权
  50. */
  51. private Integer qualificationPeriod;
  52. /**
  53. * 申请授权时间
  54. */
  55. @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
  56. private Date applyDate;
  57. /**
  58. * 申请备注
  59. */
  60. private String applyMemo;
  61. /**
  62. * 授权开始时间
  63. */
  64. @JsonFormat(pattern = "yyyy-MM-dd")
  65. private Date beginDate;
  66. /**
  67. * 授权结束时间
  68. */
  69. @JsonFormat(pattern = "yyyy-MM-dd")
  70. private Date endDate;
  71. /**
  72. * 科主任审批意见
  73. */
  74. private String deptOpinion;
  75. /**
  76. * 医务部审批意见
  77. */
  78. private String managerOpinion;
  79. /**
  80. * 院领导审批意见
  81. */
  82. private String masterOpinion;
  83. /**
  84. * 申请状态: 1草稿 2待科主任审核 3待医务部审核 4待院长审核 5审核通过 6驳回
  85. */
  86. private Integer applyStatus;
  87. @TableField(exist = false)
  88. private String currentStatus;
  89. @JsonGetter("currentStatus")
  90. public String getCurrentStatus() {
  91. if(applyStatus ==null || !applyStatus.equals(NumberConstant.FIVE)){
  92. return "";
  93. }
  94. else{
  95. if(beginDate==null || endDate==null){
  96. return "";
  97. }
  98. else{
  99. if(beginDate.before(new Date()) && endDate.after(new Date())){
  100. return "授权中";
  101. }
  102. else{
  103. return "已过期";
  104. }
  105. }
  106. }
  107. }
  108. /**
  109. * 距离到期天数
  110. */
  111. @TableField(exist = false)
  112. private Integer daysToExpire;
  113. @JsonGetter("daysToExpire")
  114. public Integer getDaysToExpire() {
  115. if(getCurrentStatus().equals("授权中")){
  116. LocalDate now = LocalDate.now();
  117. LocalDate endDate = getEndDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
  118. return Math.toIntExact(ChronoUnit.DAYS.between(now, endDate));
  119. }
  120. else {
  121. return -1;
  122. }
  123. }
  124. /**
  125. * 医院id
  126. */
  127. @JsonIgnore
  128. private Long hospId;
  129. /**
  130. * 创建人
  131. */
  132. @JsonIgnore
  133. private String createUser;
  134. /**
  135. * 创建时间
  136. */
  137. @JsonIgnore
  138. private Date createTime;
  139. /**
  140. * 更新人
  141. */
  142. @JsonIgnore
  143. private String updateUser;
  144. /**
  145. * 更新时间
  146. */
  147. @JsonIgnore
  148. private Date updateTime;
  149. /**
  150. * 删除人
  151. */
  152. @JsonIgnore
  153. private String deleteUser;
  154. /**
  155. * 删除时间
  156. */
  157. @JsonIgnore
  158. private Date deleteTime;
  159. /**
  160. * 删除标志 0正常 1作废
  161. */
  162. @JsonIgnore
  163. @TableLogic(value = "0",delval = "1")
  164. private Integer delFlag;
  165. @TableField(exist = false)
  166. private UserInfo userInfo;
  167. @TableField(exist = false)
  168. private List<DoctorAttachment> userAttachment;
  169. @TableField(exist = false)
  170. private Qualification qualificationInfo;
  171. @TableField(exist = false)
  172. private List<QualificationApplyAttachment> applyAttachment;
  173. @TableField(exist = false)
  174. private List<QualificationApplyAdjust> applyAdjust;
  175. /**
  176. * 允许重新授权标志
  177. */
  178. @TableField(exist = false)
  179. private Integer allowReAuthorize = NumberConstant.ZERO;
  180. }