预约管理->相关文件转移、号源后端接口实现、前端页面逻辑、数据处理修改。

This commit is contained in:
2025-12-15 16:50:16 +08:00
parent cf16c497bd
commit a077bd57d4
32 changed files with 489 additions and 62 deletions

View File

@@ -1,7 +1,7 @@
package com.openhis.web.appointmentmanage.appservice;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.DoctorSchedule;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
public interface IDoctorScheduleAppService {

View File

@@ -0,0 +1,8 @@
package com.openhis.web.appointmentmanage.appservice;
import com.core.common.core.domain.R;
import com.openhis.web.appointmentmanage.dto.SchedulePoolDto;
public interface ISchedulePoolAppService {
R<?> addSchedulePool(SchedulePoolDto schedulePoolDto);
}

View File

@@ -0,0 +1,4 @@
package com.openhis.web.appointmentmanage.appservice;
public interface IScheduleSlotAppService {
}

View File

@@ -3,8 +3,8 @@ package com.openhis.web.appointmentmanage.appservice.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.Dept;
import com.openhis.administration.service.IDeptService;
import com.openhis.appointmentmanage.domain.Dept;
import com.openhis.appointmentmanage.service.IDeptService;
import com.openhis.web.appointmentmanage.appservice.IDeptAppService;
import org.springframework.stereotype.Service;

View File

@@ -2,8 +2,8 @@ package com.openhis.web.appointmentmanage.appservice.impl;
import cn.hutool.core.util.ObjectUtil;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.DoctorSchedule;
import com.openhis.administration.service.IDoctorScheduleService;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
import com.openhis.appointmentmanage.service.IDoctorScheduleService;
import com.openhis.web.appointmentmanage.appservice.IDoctorScheduleAppService;
import org.springframework.stereotype.Service;

View File

@@ -0,0 +1,41 @@
package com.openhis.web.appointmentmanage.appservice.impl;
import cn.hutool.core.util.ObjectUtil;
import com.core.common.core.domain.R;
import com.openhis.appointmentmanage.domain.SchedulePool;
import com.openhis.appointmentmanage.service.ISchedulePoolService;
import com.openhis.web.appointmentmanage.appservice.ISchedulePoolAppService;
import com.openhis.web.appointmentmanage.dto.SchedulePoolDto;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class SchedulePoolAppServiceImpl implements ISchedulePoolAppService {
@Resource
private ISchedulePoolService schedulePoolService;
@Override
public R<?> addSchedulePool(SchedulePoolDto schedulePoolDto) {
//12/15 实体封装过程数据关系复杂 尚未完全理清 下次继续改
if(ObjectUtil.isNull(schedulePoolDto)){
return R.fail("号源不能为空");
}
SchedulePool schedulePool = new SchedulePool();
schedulePool.setHospitalId(schedulePoolDto.getHospitalId());
schedulePool.setDeptId(schedulePoolDto.getDeptId());
schedulePool.setDoctorId(schedulePoolDto.getDoctorId());
schedulePool.setDoctorName(schedulePoolDto.getDoctorName());
schedulePool.setScheduleDate(schedulePoolDto.getScheduleDate());
schedulePool.setShift(schedulePoolDto.getShift());
schedulePool.setStartTime(schedulePoolDto.getStartTime());
schedulePool.setEndTime(schedulePoolDto.getEndTime());
schedulePool.setRegType(schedulePoolDto.getRegType());
schedulePool.setFee(schedulePoolDto.getFee());
boolean save = schedulePoolService.save(schedulePool);
return R.ok(save);
}
}

View File

@@ -0,0 +1,8 @@
package com.openhis.web.appointmentmanage.appservice.impl;
import com.openhis.web.appointmentmanage.appservice.IScheduleSlotAppService;
import org.springframework.stereotype.Service;
@Service
public class ScheduleSlotAppServiceImpl implements IScheduleSlotAppService {
}

View File

@@ -1,12 +1,11 @@
package com.openhis.web.appointmentmanage.controller;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.DoctorSchedule;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
import com.openhis.web.appointmentmanage.appservice.IDoctorScheduleAppService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.websocket.server.PathParam;
@RestController
@RequestMapping("/doctor-schedule")

View File

@@ -0,0 +1,28 @@
package com.openhis.web.appointmentmanage.controller;
import com.core.common.core.domain.R;
import com.openhis.appointmentmanage.domain.SchedulePool;
import com.openhis.web.appointmentmanage.appservice.ISchedulePoolAppService;
import com.openhis.web.appointmentmanage.dto.SchedulePoolDto;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("/schedule-pool")
public class SchedulePoolController {
@Resource
private ISchedulePoolAppService schedulePoolAppService;
/*
* 新增号源
*
* */
public R<?> addSchedulePool(@RequestBody SchedulePoolDto schedulePoolDto) {
return R.ok(schedulePoolAppService.addSchedulePool(schedulePoolDto));
}
}

View File

@@ -0,0 +1,9 @@
package com.openhis.web.appointmentmanage.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/schedule-slot")
public class ScheduleSlotController {
}

View File

@@ -0,0 +1,104 @@
package com.openhis.web.appointmentmanage.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 号源池Dto
*
* @date 2025-12-12
*/
@Data
public class SchedulePoolDto {
/** id */
private Integer id;
/** 业务编号 */
private String poolCode;
/** 医院ID */
private Integer hospitalId;
/** 科室ID */
private Integer deptId;
/** 医生ID */
private Integer doctorId;
/** 医生姓名 */
private String doctorName;
/** 诊室 */
private String clinicRoom;
/** 出诊日期 */
private LocalDate scheduleDate;
/** 班别 */
private String shift;
/** 开始时间 */
private LocalTime startTime;
/** 结束时间 */
private LocalTime endTime;
/** 总号量 */
private Integer totalQuota;
/** 已约 */
private Integer bookedNum;
/** 铁号数 */
private Integer lockedNum;
/** 剩余号数 */
private Integer availableNum;
/** 号别 */
private String regType;
/** 原价 (元) */
private Double fee;
/** 医保限价 (元) */
private Double insurancePrice;
/** 支持渠道 */
private String supportChannel;
/** 号源状态 */
private Integer status;
/** 停诊原因 */
private String stopReason;
/** 放号时间 */
private LocalDateTime releaseTime;
/** 截止预约时间 */
private LocalDateTime deadlineTime;
/** 乐观锁版本 */
private Integer version;
/** 操作人ID */
private Integer opUserId;
/** 备注 */
private String remark;
/** 排班ID */
private Integer scheduleId;
/** 创建时间 */
private LocalDateTime createTime;
/** 更新时间 */
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,7 @@
package com.openhis.web.appointmentmanage.mapper;
import org.springframework.stereotype.Repository;
@Repository
public interface SchedulePoolAppMapper {
}

View File

@@ -0,0 +1,7 @@
package com.openhis.web.appointmentmanage.mapper;
import org.springframework.stereotype.Repository;
@Repository
public interface ScheduleSlotAppMapper {
}

View File

@@ -1,11 +0,0 @@
package com.openhis.administration.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.Dept;
import com.openhis.administration.mapper.DeptMapper;
import com.openhis.administration.service.IDeptService;
import org.springframework.stereotype.Service;
@Service
public class DeptImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
}

View File

@@ -1,14 +1,13 @@
package com.openhis.administration.domain;
package com.openhis.appointmentmanage.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List;
/**
* 科室Entity实体
* 科室Entity
*
* @date 2025-12-08
*/

View File

@@ -1,4 +1,4 @@
package com.openhis.administration.domain;
package com.openhis.appointmentmanage.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -6,7 +6,11 @@ import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 医生排班Entity
*
* @date 2025-12-12
*/
@Data
@TableName(value = "adm_doctor_schedule")
@Accessors(chain = true)

View File

@@ -1,4 +1,4 @@
package com.openhis.administration.domain;
package com.openhis.appointmentmanage.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -7,7 +7,11 @@ import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 号源池Entity
*
* @date 2025-12-12
*/
@Data
@TableName(value = "adm_schedule_pool")
@Accessors(chain = true)
@@ -15,36 +19,84 @@ public class SchedulePool {
/** id */
private Integer id;
/** 业务编号 */
private String poolCode;
/** 医院ID */
private Integer hospitalId;
/** 科室ID */
private Integer deptId;
/** 医生ID */
private Integer doctorId;
/** 医生姓名 */
private String doctorName;
/** 诊室 */
private String clinicRoom;
/** 出诊日期 */
private LocalDate scheduleDate;
/** 班别 */
private String shift;
/** 开始时间 */
private LocalTime startTime;
/** 结束时间 */
private LocalTime endTime;
/**/
/** 总号量 */
private Integer totalQuota;
/** 已约 */
private Integer bookedNum;
/** 铁号数 */
private Integer lockedNum;
/** 剩余号数 */
private Integer availableNum;
/** 号别 */
private String regType;
/** 原价 (元) */
private Double fee;
/** 医保限价 (元) */
private Double insurancePrice;
/** 支持渠道 */
private String supportChannel;
/** 号源状态 */
private Integer status;
/** 停诊原因 */
private String stopReason;
/** 放号时间 */
private LocalDateTime releaseTime;
/** 截止预约时间 */
private LocalDateTime deadlineTime;
/** 乐观锁版本 */
private Integer version;
/** 操作人ID */
private Integer opUserId;
/** 备注 */
private String remark;
/** 排班ID */
private Integer scheduleId;
/** 创建时间 */
private LocalDateTime createTime;

View File

@@ -1,4 +1,4 @@
package com.openhis.administration.domain;
package com.openhis.appointmentmanage.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -6,17 +6,33 @@ import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 号源池明细Entity
*
* @date 2025-12-12
*/
@Data
@TableName(value = "adm_schedule_slot")
@Accessors(chain = true)
public class ScheduleSlot {
/** 明细主键 */
private Integer id;
/** 号源池ID */
private Integer poolId;
/** 序号 */
private Integer seqNo;
/** 序号状态: 0-可用,1-已预约,2-已取消,3-已过期等 */
private Integer status;
/** 预约订单ID */
private Integer orderId;
/** 预计叫号时间 */
private LocalTime expectTime;
/** 创建时间 */
private LocalDateTime createTime;

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.mapper;
package com.openhis.appointmentmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.Dept;
import com.openhis.appointmentmanage.domain.Dept;
import org.springframework.stereotype.Repository;
@Repository

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.mapper;
package com.openhis.appointmentmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.DoctorSchedule;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
import org.springframework.stereotype.Repository;
@Repository

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.mapper;
package com.openhis.appointmentmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.SchedulePool;
import com.openhis.appointmentmanage.domain.SchedulePool;
import org.springframework.stereotype.Repository;
@Repository

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.mapper;
package com.openhis.appointmentmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.ScheduleSlot;
import com.openhis.appointmentmanage.domain.ScheduleSlot;
import org.springframework.stereotype.Repository;
@Repository

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.service;
package com.openhis.appointmentmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.Dept;
import com.openhis.appointmentmanage.domain.Dept;
public interface IDeptService extends IService<Dept> {
}

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.service;
package com.openhis.appointmentmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.DoctorSchedule;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
public interface IDoctorScheduleService extends IService<DoctorSchedule> {
}

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.service;
package com.openhis.appointmentmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.SchedulePool;
import com.openhis.appointmentmanage.domain.SchedulePool;
public interface ISchedulePoolService extends IService<SchedulePool> {
}

View File

@@ -1,7 +1,7 @@
package com.openhis.administration.service;
package com.openhis.appointmentmanage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.ScheduleSlot;
import com.openhis.appointmentmanage.domain.ScheduleSlot;
public interface IScheduleSlotService extends IService<ScheduleSlot> {
}

View File

@@ -0,0 +1,11 @@
package com.openhis.appointmentmanage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.appointmentmanage.domain.Dept;
import com.openhis.appointmentmanage.mapper.DeptMapper;
import com.openhis.appointmentmanage.service.IDeptService;
import org.springframework.stereotype.Service;
@Service
public class DeptImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
}

View File

@@ -1,9 +1,9 @@
package com.openhis.administration.service.impl;
package com.openhis.appointmentmanage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.DoctorSchedule;
import com.openhis.administration.mapper.DoctorScheduleMapper;
import com.openhis.administration.service.IDoctorScheduleService;
import com.openhis.appointmentmanage.domain.DoctorSchedule;
import com.openhis.appointmentmanage.mapper.DoctorScheduleMapper;
import com.openhis.appointmentmanage.service.IDoctorScheduleService;
import org.springframework.stereotype.Service;
@Service

View File

@@ -1,9 +1,9 @@
package com.openhis.administration.service.impl;
package com.openhis.appointmentmanage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.SchedulePool;
import com.openhis.administration.mapper.SchedulePoolMapper;
import com.openhis.administration.service.ISchedulePoolService;
import com.openhis.appointmentmanage.domain.SchedulePool;
import com.openhis.appointmentmanage.mapper.SchedulePoolMapper;
import com.openhis.appointmentmanage.service.ISchedulePoolService;
import org.springframework.stereotype.Service;
@Service

View File

@@ -1,9 +1,9 @@
package com.openhis.administration.service.impl;
package com.openhis.appointmentmanage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.ScheduleSlot;
import com.openhis.administration.mapper.ScheduleSlotMapper;
import com.openhis.administration.service.IScheduleSlotService;
import com.openhis.appointmentmanage.domain.ScheduleSlot;
import com.openhis.appointmentmanage.mapper.ScheduleSlotMapper;
import com.openhis.appointmentmanage.service.IScheduleSlotService;
import org.springframework.stereotype.Service;
@Service