fix: 完整回退 Bug #497 的后端修改(SQL/Java接口/Impl/Dto)

This commit is contained in:
赵云
2026-05-11 14:13:49 +08:00
parent 0774d9f877
commit 2a9f8376e6
4 changed files with 12 additions and 39 deletions

View File

@@ -33,7 +33,7 @@ public interface IRequestFormManageAppService {
List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode);
/**
* 查询申请单(支持日期和状态筛选)
* 查询申请单(支持筛选)
*
* @param encounterId 就诊id
* @param typeCode 申请单类型
@@ -44,19 +44,6 @@ public interface IRequestFormManageAppService {
*/
List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status);
/**
* 查询申请单(支持日期、状态和关键字筛选)
*
* @param encounterId 就诊id
* @param typeCode 申请单类型
* @param startDate 开始日期可选格式yyyy-MM-dd
* @param endDate 结束日期可选格式yyyy-MM-dd
* @param status 单据状态(可选)
* @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配)
* @return 申请单列表
*/
List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status, String keyword);
/**
* 分页查询申请单
*

View File

@@ -95,13 +95,6 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
prescriptionNo = assignSeqUtil.getSeq(AssignSeqEnum.ACTIVITY_PSYCHOTROPIC_NO.getPrefix(), 8);
}
// 诊疗执行科室配置校验(必须在数据库操作之前执行)
List<ActivityOrganizationConfigDto> activityOrganizationConfig =
requestFormManageAppMapper.getActivityOrganizationConfig(typeCode);
if (activityOrganizationConfig.isEmpty()) {
throw new ServiceException("请先配置当前时间段的执行科室");
}
// 当前时间
Date curDate = new Date();
// 请求类型
@@ -146,6 +139,12 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
// 诊疗集合
List<ActivitySaveDto> activityList = requestFormSaveDto.getActivityList();
log.info("保存申请单typeCode={}, activityListSize={}, encounterId={}", typeCode, activityList != null ? activityList.size() : 0, encounterId);
// 诊疗执行科室配置
List<ActivityOrganizationConfigDto> activityOrganizationConfig =
requestFormManageAppMapper.getActivityOrganizationConfig(typeCode);
if (activityOrganizationConfig.isEmpty()) {
throw new ServiceException("请先配置当前时间段的执行科室");
}
for (ActivitySaveDto activitySaveDto : activityList) {
serviceRequest = new ServiceRequest();
@@ -415,7 +414,7 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
@Override
public List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode) {
// 调用重载方法,不传筛选参数
return getRequestForm(encounterId, typeCode, null, null, null, null);
return getRequestForm(encounterId, typeCode, null, null, null);
}
/**
@@ -426,17 +425,16 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
* @param startDate 开始日期可选格式yyyy-MM-dd
* @param endDate 结束日期可选格式yyyy-MM-dd
* @param status 单据状态(可选)
* @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配)
* @return 申请单列表
*/
@Override
public List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status, String keyword) {
public List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status) {
// 检查参数
if (encounterId == null) {
return new java.util.ArrayList<>(); // 返回空列表而不是查询数据库
}
List<RequestFormQueryDto> requestFormList = requestFormManageAppMapper.getRequestForm(encounterId, typeCode, startDate, endDate, status, keyword);
List<RequestFormQueryDto> requestFormList = requestFormManageAppMapper.getRequestForm(encounterId, typeCode, startDate, endDate, status);
for (RequestFormQueryDto requestFormQueryDto : requestFormList) {
// 查询处方详情
List<RequestFormDetailQueryDto> requestFormDetail =

View File

@@ -61,11 +61,6 @@ public class RequestFormQueryDto {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 单据状态 0=待签发 1=已签发 2=已校对 3=待接收 4=已接收 5=已检查 6=已出报告 7=已作废
*/
private Integer status;
/**
* 申请单详情
*/

View File

@@ -27,15 +27,8 @@
<if test="endDate != null and endDate != ''">
AND drf.create_time &lt;= (#{endDate}::date + INTERVAL '1 day' - INTERVAL '1 second')
</if>
<if test="keyword != null and keyword != ''">
AND (drf.prescription_no LIKE CONCAT('%', #{keyword}, '%')
OR EXISTS (
SELECT 1 FROM wor_service_request wsr_kw
LEFT JOIN wor_activity_definition wad_kw ON wad_kw.id = wsr_kw.activity_id
WHERE wsr_kw.prescription_no = drf.prescription_no
AND wsr_kw.delete_flag = '0'
AND wad_kw.name LIKE CONCAT('%', #{keyword}, '%')
))
<if test="status != null and status != ''">
AND drf.status = #{status}::integer
</if>
</select>