package com.ruoyi.common.core.service.dto;
|
|
import java.util.Date;
|
|
/**
|
* 门急诊随访专用草稿({@link VisitSubtaskDraft} 的扩展)。
|
*
|
* <h3>只放"父类真的没有"的字段</h3>
|
* 门诊的 {@code boxedServiceSubtask}(原 {@code PatMedOuthospServiceImpl} L525-581)
|
* 往子任务上设 35 个值,其中<b>绝大多数父类已有等价字段</b>:
|
* <table border="1">
|
* <tr><th>门诊写法</th><th>父类字段</th></tr>
|
* <tr><td>{@code patArchive.name}</td><td>{@code sendname}</td></tr>
|
* <tr><td>{@code patArchive.idcardno}</td><td>{@code sfzh}</td></tr>
|
* <tr><td>{@code patArchive.telcode}(空则 {@code relativetelcode})</td><td>{@code phone}</td></tr>
|
* <tr><td>{@code patArchive.sex} / {@code age}</td><td>{@code sex} / {@code age}</td></tr>
|
* <tr><td>{@code patMedOuthosp.id}</td><td>{@code inhospid}</td></tr>
|
* <tr><td>{@code patMedOuthosp.outhospno}</td><td>{@code hospno}</td></tr>
|
* </table>
|
* 所以本类<b>只</b>补父类确实没有的字段,不做重复定义 ——
|
* 重复定义会让"哪个字段才是真正落库的"变得不清楚。
|
* <p>
|
* ⚠️ {@code hospno} 原先只在本类里声明,导致出院链路({@code addSubTaskByRule})
|
* 根本没有这个载体、{@code service_subtask.hospno} 一直落空。
|
* 现已上提到父类 {@link VisitSubtaskDraft},本类不再重复声明。
|
*
|
* <h3>为什么要单独一个类(而不是往 VisitSubtaskDraft 里加字段)</h3>
|
* {@code insertServiceSubtask} 有 39 个条件列({@code <if test="xxx != null">})。
|
* 给共享的 {@code VisitSubtaskDraft} 加字段,就必须同时决定"要不要在
|
* {@code VisitTaskCreateApiImpl#toSubtaskEntity} 里补映射"——
|
* 补了映射会让<b>出入院那条已验收的写入路径多写列</b>。
|
* 所以按"另建门诊专用草稿"处理:门诊独有的字段放本类,
|
* 桥里用 {@code instanceof} 分流映射。
|
*
|
* @see VisitSubtaskDraft
|
* @see com.ruoyi.common.core.service.VisitTaskCreateApi#insertSubtask(VisitSubtaskDraft)
|
*/
|
public class OuthospSubtaskDraft extends VisitSubtaskDraft {
|
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* 门诊就诊日期(原 {@code patMedOuthosp.admitdate})。
|
* <p>
|
* 父类没有对应字段,但它有两处用途:
|
* <ol>
|
* <li>落库到 {@code admindate} 列;</li>
|
* <li>作为 {@code longSendTime} 的计算基准
|
* ({@code addDays(admitdate, sendDay)})。</li>
|
* </ol>
|
* 用途 2 由调用方自己算完写进父类的 {@code longSendTime}/{@code visitTime},
|
* 本字段只为用途 1(落库)。
|
*/
|
private Date admitdate;
|
|
/**
|
* 门诊指定的随访时间(原 {@code patMedOuthosp.fudate})。
|
* <p>
|
* 非空时由<b>调用方</b>用它覆盖按 {@code sendDay} 算出的时间并写进父类的
|
* {@code longSendTime}/{@code visitTime} —— 本字段不落库,只作为"调用方算过它"的留痕载体。
|
* <p>
|
* ⚠️ 若某天要让桥自己参与这个覆盖计算,必须同时改
|
* {@code toSubtaskEntity} 与出入院侧的对应用法,不可只改一边。
|
*/
|
private Date fudate;
|
|
/**
|
* 完成时间(原实现的 {@code setFinishtime})。
|
* <p>
|
* 门诊 {@code boxedServiceSubtask} 里没有设它;实际设置它的是<b>停旧子任务</b>那条路径
|
* (走 {@code VisitPendingSubtaskDto#finishtime})。
|
* 本字段保留是为了让"草稿也能承载 finishtime"这一能力可用,
|
* 桥侧对应映射 {@code e.setFinishtime(...)}。
|
*/
|
private Date finishtime;
|
|
/**
|
* 入院/门诊标识(原 {@code serviceSubtask.setHospType("1")})。
|
* <p>
|
* ⚠️ 原实现是<b>硬编码 "1"</b>,并不读 {@code serviceTask.getHospType()};
|
* 出入院侧同类位置硬编码 "2"、宣教侧 "6"。
|
* <p>
|
* ⚠️ 注意 {@code VisitLongTaskDto} 里那个 {@code hosType}(少个 p)是历史笔误,
|
* 且全仓无人读取它 —— 不要把它与这里的 {@code hospType} 混为一谈。
|
*/
|
private String hospType;
|
|
public Date getAdmitdate() {
|
return admitdate;
|
}
|
public void setAdmitdate(Date admitdate) {
|
this.admitdate = admitdate;
|
}
|
|
public Date getFudate() {
|
return fudate;
|
}
|
|
public void setFudate(Date fudate) {
|
this.fudate = fudate;
|
}
|
|
public Date getFinishtime() {
|
return finishtime;
|
}
|
|
public void setFinishtime(Date finishtime) {
|
this.finishtime = finishtime;
|
}
|
|
public String getHospType() {
|
return hospType;
|
}
|
|
public void setHospType(String hospType) {
|
this.hospType = hospType;
|
}
|
}
|