实战分布式医疗挂号系统开发医院科室及排班的接口

 更新时间:2022年04月25日 10:28:59   作者:Hudie.  
这篇文章主要为大家介绍了实战分布式医疗挂号系统开发医院科室及排班的接口,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>

一、医院接口

本文继续开发分布式医疗挂号系统,进入到医院信息、科室、排版接口的开发,内容比较枯燥。关于医院医院信息的上传接口实现,已经在上一篇文章中进行了介绍,本文继续对接口进行扩展。

查询医院接口

Controller层:

 @PostMapping("hospital/show")
    public Result getHospital(HttpServletRequest request) {
        // 1.将从医院管理表传递过来的医院信息转换为Object类型
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String hoscode = (String) paramMap.get("hoscode");
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        // 5.执行查询操作
        Hospital hospital = hospitalService.getByHoscode(hoscode);
        return Result.ok(hospital);
    }

Service接口:

Hospital getByHoscode(String hoscode);

Service实现类:

    @Override
    public Hospital getByHoscode(String hoscode) {
        Hospital hospital = hospitalRepository.getHospitalByHoscode(hoscode);
        return hospital;
    }

Repository层:

@Repository
public interface HospitalRepository extends MongoRepository<Hospital,String> {
    /**
     * 根据HosCode获得记录
     * @param hoscode
     * @return
     */
    Hospital getHospitalByHoscode(String hoscode);
}

医院管理信息

二、科室接口

(1)上传科室功能

上传科室Controller层:

 @PostMapping("saveDepartment")
    public Result saveDepartment(HttpServletRequest request) {
        // 1.将传递过来的数组类型转换为Object类型
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String hoscode = (String) paramMap.get("hoscode");
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        // 5.执行上传科室操作
        departmentService.save(paramMap);
        return Result.ok();
    }

上传科室Service接口:

void save(Map<String, Object> paramMap);

上传科室Service实现类:

    @Override
    public void save(Map<String, Object> paramMap) {
        // 1.把paramMap集合转换为Department对象(借助JSONObject工具)
        String paramMapString = JSONObject.toJSONString(paramMap);
        Department department = JSONObject.parseObject(paramMapString, Department.class);
        // 2.根据医院编号和科室编号查询科室信息
        Department departmentExist = departmentRepository
                .getDepartmentByHoscodeAndDepcode(department.getHoscode(), department.getDepcode());
        // 3.如果有就执行更新,没有就执行保存
        if (null != departmentExist) {// 更新
            departmentExist.setUpdateTime(new Date());
            departmentExist.setIsDeleted(0);
            departmentRepository.save(departmentExist);
        } else {// 保存
            department.setCreateTime(new Date());
            department.setUpdateTime(new Date());
            department.setIsDeleted(0);
            departmentRepository.save(department);
        }
    }

Repositroy层交由Spring Data去自动完成。

(2)查询科室功能

查询科室Controller层:

 @PostMapping("department/list")
    public Result findDepartment(HttpServletRequest request) {
        // 1.将传递过来的科室转换为Object类型
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 3.获取医院编号
        String hoscode = (String) paramMap.get("hoscode");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 当前页和每页记录数
        int page = StringUtils.isEmpty(paramMap.get("page")) ? 1 : Integer.parseInt((String) paramMap.get("page"));
        int limit = StringUtils.isEmpty(paramMap.get("limit")) ? 1 : Integer.parseInt((String) paramMap.get("limit"));
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        DepartmentQueryVo departmentQueryVo = new DepartmentQueryVo();
        departmentQueryVo.setHoscode(hoscode);
        // 执行查询科室操作
        Page<Department> pageModel = departmentService.findPageDepartment(page, limit, departmentQueryVo);
        return Result.ok(pageModel);
    }

查询科室Service接口:

	Page<Department> findPageDepartment(int page, int limit, DepartmentQueryVo departmentQueryVo);

查询科室Service实现类:

    @Override
    public Page<Department> findPageDepartment(int page, int limit, DepartmentQueryVo departmentQueryVo) {
        // 创建Pageable对象,设置当前页和每页记录数
        PageRequest pageable = PageRequest.of(page - 1, limit);
        // 创建Example对象
        Department department = new Department();
        BeanUtils.copyProperties(departmentQueryVo, department);
        department.setIsDeleted(0);
        ExampleMatcher matcher = ExampleMatcher.matching()
                .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
                .withIgnoreCase(true);
        Example<Department> example = Example.of(department, matcher);
        Page<Department> all = departmentRepository.findAll(example, pageable);
        return all;
    }

