소스 검색

医院管理、病区管理

chenying2100 3 달 전
부모
커밋
11c19c5f36
26개의 변경된 파일1208개의 추가작업 그리고 7개의 파일을 삭제
  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);
     }
 
+    @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);
     }
 
-    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.TableDataInfo;
+import org.dromara.system.domain.SysRole;
 import org.dromara.system.domain.SysUserRole;
 import org.dromara.system.domain.bo.SysRoleBo;
 import org.dromara.system.domain.vo.SysRoleVo;
@@ -27,6 +28,7 @@ public interface ISysRoleService {
      */
     List<SysRoleVo> selectRoleList(SysRoleBo role);
 
+    TableDataInfo<SysRoleVo> selectAllRoleList();
     /**
      * 根据用户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.between(params.get("beginTime") != null && params.get("endTime") != null,
             SysDictType::getCreateTime, params.get("beginTime"), params.get("endTime"));
-        lqw.orderByAsc(SysDictType::getDictId);
+        lqw.orderByDesc(SysDictType::getDictId);
         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));
     }
 
+    @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) {
         Map<String, Object> params = bo.getParams();
         QueryWrapper<SysRole> wrapper = Wrappers.query();
@@ -166,7 +177,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
     @Override
     public Long selectRoleListByUserId(Long userId) {
         List<SysRoleVo> list = baseMapper.selectRolesByUserId(userId);
-        if(CollUtil.isEmpty(list)){
+        if (CollUtil.isEmpty(list)) {
             return null;
         }
 //        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) {
         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());
             Map<Long, SysRoleVo> roleMap = roleMapper.selectRolesByUserIds(userIdList).stream().collect(Collectors.toMap(k1 -> k1.getUserId(), k2 -> k2, (k1, k2) -> k1));
             page.getRecords().forEach(r -> {
@@ -110,6 +110,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
                     .or()
                     .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");
         if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
             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 expertise VARCHAR(200) COMMENT '擅长疾病',
 ADD COLUMN signature_img VARCHAR(200) COMMENT '签名图片路径';
+
+