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

This commit is contained in:
赵云
2026-05-11 14:13:49 +08:00
parent c0ea55a74d
commit 51f4b84842
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); List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode);
/** /**
* 查询申请单(支持日期和状态筛选) * 查询申请单(支持筛选)
* *
* @param encounterId 就诊id * @param encounterId 就诊id
* @param typeCode 申请单类型 * @param typeCode 申请单类型
@@ -44,19 +44,6 @@ public interface IRequestFormManageAppService {
*/ */
List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status); 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); 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(); Date curDate = new Date();
// 请求类型 // 请求类型
@@ -146,6 +139,12 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
// 诊疗集合 // 诊疗集合
List<ActivitySaveDto> activityList = requestFormSaveDto.getActivityList(); List<ActivitySaveDto> activityList = requestFormSaveDto.getActivityList();
log.info("保存申请单typeCode={}, activityListSize={}, encounterId={}", typeCode, activityList != null ? activityList.size() : 0, encounterId); 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) { for (ActivitySaveDto activitySaveDto : activityList) {
serviceRequest = new ServiceRequest(); serviceRequest = new ServiceRequest();
@@ -415,7 +414,7 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
@Override @Override
public List<RequestFormQueryDto> getRequestForm(Long encounterId, String typeCode) { 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 startDate 开始日期可选格式yyyy-MM-dd
* @param endDate 结束日期可选格式yyyy-MM-dd * @param endDate 结束日期可选格式yyyy-MM-dd
* @param status 单据状态(可选) * @param status 单据状态(可选)
* @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配)
* @return 申请单列表 * @return 申请单列表
*/ */
@Override @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) { if (encounterId == null) {
return new java.util.ArrayList<>(); // 返回空列表而不是查询数据库 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) { for (RequestFormQueryDto requestFormQueryDto : requestFormList) {
// 查询处方详情 // 查询处方详情
List<RequestFormDetailQueryDto> requestFormDetail = List<RequestFormDetailQueryDto> requestFormDetail =

View File

@@ -61,11 +61,6 @@ public class RequestFormQueryDto {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; 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 != ''"> <if test="endDate != null and endDate != ''">
AND drf.create_time &lt;= (#{endDate}::date + INTERVAL '1 day' - INTERVAL '1 second') AND drf.create_time &lt;= (#{endDate}::date + INTERVAL '1 day' - INTERVAL '1 second')
</if> </if>
<if test="keyword != null and keyword != ''"> <if test="status != null and status != ''">
AND (drf.prescription_no LIKE CONCAT('%', #{keyword}, '%') AND drf.status = #{status}::integer
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> </if>
</select> </select>