2 Commits

Author SHA1 Message Date
64b02466b1 feat(consultation): 添加会诊ID查询功能
- 在前端表单中新增会诊ID输入框用于查询过滤
- 更新查询参数对象以包含consultationId字段
- 在后端服务中实现会诊ID的模糊匹配查询逻辑
- 将会诊ID查询条件集成到现有的查询构建器中
- 保持与其他查询条件的兼容性以支持组合筛选
2026-03-30 15:46:06 +08:00
2ffbe73305 feat(consultation): 添加根据ID查询会诊申请详情功能
- 在前端API文件中新增getConsultationById函数用于查询会诊详情
- 在后端服务接口中定义getConsultationById方法
- 在后端服务实现类中实现详细的会诊申请查询逻辑
- 在控制器中添加/detailed{id}接口支持会诊详情查询
- 添加参数验证和异常处理确保查询安全性
- 移除多余的日志输出信息优化代码整洁性
2026-03-30 15:29:56 +08:00
5 changed files with 79 additions and 6 deletions

View File

@@ -149,6 +149,14 @@ public interface IConsultationAppService {
* @return 会诊意见列表 * @return 会诊意见列表
*/ */
List<ConsultationOpinionDto> getConsultationOpinions(String consultationId); List<ConsultationOpinionDto> getConsultationOpinions(String consultationId);
/**
* 根据ID查询会诊申请详情
*
* @param id 会诊申请ID
* @return 会诊申请详情
*/
ConsultationRequestDto getConsultationById(Long id);
} }

View File

@@ -186,6 +186,11 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
wrapper.like(ConsultationRequest::getPatientName, dto.getPatientName()); wrapper.like(ConsultationRequest::getPatientName, dto.getPatientName());
} }
// 会诊ID查询支持模糊匹配
if (StringUtils.hasText(dto.getConsultationId())) {
wrapper.like(ConsultationRequest::getConsultationId, dto.getConsultationId());
}
// 按创建时间倒序排列 // 按创建时间倒序排列
wrapper.orderByDesc(ConsultationRequest::getConsultationRequestDate); wrapper.orderByDesc(ConsultationRequest::getConsultationRequestDate);
@@ -240,6 +245,11 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
wrapper.like(ConsultationRequest::getPatientName, dto.getPatientName()); wrapper.like(ConsultationRequest::getPatientName, dto.getPatientName());
} }
// 会诊ID查询支持模糊匹配
if (StringUtils.hasText(dto.getConsultationId())) {
wrapper.like(ConsultationRequest::getConsultationId, dto.getConsultationId());
}
// 按创建时间倒序排列 // 按创建时间倒序排列
wrapper.orderByDesc(ConsultationRequest::getConsultationRequestDate); wrapper.orderByDesc(ConsultationRequest::getConsultationRequestDate);
@@ -786,10 +796,6 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
} }
} }
log.info("填充会诊记录信息,已确认和已签名医生数:{},已签名医生数:{}",
confirmedAndSignedPhysicians.size(), signedPhysicians.size());
}
}
} }
} }
@@ -1822,5 +1828,26 @@ public class ConsultationAppServiceImpl implements IConsultationAppService {
return new ArrayList<>(); return new ArrayList<>();
} }
} }
@Override
public ConsultationRequestDto getConsultationById(Long id) {
try {
if (id == null) {
throw new IllegalArgumentException("会诊申请ID不能为空");
}
// 1. 查询会诊申请
ConsultationRequest request = consultationRequestMapper.selectById(id);
if (request == null) {
throw new IllegalArgumentException("会诊申请不存在ID: " + id);
}
// 2. 转换为DTO并返回
return convertToDto(request);
} catch (Exception e) {
log.error("查询会诊申请详情失败", e);
throw new RuntimeException("查询会诊申请详情失败: " + e.getMessage());
}
}
} }

View File

@@ -302,5 +302,21 @@ public class ConsultationController {
return R.fail("获取会诊意见列表失败: " + e.getMessage()); return R.fail("获取会诊意见列表失败: " + e.getMessage());
} }
} }
/**
* 根据ID查询会诊申请详情
*/
@ApiOperation("根据ID查询会诊申请详情")
@GetMapping("/detail/{id}")
public R<ConsultationRequestDto> getConsultationById(
@ApiParam("会诊申请ID") @PathVariable Long id) {
try {
ConsultationRequestDto detail = consultationAppService.getConsultationById(id);
return R.ok(detail);
} catch (Exception e) {
log.error("查询会诊申请详情失败", e);
return R.fail("查询会诊申请详情失败: " + e.getMessage());
}
}
} }

View File

@@ -135,3 +135,14 @@ export function getConsultationOpinions(consultationId) {
}) })
} }
/**
* 根据ID查询会诊申请详情
* @param {Number} id 会诊申请ID
*/
export function getConsultationById(id) {
return request({
url: `/consultation/detail/${id}`,
method: 'get'
})
}

View File

@@ -81,6 +81,15 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="会诊ID">
<el-input
v-model="queryParams.consultationId"
placeholder="请输入会诊ID"
clearable
style="width: 180px"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery"> <el-button type="primary" @click="handleQuery">
<el-icon><Search /></el-icon> 查询 <el-icon><Search /></el-icon> 查询
@@ -394,7 +403,8 @@ const queryParams = reactive({
applyDoctor: '', applyDoctor: '',
urgency: '', urgency: '',
consultationStatus: '', consultationStatus: '',
patientName: '' patientName: '',
consultationId: ''
}) })
// 会诊状态常量 // 会诊状态常量
@@ -702,7 +712,8 @@ const loadData = async () => {
consultationStatus: queryParams.consultationStatus, consultationStatus: queryParams.consultationStatus,
patientName: queryParams.patientName, patientName: queryParams.patientName,
consultationRequestDate: queryParams.startTime, consultationRequestDate: queryParams.startTime,
consultationUrgency: queryParams.urgency consultationUrgency: queryParams.urgency,
consultationId: queryParams.consultationId
} }
const res = await queryConsultationListPage(queryData, pagination.currentPage, pagination.pageSize) const res = await queryConsultationListPage(queryData, pagination.currentPage, pagination.pageSize)