From 94f796fdf228f831043f0daa7fdbda4a3bd44eb6 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Wed, 9 Jul 2025 15:51:31 +0800 Subject: [PATCH] 5555 --- .../service/MedicalRecordService.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java index ba20502..2a5ac87 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java @@ -509,10 +509,20 @@ public class MedicalRecordService { return ResponseDTO.userErrorParam("最后一次人工肝治疗后检测时间必须在入院和出院时间之间"); } - for (DpmsAddForm dpma : dpmas) { + for (int i = 0; i < dpmas.size(); i++) { + DpmsAddForm dpma = dpmas.get(i); LocalDateTime treatTime = dpma.getTreatTime(); - if (treatTime.isBefore(admissionTime) || treatTime.isAfter(dischargeTime)) { - return ResponseDTO.userErrorParam("人工肝治疗时间必须在入院和出院时间之间"); + + if (dpmas.size() > 1) { + // 多次治疗:必须严格在入院和出院之间(不能等于) + if (!treatTime.isAfter(admissionTime) || !treatTime.isBefore(dischargeTime)) { + return ResponseDTO.userErrorParam("第 " + (i + 1) + " 次人工肝治疗时间必须在入院和出院时间之间"); + } + } else { + // 只有一次治疗:允许等于入院或出院时间 + if (treatTime.isBefore(admissionTime) || treatTime.isAfter(dischargeTime)) { + return ResponseDTO.userErrorParam("人工肝治疗时间必须在入院和出院时间之间(允许为同一天)"); + } } }