소스 검색

visit添加权限访问

Ciallo 8 달 전
부모
커밋
fae9b7f809

+ 9 - 27
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/VisitController.java

@@ -10,6 +10,7 @@ import com.ruoyi.web.work.service.IVisitService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
@@ -23,7 +24,6 @@ import com.ruoyi.common.core.page.TableDataInfo;
  * @date 2024-07-19
  */
 @Api(tags = "住院信息管理")
-@Anonymous
 @RestController
 @RequestMapping("/work/visit")
 public class VisitController extends BaseController {
@@ -31,31 +31,17 @@ public class VisitController extends BaseController {
     @Autowired
     private IVisitService visitService;
 
-
-    //@PreAuthorize("@ss.hasPermi('work:pv1:list')")
-    @ApiOperation(value = "获取所有科室")
-    @Anonymous
-    @GetMapping("/department")
-    public TableDataInfo getAllDepartment() {
-        List<String> list=visitService.getAllDepartment();
-        return getDataTable(list);
-    }
-
+    @PreAuthorize("@ss.hasPermi('work:visit:list')")
     @ApiOperation(value = "根据姓名、科室、主治医生查询就诊信息列表",notes = "可单条件或多条件查询,需要查哪个就传哪个")
-    @Anonymous
     @GetMapping("/patientCard")
-    public TableDataInfo getPatientCardByNameOrDepartment(@RequestParam(value = "patientName",required = false) String patientName,
-                                                            @RequestParam(value = "departmentName",required = false) String departmentName,
-                                                          @RequestParam(value = "physician",required = false) String physician){
+    public TableDataInfo getPatientCardByNameOrDepartment(PatientCardDto patientCardDto){
         startPage();
-        List<PatientCardDto> list=visitService.getPatientCardByNameOrDepartmentOrPhysician(patientName,departmentName,physician);
+        List<PatientCardDto> list=visitService.getPatientCardByNameOrDepartmentOrPhysician(patientCardDto);
         return getDataTable(list);
     }
 
-
     @ApiOperation(value = "获取住院信息列表")
-    @Anonymous
-    //@PreAuthorize("@ss.hasPermi('work:pv1:list')")
+    @PreAuthorize("@ss.hasPermi('work:visit:list')")
     @GetMapping("/list")
     public TableDataInfo list(Visit visit){
         startPage();
@@ -64,16 +50,14 @@ public class VisitController extends BaseController {
     }
 
     @ApiOperation(value = "根据id查询住院信息")
-    @Anonymous
-    //@PreAuthorize("@ss.hasPermi('work:pv1:query')")
+    @PreAuthorize("@ss.hasPermi('work:visit:query')")
     @GetMapping(value = "/detail/{id}")
     public AjaxResult detail(@PathVariable("id") Long id){
         return AjaxResult.success(visitService.getById(id));
     }
 
     @ApiOperation(value = "添加住院信息")
-    @Anonymous
-    //@PreAuthorize("@ss.hasPermi('work:pv1:add')")
+    @PreAuthorize("@ss.hasPermi('work:visit:add')")
     @Log(title = "住院信息", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@RequestBody Visit pv1){
@@ -81,8 +65,7 @@ public class VisitController extends BaseController {
     }
 
     @ApiOperation(value = "修改住院信息")
-    @Anonymous
-    //@PreAuthorize("@ss.hasPermi('work:pv1:edit')")
+    @PreAuthorize("@ss.hasPermi('work:visit:edit')")
     @Log(title = "住院信息", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody Visit pv1){
@@ -90,8 +73,7 @@ public class VisitController extends BaseController {
     }
 
     @ApiOperation(value = "删除住院信息")
-    @Anonymous
-    //@PreAuthorize("@ss.hasPermi('work:pv1:remove')")
+    @PreAuthorize("@ss.hasPermi('work:visit:remove')")
     @Log(title = "住院信息", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids){

+ 14 - 10
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Visit.java

@@ -2,6 +2,8 @@ package com.ruoyi.web.work.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseData;
+import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -17,7 +19,7 @@ import java.util.List;
 @Data
 @TableName(value = "tb_visit")
 @Accessors(chain = true)
-public class Visit {
+public class Visit extends BaseData {
 
     private Long id;
     @ApiModelProperty(value = "患者ID")
@@ -26,8 +28,10 @@ public class Visit {
     private Long cardId;
     @ApiModelProperty(value = "患者分类")
     private String patClass;
-    @ApiModelProperty(value = "科室代码")
+
+    @ApiModelProperty(value = "科室Code")
     private String deptCode;
+
     @ApiModelProperty(value = "科室")
     private String department;
     @ApiModelProperty(value = "床位")
@@ -69,14 +73,14 @@ public class Visit {
 
 
 
-    private String createBy;  //创建人
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Data createTime;  //创建时间
-    private String updateBy;  //更新人
-    @TableField(fill = FieldFill.UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Data updateTime;  //更新时间
+    //private String createBy;  //创建人
+    //@TableField(fill = FieldFill.INSERT)
+    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    //private Data createTime;  //创建时间
+    //private String updateBy;  //更新人
+    //@TableField(fill = FieldFill.UPDATE)
+    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    //private Data updateTime;  //更新时间
 
     @TableField(exist = false)
     private List<Patient> patients;

+ 5 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/PatientCardDto.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.work.domain.dto;
 
+import com.ruoyi.common.core.domain.BaseData;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -8,7 +9,7 @@ import java.sql.Timestamp;
 
 @Data
 @Accessors(chain = true)
-public class PatientCardDto {
+public class PatientCardDto extends BaseData {
 
 
     @ApiModelProperty(value = "科室")
@@ -39,6 +40,9 @@ public class PatientCardDto {
     private String cardId;
 
 
+    @ApiModelProperty(value = "患者姓名")
+    private String patientName;
+
 
 }
 

+ 2 - 5
ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/VisitMapper.java

@@ -16,11 +16,6 @@ import org.apache.ibatis.annotations.Param;
 public interface VisitMapper extends BaseMapper<Visit>{
     List<Visit> selectList(Visit visit);
 
-    List<PatientCardDto> getPatientCardByNameOrDepartmentOrPhysician(@Param("patientName") String patientName, @Param("departmentName") String departmentName, @Param("physician") String physician);
-
-    List<String> getAllDepartment();
-
-    List<Visit> getVisitByTime(String beginTime, String endTime, Long patId);
 
     List<Visit> selectVisitsByCardId(String cardId);
 
@@ -31,4 +26,6 @@ public interface VisitMapper extends BaseMapper<Visit>{
 
     //获取当前用户部门下的患者信息
     List<Visit> selectVisitsByIdAndUserName(@Param("deptId") Long deptId,@Param("userName") String userName);
+
+    List<PatientCardDto> getPatientCardByNameOrDepartmentOrPhysician(PatientCardDto patientCardDto);
 }

+ 1 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IVisitService.java

@@ -12,11 +12,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IVisitService extends IService<Visit>{
     List<Visit> selectList(Visit visit);
 
-    List<PatientCardDto> getPatientCardByNameOrDepartmentOrPhysician(String patientName, String departmentName, String physician);
+    List<PatientCardDto> getPatientCardByNameOrDepartmentOrPhysician(PatientCardDto patientCardDto);
 
-    List<String> getAllDepartment();
-
-    List<Visit> getVisitByTime(String beginTime, String endTime, Long patId);
 
     //根据患者Id获取就诊记录列表
     List<Visit> getVisitByPatId(String patId,String startTime,String endTime);

+ 5 - 12
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/VisitServiceImpl.java

@@ -4,6 +4,7 @@ package com.ruoyi.web.work.service.impl;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.system.mapper.SysDeptMapper;
@@ -30,27 +31,19 @@ public class VisitServiceImpl extends ServiceImpl<VisitMapper, Visit> implements
 
 
     @Override
+    @DataScope(deptAlias = "v")
     public List<Visit> selectList(Visit visit) {
         return visitMapper.selectList(visit);
     }
 
     @Override
-    public List<PatientCardDto> getPatientCardByNameOrDepartmentOrPhysician(String patientName, String departmentName, String physician) {
-        return visitMapper.getPatientCardByNameOrDepartmentOrPhysician(patientName, departmentName, physician);
+    @DataScope(deptAlias = "v")
+    public List<PatientCardDto> getPatientCardByNameOrDepartmentOrPhysician(PatientCardDto patientCardDto) {
+        return visitMapper.getPatientCardByNameOrDepartmentOrPhysician(patientCardDto);
     }
 
 
     @Override
-    public List<String> getAllDepartment() {
-        return visitMapper.getAllDepartment();
-    }
-
-    @Override
-    public List<Visit> getVisitByTime(String beginTime, String endTime, Long patId) {
-        return visitMapper.getVisitByTime(beginTime,endTime,patId);
-    }
-
-    @Override
     public List<Visit> getVisitByPatId(String patId,String startTime,String endTime) {
         return visitMapper.selectVisitsByPatId(patId,startTime,endTime);
     }

+ 1 - 1
ruoyi-admin/src/main/resources/mapper/work/PatientMapper.xml

@@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <where>
             tb_patient.event_type='7'
             <if test="id != null "> and id = #{id}</if>
+            <if test="wnPatId != null "> and wn_pat_id = #{wnPatId}</if>
             <if test="patientCode != null  and patientCode != ''"> and patient_code = #{patientCode}</if>
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
             <if test="birthDate != null  and birthDate != ''"> and birth_date = #{birthDate}</if>
@@ -26,7 +27,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="brkh != null  and brkh != ''"> and brkh = #{brkh}</if>
             <if test="sfzh != null  and sfzh != ''"> and sfzh = #{sfzh}</if>
             <if test="yexh != null  and yexh != ''"> and yexh = #{yexh}</if>
-            <if test="msgType != null  and msgId != ''"> and msg_Type = #{msgType}</if>
         </where>
     </select>
 

+ 23 - 32
ruoyi-admin/src/main/resources/mapper/work/VisitMapper.xml

@@ -5,9 +5,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.ruoyi.web.work.mapper.VisitMapper">
 
     <select id="selectList" resultType="com.ruoyi.web.work.domain.Visit">
-        select * from tb_visit
+        select * from tb_visit v
         <where>
-            tb_visit.hospital_status = '3'
+            v.hospital_status = '3'
             <if test="id != null "> and id = #{id}</if>
             <if test="patId != null "> and pat_id = #{patId}</if>
             <if test="cardId != null "> and card_id = #{cardId}</if>
@@ -29,54 +29,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="reasonArea != null  and reasonArea != ''"> and reasonArea = #{reasonArea}</if>
             <if test="wardCode != null  and wardCode != ''"> and ward_code = #{wardCode}</if>
             <if test="wardName != null  and wardName != ''"> and ward_name = #{wardName}</if>
+            <if test="deptId != null and deptId != 0">AND (v.dept_id = #{deptId} OR v.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))</if>
         </where>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
     </select>
 
 
     <select id="getPatientCardByNameOrDepartmentOrPhysician" resultType="com.ruoyi.web.work.domain.dto.PatientCardDto">
         SELECT
-            tb_visit.department,
-            tb_visit.physician,
+            v.department,
+            v.physician,
             tb_patient.`name`,
-            tb_visit.discharge_method,
-            tb_visit.discharge_time,
-            tb_visit.id as visit_id,
-            tb_visit.pat_id,
-            tb_visit.card_id
+            v.discharge_method,
+            v.discharge_time,
+            v.id as visit_id,
+            v.pat_id,
+            v.card_id
         FROM
-            tb_visit
-                JOIN
-            tb_patient ON tb_visit.pat_id = tb_patient.id
+            tb_visit v
+        JOIN tb_patient ON v.pat_id = tb_patient.id
+        JOIN sys_dept d ON d.dept_id = v.dept_id
         <where>
-            tb_visit.hospital_status = '3'
+            v.hospital_status = '3'
             <if test="patientName!='' and patientName!=null">
                AND tb_patient.`name` like concat('%', #{patientName}, '%')
             </if>
-            <if test="departmentName!='' and departmentName!= null">
-                AND tb_visit.department =#{departmentName}
+            <if test="department!='' and department!= null">
+                AND v.department =#{department}
             </if>
             <if test="physician!='' and physician!= null">
-                AND tb_visit.physician like concat('%', #{physician}, '%')
+                AND v.physician like concat('%', #{physician}, '%')
             </if>
+            <if test="deptId !=null and deptId != 0">AND (v.dept_id = #{deptId} OR v.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))</if>
         </where>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
     </select>
 
 
-    <select id="getAllDepartment" resultType="com.ruoyi.web.work.domain.dto.PatientCardDto">
-        select department from tb_visit GROUP BY department
-    </select>
-
-
-    <select id="getVisitByTime" resultType="com.ruoyi.web.work.domain.Visit">
-        SELECT *
-        FROM tb_visit tb_visit.pat_id=#{patId}
-        <where>
-            <if test="beginTime !=null and beginTime != '' and endTime != null and endTime != ''">
-                and  tb_visit.admission_time BETWEEN #{beginTime} AND #{endTime}
-            </if>
-        </where>
-    </select>
-
     <select id="selectVisitsByCardId" resultType="com.ruoyi.web.work.domain.Visit">
         select * from tb_visit  where card_id=#{cardId}
                                         and tb_visit.hospital_status = '3'
@@ -95,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="patId" column="pat_id"/>
         <result property="cardId" column="card_id"/>
         <result property="patClass" column="pat_class"/>
-        <result property="deptCode" column="dept_code"/>
+        <result property="deptId" column="dept_id"/>
         <result property="department" column="department"/>
         <result property="bed" column="bed"/>
         <result property="doctorCode" column="doctor_code"/>