- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个用于移动应用程序的 Spring Boot MVC REST API,该系统是诊所的患者预约系统,我正在寻找显示医生可用时间问题的最佳解决方案。
问题定义:系统应允许用户从日历中选择诊所、医生和具体日期(年/月/日),系统应显示所选日期的可用时间,预约时长为 30分钟,上午 7 点至下午 6 点。
更多说明:该系统由许多诊所和属于这些诊所的医生组成,每个医生都有固定的时间供用户预约。这些时间分为每个半小时约会的日期。用户不能同时向同一医生预约。
示例:患者 Joey 于 2018 年 5 月 21 日 3:30 预约了 x 医生,另一位患者 Jack 打开了预约申请,他选择了医生 x 并选择了与 joey 相同的日期(2018 年 5 月 21 日),系统将显示上午 7 点至下午 6 点(7:00、7:30)的可用时间, 8:00 , 8:30 ......)不含3:30 。
尝试过的解决方案:1)在数据库中做一个工作,填充每年的可用时间,并用flag标记时间。2)当客户询问可用时间时,系统会迭代医生的所有预约并找到这些时间。3)制作一个包含时间和日期的静态列表,当用户询问可用时间时,迭代约会并从列表中删除属于约会的时间。4)制作数据库日历。5)让管理页面的用户从管理页面手动填写时间。我尝试了所有这些可能的解决方案,但我没有发现它们非常有效,我正在寻找更好的解决方案。
代码示例: Controller 部分:
@RequestMapping(method = RequestMethod.GET , value = "/availabletimes")
public ResponseEntity<ResponseUtil> getAvailableTimes(@RequestParam String date){
try {
return new ResponseEntity<ResponseUtil> (new ResponseUtil(200, Constants.SUCCESS_STATUS, "Cancelled", service.getAvailableTimes(date)),HttpStatus.OK);
}catch (BackendException e) {
return new ResponseEntity<ResponseUtil> (new ResponseUtil(403, Constants.FAILED_STATUS, e.getMessage(), null),HttpStatus.FORBIDDEN);
}
}
服务实现:
@Override
public List<String> getAvailableTimes(String date) {
List<String> availableTimes = findAvailableTimes(date);
if(availableTimes == null || availableTimes.isEmpty())
throw new BackendException("No times available for the given date");
return availableTimes;
}
private List<String> findAvailableTimes(String date){
//TODO write the logic for findding the available times
return null;
}
存储库:
public interface AppointmentRepo extends IRepository<Appointment, Long> {
List<Appointment> findByCustomer(Customer customer);
}
实体:
@Entity
public class Appointment extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
private Date appoitmentDate;
// Relations
@ManyToOne(fetch = FetchType.LAZY)
private Doctor doctor;
@ManyToOne(fetch = FetchType.LAZY)
private Clinic clinic;
@ManyToOne(fetch = FetchType.LAZY)
private Customer customer;
@ManyToOne(fetch = FetchType.LAZY)
private Follower follower;
@ManyToOne(fetch = FetchType.LAZY)
private AppointmentStatus appointmentStatus;
@OneToOne(fetch = FetchType.LAZY)
private Report report;
// Setters and Getters
public Doctor getDoctor() {
return doctor;
}
public void setDoctor(Doctor doctor) {
this.doctor = doctor;
}
public Clinic getClinic() {
return clinic;
}
public void setClinic(Clinic clinic) {
this.clinic = clinic;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public Follower getFollower() {
return follower;
}
public void setFollower(Follower follower) {
this.follower = follower;
}
public Date getAppoitmentDate() {
return appoitmentDate;
}
public void setAppoitmentDate(Date appoitmentDate) {
this.appoitmentDate = appoitmentDate;
}
public AppointmentStatus getAppointmentStatus() {
return appointmentStatus;
}
public void setAppointmentStatus(AppointmentStatus appointmentStatus) {
this.appointmentStatus = appointmentStatus;
}
public Report getReport() {
return report;
}
public void setReport(Report report) {
this.report = report;
}
}
最佳答案
我有一个开源调度实用程序库(适用于 Android),可以处理业务时间和调度项目。它有一个检查重复预订的设施,但到目前为止,它还没有返回预约空位的直接机制,但我将把它作为优先事项添加。您可以针对不同的诊所使用该库的数组。您可以通过使用库中的机制来间接获取空档,该机制用于在给定时间或之后获取下一个可用空档并循环访问每个约会。登陆页面在这里:https://bitbucket.org/warwick/schedule_utils_demo/src/master/它还附带一个演示应用程序及其源代码。您还可以从 Google Play 商店下载演示应用程序:https://play.google.com/store/apps/details?id=com.WarwickWestonWright.ScheduleUtilsDemo尽管它是一个 Android 库,但将其转换为标准 Java 库非常容易,因为我在构建它时就考虑到了这一点。添加获取可用插槽列表的机制后,我将更新这篇文章。
关于java - 实行预约系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49831003/
预约《余烬风暴》游戏 抽联想笔记本 手机打开链接 点击抽电脑 进入活动页面 收入手机号验证码预约游戏即可获得抽奖机会一次 可抽联想笔记本 鼠标 背包等等实物 非必中的 大多数都是公测礼包 可以去
我是这些方面的新手,我对“预约专业组件”有疑问 当我尝试在前端进行“预订”时,它向我显示错误 错误是: 1064 YOU HAVE AN ERROR IN YOUR SQL SYNTAX; CHECK
结缘女武神瓜分百万Q币 可抽5-648Q币 手Q打开链接 预约《征服与霸业》手游 集齐6大女武神瓜分5-648Q币 下拉活动页面完成任务可免费领取女武神卡 邀请好友助力还可免费获得卡片 保底5Q
我是一名优秀的程序员,十分优秀!