80 门诊医生站检查申请单开单界面,排班的回显问题

This commit is contained in:
HuangXinQuan
2026-02-27 14:25:17 +08:00
parent 87c7981ad9
commit fcd2d03424
6 changed files with 323 additions and 120 deletions

View File

@@ -0,0 +1,85 @@
package com.openhis.appointmentmanage.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalTime;
/**
* 医生排班含具体日期DTO
* 通过 adm_doctor_schedule LEFT JOIN adm_schedule_pool 联表查询得到,
* 在原排班信息基础上增加了号源池中的具体出诊日期字段。
*
* @date 2026-02-25
*/
@Data
public class DoctorScheduleWithDateDto {
/** 排班记录ID */
private Long id;
/** 星期 */
private String weekday;
/** 时段(上午/下午) */
private String timePeriod;
/** 开始时间 */
private LocalTime startTime;
/** 结束时间 */
private LocalTime endTime;
/** 限号数量 */
private Integer limitNumber;
/** 号源记录 */
private String callSignRecord;
/** 挂号项目 */
private String registerItem;
/** 挂号费 */
private Integer registerFee;
/** 诊查项目 */
private String diagnosisItem;
/** 诊疗费 */
private Integer diagnosisFee;
/** 线上挂号 */
private Boolean isOnline;
/** 是否停诊 */
private Boolean isStopped;
/** 停诊原因 */
private String stopReason;
/** 关联科室ID */
private Long deptId;
/** 医生姓名 */
private String doctorName;
/** 诊室/位置 */
@JsonProperty("clinicRoom")
private String clinicRoom;
/** 医生排班表中设置的具体诊室位置 */
private String clinic;
/** 科室名称 */
private String deptName;
/** 科室位置 */
private String deptLocation;
/** 医生ID来自 adm_schedule_pool.doctor_id */
private Long doctorId;
/** 具体出诊日期(来自 adm_schedule_pool.schedule_date */
private LocalDate scheduleDate;
}

View File

@@ -2,7 +2,11 @@ package com.openhis.appointmentmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
import com.openhis.appointmentmanage.domain.DoctorScheduleWithDateDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DoctorScheduleMapper extends BaseMapper<DoctorSchedule> {
@@ -10,8 +14,43 @@ public interface DoctorScheduleMapper extends BaseMapper<DoctorSchedule> {
* 自定义插入方法排除id字段数据库GENERATED ALWAYS
*/
int insertWithoutId(DoctorSchedule doctorSchedule);
/**
* 自定义更新方法
*/
int updateDoctorSchedule(DoctorSchedule doctorSchedule);
/**
* 联表查询根据科室ID和日期范围查询排班信息含具体出诊日期
* 通过 LEFT JOIN adm_schedule_pool 获取 schedule_date 字段,
* 解决原来只按星期匹配导致日期错位的问题。
*
* @param deptId 科室ID
* @param startDate 起始日期yyyy-MM-dd
* @param endDate 结束日期yyyy-MM-dd
* @return 带具体日期的排班列表
*/
List<DoctorScheduleWithDateDto> selectScheduleWithDateByDeptAndRange(
@Param("deptId") Long deptId,
@Param("startDate") String startDate,
@Param("endDate") String endDate);
/**
* 联表查询:获取今日所有排班(通过 adm_schedule_pool.schedule_date = 今天)
*
* @param today 今日日期yyyy-MM-dd
* @return 今日排班列表
*/
List<DoctorScheduleWithDateDto> selectTodaySchedule(@Param("today") String today);
/**
* 联表查询:获取指定医生今日排班
*
* @param today 今日日期yyyy-MM-dd
* @param doctorId 医生ID
* @return 指定医生的今日排班列表
*/
List<DoctorScheduleWithDateDto> selectTodayMySchedule(
@Param("today") String today,
@Param("doctorId") Long doctorId);
}