| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package org.example.controller;
- import org.example.entity.PageResult;
- import org.example.entity.WardArea;
- import org.example.service.WardAreaService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * 病区控制器
- */
- @RestController
- @RequestMapping("/api/wardarea")
- public class WardAreaController {
- @Autowired
- private WardAreaService wardAreaService;
- /**
- * 查询病区列表(支持分页)
- */
- @GetMapping("/list")
- public Map<String, Object> list(
- @RequestParam(required = false) String name,
- @RequestParam(required = false) String glkeshi,
- @RequestParam(required = false) Integer enabled,
- @RequestParam(required = false, defaultValue = "1") Integer page,
- @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
- Map<String, Object> result = new HashMap<>();
- List<WardArea> list = wardAreaService.findList(name, glkeshi, enabled);
- // 分页处理
- PageResult<WardArea> pageResult = PageResult.of(list, page, pageSize);
- result.put("code", 200);
- result.put("data", pageResult);
- return result;
- }
-
- /**
- * 获取所有关联科室列表(用于下拉框)
- */
- @GetMapping("/glkeshi-list")
- public Map<String, Object> glkeshiList() {
- Map<String, Object> result = new HashMap<>();
- List<String> list = wardAreaService.findAllGlkeshi();
- result.put("code", 200);
- result.put("data", list);
- return result;
- }
- /**
- * 获取病区详情
- */
- @GetMapping("/detail/{id}")
- public Map<String, Object> detail(@PathVariable Long id) {
- Map<String, Object> result = new HashMap<>();
- WardArea wardArea = wardAreaService.findById(id);
- if (wardArea != null) {
- result.put("code", 200);
- result.put("data", wardArea);
- } else {
- result.put("code", 404);
- result.put("message", "病区不存在");
- }
- return result;
- }
- /**
- * 保存病区
- */
- @PostMapping("/save")
- public Map<String, Object> save(@RequestBody WardArea wardArea) {
- Map<String, Object> result = new HashMap<>();
- try {
- wardAreaService.save(wardArea);
- result.put("code", 200);
- result.put("message", "保存成功");
- } catch (Exception e) {
- result.put("code", 500);
- result.put("message", "保存失败:" + e.getMessage());
- }
- return result;
- }
- /**
- * 批量设置病区代码
- */
- @PostMapping("/batch-set-code")
- public Map<String, Object> batchSetCode(@RequestBody Map<String, Object> params,
- @RequestHeader(value = "X-User-Type", required = false) String userType) {
- Map<String, Object> result = new HashMap<>();
-
- // 权限校验:只有管理员才能设置病区代码
- if (!"admin".equals(userType)) {
- result.put("code", 403);
- result.put("message", "无权操作,只有管理员才能设置病区代码");
- return result;
- }
-
- try {
- @SuppressWarnings("unchecked")
- List<?> idList = (List<?>) params.get("ids");
- @SuppressWarnings("unchecked")
- List<String> codes = (List<String>) params.get("codes");
-
- if (idList == null || codes == null || idList.size() != codes.size()) {
- result.put("code", 400);
- result.put("message", "参数错误");
- return result;
- }
-
- // 将id转换为Long类型
- List<Long> ids = new ArrayList<>();
- for (Object id : idList) {
- if (id instanceof Integer) {
- ids.add(((Integer) id).longValue());
- } else if (id instanceof Long) {
- ids.add((Long) id);
- } else {
- ids.add(Long.parseLong(id.toString()));
- }
- }
-
- List<String> errors = wardAreaService.batchSetCode(ids, codes);
- if (errors.isEmpty()) {
- result.put("code", 200);
- result.put("message", "设置成功");
- } else {
- result.put("code", 200);
- result.put("message", "部分设置成功");
- result.put("errors", errors);
- }
- } catch (Exception e) {
- result.put("code", 500);
- result.put("message", "设置失败:" + e.getMessage());
- }
- return result;
- }
- /**
- * 清除缓存
- */
- @PostMapping("/clear-cache")
- public Map<String, Object> clearCache() {
- Map<String, Object> result = new HashMap<>();
- wardAreaService.clearCache();
- result.put("code", 200);
- result.put("message", "缓存已清除");
- return result;
- }
- /**
- * 删除病区
- */
- @DeleteMapping("/delete/{id}")
- public Map<String, Object> delete(@PathVariable Long id) {
- Map<String, Object> result = new HashMap<>();
- try {
- wardAreaService.deleteById(id);
- result.put("code", 200);
- result.put("message", "删除成功");
- } catch (Exception e) {
- result.put("code", 500);
- result.put("message", "删除失败:" + e.getMessage());
- }
- return result;
- }
- }
|