Repositroy层交由Spring Data去自动完成。

(3)删除科室功能

删除科室Controller层:

 @PostMapping("department/remove")
    public Result removeDepartment(HttpServletRequest request) {
        // 1.将传递过来的科室转换为Object类型
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 获取科室编号 和 医院编号
        String depcode = (String) paramMap.get("depcode");
        String hoscode = (String) paramMap.get("hoscode");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        departmentService.remove(hoscode, depcode);
        return Result.ok();
    }

删除科室Service接口:

@PostMapping("department/remove")
    public Result removeDepartment(HttpServletRequest request) {
        // 1.将传递过来的科室转换为Object类型
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 获取科室编号 和 医院编号
        String depcode = (String) paramMap.get("depcode");
        String hoscode = (String) paramMap.get("hoscode");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        departmentService.remove(hoscode, depcode);
        return Result.ok();
    }

删除科室Service接口:

void remove(String hoscode, String depcode);

删除科室Service实现类:

    @Override
    public void remove(String hoscode, String depcode) {
        // 1.根据 医院编号 和 科室编号 查询科室信息
        Department department = departmentRepository.getDepartmentByHoscodeAndDepcode(hoscode, depcode);
        if (null != department) {
            // 执行删除方法
            departmentRepository.deleteById(department.getId());
        }
    }

Repositroy层交由Spring Data去自动完成。

科室信息

三、排班接口

(1)上传排班功能

上传排班Controller层:

@PostMapping("saveSchedule")
    public Result saveSchedule(HttpServletRequest request) {
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 获取科室编号 和 医院编号
        String hoscode = (String) paramMap.get("hoscode");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        // 执行上传操作
        scheduleService.save(paramMap);
        return Result.ok();
    }

上传排班Service接口:

void save(Map<String, Object> paramMap);

上传排班Service实现类:

    @Override
    public void save(Map<String, Object> paramMap) {
        // 1.把paramMap集合转换为Department对象(借助JSONObject工具)
        String paramMapString = JSONObject.toJSONString(paramMap);
        Schedule schedule = JSONObject.parseObject(paramMapString, Schedule.class);
        // 2.根据 医院编号 和 排班编号 查询科室信息
        Schedule scheduleExist = scheduleRepository
                .getScheduleByHoscodeAndHosScheduleId(schedule.getHoscode(), schedule.getHosScheduleId());
        // 3.如果有就执行更新,没有就执行保存
        if (null != scheduleExist) {// 更新
            scheduleExist.setUpdateTime(new Date());
            scheduleExist.setIsDeleted(0);
            scheduleExist.setStatus(1);
            scheduleRepository.save(scheduleExist);
        } else {// 保存
            schedule.setCreateTime(new Date());
            schedule.setUpdateTime(new Date());
            schedule.setIsDeleted(0);
            schedule.setStatus(1);
            scheduleRepository.save(schedule);
        }
    }

Repositroy层交由Spring Data去自动完成。

(2)查询排班功能

查询排班Controller层:

 @PostMapping("schedule/list")
    public Result findSchedule(HttpServletRequest request) {
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 3.获取医院编号,科室编号
        String hoscode = (String) paramMap.get("hoscode");
        String depcode = (String) paramMap.get("depcode");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 当前页和每页记录数
        int page = StringUtils.isEmpty(paramMap.get("page")) ? 1 : Integer.parseInt((String) paramMap.get("page"));
        int limit = StringUtils.isEmpty(paramMap.get("limit")) ? 1 : Integer.parseInt((String) paramMap.get("limit"));
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        ScheduleQueryVo scheduleQueryVo = new ScheduleQueryVo();
        scheduleQueryVo.setHoscode(hoscode);
        scheduleQueryVo.setHoscode(depcode);
        // 执行查询科室操作
        Page<Schedule> pageModel = scheduleService.findPageSchedule(page, limit, scheduleQueryVo);
        return Result.ok(pageModel);
    }

查询排班Service接口:

	Page<Schedule> findPageSchedule(int page, int limit, ScheduleQueryVo scheduleQueryVo);

