From 07ec8d5b3babb9f7b789e8e10cd054892af95341 Mon Sep 17 00:00:00 2001 From: yy <2@2.com> Date: Thu, 9 May 2024 09:43:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E9=99=A2=E7=AE=A1=E7=90=86=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=92=8C=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E8=AF=8D=E5=85=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig.sql | 13 +++- .../com/rax/admin/api/dto/HospitalDTO.java | 11 +++- .../com/rax/admin/api/entity/SysHospital.java | 24 ++++---- .../admin/controller/SysDictController.java | 38 ++++++++++-- .../controller/SysHospitalController.java | 30 +++++++++- .../admin/controller/SysUserController.java | 7 +++ .../rax/admin/mapper/SysDictItemMapper.java | 6 +- .../com/rax/admin/mapper/SysDictMapper.java | 6 ++ .../rax/admin/mapper/SysHospitalMapper.java | 9 +++ .../com/rax/admin/mapper/SysUserMapper.java | 3 + .../com/rax/admin/service/SysDictService.java | 5 ++ .../rax/admin/service/SysHospitalService.java | 54 ++++++++++++++++- .../com/rax/admin/service/SysUserService.java | 2 + .../service/impl/SysDictServiceImpl.java | 16 +++++ .../service/impl/SysHospitalServiceImpl.java | 60 +++++++++++++++++-- .../service/impl/SysMessageServiceImpl.java | 1 - .../service/impl/SysUserServiceImpl.java | 8 +++ .../resources/mapper/SysDictItemMapper.xml | 10 ++++ .../main/resources/mapper/SysDictMapper.xml | 25 ++++++++ .../resources/mapper/SysHospitalMapper.xml | 31 +++++++++- .../main/resources/mapper/SysUserMapper.xml | 6 ++ .../rax/vital/handler/MedicineHandler.java | 4 +- .../controller/MedicineController.java | 11 +++- .../medicine/service/VitalSignsService.java | 2 + .../service/impl/VitalSignServiceImpl.java | 27 +++++++-- 25 files changed, 370 insertions(+), 39 deletions(-) create mode 100644 upms/upms-biz/src/main/resources/mapper/SysDictItemMapper.xml create mode 100644 upms/upms-biz/src/main/resources/mapper/SysDictMapper.xml diff --git a/db/pig.sql b/db/pig.sql index e6f10ba..43eb8f1 100644 --- a/db/pig.sql +++ b/db/pig.sql @@ -1229,10 +1229,10 @@ CREATE TABLE `sys_hospital` `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, `start_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, `end_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `status` bit(1) NULL DEFAULT NULL, + `status` char(1) NULL DEFAULT NULL, `domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, `create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, - `deleted` bit(1) NULL DEFAULT NULL, + `del_flag` bit(1) NULL DEFAULT NULL, `update_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, `province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL, @@ -1291,4 +1291,13 @@ CREATE TABLE `sys_message_user` `read_flag` bit(1) NULL DEFAULT 0 COMMENT '是否已读' ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic; +-- ---------------------------- +-- Table structure for sys_hospital_manager +-- ---------------------------- +DROP TABLE IF EXISTS `sys_hospital_manager`; +CREATE TABLE `sys_hospital_manager` ( + `hospital_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + SET FOREIGN_KEY_CHECKS = 1; diff --git a/upms/upms-api/src/main/java/com/rax/admin/api/dto/HospitalDTO.java b/upms/upms-api/src/main/java/com/rax/admin/api/dto/HospitalDTO.java index b98b5a8..bb4b4de 100644 --- a/upms/upms-api/src/main/java/com/rax/admin/api/dto/HospitalDTO.java +++ b/upms/upms-api/src/main/java/com/rax/admin/api/dto/HospitalDTO.java @@ -23,6 +23,15 @@ public class HospitalDTO { private String city; @Schema(description = "状态,正常 0, 冻结 1") - private Boolean status; + private String status; + + @Schema(description = "开始时间") + private String startTime; + + @Schema(description = "结束时间") + private String endTime; + + @Schema(description = "域名") + private String domain; } diff --git a/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysHospital.java b/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysHospital.java index 2b2651f..6044029 100644 --- a/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysHospital.java +++ b/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysHospital.java @@ -1,14 +1,10 @@ package com.rax.admin.api.entity; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.*; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; import lombok.Data; -import java.sql.Timestamp; - @Data @Schema(description = "医院信息") public class SysHospital { @@ -19,33 +15,37 @@ public class SysHospital { private Long id; @Schema(description = "医院名称") + @NotNull(message = "医院名称不能为空") private String name; @Schema(description = "编码") private String code; @Schema(description = "开始时间") - private Timestamp startTime; + private String startTime; @Schema(description = "结束时间") - private Timestamp endTime; + private String endTime; @Schema(description = "状态,正常 0, 冻结 1") - private Boolean status; + @NotNull(message = "状态不能为空") + private String status; @Schema(description = "域名") private String domain; @Schema(description = "是否删除") - private Boolean deleted; + @TableLogic + @TableField(fill = FieldFill.INSERT) + private Boolean delFlag; @Schema(description = "创建时间") @TableField(fill = FieldFill.INSERT) - private Timestamp createTime; + private String createTime; @Schema(description = "更新时间") @TableField(fill = FieldFill.UPDATE) - private Timestamp updateTime; + private String updateTime; @Schema(description = "医院所在省") private String province; diff --git a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysDictController.java b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysDictController.java index 70758a7..9397548 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysDictController.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysDictController.java @@ -46,6 +46,7 @@ public class SysDictController { /** * 通过ID查询字典信息 + * * @param id ID * @return 字典信息 */ @@ -56,6 +57,7 @@ public class SysDictController { /** * 查询字典信息 + * * @param query 查询信息 * @return 字典信息 */ @@ -66,6 +68,7 @@ public class SysDictController { /** * 分页查询字典信息 + * * @param page 分页对象 * @return 分页对象 */ @@ -73,12 +76,24 @@ public class SysDictController { public R getDictPage(@ParameterObject Page page, @ParameterObject SysDict sysDict) { return R.ok(sysDictService.page(page, Wrappers.lambdaQuery() - .eq(StrUtil.isNotBlank(sysDict.getSystemFlag()), SysDict::getSystemFlag, sysDict.getSystemFlag()) - .like(StrUtil.isNotBlank(sysDict.getDictType()), SysDict::getDictType, sysDict.getDictType()))); + .eq(StrUtil.isNotBlank(sysDict.getSystemFlag()), SysDict::getSystemFlag, sysDict.getSystemFlag()) + .like(StrUtil.isNotBlank(sysDict.getDictType()), SysDict::getDictType, sysDict.getDictType()))); + } + + /** + * 分页查询字典信息 + * + * @param page 分页对象 + * @return 分页对象 + */ + @GetMapping("/tree") + public R getDictList(@ParameterObject Page page, @ParameterObject SysDict sysDict) { + return R.ok(sysDictService.getDictPage(page, sysDict)); } /** * 通过字典类型查找字典 + * * @param type 类型 * @return 同类型字典 */ @@ -90,6 +105,7 @@ public class SysDictController { /** * 添加字典 + * * @param sysDict 字典信息 * @return success、false */ @@ -103,6 +119,7 @@ public class SysDictController { /** * 删除字典,并且清除字典缓存 + * * @param ids ID * @return R */ @@ -116,6 +133,7 @@ public class SysDictController { /** * 修改字典 + * * @param sysDict 字典信息 * @return success/false */ @@ -128,20 +146,22 @@ public class SysDictController { /** * 分页查询 + * * @param name 名称或者字典项 * @return */ @GetMapping("/list") public R getDictList(String name) { return R.ok(sysDictService.list(Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(name), SysDict::getDictType, name) - .or() - .like(StrUtil.isNotBlank(name), SysDict::getDescription, name))); + .like(StrUtil.isNotBlank(name), SysDict::getDictType, name) + .or() + .like(StrUtil.isNotBlank(name), SysDict::getDescription, name))); } /** * 分页查询 - * @param page 分页对象 + * + * @param page 分页对象 * @param sysDictItem 字典项 * @return */ @@ -152,6 +172,7 @@ public class SysDictController { /** * 通过id查询字典项 + * * @param id id * @return R */ @@ -162,6 +183,7 @@ public class SysDictController { /** * 查询字典项详情 + * * @param query 查询条件 * @return R */ @@ -172,6 +194,7 @@ public class SysDictController { /** * 新增字典项 + * * @param sysDictItem 字典项 * @return R */ @@ -184,6 +207,7 @@ public class SysDictController { /** * 修改字典项 + * * @param sysDictItem 字典项 * @return R */ @@ -195,6 +219,7 @@ public class SysDictController { /** * 通过id删除字典项 + * * @param id id * @return R */ @@ -206,6 +231,7 @@ public class SysDictController { /** * 同步缓存字典 + * * @return R */ @SysLog("同步字典") diff --git a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysHospitalController.java b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysHospitalController.java index c82391f..8153b48 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysHospitalController.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysHospitalController.java @@ -10,6 +10,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -33,10 +34,10 @@ public class SysHospitalController { } @SysLog(value = "医院信息删除") - @PostMapping("/deleteHospitalById") + @PostMapping("/deleteHospitalByIds") @Operation(description = "根据id删除医院信息", summary = "根据id删除医院信息") - R deleteHospitalById(String id) { - return sysHospitalService.deleteHospitalById(id); + R deleteHospitalById(String[] ids) { + return sysHospitalService.deleteHospitalByIds(ids); } @SysLog(value = "医院信息修改") @@ -64,4 +65,27 @@ public class SysHospitalController { R getHospitalList(String name) { return sysHospitalService.getHospitalList(name); } + + @PostMapping("/getMyHospitalList") + @Operation(description = "获取我的医院列表", summary = "获取我的医院列表") + R getMyHospitalList() { + List myHospitalList = sysHospitalService.getMyHospitalList(); + return R.ok(myHospitalList); + } + + @SysLog(value = "添加医院管理员") + @PostMapping("/saveHospitalManager") + @Operation(description = "添加医院管理员", summary = "添加医院管理员") + @PreAuthorize("@pms.hasPermission('sys_user_del')") + R saveHospitalManager(String userId, String hospitalId) { + boolean status = sysHospitalService.saveHospitalManager(userId, hospitalId); + return R.ok(status); + } + + @PostMapping("/getHospitalManager") + @Operation(description = "获取医院管理员", summary = "获取医院呢管理员") + R getHospitalManager(String hospitalId) { + List list = sysHospitalService.getHospitalManager(hospitalId); + return R.ok(list); + } } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java index 46cb3fe..329aee9 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java @@ -209,4 +209,11 @@ public class SysUserController { return userService.modifyPw(userDto); } + @PostMapping("/getUserListByHospital") + @Operation(description = "获取某个医院下的用户", summary = "获取某个医院下的用户") + public R getUserListByHospital(String hospitalId) { + List userList = userService.getUserListByHospital(hospitalId); + return R.ok(userList); + } + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictItemMapper.java b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictItemMapper.java index 6479937..8d930bb 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictItemMapper.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictItemMapper.java @@ -3,6 +3,10 @@ package com.rax.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.rax.admin.api.entity.SysDictItem; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * 字典项 @@ -12,5 +16,5 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface SysDictItemMapper extends BaseMapper { - + List getDictItemList(@Param("dictId") Long dictId); } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictMapper.java b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictMapper.java index be0690c..f1b5486 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictMapper.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysDictMapper.java @@ -3,6 +3,10 @@ package com.rax.admin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.rax.admin.api.entity.SysDict; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** *

@@ -14,5 +18,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface SysDictMapper extends BaseMapper { + List getDictPage(@Param("limit") Long limit, @Param("offset") Long offset, @Param("name") String name); + Integer getDictTotal(@Param("name") String name); } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysHospitalMapper.java b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysHospitalMapper.java index a616560..e0a9573 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysHospitalMapper.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysHospitalMapper.java @@ -7,10 +7,19 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; @Mapper public interface SysHospitalMapper extends BaseMapper { List getHospitalList(@Param("limit") Long limit, @Param("offset") Long offset, @Param("name") String name); Integer getHospitalTotal(); + + boolean deleteByIds(@Param("ids") String[] ids); + + boolean insertHospitalManager(@Param("hospitalId") String hospitalId, @Param("userId") String userId); + + boolean delHospitalManager(@Param("hospitalId") String hospitalId); + + List getHospitalManager(@Param("hospitalId") String hospitalId); } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysUserMapper.java b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysUserMapper.java index 60b2190..58aa3dd 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysUserMapper.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/mapper/SysUserMapper.java @@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** *

@@ -53,4 +54,6 @@ public interface SysUserMapper extends BaseMapper { */ List selectVoList(@Param("query") UserDTO userDTO); + List getUserListByHospital(@Param("hospitalId") String hospitalId); + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/SysDictService.java b/upms/upms-biz/src/main/java/com/rax/admin/service/SysDictService.java index 8755036..333e514 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/SysDictService.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/SysDictService.java @@ -1,9 +1,12 @@ package com.rax.admin.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.rax.admin.api.entity.SysDict; import com.rax.common.core.util.R; +import java.util.Map; + /** * 字典表 * @@ -32,4 +35,6 @@ public interface SysDictService extends IService { */ R syncDictCache(); + Map getDictPage(Page page, SysDict sysDict); + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/SysHospitalService.java b/upms/upms-biz/src/main/java/com/rax/admin/service/SysHospitalService.java index 049f28a..bf09512 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/SysHospitalService.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/SysHospitalService.java @@ -13,16 +13,68 @@ import java.util.Map; */ public interface SysHospitalService extends IService { + /** + * 根据id获取医院信息 + * @param id + * @return + */ R getHospitalById(String id); - R deleteHospitalById(String id); + /** + * 根据id删除医院信息 + * @param ids + * @return + */ + R deleteHospitalByIds(String[] ids); + /** + * 更新医院信息 + * @param hospitalDTO + * @return + */ R updateHospital(HospitalDTO hospitalDTO); + /** + * 添加医院信息 + * @param hospitalDTO + * @return + */ R saveHospital(HospitalDTO hospitalDTO); + /** + * 获取医院分页列表 + * @param name + * @param offset + * @param limit + * @return + */ R getHospitalList(String name, long offset, long limit); + /** + * 获取医院列表 + * @param name 医院名,用于搜索 + * @return + */ R getHospitalList(String name); + /** + * 获取我的医院列表 + * @return + */ + List getMyHospitalList(); + + /** + * 添加医院管理员 + * @param userId + * @param hospitalId + */ + boolean saveHospitalManager(String userId, String hospitalId); + + /** + * 获取医院管理人员 + * @param hospitalId + * @return + */ + List getHospitalManager(String hospitalId); + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java b/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java index 81580d2..d5a7fde 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/SysUserService.java @@ -119,4 +119,6 @@ public interface SysUserService extends IService { */ R modifyPw(UserDTO userDto); + List getUserListByHospital(String hospitalId); + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysDictServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysDictServiceImpl.java index 34feb2d..c759858 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysDictServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysDictServiceImpl.java @@ -2,6 +2,7 @@ package com.rax.admin.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.rax.admin.api.entity.SysDict; import com.rax.admin.api.entity.SysDictItem; @@ -18,7 +19,9 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -82,4 +85,17 @@ public class SysDictServiceImpl extends ServiceImpl impl return R.ok(); } + @Override + public Map getDictPage(Page page, SysDict sysDict) { + Map result = new HashMap(); + List dictPage = baseMapper.getDictPage(page.getSize(), page.getCurrent(), sysDict.getDescription()); + Integer dictTotal = baseMapper.getDictTotal(sysDict.getDescription()); + result.put("total", dictTotal); + result.put("records", dictPage); + for (Map dict : dictPage) { + List dictItemList = dictItemMapper.getDictItemList((Long) dict.get("id")); + dict.put("children", dictItemList); + } + return result; + } } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java index 8432e1d..539a64a 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysHospitalServiceImpl.java @@ -1,14 +1,19 @@ package com.rax.admin.service.impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.rax.admin.api.dto.HospitalDTO; import com.rax.admin.api.entity.SysHospital; +import com.rax.admin.api.entity.SysRole; import com.rax.admin.mapper.SysHospitalMapper; import com.rax.admin.service.SysHospitalService; +import com.rax.admin.service.SysRoleService; import com.rax.common.core.util.R; +import com.rax.common.security.service.RaxUser; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -19,17 +24,23 @@ import java.util.Map; @Service public class SysHospitalServiceImpl extends ServiceImpl implements SysHospitalService { + // 管理员角色可以获取过个医院列表,用,分割 + private final static String ADMIN_ROLE_CODE = "ROLE_ADMIN"; + @Autowired private SysHospitalMapper sysHospitalMapper; + @Autowired + private SysRoleService roleService; + public R getHospitalById(String id) { SysHospital sysHospital = getById(id); return R.ok(sysHospital); } @Override - public R deleteHospitalById(String id) { - boolean status = removeById(id); + public R deleteHospitalByIds(String[] ids) { + boolean status = sysHospitalMapper.deleteByIds(ids); return R.ok(status); } @@ -45,6 +56,8 @@ public class SysHospitalServiceImpl extends ServiceImpl saveHospital(HospitalDTO hospitalDTO) { SysHospital sysHospital = new SysHospital(); BeanUtils.copyProperties(hospitalDTO, sysHospital); + sysHospital.setCreateTime(DateUtil.now()); + sysHospital.setDelFlag(false); boolean status = save(sysHospital); return R.ok(status); } @@ -55,7 +68,7 @@ public class SysHospitalServiceImpl extends ServiceImpl roleList = roleService.findRolesByUserId(raxUser.getId()); + List adminRoleList = roleList.stream().filter(predicate -> ADMIN_ROLE_CODE.contains(predicate.getRoleCode())).toList(); + List sysHospitals = null; + if (!adminRoleList.isEmpty()) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag", 0); + queryWrapper.orderByDesc("create_time"); + queryWrapper.select(new String[]{"id", "name", "code", "status", "domain", "province", "city"}); + sysHospitals = sysHospitalMapper.selectMaps(queryWrapper); + } else { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id", raxUser.getHospitalId()); + queryWrapper.eq("del_flag", 0); + queryWrapper.orderByDesc("create_time"); + queryWrapper.select(new String[]{"id", "name", "code", "status", "domain", "province", "city"}); + sysHospitals = sysHospitalMapper.selectMaps(queryWrapper); + } + return sysHospitals; + } + + @Override + public boolean saveHospitalManager(String userId, String hospitalId) { + boolean status = true; + sysHospitalMapper.delHospitalManager(hospitalId); + if (StringUtils.hasText(userId)) { + status = sysHospitalMapper.insertHospitalManager(hospitalId, userId); + } + return status; + } + + public List getHospitalManager(String hospitalId) { + return sysHospitalMapper.getHospitalManager(hospitalId); + } } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysMessageServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysMessageServiceImpl.java index 46cb4d5..190b363 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysMessageServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysMessageServiceImpl.java @@ -82,7 +82,6 @@ public class SysMessageServiceImpl extends ServiceImpl idList = Arrays.asList(ids.split(StrUtil.COMMA)); ids = ids.replace(",", "','"); return R.ok(this.baseMapper.deleteMessage(ids)); } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java index d4d6f3e..134c8f6 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysUserServiceImpl.java @@ -72,6 +72,8 @@ public class SysUserServiceImpl extends ServiceImpl impl private final static String PASSWD_PATTERN = "^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[^\\da-zA-Z\\s]).{9,15}$"; + private final SysUserMapper userMapper; + /** * 保存用户信息 * @@ -489,4 +491,10 @@ public class SysUserServiceImpl extends ServiceImpl impl return R.ok(); } + + @Override + public List getUserListByHospital(String hospitalId) { + List list = userMapper.getUserListByHospital(hospitalId); + return list; + } } diff --git a/upms/upms-biz/src/main/resources/mapper/SysDictItemMapper.xml b/upms/upms-biz/src/main/resources/mapper/SysDictItemMapper.xml new file mode 100644 index 0000000..869f488 --- /dev/null +++ b/upms/upms-biz/src/main/resources/mapper/SysDictItemMapper.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/upms/upms-biz/src/main/resources/mapper/SysDictMapper.xml b/upms/upms-biz/src/main/resources/mapper/SysDictMapper.xml new file mode 100644 index 0000000..ec985a7 --- /dev/null +++ b/upms/upms-biz/src/main/resources/mapper/SysDictMapper.xml @@ -0,0 +1,25 @@ + + + + + from sys_dict + where del_flag = 0 + + + and description like #{bindName} + + + + + + \ No newline at end of file diff --git a/upms/upms-biz/src/main/resources/mapper/SysHospitalMapper.xml b/upms/upms-biz/src/main/resources/mapper/SysHospitalMapper.xml index eeae1cd..0baa28a 100644 --- a/upms/upms-biz/src/main/resources/mapper/SysHospitalMapper.xml +++ b/upms/upms-biz/src/main/resources/mapper/SysHospitalMapper.xml @@ -7,6 +7,9 @@ code, status, province, + start_time "startTime", + end_time "endTime", + domain, city @@ -14,7 +17,7 @@ FROM sys_hospital - WHERE deleted = 0 + WHERE del_flag = 0 @@ -39,5 +42,31 @@ + + update sys_hospital set del_flag = 1 + where + + + #{item} + + + + + + DELETE FROM sys_hospital_manager where hospital_id = #{hospitalId}; + + + + INSERT INTO sys_hospital_manager VALUES (#{hospitalId}, #{userId}); + + + \ No newline at end of file diff --git a/upms/upms-biz/src/main/resources/mapper/SysUserMapper.xml b/upms/upms-biz/src/main/resources/mapper/SysUserMapper.xml index 2cda1a4..32d293d 100644 --- a/upms/upms-biz/src/main/resources/mapper/SysUserMapper.xml +++ b/upms/upms-biz/src/main/resources/mapper/SysUserMapper.xml @@ -177,4 +177,10 @@ ORDER BY u.create_time DESC + + diff --git a/vital-signs/src/main/java/com/rax/vital/handler/MedicineHandler.java b/vital-signs/src/main/java/com/rax/vital/handler/MedicineHandler.java index 4a4489a..1054587 100644 --- a/vital-signs/src/main/java/com/rax/vital/handler/MedicineHandler.java +++ b/vital-signs/src/main/java/com/rax/vital/handler/MedicineHandler.java @@ -16,6 +16,9 @@ import org.springframework.web.socket.WebSocketSession; import java.net.URLDecoder; import java.util.Map; +/** + * 生命体征和标志位信息 + */ public class MedicineHandler implements WebSocketHandler { @Resource @@ -26,7 +29,6 @@ public class MedicineHandler implements WebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { - session.getPrincipal(); } @Override diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java b/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java index c82d875..df6467b 100644 --- a/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java +++ b/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java @@ -2,6 +2,7 @@ package com.rax.vital.medicine.controller; import com.alibaba.fastjson.JSONObject; import com.rax.common.core.util.R; +import com.rax.vital.medicine.service.DoctorMedicineService; import com.rax.vital.medicine.service.VitalSignsService; import com.rax.vital.timer.VitalSignTimer; import com.rax.vital.util.DatabaseNameUtil; @@ -41,7 +42,10 @@ public class MedicineController { private OAuth2AuthorizationService authorizationService; @Autowired - VitalSignsService vitalSignsService; + private VitalSignsService vitalSignsService; + + @Autowired + private DoctorMedicineService doctorMedicineService; @MessageMapping("/getSurgeryData") public void doctorMedicine(MessageHeaders messageHeaders, String body) { @@ -91,4 +95,9 @@ public class MedicineController { String databaseName = DatabaseNameUtil.encrypt(patientName) + "_" + DatabaseNameUtil.encrypt(idNum) + "_" + date; return vitalSignsService.getPatientInfo(databaseName); } + + @PostMapping("/getDatabaseList") + public R getDatabaseList() { + return vitalSignsService.getDatabaseList(); + } } diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java b/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java index 489414e..34c793b 100644 --- a/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java +++ b/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java @@ -28,4 +28,6 @@ public interface VitalSignsService { List getVitalSignsList(Connection connection); R getPatientInfo(String databaseName); + + R getDatabaseList(); } diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/service/impl/VitalSignServiceImpl.java b/vital-signs/src/main/java/com/rax/vital/medicine/service/impl/VitalSignServiceImpl.java index 674345c..456046d 100644 --- a/vital-signs/src/main/java/com/rax/vital/medicine/service/impl/VitalSignServiceImpl.java +++ b/vital-signs/src/main/java/com/rax/vital/medicine/service/impl/VitalSignServiceImpl.java @@ -1,17 +1,19 @@ package com.rax.vital.medicine.service.impl; +import com.mongodb.ConnectionString; +import com.mongodb.MongoClientSettings; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import com.mongodb.client.MongoIterable; import com.rax.common.core.util.R; import com.rax.vital.datasource.MongoDBSource; import com.rax.vital.medicine.service.VitalSignsService; -import com.rax.vital.timer.VitalSignTimer; -import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.bson.Document; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.SpringDataMongoDB; import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; @@ -23,6 +25,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; /** * 生命体征数据 @@ -43,6 +46,9 @@ public class VitalSignServiceImpl implements VitalSignsService { @Value("${vital-sign.mongodb.password}") private String mongoPassword; + @Value("${vital-sign.except-database}") + private String exceptDatabase; + /** * 获取生命体征最新一条数据 * @@ -115,4 +121,17 @@ public class VitalSignServiceImpl implements VitalSignsService { mongoDBSource.close(); return R.ok(vitalList); } + + @Override + public R getDatabaseList() { + MongoClientSettings.Builder mongoBuilder = MongoClientSettings.builder(); + // mongodb://账户:密码@ip:端口/?authSource=admin + String connectionUrl = "mongodb://" + mongoUsername + ":" + mongoPassword + "@" + mongoDBHost + "/" + "?authSource=admin"; + mongoBuilder.applyConnectionString(new ConnectionString(connectionUrl)); + MongoClient mongoClient = MongoClients.create(mongoBuilder.build(), SpringDataMongoDB.driverInformation()); + MongoIterable databaseNames = mongoClient.listDatabaseNames(); + for (String database: databaseNames) { + } + return null; + } }