feat(surgicalschedule): 添加手术单号查询功能并优化收费状态 BUG#306

- 在手术申请查询界面添加手术单号输入框
- 将收费项目状态从草稿改为待收费状态
- 在请求表单DTO中添加手术单号字段
- 在数据库查询中关联手术安排表并添加手术单号过滤条件
- 添加筛选条件确保只查询未安排手术的申请记录
This commit is contained in:
2026-03-31 17:18:09 +08:00
parent a8a205aa48
commit bbef0322a3
4 changed files with 19 additions and 1 deletions

View File

@@ -347,7 +347,7 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
// 生成收费项目 // 生成收费项目
ChargeItem chargeItem = new ChargeItem(); ChargeItem chargeItem = new ChargeItem();
chargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue()); // 收费状态 chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); // 收费状态:待收费
chargeItem.setBusNo("CI" + serviceRequest.getBusNo()); chargeItem.setBusNo("CI" + serviceRequest.getBusNo());
chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源 chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
chargeItem.setPatientId(surgeryDto.getPatientId()); // 患者 chargeItem.setPatientId(surgeryDto.getPatientId()); // 患者

View File

@@ -10,6 +10,10 @@ import java.time.LocalDate;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class RequestFormDto { public class RequestFormDto {
/**
* 手术单号
*/
private String surgeryNo;
/** /**
* 申请时间开始 * 申请时间开始
*/ */

View File

@@ -98,7 +98,11 @@
LEFT JOIN adm_encounter ae ON ae.id = cs.encounter_id LEFT JOIN adm_encounter ae ON ae.id = cs.encounter_id
LEFT JOIN adm_account aa ON aa.encounter_id = ae.id AND aa.delete_flag = '0' LEFT JOIN adm_account aa ON aa.encounter_id = ae.id AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc ON fc.bus_no = aa.contract_no AND fc.delete_flag = '0' LEFT JOIN fin_contract fc ON fc.bus_no = aa.contract_no AND fc.delete_flag = '0'
LEFT JOIN op_schedule os ON os.apply_id = drf.id AND os.delete_flag = '0'
<where> <where>
<if test="requestFormDto.surgeryNo != null and requestFormDto.surgeryNo != ''">
AND drf.prescription_no LIKE CONCAT('%', #{requestFormDto.surgeryNo}, '%')
</if>
<if test="requestFormDto.applyTimeStart != null"> <if test="requestFormDto.applyTimeStart != null">
AND drf.create_time >= #{requestFormDto.applyTimeStart} AND drf.create_time >= #{requestFormDto.applyTimeStart}
</if> </if>
@@ -112,6 +116,7 @@
AND cs.apply_dept_id = #{requestFormDto.applyDeptId} AND cs.apply_dept_id = #{requestFormDto.applyDeptId}
</if> </if>
AND drf.delete_flag = '0' AND drf.delete_flag = '0'
AND os.schedule_id IS NULL
</where> </where>
ORDER BY drf.create_time DESC ORDER BY drf.create_time DESC
</select> </select>

View File

@@ -692,6 +692,15 @@
<el-dialog :title="'手术申请查询'" v-model="showApplyDialog" width="1200px" @close="cancelApplyDialog"> <el-dialog :title="'手术申请查询'" v-model="showApplyDialog" width="1200px" @close="cancelApplyDialog">
<!-- 查询条件区 --> <!-- 查询条件区 -->
<el-form :model="applyQueryParams" ref="applyQueryRef" :inline="true" class="query-form"> <el-form :model="applyQueryParams" ref="applyQueryRef" :inline="true" class="query-form">
<el-form-item label="手术单号" prop="surgeryNo">
<el-input
v-model="applyQueryParams.surgeryNo"
placeholder="请输入手术单号"
clearable
@keyup.enter="handleApplyQuery"
style="width: 200px"
/>
</el-form-item>
<el-form-item label="申请时间范围" prop="applyTimeRange"> <el-form-item label="申请时间范围" prop="applyTimeRange">
<el-tooltip :content="applyQueryParams.applyTimeRange ? applyQueryParams.applyTimeRange.join(' 至 ') : ''" placement="top" :disabled="!applyQueryParams.applyTimeRange || applyQueryParams.applyTimeRange.length === 0"> <el-tooltip :content="applyQueryParams.applyTimeRange ? applyQueryParams.applyTimeRange.join(' 至 ') : ''" placement="top" :disabled="!applyQueryParams.applyTimeRange || applyQueryParams.applyTimeRange.length === 0">
<el-date-picker <el-date-picker