查询排班Service实现类:

 @Override
    public Page<Schedule> findPageSchedule(int page, int limit, ScheduleQueryVo scheduleQueryVo) {
        // 创建Pageable对象,设置当前页和每页记录数
        PageRequest pageable = PageRequest.of(page - 1, limit);
        // 创建Example对象
        Schedule schedule = new Schedule();
        BeanUtils.copyProperties(scheduleQueryVo, schedule);
        schedule.setIsDeleted(0);
        schedule.setStatus(1);
        ExampleMatcher matcher = ExampleMatcher.matching()
                .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
                .withIgnoreCase(true);
        Example<Schedule> example = Example.of(schedule, matcher);
        Page<Schedule> all = scheduleRepository.findAll(example, pageable);
        return all;
    }

Repositroy层交由Spring Data去自动完成。

(3)删除排班功能

删除排班Controller层:

@PostMapping("schedule/remove")
    public Result removeSchedule(HttpServletRequest request){
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 获取医院编号和排班编号
        String hoscode = (String) paramMap.get("hoscode");
        String hosScheduleId = (String) paramMap.get("hosScheduleId");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        scheduleService.removeSchedule(hoscode, hosScheduleId);
        return Result.ok();
    }

删除排班Service接口:

void removeSchedule(String hoscode, String hosScheduleId);

删除排班Service实现类:

@PostMapping("schedule/remove")
    public Result removeSchedule(HttpServletRequest request){
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        // 获取医院编号和排班编号
        String hoscode = (String) paramMap.get("hoscode");
        String hosScheduleId = (String) paramMap.get("hosScheduleId");
        // 2.获取医院管理表中的密钥(已经使用MD5加密好了)
        String hospSign = (String) paramMap.get("sign");
        // 3.获取医院设置表中的密钥并进行MD5加密
        String signKey = hospitalSetService.getSignKey(hoscode);
        String signKeyMd5 = MD5.encrypt(signKey);
        // 4.密钥不匹配就抛出错误
        if (!hospSign.equals(signKeyMd5)) {
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }
        scheduleService.removeSchedule(hoscode, hosScheduleId);
        return Result.ok();
    }

Repositroy层交由Spring Data去自动完成。

排班信息

以上就是实战分布式医疗挂号系统开发医院科室及排班的接口的详细内容,更多关于分布式医疗挂号系统医院科室及排班接口的资料请关注脚本之家其它相关文章!

相关文章

  • SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码

    SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码

    这篇文章主要为大家介绍了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • java中break和continue区别及使用场合分析

    java中break和continue区别及使用场合分析

    本文力图通过实例加使用场合详解来引导菜鸟重新认识break和continue语句,需要的朋友可以参考下
    2014-01-01
  • Mybatisplus详解如何注入自定义的SQL

    Mybatisplus详解如何注入自定义的SQL

    mybatis-plus 提供了许多默认单表 CRUD 语句,对于其他 SQL 情况爱莫能助。如果有一个删库跑路,并且需要多次调用,来清空多张表数据得需求,那么如何把他封装在 mybatis-plus 中调用呢,下面我们一起来看一下
    2022-06-06
  • 详解AOP与Filter拦截请求打印日志实用例子

    详解AOP与Filter拦截请求打印日志实用例子

    这篇文章主要介绍了详解AOP与Filter拦截请求打印日志实用例子,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 通过实例解析Java分布式锁三种实现方法

    通过实例解析Java分布式锁三种实现方法

    这篇文章主要介绍了通过实例解析Java分布式锁三种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 详解如何实现SpringBoot的底层注解

    详解如何实现SpringBoot的底层注解

    今天给大家带来的文章是如何实现SpringBoot的底层注解,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴很有帮助,需要的朋友可以参考下
    2021-06-06
  • SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建过程(前端篇)

    SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建过程(前端篇)

    这篇文章主要介绍了SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建过程(前端篇),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Spring底层原理深入分析

    Spring底层原理深入分析

    Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能
    2022-07-07
  • 详解Java中Iterator迭代器的用法

    详解Java中Iterator迭代器的用法

    这篇文章主要介绍了Java中Iterator迭代器的用法,比较简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • Spring Boot Web 静态文件缓存处理的方法

    Spring Boot Web 静态文件缓存处理的方法

    本篇文章主要介绍了Spring Boot Web 静态文件缓存处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论