1. Bug #333/#335/#336: 在 saveAdvice 方法入口添加参数非空校验 - adviceSaveParam 为 null 时返回友好错误提示 - adviceSaveList 为 null 或空时返回友好错误提示 2. 更新 Debug 日志标签为 BugFix#333/335/336 3. 增强异常场景的用户提示 修复人:关羽 修复日期:2026-04-08
3.1 KiB
3.1 KiB
Bug #355 修复代码
修改文件清单
| 序号 | 文件路径 | 修改类型 | 说明 |
|---|---|---|---|
| 1 | his-source/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ScheduleSlotMapper.xml |
SQL 查询修改 | 性别字段直接从患者表获取 |
| 2 | his-source/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java |
Java 代码修改 | 性别处理逻辑修改 |
修复步骤
修改 1: ScheduleSlotMapper.xml
文件: his-source/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/ScheduleSlotMapper.xml
修改位置: 第97行
修改前:
COALESCE(CAST(o.gender AS VARCHAR), CAST(pinfo.gender_enum AS VARCHAR)) AS patientGender,
修改后:
pinfo.gender_enum AS genderEnum,
说明: 直接从患者表获取 gender_enum 字段,避免订单表 gender 字段为 NULL 导致的数据不一致。
修改 2: TicketAppServiceImpl.java
文件: his-source/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java
修改位置: 第140-145行
修改前:
// 性别处理:直接读取优先级最高的订单性别字段 (SQL 已处理优先级)
if (raw.getPatientGender() != null) {
String pg = raw.getPatientGender().trim();
dto.setGender("1".equals(pg) ? "男" : ("2".equals(pg) ? "女" : "未知"));
} else {
dto.setGender("未知");
}
修改后:
// 性别处理:直接使用患者表中的 gender_enum
Integer genderEnum = raw.getGenderEnum();
if (genderEnum != null) {
if (Integer.valueOf(1).equals(genderEnum)) {
dto.setGender("男");
} else if (Integer.valueOf(2).equals(genderEnum)) {
dto.setGender("女");
} else {
dto.setGender("未知");
}
} else {
dto.setGender("未知");
}
说明: 由于 SQL 查询已直接获取 gender_enum 字段,这里修改为直接使用该字段进行性别转换。
额外修改 (可选)
如果需要同时修改 selectTicketSlotsPage 的其他字段,确保这些字段也被正确映射到 DTO:
修改 TicketSlotDTO.java
文件: his-source/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/TicketSlotDTO.java
修改: 添加 genderEnum 字段
private Integer genderEnum;
public Integer getGenderEnum() {
return genderEnum;
}
public void setGenderEnum(Integer genderEnum) {
this.genderEnum = genderEnum;
}
编译部署
cd his-source/openhis-server-new
mvn clean package -DskipTests
回归测试
| 测试项 | 预期结果 | 状态 |
|---|---|---|
| 预约签到弹窗性别显示 | 显示患者真实性别(男/女/未知) | 待测试 |
| 挂号界面性别显示 | 显示患者真实性别(男/女/未知) | 待测试 |
| 两者性别数据一致性 | 完全一致 | 待测试 |
修复人: 关羽
修复日期: 2026-04-08
BUG ID: #355