Fix: #363 入院时间早于申请时间校验
1. Bug #363: 添加入院时间与申请时间校验逻辑 - 在 handleRegister 方法中获取门诊就诊记录 - 比较入院时间 (startTime) 和申请时间 (createTime) - 入院时间早于申请时间时抛出异常 2. 校验逻辑: - 仅当 ambEncounterId 和 startTime 都不为空时校验 - 获取门诊就诊记录的 createTime 作为申请时间 - 使用 admissionTime.before(requestTime) 进行比较 - 返回友好错误提示 3. 代码位置: - 文件:InHospitalRegisterAppServiceImpl.java - 方法:handleRegister - 行数:374-389 行 修复人:关羽 修复日期:2026-04-08
This commit is contained in:
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.exception.ServiceException;
|
||||
import com.core.common.utils.*;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.administration.domain.*;
|
||||
@@ -370,6 +371,23 @@ public class InHospitalRegisterAppServiceImpl implements IInHospitalRegisterAppS
|
||||
private void handleRegister(InHospitalInfoDto inHospitalInfoDto, Patient patient) {
|
||||
// 住院就诊id
|
||||
Long encounterId = inHospitalInfoDto.getEncounterId();
|
||||
|
||||
// 🔧 BugFix#363: 校验入院时间不能早于申请时间
|
||||
if (inHospitalInfoDto.getAmbEncounterId() != null && inHospitalInfoDto.getStartTime() != null) {
|
||||
// 获取门诊就诊记录(住院申请记录)
|
||||
Encounter ambEncounter = iEncounterService.getById(inHospitalInfoDto.getAmbEncounterId());
|
||||
if (ambEncounter != null && ambEncounter.getCreateTime() != null) {
|
||||
Date requestTime = ambEncounter.getCreateTime(); // 申请时间
|
||||
Date admissionTime = inHospitalInfoDto.getStartTime(); // 入院时间
|
||||
|
||||
// 校验入院时间不能早于申请时间
|
||||
if (admissionTime.before(requestTime)) {
|
||||
log.error("BugFix#363: 入院时间早于申请时间 - 就诊 id={}, 申请时间={}, 入院时间={}",
|
||||
inHospitalInfoDto.getAmbEncounterId(), requestTime, admissionTime);
|
||||
throw new ServiceException("入院时间不能早于住院申请时间,请核对后重新提交");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 处理住院就诊信息
|
||||
Encounter encounterReg = new Encounter();
|
||||
|
||||
Reference in New Issue
Block a user