package com.ruoyi.common.core.service.dto; import java.util.Date; /** * 门急诊随访专用草稿({@link VisitSubtaskDraft} 的扩展)。 * *

只放"父类真的没有"的字段

* 门诊的 {@code boxedServiceSubtask}(原 {@code PatMedOuthospServiceImpl} L525-581) * 往子任务上设 35 个值,其中绝大多数父类已有等价字段: * * * * * * * *
门诊写法父类字段
{@code patArchive.name}{@code sendname}
{@code patArchive.idcardno}{@code sfzh}
{@code patArchive.telcode}(空则 {@code relativetelcode}){@code phone}
{@code patArchive.sex} / {@code age}{@code sex} / {@code age}
{@code patMedOuthosp.id}{@code inhospid}
* 所以本类只补三个父类确实没有的字段,不做重复定义 —— * 重复定义会让"哪个字段才是真正落库的"变得不清楚。 * *

为什么要单独一个类(而不是往 VisitSubtaskDraft 里加字段)

* {@code insertServiceSubtask} 有 39 个条件列({@code })。 * 给共享的 {@code VisitSubtaskDraft} 加字段,就必须同时决定"要不要在 * {@code VisitTaskCreateApiBridge#toSubtaskEntity} 里补映射"—— * 补了映射会让出入院那条已验收的写入路径多写列。 * 所以按"另建门诊专用草稿"处理:{@code VisitSubtaskDraft} 与出入院链路一行不动, * 桥里用 {@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.outhospno} → 落库到 {@code service_subtask.hospno})。 *

* ⚠️ 父类 {@link VisitSubtaskDraft} 没有 {@code hospno} 字段 * ({@code ServiceSubtask} 实体有,父类漏了),所以这里是必需的补充。 */ private String hospno; /** * 门诊就诊日期(原 {@code patMedOuthosp.admitdate})。 *

* 父类没有对应字段,但它有两处用途: *

    *
  1. 落库到 {@code admindate} 列;
  2. *
  3. 作为 {@code longSendTime} 的计算基准 * ({@code addDays(admitdate, sendDay)})。
  4. *
* 用途 2 由调用方自己算完写进父类的 {@code longSendTime}/{@code visitTime}, * 本字段只为用途 1(落库)。 */ private Date admitdate; /** * 门诊指定的随访时间(原 {@code patMedOuthosp.fudate})。 *

* 非空时由调用方用它覆盖按 {@code sendDay} 算出的时间并写进父类的 * {@code longSendTime}/{@code visitTime} —— 本字段不落库,只作为"调用方算过它"的留痕载体。 *

* ⚠️ 若某天要让桥自己参与这个覆盖计算,必须同时改 * {@code toSubtaskEntity} 与出入院侧的对应用法,不可只改一边。 */ private Date fudate; /** * 完成时间(原实现的 {@code setFinishtime})。 *

* 门诊 {@code boxedServiceSubtask} 里没有设它;实际设置它的是停旧子任务那条路径 * (走 {@code VisitPendingSubtaskDto#finishtime})。 * 本字段保留是为了让"草稿也能承载 finishtime"这一能力可用, * 桥侧对应映射 {@code e.setFinishtime(...)}。 */ private Date finishtime; /** * 入院/门诊标识(原 {@code serviceSubtask.setHospType("1")})。 *

* ⚠️ 原实现是硬编码 "1",并不读 {@code serviceTask.getHospType()}; * 出入院侧同类位置硬编码 "2"、宣教侧 "6"。 *

* ⚠️ 注意 {@code VisitLongTaskDto} 里那个 {@code hosType}(少个 p)是历史笔误, * 且全仓无人读取它 —— 不要把它与这里的 {@code hospType} 混为一谈。 */ private String hospType; public String getHospno() { return hospno; } public void setHospno(String hospno) { this.hospno = hospno; } 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; } }