Browse Source

医院管理、病区管理

chenying2100 3 months ago
parent
commit
11c19c5f36
26 changed files with 1208 additions and 7 deletions
  1. 111 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysHospitalController.java
  2. 8 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java
  3. 112 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysWardController.java
  4. 77 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysHospital.java
  5. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java
  6. 51 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysWard.java
  7. 71 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysHospitalBo.java
  8. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
  9. 47 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysWardBo.java
  10. 87 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysHospitalVo.java
  11. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
  12. 58 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysWardVo.java
  13. 15 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysHospitalMapper.java
  14. 15 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysWardMapper.java
  15. 69 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysHospitalService.java
  16. 2 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java
  17. 72 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysWardService.java
  18. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java
  19. 154 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysHospitalServiceImpl.java
  20. 12 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
  21. 3 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  22. 174 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWardServiceImpl.java
  23. 7 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysHospitalMapper.xml
  24. 7 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysWardMapper.xml
  25. 50 0
      script/sql/biz/create.sql
  26. 2 0
      script/sql/biz/update.sql

+ 111 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysHospitalController.java

@@ -0,0 +1,111 @@
+package org.dromara.system.controller.system;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.system.domain.vo.SysHospitalVo;
+import org.dromara.system.domain.bo.SysHospitalBo;
+import org.dromara.system.service.ISysHospitalService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 医院管理
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/hospital")
+public class SysHospitalController extends BaseController {
+
+    private final ISysHospitalService sysHospitalService;
+
+    /**
+     * 查询医院管理列表
+     */
+    @SaCheckPermission("system:hospital:list")
+    @GetMapping("/list")
+    public TableDataInfo<SysHospitalVo> list(SysHospitalBo bo, PageQuery pageQuery) {
+        return sysHospitalService.queryPageList(bo, pageQuery);
+    }
+
+    @SaCheckPermission("system:hospital:list")
+    @GetMapping("/getHospitalData")
+    public R<SysHospitalVo> getHospitalData() {
+        return R.ok(sysHospitalService.getOneHospital());
+    }
+
+    /**
+     * 导出医院管理列表
+     */
+    @SaCheckPermission("system:hospital:export")
+    @Log(title = "医院管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(SysHospitalBo bo, HttpServletResponse response) {
+        List<SysHospitalVo> list = sysHospitalService.queryList(bo);
+        ExcelUtil.exportExcel(list, "医院管理", SysHospitalVo.class, response);
+    }
+
+    /**
+     * 获取医院管理详细信息
+     *
+     * @param hospitalId 主键
+     */
+    @SaCheckPermission("system:hospital:query")
+    @GetMapping("/{hospitalId}")
+    public R<SysHospitalVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long hospitalId) {
+        return R.ok(sysHospitalService.queryById(hospitalId));
+    }
+
+    /**
+     * 新增医院管理
+     */
+    @SaCheckPermission("system:hospital:add")
+    @Log(title = "医院管理", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody SysHospitalBo bo) {
+        return toAjax(sysHospitalService.insertByBo(bo));
+    }
+
+    /**
+     * 修改医院管理
+     */
+    @SaCheckPermission("system:hospital:edit")
+    @Log(title = "医院管理", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysHospitalBo bo) {
+        return toAjax(sysHospitalService.updateByBo(bo));
+    }
+
+    /**
+     * 删除医院管理
+     *
+     * @param hospitalIds 主键串
+     */
+    @SaCheckPermission("system:hospital:remove")
+    @Log(title = "医院管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{hospitalIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] hospitalIds) {
+        return toAjax(sysHospitalService.deleteWithValidByIds(List.of(hospitalIds), true));
+    }
+}

+ 8 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java

@@ -49,6 +49,12 @@ public class SysRoleController extends BaseController {
         return roleService.selectPageRoleList(role, pageQuery);
         return roleService.selectPageRoleList(role, pageQuery);
     }
     }
 
 
+    @SaCheckPermission("system:role:list")
+    @GetMapping("/listAll")
+    public TableDataInfo<SysRoleVo> listAll() {
+        return roleService.selectAllRoleList();
+    }
+
     /**
     /**
      * 导出角色信息列表
      * 导出角色信息列表
      */
      */
@@ -227,6 +233,7 @@ public class SysRoleController extends BaseController {
         return R.ok(selectVo);
         return R.ok(selectVo);
     }
     }
 
 
