From 6accaa35c9fa133ed719bd393150327cb5314a7e Mon Sep 17 00:00:00 2001 From: chenqi Date: Tue, 31 Mar 2026 16:10:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(surgicalschedule):=20=E5=B0=86=E6=89=8B?= =?UTF-8?q?=E6=9C=AF=E5=AE=89=E6=8E=92=E6=97=A5=E6=9C=9F=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=97=A5=E6=9C=9F=E8=8C=83=E5=9B=B4=E9=80=89?= =?UTF-8?q?=E6=8B=A9=20BUG#305?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将前端日期选择器从单日期改为日期范围选择器 - 修改查询参数从 scheduleDate 改为 scheduleDateRange 数组 - 新增 scheduleDateStart 和 scheduleDateEnd 参数用于后端查询 - 在后端 DTO 中添加日期范围查询字段并配置格式化注解 - 更新 MyBatis XML 映射文件中的日期查询条件逻辑 - 实现前端日期范围到查询参数的转换处理逻辑 --- .../web/clinicalmanage/dto/OpScheduleDto.java | 15 +++++++ .../SurgicalScheduleAppMapper.xml | 10 +++-- .../src/views/surgicalschedule/index.vue | 41 +++++++++++++------ 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/dto/OpScheduleDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/dto/OpScheduleDto.java index 00f25c63..5f16f5e1 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/dto/OpScheduleDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/clinicalmanage/dto/OpScheduleDto.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.openhis.surgicalschedule.domain.OpSchedule; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; @@ -18,6 +19,20 @@ import java.time.LocalDate; @EqualsAndHashCode(callSuper = true) public class OpScheduleDto extends OpSchedule { + /** + * 手术安排日期开始(查询用) + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate scheduleDateStart; + + /** + * 手术安排日期结束(查询用) + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate scheduleDateEnd; + /** * 患者姓名 */ diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/clinicalmanage/SurgicalScheduleAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/clinicalmanage/SurgicalScheduleAppMapper.xml index c29a246d..d1c2d6f9 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/clinicalmanage/SurgicalScheduleAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/clinicalmanage/SurgicalScheduleAppMapper.xml @@ -47,8 +47,11 @@ AND cs.apply_dept_id = #{dto.applyDeptId} - - AND os.schedule_date = #{dto.scheduleDate} + + AND DATE(os.schedule_date) >= #{dto.scheduleDateStart} + + + AND DATE(os.schedule_date) <= #{dto.scheduleDateEnd} AND os.oper_code LIKE CONCAT('%', #{dto.operCode}, '%') @@ -134,7 +137,8 @@ AND os.apply_id = #{dto.applyId} AND os.oper_code = #{dto.operCode} AND os.oper_name LIKE CONCAT('%', #{dto.operName}, '%') - AND os.schedule_date = #{dto.scheduleDate} + AND DATE(os.schedule_date) >= #{dto.scheduleDateStart} + AND DATE(os.schedule_date) <= #{dto.scheduleDateEnd} AND cs.org_id = #{dto.orgId} AND cs.apply_dept_id = #{dto.applyDeptId} AND ap.name LIKE CONCAT('%', #{dto.patientName}, '%') diff --git a/openhis-ui-vue3/src/views/surgicalschedule/index.vue b/openhis-ui-vue3/src/views/surgicalschedule/index.vue index 6930e957..99336298 100644 --- a/openhis-ui-vue3/src/views/surgicalschedule/index.vue +++ b/openhis-ui-vue3/src/views/surgicalschedule/index.vue @@ -11,16 +11,16 @@ style="width: 200px" /> - - - - + + @@ -872,7 +872,9 @@ const surgeryList = ref([]) const queryParams = reactive({ pageNo: 1, pageSize: 10, - scheduleDate: undefined, + scheduleDateRange: [], + scheduleDateStart: undefined, + scheduleDateEnd: undefined, tenantId: undefined, applyDeptId: undefined, patientName: undefined, @@ -1166,7 +1168,18 @@ function loadOperatingRoomList() { // 获取手术安排列表 function getList() { loading.value = true - getSurgerySchedulePage(queryParams).then((res) => { + // 处理日期范围 + const params = { ...queryParams } + if (params.scheduleDateRange && params.scheduleDateRange.length === 2) { + params.scheduleDateStart = params.scheduleDateRange[0] + params.scheduleDateEnd = params.scheduleDateRange[1] + } else { + params.scheduleDateStart = undefined + params.scheduleDateEnd = undefined + } + delete params.scheduleDateRange + + getSurgerySchedulePage(params).then((res) => { surgeryList.value = res.data.records total.value = res.data.total }).catch(error => { @@ -1192,7 +1205,9 @@ function resetQuery() { Object.assign(queryParams, { pageNo: 1, pageSize: 10, - scheduleDate: undefined, + scheduleDateRange: [], + scheduleDateStart: undefined, + scheduleDateEnd: undefined, tenantId: undefined, applyDeptId: undefined, patientName: undefined,