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("人工肝治疗时间必须在入院和出院时间之间(允许为同一天)"); + } } }