-    public record DeptTreeSelectVo(List<Long> checkedKeys, List<Tree<Long>> depts) {}
+    public record DeptTreeSelectVo(List<Long> checkedKeys, List<Tree<Long>> depts) {
+    }
 
 
 }
 }

+ 112 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysWardController.java

@@ -0,0 +1,112 @@
+package org.dromara.system.controller.system;
+
+import java.util.List;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.system.domain.vo.SysWardVo;
+import org.dromara.system.domain.bo.SysWardBo;
+import org.dromara.system.service.ISysWardService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 病区管理
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/ward")
+public class SysWardController extends BaseController {
+
+    private final ISysWardService sysWardService;
+
+    /**
+     * 查询病区管理列表
+     */
+    @SaCheckPermission("system:ward:list")
+    @GetMapping("/list")
+    public TableDataInfo<SysWardVo> list(SysWardBo bo, PageQuery pageQuery) {
+        return sysWardService.queryPageList(bo, pageQuery);
+    }
+
+    @SaCheckPermission("system:ward:list")
+    @GetMapping("/listUsed")
+    public R<JSONObject> listUsed() {
+        return sysWardService.listUsed();
+    }
+
+    /**
+     * 导出病区管理列表
+     */
+    @SaCheckPermission("system:ward:export")
+    @Log(title = "病区管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(SysWardBo bo, HttpServletResponse response) {
+        List<SysWardVo> list = sysWardService.queryList(bo);
+        ExcelUtil.exportExcel(list, "病区管理", SysWardVo.class, response);
+    }
+
+    /**
+     * 获取病区管理详细信息
+     *
+     * @param wardId 主键
+     */
+    @SaCheckPermission("system:ward:query")
+    @GetMapping("/{wardId}")
+    public R<SysWardVo> getInfo(@NotNull(message = "主键不能为空")
+                                @PathVariable Long wardId) {
+        return R.ok(sysWardService.queryById(wardId));
+    }
+
+    /**
+     * 新增病区管理
+     */
+    @SaCheckPermission("system:ward:add")
+    @Log(title = "病区管理", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody SysWardBo bo) {
+        return toAjax(sysWardService.insertByBo(bo));
+    }
+
+    /**
+     * 修改病区管理
+     */
+    @SaCheckPermission("system:ward:edit")
+    @Log(title = "病区管理", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysWardBo bo) {
+        return toAjax(sysWardService.updateByBo(bo));
+    }
+
+    /**
+     * 删除病区管理
+     *
+     * @param wardIds 主键串
+     */
+    @SaCheckPermission("system:ward:remove")
+    @Log(title = "病区管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{wardIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] wardIds) {
+        return toAjax(sysWardService.deleteWithValidByIds(List.of(wardIds), true));
+    }
+}

+ 77 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysHospital.java

@@ -0,0 +1,77 @@
+package org.dromara.system.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 医院管理对象 sys_hospital
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_hospital")
+public class SysHospital extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 医院名称
+     */
+    private String hospitalName;
+
+    /**
+     * 医院logo
+     */
+    private String hospitalLogo;
+
+    /**
+     * 医院等级
+     */
+    private String hospitalLevel;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 住院床位
+     */
+    private String bedSpace;
+
+    /**
+     * 所属地区
+     */
+    private String region;
+
+    /**
+     * 医院描述
+     */
+    private String description;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 1代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java

@@ -136,7 +136,7 @@ public class SysUser extends TenantEntity {
     /**
     /**
      * 出生日期
      * 出生日期
      */
      */
-    private Date birthDate;
+    private String birthDate;
 
 
     /**
     /**
      * 户籍地址
      * 户籍地址

+ 51 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysWard.java

@@ -0,0 +1,51 @@
+package org.dromara.system.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.tenant.core.TenantEntity;
+
+import java.io.Serial;
+
+/**
+ * 病区管理对象 sys_ward
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sys_ward")
+public class SysWard extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "ward_id")
+    private Long wardId;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 科室ID
+     */
+    private String deptId;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 1代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+}

+ 71 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysHospitalBo.java

