實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)開發(fā)醫(yī)院科室及排班的接口
一、醫(yī)院接口
本文繼續(xù)開發(fā)分布式醫(yī)療掛號系統(tǒng),進入到醫(yī)院信息、科室、排版接口的開發(fā),內容比較枯燥。關于醫(yī)院醫(yī)院信息的上傳接口實現,已經在上一篇文章中進行了介紹,本文繼續(xù)對接口進行擴展。
查詢醫(yī)院接口
Controller層:
@PostMapping("hospital/show") public Result getHospital(HttpServletRequest request) { // 1.將從醫(yī)院管理表傳遞過來的醫(yī)院信息轉換為Object類型 Map<String, String[]> requestMap = request.getParameterMap(); Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap); // 2.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行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.執(zhí)行查詢操作 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.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行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.執(zhí)行上傳科室操作 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.根據醫(yī)院編號和科室編號查詢科室信息 Department departmentExist = departmentRepository .getDepartmentByHoscodeAndDepcode(department.getHoscode(), department.getDepcode()); // 3.如果有就執(zhí)行更新,沒有就執(zhí)行保存 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.獲取醫(yī)院編號 String hoscode = (String) paramMap.get("hoscode"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用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); // 執(zhí)行查詢科室操作 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) { // 創(chuàng)建Pageable對象,設置當前頁和每頁記錄數 PageRequest pageable = PageRequest.of(page - 1, limit); // 創(chuàng)建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); // 獲取科室編號 和 醫(yī)院編號 String depcode = (String) paramMap.get("depcode"); String hoscode = (String) paramMap.get("hoscode"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行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); // 獲取科室編號 和 醫(yī)院編號 String depcode = (String) paramMap.get("depcode"); String hoscode = (String) paramMap.get("hoscode"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行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.根據 醫(yī)院編號 和 科室編號 查詢科室信息 Department department = departmentRepository.getDepartmentByHoscodeAndDepcode(hoscode, depcode); if (null != department) { // 執(zhí)行刪除方法 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); // 獲取科室編號 和 醫(yī)院編號 String hoscode = (String) paramMap.get("hoscode"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行MD5加密 String signKey = hospitalSetService.getSignKey(hoscode); String signKeyMd5 = MD5.encrypt(signKey); // 4.密鑰不匹配就拋出錯誤 if (!hospSign.equals(signKeyMd5)) { throw new YyghException(ResultCodeEnum.SIGN_ERROR); } // 執(zhí)行上傳操作 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.根據 醫(yī)院編號 和 排班編號 查詢科室信息 Schedule scheduleExist = scheduleRepository .getScheduleByHoscodeAndHosScheduleId(schedule.getHoscode(), schedule.getHosScheduleId()); // 3.如果有就執(zhí)行更新,沒有就執(zhí)行保存 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.獲取醫(yī)院編號,科室編號 String hoscode = (String) paramMap.get("hoscode"); String depcode = (String) paramMap.get("depcode"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用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); // 執(zhí)行查詢科室操作 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) { // 創(chuàng)建Pageable對象,設置當前頁和每頁記錄數 PageRequest pageable = PageRequest.of(page - 1, limit); // 創(chuàng)建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); // 獲取醫(yī)院編號和排班編號 String hoscode = (String) paramMap.get("hoscode"); String hosScheduleId = (String) paramMap.get("hosScheduleId"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行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); // 獲取醫(yī)院編號和排班編號 String hoscode = (String) paramMap.get("hoscode"); String hosScheduleId = (String) paramMap.get("hosScheduleId"); // 2.獲取醫(yī)院管理表中的密鑰(已經使用MD5加密好了) String hospSign = (String) paramMap.get("sign"); // 3.獲取醫(yī)院設置表中的密鑰并進行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
去自動完成。
以上就是實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)開發(fā)醫(yī)院科室及排班的接口的詳細內容,更多關于分布式醫(yī)療掛號系統(tǒng)醫(yī)院科室及排班接口的資料請關注腳本之家其它相關文章!
相關文章
SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼
這篇文章主要為大家介紹了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09java中break和continue區(qū)別及使用場合分析
本文力圖通過實例加使用場合詳解來引導菜鳥重新認識break和continue語句,需要的朋友可以參考下2014-01-01SpringBoot+MyBatisPlus+Vue 前后端分離項目快速搭建過程(前端篇)
這篇文章主要介紹了SpringBoot+MyBatisPlus+Vue 前后端分離項目快速搭建過程(前端篇),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Spring Boot Web 靜態(tài)文件緩存處理的方法
本篇文章主要介紹了Spring Boot Web 靜態(tài)文件緩存處理的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02