@@ -0,0 +1,71 @@
+package org.dromara.system.domain.bo;
+
+import org.dromara.system.domain.SysHospital;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 医院管理业务对象 sys_hospital
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysHospital.class, reverseConvertGenerate = false)
+public class SysHospitalBo extends BaseEntity {
+
+    /**
+     * 主键ID
+     */
+    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
+    private Long hospitalId;
+
+    /**
+     * 医院名称
+     */
+    @NotBlank(message = "医院名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String hospitalName;
+
+    /**
+     * 医院logo
+     */
+    private String hospitalLogo;
+
+    /**
+     * 医院等级
+     */
+    private String hospitalLevel;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 住院床位
+     */
+    private String bedSpace;
+
+    /**
+     * 所属地区
+     */
+    private String region;
+
+    /**
+     * 医院描述
+     */
+    private String description;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+
+}

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@@ -147,7 +147,7 @@ public class SysUserBo extends BaseEntity {
     /**
     /**
      * 出生日期
      * 出生日期
      */
      */
-    private Date birthDate;
+    private String birthDate;
 
 
     /**
     /**
      * 户籍地址
      * 户籍地址

+ 47 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysWardBo.java

@@ -0,0 +1,47 @@
+package org.dromara.system.domain.bo;
+
+import org.dromara.system.domain.SysWard;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 病区管理业务对象 sys_ward
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = SysWard.class, reverseConvertGenerate = false)
+public class SysWardBo extends BaseEntity {
+
+    /**
+     * 主键ID
+     */
+    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
+    private Long wardId;
+
+    /**
+     * 病区名称
+     */
+    @NotBlank(message = "病区名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String wardName;
+
+    /**
+     * 科室ID
+     */
+    @NotBlank(message = "科室ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String deptId;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+
+}

+ 87 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysHospitalVo.java

@@ -0,0 +1,87 @@
+package org.dromara.system.domain.vo;
+
+import org.dromara.system.domain.SysHospital;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 医院管理视图对象 sys_hospital
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SysHospital.class)
+public class SysHospitalVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ExcelProperty(value = "主键ID")
+    private Long hospitalId;
+
+    /**
+     * 医院名称
+     */
+    @ExcelProperty(value = "医院名称")
+    private String hospitalName;
+
+    /**
+     * 医院logo
+     */
+    @ExcelProperty(value = "医院logo")
+    private String hospitalLogo;
+
+    /**
+     * 医院等级
+     */
+    @ExcelProperty(value = "医院等级")
+    private String hospitalLevel;
+
+    /**
+     * 联系电话
+     */
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 住院床位
+     */
+    @ExcelProperty(value = "住院床位")
+    private String bedSpace;
+
+    /**
+     * 所属地区
+     */
+    @ExcelProperty(value = "所属地区")
+    private String region;
+
+    /**
+     * 医院描述
+     */
+    @ExcelProperty(value = "医院描述")
+    private String description;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
+    private String status;
+
+
+}

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java

@@ -174,7 +174,7 @@ public class SysUserVo implements Serializable {
     /**
     /**
      * 出生日期
      * 出生日期
      */
      */
-    private Date birthDate;
+    private String birthDate;
 
 
     /**
     /**
      * 户籍地址
      * 户籍地址

+ 58 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysWardVo.java

@@ -0,0 +1,58 @@
+package org.dromara.system.domain.vo;
+
+import org.dromara.system.domain.SysWard;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 病区管理视图对象 sys_ward
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SysWard.class)
+public class SysWardVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ExcelProperty(value = "主键ID")
+    private Long wardId;
+
+    /**
+     * 病区名称
+     */
+    @ExcelProperty(value = "病区名称")
+    private String wardName;
+
+    /**
+     * 科室ID
+     */
+    private String deptId;
+
+    @ExcelProperty(value = "科室名称")
+    private String deptName;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
+    private String status;
+
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysHospitalMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.system.mapper;
+
+import org.dromara.system.domain.SysHospital;
+import org.dromara.system.domain.vo.SysHospitalVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 医院管理Mapper接口
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+public interface SysHospitalMapper extends BaseMapperPlus<SysHospital, SysHospitalVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysWardMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.system.mapper;
+
+import org.dromara.system.domain.SysWard;
+import org.dromara.system.domain.vo.SysWardVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 病区管理Mapper接口
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+public interface SysWardMapper extends BaseMapperPlus<SysWard, SysWardVo> {
+
+}

+ 69 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysHospitalService.java

@@ -0,0 +1,69 @@
+package org.dromara.system.service;
+
+import org.dromara.system.domain.vo.SysHospitalVo;
+import org.dromara.system.domain.bo.SysHospitalBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 医院管理Service接口
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+public interface ISysHospitalService {
+    SysHospitalVo getOneHospital();
+
+    /**
+     * 查询医院管理
+     *
+     * @param hospitalId 主键
+     * @return 医院管理
+     */
+    SysHospitalVo queryById(Long hospitalId);
+
+    /**
+     * 分页查询医院管理列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 医院管理分页列表
+     */
+    TableDataInfo<SysHospitalVo> queryPageList(SysHospitalBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的医院管理列表
+     *
+     * @param bo 查询条件
+     * @return 医院管理列表
+     */
+    List<SysHospitalVo> queryList(SysHospitalBo bo);
+
+    /**
+     * 新增医院管理
+     *
+     * @param bo 医院管理
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(SysHospitalBo bo);
+
+    /**
+     * 修改医院管理
+     *
+     * @param bo 医院管理
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(SysHospitalBo bo);
+
+    /**
+     * 校验并批量删除医院管理信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java

@@ -2,6 +2,7 @@ package org.dromara.system.service;
 
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.SysRole;
 import org.dromara.system.domain.SysUserRole;
 import org.dromara.system.domain.SysUserRole;
 import org.dromara.system.domain.bo.SysRoleBo;
 import org.dromara.system.domain.bo.SysRoleBo;
 import org.dromara.system.domain.vo.SysRoleVo;
 import org.dromara.system.domain.vo.SysRoleVo;
@@ -27,6 +28,7 @@ public interface ISysRoleService {
      */
      */
     List<SysRoleVo> selectRoleList(SysRoleBo role);
     List<SysRoleVo> selectRoleList(SysRoleBo role);
 
 
+    TableDataInfo<SysRoleVo> selectAllRoleList();
     /**
     /**
      * 根据用户ID查询角色列表
      * 根据用户ID查询角色列表
      *
      *

+ 72 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysWardService.java

@@ -0,0 +1,72 @@
+package org.dromara.system.service;
+
+import com.alibaba.fastjson.JSONObject;
+import org.dromara.common.core.domain.R;
+import org.dromara.system.domain.vo.SysWardVo;
+import org.dromara.system.domain.bo.SysWardBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 病区管理Service接口
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+public interface ISysWardService {
+
+    /**
+     * 查询病区管理
+     *
+     * @param wardId 主键
+     * @return 病区管理
+     */
+    SysWardVo queryById(Long wardId);
+
+    /**
+     * 分页查询病区管理列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 病区管理分页列表
+     */
+    TableDataInfo<SysWardVo> queryPageList(SysWardBo bo, PageQuery pageQuery);
+
+    R<JSONObject> listUsed();
+
+    /**
+     * 查询符合条件的病区管理列表
+     *
+     * @param bo 查询条件
+     * @return 病区管理列表
+     */
+    List<SysWardVo> queryList(SysWardBo bo);
+
+    /**
+     * 新增病区管理
+     *
+     * @param bo 病区管理
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(SysWardBo bo);
+
+    /**
+     * 修改病区管理
+     *
+     * @param bo 病区管理
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(SysWardBo bo);
+
+    /**
+     * 校验并批量删除病区管理信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java

@@ -74,7 +74,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
         lqw.like(StringUtils.isNotBlank(bo.getDictType()), SysDictType::getDictType, bo.getDictType());
         lqw.like(StringUtils.isNotBlank(bo.getDictType()), SysDictType::getDictType, bo.getDictType());
         lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
         lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
             SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime"));
             SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime"));
-        lqw.orderByAsc(SysDictType::getDictId);
+        lqw.orderByDesc(SysDictType::getDictId);
         return lqw;
         return lqw;
     }
     }
 
 

+ 154 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysHospitalServiceImpl.java

@@ -0,0 +1,154 @@
+package org.dromara.system.service.impl;
+
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.StrUtil;
+import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.domain.SysOss;
+import org.dromara.system.mapper.SysOssMapper;
+import org.springframework.stereotype.Service;
+import org.dromara.system.domain.bo.SysHospitalBo;
+import org.dromara.system.domain.vo.SysHospitalVo;
+import org.dromara.system.domain.SysHospital;
+import org.dromara.system.mapper.SysHospitalMapper;
+import org.dromara.system.service.ISysHospitalService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 医院管理Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class SysHospitalServiceImpl implements ISysHospitalService {
+
+    private final SysHospitalMapper baseMapper;
+    private final SysOssMapper ossMapper;
+
+    @Override
+    public SysHospitalVo getOneHospital() {
+        return baseMapper.selectVoOne(Wrappers.lambdaQuery(SysHospital.class));
+    }
+
+    /**
+     * 查询医院管理
+     *
+     * @param hospitalId 主键
+     * @return 医院管理
+     */
+    @Override
+    public SysHospitalVo queryById(Long hospitalId) {
+        return baseMapper.selectVoById(hospitalId);
+    }
+
+    /**
+     * 分页查询医院管理列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 医院管理分页列表
+     */
+    @Override
+    public TableDataInfo<SysHospitalVo> queryPageList(SysHospitalBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysHospital> lqw = buildQueryWrapper(bo);
+        Page<SysHospitalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的医院管理列表
+     *
+     * @param bo 查询条件
+     * @return 医院管理列表
+     */
+    @Override
+    public List<SysHospitalVo> queryList(SysHospitalBo bo) {
+        LambdaQueryWrapper<SysHospital> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysHospital> buildQueryWrapper(SysHospitalBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SysHospital> lqw = Wrappers.lambdaQuery();
+        lqw.orderByAsc(SysHospital::getHospitalId);
+        lqw.like(StringUtils.isNotBlank(bo.getHospitalName()), SysHospital::getHospitalName, bo.getHospitalName());
+        lqw.eq(StringUtils.isNotBlank(bo.getHospitalLogo()), SysHospital::getHospitalLogo, bo.getHospitalLogo());
+        lqw.eq(StringUtils.isNotBlank(bo.getHospitalLevel()), SysHospital::getHospitalLevel, bo.getHospitalLevel());
+        lqw.eq(StringUtils.isNotBlank(bo.getPhone()), SysHospital::getPhone, bo.getPhone());
+        lqw.eq(StringUtils.isNotBlank(bo.getBedSpace()), SysHospital::getBedSpace, bo.getBedSpace());
+        lqw.eq(StringUtils.isNotBlank(bo.getRegion()), SysHospital::getRegion, bo.getRegion());
+        lqw.eq(StringUtils.isNotBlank(bo.getDescription()), SysHospital::getDescription, bo.getDescription());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysHospital::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增医院管理
+     *
+     * @param bo 医院管理
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(SysHospitalBo bo) {
+        SysHospital add = MapstructUtils.convert(bo, SysHospital.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setHospitalId(add.getHospitalId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改医院管理
+     *
+     * @param bo 医院管理
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(SysHospitalBo bo) {
+        SysHospital update = MapstructUtils.convert(bo, SysHospital.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(SysHospital entity) {
+        if (StrUtil.isBlank(entity.getHospitalName())) {
+            throw new ServiceException("医院名称不能为空!");
+        }
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除医院管理信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 12 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java

@@ -84,6 +84,17 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
         return baseMapper.selectRoleList(this.buildQueryWrapper(role));
         return baseMapper.selectRoleList(this.buildQueryWrapper(role));
     }
     }
 
 
+    @Override
+    public TableDataInfo<SysRoleVo> selectAllRoleList() {
+        List<SysRole> sysRoles = baseMapper.selectList(Wrappers.lambdaQuery(SysRole.class)
+            .select(SysRole::getRoleId, SysRole::getRoleName)
+            .eq(SysRole::getStatus, SystemConstants.NORMAL)
+            .eq(SysRole::getDelFlag, SystemConstants.NORMAL));
+        List<SysRoleVo> voList = MapstructUtils.convert(sysRoles, SysRoleVo.class);
+        TableDataInfo<SysRoleVo> info = TableDataInfo.build(voList);
+        return info;
+    }
+
     private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
     private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
         Map<String, Object> params = bo.getParams();
         Map<String, Object> params = bo.getParams();
         QueryWrapper<SysRole> wrapper = Wrappers.query();
         QueryWrapper<SysRole> wrapper = Wrappers.query();
@@ -166,7 +177,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
     @Override
     @Override
     public Long selectRoleListByUserId(Long userId) {
     public Long selectRoleListByUserId(Long userId) {
         List<SysRoleVo> list = baseMapper.selectRolesByUserId(userId);
         List<SysRoleVo> list = baseMapper.selectRolesByUserId(userId);
-        if(CollUtil.isEmpty(list)){
+        if (CollUtil.isEmpty(list)) {
             return null;
             return null;
         }
         }
 //        return StreamUtils.toList(list, SysRoleVo::getRoleId);
 //        return StreamUtils.toList(list, SysRoleVo::getRoleId);

+ 3 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -60,7 +60,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
     public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
     public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
         Page<SysUserVo> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
         Page<SysUserVo> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
 
 
-        if(CollUtil.isNotEmpty(page.getRecords())){
+        if (CollUtil.isNotEmpty(page.getRecords())) {
             List<Long> userIdList = page.getRecords().stream().map(SysUserVo::getUserId).collect(Collectors.toList());
             List<Long> userIdList = page.getRecords().stream().map(SysUserVo::getUserId).collect(Collectors.toList());
             Map<Long, SysRoleVo> roleMap = roleMapper.selectRolesByUserIds(userIdList).stream().collect(Collectors.toMap(k1 -> k1.getUserId(), k2 -> k2, (k1, k2) -> k1));
             Map<Long, SysRoleVo> roleMap = roleMapper.selectRolesByUserIds(userIdList).stream().collect(Collectors.toMap(k1 -> k1.getUserId(), k2 -> k2, (k1, k2) -> k1));
             page.getRecords().forEach(r -> {
             page.getRecords().forEach(r -> {
@@ -110,6 +110,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
                     .or()
                     .or()
                     .like("u.name", user.getUserName());
                     .like("u.name", user.getUserName());
             })
             })
+            .exists(ObjUtil.isNotNull(user.getRoleId()),
+                "(select 1 from sys_user_role ur where ur.role_id = {0} and ur.user_id=u.user_id)",user.getRoleId())
             .orderByAsc("u.user_id");
             .orderByAsc("u.user_id");
         if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
         if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
             wrapper.notIn("u.user_id", StringUtils.splitTo(user.getExcludeUserIds(), Convert::toLong));
             wrapper.notIn("u.user_id", StringUtils.splitTo(user.getExcludeUserIds(), Convert::toLong));

+ 174 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWardServiceImpl.java

@@ -0,0 +1,174 @@
+package org.dromara.system.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSONObject;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.domain.SysDept;
+import org.dromara.system.mapper.SysDeptMapper;
+import org.springframework.stereotype.Service;
+import org.dromara.system.domain.bo.SysWardBo;
+import org.dromara.system.domain.vo.SysWardVo;
+import org.dromara.system.domain.SysWard;
+import org.dromara.system.mapper.SysWardMapper;
+import org.dromara.system.service.ISysWardService;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 病区管理Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-06-26
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class SysWardServiceImpl implements ISysWardService {
+
+    private final SysWardMapper baseMapper;
+    private final SysDeptMapper deptMapper;
+
+    /**
+     * 查询病区管理
+     *
+     * @param wardId 主键
+     * @return 病区管理
+     */
+    @Override
+    public SysWardVo queryById(Long wardId) {
+        return baseMapper.selectVoById(wardId);
+    }
+
+
+    @Override
+    public R<JSONObject> listUsed() {
+        JSONObject deptUsedMap = new JSONObject();
+        List<SysWard> sysWardList = baseMapper.selectList(Wrappers.lambdaQuery(SysWard.class)
+            .select(SysWard::getDeptId));
+        sysWardList.forEach(v -> {
+            Arrays.stream(v.getDeptId().split(",")).forEach(deptId -> {
+                deptUsedMap.put(deptId, Boolean.TRUE);
+            });
+        });
+
+        return R.ok(deptUsedMap);
+    }
+
+    /**
+     * 分页查询病区管理列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 病区管理分页列表
+     */
+    @Override
+    public TableDataInfo<SysWardVo> queryPageList(SysWardBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysWard> lqw = buildQueryWrapper(bo);
+        Page<SysWardVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        if (CollUtil.isNotEmpty(result.getRecords())) {
+            Set<Long> deptIds = CollUtil.newHashSet();
+            result.getRecords().forEach(v -> {
+                deptIds.addAll(Arrays.stream(v.getDeptId().split(",")).map(Long::valueOf).collect(Collectors.toSet()));
+            });
+            Map<String, String> deptMap = deptMapper.selectList(Wrappers.lambdaQuery(SysDept.class)
+                .select(SysDept::getDeptId, SysDept::getDeptName)
+                .in(SysDept::getDeptId, deptIds)).stream().collect(Collectors.toMap(k1 -> String.valueOf(k1.getDeptId()), k2 -> k2.getDeptName(), (k1, k2) -> k1));
+
+            result.getRecords().forEach(v -> {
+                v.setDeptName(Arrays.stream(v.getDeptId().split(",")).map(id -> {
+                    return deptMap.get(id);
+                }).filter(StringUtils::isNotBlank).collect(Collectors.joining(",")));
+            });
+        }
+
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的病区管理列表
+     *
+     * @param bo 查询条件
+     * @return 病区管理列表
+     */
+    @Override
+    public List<SysWardVo> queryList(SysWardBo bo) {
+        LambdaQueryWrapper<SysWard> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<SysWard> buildQueryWrapper(SysWardBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<SysWard> lqw = Wrappers.lambdaQuery();
+        lqw.orderByAsc(SysWard::getWardId);
+        lqw.like(StringUtils.isNotBlank(bo.getWardName()), SysWard::getWardName, bo.getWardName());
+        lqw.eq(StringUtils.isNotBlank(bo.getDeptId()), SysWard::getDeptId, bo.getDeptId());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysWard::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增病区管理
+     *
+     * @param bo 病区管理
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(SysWardBo bo) {
+        SysWard add = MapstructUtils.convert(bo, SysWard.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setWardId(add.getWardId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改病区管理
+     *
+     * @param bo 病区管理
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(SysWardBo bo) {
+        SysWard update = MapstructUtils.convert(bo, SysWard.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(SysWard entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除病区管理信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysHospitalMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.system.mapper.SysHospitalMapper">
+
+</mapper>

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysWardMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.system.mapper.SysWardMapper">
+
+</mapper>

+ 50 - 0
script/sql/biz/create.sql

@@ -0,0 +1,50 @@
+
+CREATE TABLE sys_ward (
+  ward_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
+  tenant_id varchar(20) default '000000' null comment '租户编号',
+  ward_name VARCHAR(100) NOT NULL COMMENT '病区名称',
+  dept_id VARCHAR(300) NOT NULL COMMENT '科室ID',
+  status CHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+  del_flag char default '0' null comment '删除标志(0代表存在 1代表删除)',
+  create_dept   bigint null comment '创建部门',
+  create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
+  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
+  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='病区管理表';
+
+
+CREATE TABLE sys_hospital (
+  hospital_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
+  tenant_id varchar(20) default '000000' null comment '租户编号',
+  hospital_name VARCHAR(200) NOT NULL COMMENT '医院名称',
+  hospital_logo VARCHAR(300) COMMENT '医院logo',
+  hospital_level char(2) COMMENT '医院等级',
+  phone VARCHAR(20) COMMENT '联系电话',
+  bed_space VARCHAR(100)  COMMENT '住院床位',
+  region VARCHAR(300) COMMENT '所属地区',
+  description VARCHAR(1000) COMMENT '医院描述',
+  status CHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+  del_flag char default '0' null comment '删除标志(0代表存在 1代表删除)',
+  create_dept  bigint null comment '创建部门',
+  create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
+  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
+  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='医院管理表';
+
+
+CREATE TABLE sys_disease_label (
+   label_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
+   tenant_id varchar(20) default '000000' null comment '租户编号',
+   label_name VARCHAR(100) NOT NULL COMMENT '疾病/部位名称',
+   label_code VARCHAR(50) NOT NULL COMMENT '疾病/部位编码',
+   category VARCHAR(100) COMMENT '所属分类',
+   status CHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
+   del_flag char default '0' null comment '删除标志(0代表存在 1代表删除)',
+   create_dept  bigint null comment '创建部门',
+   create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
+   create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+   update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
+   update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='疾病/部位标签表';

+ 2 - 0
script/sql/biz/update.sql

@@ -16,3 +16,5 @@ ADD COLUMN education VARCHAR(20) COMMENT '学历',
 ADD COLUMN intro TEXT COMMENT '职工简介',
 ADD COLUMN intro TEXT COMMENT '职工简介',
 ADD COLUMN expertise VARCHAR(200) COMMENT '擅长疾病',
 ADD COLUMN expertise VARCHAR(200) COMMENT '擅长疾病',
 ADD COLUMN signature_img VARCHAR(200) COMMENT '签名图片路径';
 ADD COLUMN signature_img VARCHAR(200) COMMENT '签名图片路径';
+
+