From b2d8cd0e0265e1b51cfbd56e0addbd68770bcb94 Mon Sep 17 00:00:00 2001 From: haown <454902499@qq.com> Date: Wed, 24 Apr 2024 14:15:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?datascope=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=BB=9F=E4=B8=80=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysUserController.java | 1 - .../xinelu/common/annotation/DataScope.java | 4 + .../common/core/domain/entity/SysUser.java | 16 ++-- .../framework/aspectj/DataScopeAspect.java | 19 ++-- .../patientinfo/PatientInfoController.java | 1 - .../manage/domain/department/Department.java | 8 +- .../dto/patientinfo/PatientInfoDto.java | 3 +- .../agency/impl/AgencyServiceImpl.java | 4 +- .../impl/DepartmentServiceImpl.java | 6 +- .../impl/PatientInfoServiceImpl.java | 2 + .../PatientPreHospitalizationServiceImpl.java | 10 +- .../impl/PatientVisitRecordServiceImpl.java | 8 +- .../manage/department/DepartmentMapper.xml | 52 +++++----- .../manage/patientinfo/PatientInfoMapper.xml | 94 ++++++++++--------- .../service/impl/SysUserServiceImpl.java | 12 +-- .../resources/mapper/system/SysUserMapper.xml | 46 ++++----- 16 files changed, 150 insertions(+), 136 deletions(-) diff --git a/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java b/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java index deaa69e2..d9b0ff7f 100644 --- a/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java +++ b/postdischarge-admin/src/main/java/com/xinelu/web/controller/system/SysUserController.java @@ -62,7 +62,6 @@ public class SysUserController extends BaseController { * 获取用户列表 */ @ApiOperation("获取用户列表") - @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/getList") public R> getList(SysUser user) { List list = userService.selectUserList(user); diff --git a/postdischarge-common/src/main/java/com/xinelu/common/annotation/DataScope.java b/postdischarge-common/src/main/java/com/xinelu/common/annotation/DataScope.java index 393771f7..1e06e736 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/annotation/DataScope.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/annotation/DataScope.java @@ -11,6 +11,10 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DataScope { + /** + * 机构表别名 + */ + public String anencyAlias() default ""; /** * 部门表的别名 */ diff --git a/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java b/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java index 87d8a7d1..ca9b22d8 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/core/domain/entity/SysUser.java @@ -142,7 +142,7 @@ public class SysUser extends BaseEntity { /** * 机构id */ - private Long agencyId; + private Long hospitalAgencyId; /** * 机构id @@ -170,15 +170,15 @@ public class SysUser extends BaseEntity { this.userId = userId; } - public Long getAgencyId() { - return agencyId; - } + public Long getHospitalAgencyId() { + return hospitalAgencyId; + } - public void setAgencyId(Long agencyId) { - this.agencyId = agencyId; - } + public void setHospitalAgencyId(Long hospitalAgencyId) { + this.hospitalAgencyId = hospitalAgencyId; + } - public Long getDepartmentId() { + public Long getDepartmentId() { return departmentId; } diff --git a/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java b/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java index dfe0c21f..577004d2 100644 --- a/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java +++ b/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java @@ -45,6 +45,11 @@ public class DataScopeAspect { */ public static final String DATA_SCOPE_SELF = "5"; + /** + * 机构数据权限 + */ + public static final String DATA_SCOPE_AGENCY = "6"; + /** * 数据权限过滤关键字 */ @@ -63,7 +68,7 @@ public class DataScopeAspect { SysUser currentUser = loginUser.getUser(); // 如果是超级管理员,则不过滤数据 if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) { - dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), + dataScopeFilter(joinPoint, currentUser, controllerDataScope.anencyAlias(), controllerDataScope.deptAlias(), controllerDataScope.userAlias()); } } @@ -76,7 +81,7 @@ public class DataScopeAspect { * @param user 用户 * @param userAlias 别名 */ - public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias) { + public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String anencyAlias, String deptAlias, String userAlias) { StringBuilder sqlString = new StringBuilder(); for (SysRole role : user.getRoles()) { @@ -84,17 +89,19 @@ public class DataScopeAspect { if (DATA_SCOPE_ALL.equals(dataScope)) { sqlString = new StringBuilder(); break; - } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { + } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { // 自定数据权限 sqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId())); - } else if (DATA_SCOPE_DEPT.equals(dataScope)) { + } else if(DATA_SCOPE_AGENCY.equals(dataScope)){ // 机构数据权限 + sqlString.append(StringUtils.format(" OR {}.hospital_agency_id = {} ", anencyAlias, user.getHospitalAgencyId())); + } else if (DATA_SCOPE_DEPT.equals(dataScope)) { // 部门数据权限 sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); - } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { + } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { // 部门及以下数据权限 sqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", deptAlias, user.getDeptId(), user.getDeptId())); - } else if (DATA_SCOPE_SELF.equals(dataScope)) { + } else if (DATA_SCOPE_SELF.equals(dataScope)) { // 仅本人数据权限 if (StringUtils.isNotBlank(userAlias)) { sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); } else { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientinfo/PatientInfoController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientinfo/PatientInfoController.java index 6f3fa58d..5f46f79b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientinfo/PatientInfoController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientinfo/PatientInfoController.java @@ -45,7 +45,6 @@ public class PatientInfoController extends BaseController { @PreAuthorize("@ss.hasPermi('manage:patientInfo:list')") @GetMapping("/list") public TableDataInfo list(PatientInfoDto patientInfo) { - // 根据用户权限判断查询数据权限 startPage(); List list = patientInfoService.selectPatientInfoList(patientInfo); return getDataTable(list); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/department/Department.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/department/Department.java index 8879a9f1..79d8562d 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/department/Department.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/department/Department.java @@ -45,14 +45,14 @@ public class Department extends BaseEntity { */ @ApiModelProperty(value = "所属机构id") @Excel(name = "所属机构id") - private Long agencyId; + private Long hospitalAgencyId; /** * 所属机构名称 */ @ApiModelProperty(value = "所属机构名称") @Excel(name = "所属机构名称") - private String agencyName; + private String hospitalAgencyName; /** * 科室名称 @@ -179,8 +179,8 @@ public class Department extends BaseEntity { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("parentDepartmentId", getParentDepartmentId()) - .append("agencyId", getAgencyId()) - .append("agencyName", getAgencyName()) + .append("hospitalAgencyId", getHospitalAgencyId()) + .append("hospitalAgencyName", getHospitalAgencyName()) .append("departmentName", getDepartmentName()) .append("departmentCode", getDepartmentCode()) .append("departmentType", getDepartmentType()) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientinfo/PatientInfoDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientinfo/PatientInfoDto.java index 3fb9c527..a5e44313 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientinfo/PatientInfoDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientinfo/PatientInfoDto.java @@ -1,5 +1,6 @@ package com.xinelu.manage.dto.patientinfo; +import com.xinelu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.time.LocalDate; @@ -13,7 +14,7 @@ import org.springframework.format.annotation.DateTimeFormat; **/ @ApiModel("患者列表查询传输对象") @Data -public class PatientInfoDto { +public class PatientInfoDto extends BaseEntity { @ApiModelProperty("居民信息表主键") private Long residentId; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java index b63f026f..4eb40e03 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/agency/impl/AgencyServiceImpl.java @@ -247,7 +247,7 @@ public class AgencyServiceImpl implements IAgencyService { hospitalVO.setCampusList(campusList); Department department = new Department(); department.setNodeType(NodeTypeEnum.DEPARTMENT.getInfo()); - department.setAgencyId(hospitalDTO.getHospitalId()); + department.setHospitalAgencyId(hospitalDTO.getHospitalId()); List departmentList = departmentMapper.selectDepartmentList(department); hospitalVO.setDepartmentList(departmentList); department.setNodeType(NodeTypeEnum.WARD.getInfo()); @@ -258,7 +258,7 @@ public class AgencyServiceImpl implements IAgencyService { if (StringUtils.isNotBlank(hospitalDTO.getNodeType()) && NodeTypeEnum.CAMPUS.getInfo().equals(hospitalDTO.getNodeType()) && Objects.nonNull(hospitalDTO.getCampusId())) { Department department = new Department(); department.setNodeType(NodeTypeEnum.DEPARTMENT.getInfo()); - department.setAgencyId(hospitalDTO.getCampusId()); + department.setHospitalAgencyId(hospitalDTO.getCampusId()); List departmentList = departmentMapper.selectDepartmentList(department); hospitalVO.setDepartmentList(departmentList); department.setNodeType(NodeTypeEnum.WARD.getInfo()); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java index 946f1ea0..f3de2b33 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java @@ -77,9 +77,9 @@ public class DepartmentServiceImpl implements IDepartmentService { public AjaxResult selectUserDepartment() { SysUser sysUser = sysUserMapper.selectUserById(SecurityUtils.getUserId()); List departments = new ArrayList<>(); - if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getAgencyId())) { + if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getHospitalAgencyId())) { Department department = new Department(); - department.setAgencyId(sysUser.getAgencyId()); + department.setHospitalAgencyId(sysUser.getHospitalAgencyId()); departments = departmentMapper.selectDepartmentList(department); } return AjaxResult.success(departments); @@ -93,7 +93,7 @@ public class DepartmentServiceImpl implements IDepartmentService { */ @Override public AjaxResult selectDepartmentByAgencyIdList(Department department) { - if (Objects.isNull(department) || (Objects.isNull(department.getAgencyId()) && Objects.isNull(department.getParentDepartmentId()))) { + if (Objects.isNull(department) || (Objects.isNull(department.getHospitalAgencyId()) && Objects.isNull(department.getParentDepartmentId()))) { return AjaxResult.success(); } return AjaxResult.success(departmentMapper.selectDepartmentList(department)); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java index b09f0cbf..f66343fb 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfo/impl/PatientInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.xinelu.manage.service.patientinfo.impl; +import com.xinelu.common.annotation.DataScope; import com.xinelu.common.constant.SignRecordServiceStatusConstants; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.BaseUtil; @@ -62,6 +63,7 @@ public class PatientInfoServiceImpl implements IPatientInfoService { * @return 患者信息 */ @Override + @DataScope(anencyAlias = "p") public List selectPatientInfoList(PatientInfoDto patientInfo) { return patientInfoMapper.selectPatientInfoList(patientInfo); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java index a4b5f992..3dc1646b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java @@ -166,7 +166,7 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital if (CollectionUtils.isEmpty(patientList)) { return AjaxResult.error("请添加预住院患者导入信息!"); } - if (SecurityUtils.getLoginUser().getUser().getAgencyId() == null) { + if (SecurityUtils.getLoginUser().getUser().getHospitalAgencyId() == null) { return AjaxResult.error("您未设置机构信息,导入失败"); } // 根据患者身份证号做去重处理 @@ -181,8 +181,8 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital PatientPreHospitalization preHospitalization = new PatientPreHospitalization(); BeanUtils.copyProperties(item, preHospitalization); // 设置机构/院区为当前登录用户机构信息 - preHospitalization.setHospitalAgencyId(SecurityUtils.getLoginUser().getUser().getAgencyId()); - Agency agencyData = agencyMapper.selectAgencyById(SecurityUtils.getLoginUser().getUser().getAgencyId()); + preHospitalization.setHospitalAgencyId(SecurityUtils.getLoginUser().getUser().getHospitalAgencyId()); + Agency agencyData = agencyMapper.selectAgencyById(SecurityUtils.getLoginUser().getUser().getHospitalAgencyId()); if (ObjectUtils.isNotEmpty(agencyData)) { if (StringUtils.equals(NodeTypeConstants.HOSPITAL, agencyData.getNodeType())) { // 节点类型为机构 preHospitalization.setHospitalAgencyName(agencyData.getAgencyName()); @@ -199,7 +199,7 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital // 查询科室id Department department = new Department(); if (StringUtils.isNotBlank(item.getDepartmentName())) { - department.setAgencyName(preHospitalization.getHospitalAgencyName()); + department.setHospitalAgencyName(preHospitalization.getHospitalAgencyName()); department.setDepartmentName(item.getDepartmentName()); department.setNodeType(NodeTypeConstants.DEPARTMENT); List deptList = departmentMapper.selectDepartmentList(department); @@ -209,7 +209,7 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital } // 查询病区 if (StringUtils.isNotBlank(item.getWardName())) { - department.setAgencyName(item.getHospitalAgencyName()); + department.setHospitalAgencyName(item.getHospitalAgencyName()); department.setDepartmentName(item.getWardName()); department.setNodeType(NodeTypeConstants.WARD); List deptList = departmentMapper.selectDepartmentList(department); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java index 6581a34d..2624aed7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java @@ -339,8 +339,8 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService patientVisitRecord.setHospitalAgencyId(agencyList.get(0).getId()); } } else { - patientVisitRecord.setHospitalAgencyId(SecurityUtils.getLoginUser().getUser().getAgencyId()); - Agency agencyData = agencyMapper.selectAgencyById(SecurityUtils.getLoginUser().getUser().getAgencyId()); + patientVisitRecord.setHospitalAgencyId(SecurityUtils.getLoginUser().getUser().getHospitalAgencyId()); + Agency agencyData = agencyMapper.selectAgencyById(SecurityUtils.getLoginUser().getUser().getHospitalAgencyId()); if (ObjectUtils.isNotEmpty(agencyData)) { patientVisitRecord.setHospitalAgencyName(agencyData.getAgencyName()); } @@ -358,7 +358,7 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService // 查询科室id Department department = new Department(); if (StringUtils.isNotBlank(item.getDepartmentName())) { - department.setAgencyName(item.getHospitalAgencyName()); + department.setHospitalAgencyName(item.getHospitalAgencyName()); department.setDepartmentName(item.getDepartmentName()); department.setNodeType(NodeTypeConstants.DEPARTMENT); List deptList = departmentMapper.selectDepartmentList(department); @@ -374,7 +374,7 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService } // 查询病区 if (StringUtils.isNotBlank(item.getWardName())) { - department.setAgencyName(item.getHospitalAgencyName()); + department.setHospitalAgencyName(item.getHospitalAgencyName()); department.setDepartmentName(item.getWardName()); department.setNodeType(NodeTypeConstants.WARD); List deptList = departmentMapper.selectDepartmentList(department); diff --git a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml index 4915ef33..69961f87 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml @@ -7,8 +7,8 @@ - - + + @@ -35,8 +35,8 @@ select id, parent_department_id, - agency_id, - agency_name, + hospital_agency_id, + hospital_agency_name, department_name, department_code, department_type, @@ -67,11 +67,11 @@ and parent_department_id =#{parentDepartmentId} - - and agency_id =#{agencyId} + + and hospital_agency_id =#{hospitalAgencyId} - - and agency_name like concat('%',#{agencyName},'%') + + and hospital_agency_name like concat('%',#{hospitalAgencyName},'%') and department_name like concat('%',#{departmentName},'%') @@ -136,8 +136,8 @@ select id, parent_department_id, - agency_id, - agency_name, + hospital_agency_id, + hospital_agency_name, department_name, department_code, department_type, @@ -311,9 +311,9 @@ parent_department_id, - agency_id, + hospital_agency_id, - agency_name, + hospital_agency_name, department_name, @@ -361,9 +361,9 @@ #{parentDepartmentId}, - #{agencyId}, + #{hospitalAgencyId}, - #{agencyName}, + #{hospitalAgencyName}, #{departmentName}, @@ -413,8 +413,8 @@ insert into department( parent_department_id, - agency_id, - agency_name, + hospital_agency_id, + hospital_agency_name, department_name, department_code, department_type, @@ -438,8 +438,8 @@ ( #{Department.parentDepartmentId}, - #{Department.agencyId}, - #{Department.agencyName}, + #{Department.hospitalAgencyId}, + #{Department.hospitalAgencyName}, #{Department.departmentName}, #{Department.departmentCode}, #{Department.departmentType}, @@ -469,11 +469,11 @@ parent_department_id = #{parentDepartmentId}, - agency_id = - #{agencyId}, + hospital_agency_id = + #{hospitalAgencyId}, - agency_name = - #{agencyName}, + hospital_agency_name = + #{hospitalAgencyName}, department_name = #{departmentName}, @@ -546,8 +546,8 @@ update department parent_department_id = #{parentDepartmentId}, - agency_id = #{agencyId}, - agency_name = #{agencyName}, + hospital_agency_id = #{hospitalAgencyId}, + hospital_agency_name = #{hospitalAgencyName}, department_name = #{departmentName}, department_code =#{departmentCode}, department_type =#{departmentType}, diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml index bd38a5d4..ccbf9da2 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientinfo/PatientInfoMapper.xml @@ -53,116 +53,118 @@ - select id,resident_id, - patient_name, - patient_phone, - family_member_phone, - birth_date, - card_no, - sex, - address, - patient_type, - sign_status,sign_patient_record_id,service_status, - sign_time, - visit_method, attending_physician_id, attending_physician_name, main_diagnosis, - hospital_agency_id, hospital_agency_name, campus_agency_id, campus_agency_name, department_id, department_name, ward_id, ward_name, - responsible_nurse, patient_visit_record_id, visit_serial_number, - admission_time, patient_pre_hospitalization_id, discharge_time, patient_pre_hospitalization_id, appointment_treatment_group, - registration_no, registration_date, appointment_date, in_hospital_number, visit_date, discharge_method, - patient_source, surgical_name, del_flag, create_by, create_time, update_by, update_time - from patient_info + select p.id,p.resident_id, + p.patient_name, + p.patient_phone, + p.family_member_phone, + p.birth_date, + p.card_no, + p.sex, + p.address, + p.patient_type, + p.sign_status,p.sign_patient_record_id,p.service_status, + p.sign_time, + p.visit_method, p.attending_physician_id, p.attending_physician_name, p.main_diagnosis, + p.hospital_agency_id, p.hospital_agency_name, p.campus_agency_id, p.campus_agency_name, p.department_id, p.department_name, p.ward_id, p.ward_name, + p.responsible_nurse, p.patient_visit_record_id, p.visit_serial_number, + p.admission_time, p.patient_pre_hospitalization_id, p.discharge_time, p.patient_pre_hospitalization_id, p.appointment_treatment_group, + p.registration_no, p.registration_date, p.appointment_date, p.in_hospital_number, p.visit_date, p.discharge_method, + p.patient_source, p.surgical_name, p.del_flag, p.create_by, p.create_time, p.update_by, p.update_time + from patient_info p diff --git a/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java b/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java index 910b4444..0fae272c 100644 --- a/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java +++ b/postdischarge-system/src/main/java/com/xinelu/system/service/impl/SysUserServiceImpl.java @@ -71,7 +71,7 @@ public class SysUserServiceImpl implements ISysUserService { * @return 用户信息集合信息 */ @Override - @DataScope(deptAlias = "d", userAlias = "u") + @DataScope(deptAlias = "d", userAlias = "u", anencyAlias = "u") public List selectUserList(SysUser user) { return userMapper.selectUserList(user); } @@ -508,7 +508,7 @@ public class SysUserServiceImpl implements ISysUserService { public TableDataInfo selectUserAgency(String userName, String agencyName) { SysUser sysUser = userMapper.selectUserByUserName(userName); pageServiceUtil.startPage(); - List agencyList = userMapper.selectAgencyList(agencyName, sysUser.getAgencyId()); + List agencyList = userMapper.selectAgencyList(agencyName, sysUser.getHospitalAgencyId()); if (CollectionUtils.isNotEmpty(agencyList)) { return pageServiceUtil.getDataTable(agencyList); } @@ -524,8 +524,8 @@ public class SysUserServiceImpl implements ISysUserService { @Override public List selectUserBelongAgency(String userName) { SysUser sysUser = userMapper.selectUserByUserName(userName); - if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getAgencyId())) { - return userMapper.selectBelongAgencyList(sysUser.getAgencyId()); + if (Objects.nonNull(sysUser) && Objects.nonNull(sysUser.getHospitalAgencyId())) { + return userMapper.selectBelongAgencyList(sysUser.getHospitalAgencyId()); } return new ArrayList(); } @@ -539,11 +539,11 @@ public class SysUserServiceImpl implements ISysUserService { @Override public TableDataInfo selectUserDepartment(String userName, String departmentName) { SysUser sysUser = userMapper.selectUserByUserName(userName); - if (Objects.isNull(sysUser) || Objects.isNull(sysUser.getAgencyId())) { + if (Objects.isNull(sysUser) || Objects.isNull(sysUser.getHospitalAgencyId())) { return pageServiceUtil.getDataTable(new ArrayList<>()); } pageServiceUtil.startPage(); - List agencyList = userMapper.selectDepartmentList(departmentName, sysUser.getDepartmentId(), sysUser.getAgencyId()); + List agencyList = userMapper.selectDepartmentList(departmentName, sysUser.getDepartmentId(), sysUser.getHospitalAgencyId()); if (CollectionUtils.isNotEmpty(agencyList)) { return pageServiceUtil.getDataTable(agencyList); } diff --git a/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml b/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml index c464c162..648af6f1 100644 --- a/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/postdischarge-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -25,7 +25,7 @@ - + @@ -70,7 +70,7 @@ u.remark, u.user_card_no, u.user_birth_date, - u.agency_id, + u.hospital_agency_id, u.department_id, u.post_name, d.dept_id, @@ -95,7 +95,7 @@ select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, - u.create_time,u.agency_id + u.create_time,u.hospital_agency_id from sys_user u left join sys_dept d on u.dept_id = d.dept_id left join sys_user_role ur on u.user_id = ur.user_id @@ -156,7 +156,7 @@ - select id agencyId, + select id hospitalAgencyId, agency_name, agency_code, (select COUNT(1) @@ -327,8 +327,8 @@ and agency_name = #{agencyName} or agency_code = #{agencyName} - - and id <> #{agencyId} + + and id <> #{hospitalAgencyId} ) as agencyNum from agency @@ -337,22 +337,22 @@ and agency_name = #{agencyName} or agency_code = #{agencyName} - - and id <> #{agencyId} + + and id <> #{hospitalAgencyId} @@ -371,8 +371,8 @@ and id <> #{departmentId} - - and agency_id = #{agencyId} + + and hospital_agency_id = #{hospitalAgencyId} ) as departmentNum from department @@ -384,8 +384,8 @@ and id <> #{departmentId} - - and agency_id = #{agencyId} + + and hospital_agency_id = #{hospitalAgencyId} From ba5dbf1302999abf4c4e986b6cbb9da5e4e2b994 Mon Sep 17 00:00:00 2001 From: haown <454902499@qq.com> Date: Mon, 29 Apr 2024 15:18:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=82=A3=E8=80=85?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E6=9F=A5=E8=AF=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xinelu/framework/aspectj/DataScopeAspect.java | 15 ++------------- .../dto/patientblacklist/PatientBlacklistDto.java | 3 ++- .../patientblacklist/PatientBlacklistMapper.java | 12 ++++++------ .../impl/PatientBlacklistServiceImpl.java | 2 ++ .../PatientPreHospitalizationServiceImpl.java | 2 ++ .../patientblacklist/PatientBlacklistMapper.xml | 2 ++ .../PatientPreHospitalizationMapper.xml | 2 ++ .../com/xinelu/system/domain/vo/AgencyNameVO.java | 2 +- .../com/xinelu/system/mapper/SysUserMapper.java | 12 ++++++------ 9 files changed, 25 insertions(+), 27 deletions(-) diff --git a/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java b/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java index 577004d2..c8a9dd9c 100644 --- a/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java +++ b/postdischarge-framework/src/main/java/com/xinelu/framework/aspectj/DataScopeAspect.java @@ -91,23 +91,12 @@ public class DataScopeAspect { break; } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { // 自定数据权限 sqlString.append(StringUtils.format( - " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, + " OR {}.department_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId())); } else if(DATA_SCOPE_AGENCY.equals(dataScope)){ // 机构数据权限 sqlString.append(StringUtils.format(" OR {}.hospital_agency_id = {} ", anencyAlias, user.getHospitalAgencyId())); } else if (DATA_SCOPE_DEPT.equals(dataScope)) { // 部门数据权限 - sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); - } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { // 部门及以下数据权限 - sqlString.append(StringUtils.format( - " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", - deptAlias, user.getDeptId(), user.getDeptId())); - } else if (DATA_SCOPE_SELF.equals(dataScope)) { // 仅本人数据权限 - if (StringUtils.isNotBlank(userAlias)) { - sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); - } else { - // 数据权限为仅本人且没有userAlias别名不查询任何数据 - sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); - } + sqlString.append(StringUtils.format(" OR {}.department_id = {} ", deptAlias, user.getDepartmentId())); } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientblacklist/PatientBlacklistDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientblacklist/PatientBlacklistDto.java index 91e253a4..d3b5240b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientblacklist/PatientBlacklistDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientblacklist/PatientBlacklistDto.java @@ -1,5 +1,6 @@ package com.xinelu.manage.dto.patientblacklist; +import com.xinelu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,7 +10,7 @@ import lombok.Data; * @create: 2024-02-28 13:15 **/ @Data -public class PatientBlacklistDto { +public class PatientBlacklistDto extends BaseEntity { /** 患者id */ private Long patientId; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientblacklist/PatientBlacklistMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientblacklist/PatientBlacklistMapper.java index f477b709..1562278d 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientblacklist/PatientBlacklistMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientblacklist/PatientBlacklistMapper.java @@ -18,7 +18,7 @@ public interface PatientBlacklistMapper { * @param id 患者-黑明单关系主键 * @return 患者-黑明单关系 */ - public PatientBlacklistVo selectPatientBlacklistById(Long id); + PatientBlacklistVo selectPatientBlacklistById(Long id); /** * 查询患者-黑明单关系列表 @@ -26,7 +26,7 @@ public interface PatientBlacklistMapper { * @param patientBlacklist 患者-黑明单关系 * @return 患者-黑明单关系集合 */ - public List selectPatientBlacklistList(PatientBlacklistDto patientBlacklist); + List selectPatientBlacklistList(PatientBlacklistDto patientBlacklist); /** * 新增患者-黑明单关系 @@ -34,7 +34,7 @@ public interface PatientBlacklistMapper { * @param patientBlacklist 患者-黑明单关系 * @return 结果 */ - public int insertPatientBlacklist(PatientBlacklist patientBlacklist); + int insertPatientBlacklist(PatientBlacklist patientBlacklist); /** * 修改患者-黑明单关系 @@ -42,7 +42,7 @@ public interface PatientBlacklistMapper { * @param patientBlacklist 患者-黑明单关系 * @return 结果 */ - public int updatePatientBlacklist(PatientBlacklist patientBlacklist); + int updatePatientBlacklist(PatientBlacklist patientBlacklist); /** * 删除患者-黑明单关系 @@ -50,7 +50,7 @@ public interface PatientBlacklistMapper { * @param id 患者-黑明单关系主键 * @return 结果 */ - public int deletePatientBlacklistById(Long id); + int deletePatientBlacklistById(Long id); /** * 批量删除患者-黑明单关系 @@ -58,5 +58,5 @@ public interface PatientBlacklistMapper { * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deletePatientBlacklistByIds(Long[] ids); + int deletePatientBlacklistByIds(Long[] ids); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientblacklist/impl/PatientBlacklistServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientblacklist/impl/PatientBlacklistServiceImpl.java index 50c742e2..74230e2e 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientblacklist/impl/PatientBlacklistServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientblacklist/impl/PatientBlacklistServiceImpl.java @@ -1,5 +1,6 @@ package com.xinelu.manage.service.patientblacklist.impl; +import com.xinelu.common.annotation.DataScope; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.patientblacklist.PatientBlacklist; @@ -49,6 +50,7 @@ public class PatientBlacklistServiceImpl implements IPatientBlacklistService { * @return 患者-黑明单关系 */ @Override + @DataScope(anencyAlias = "b") public List selectPatientBlacklistList(PatientBlacklistDto patientBlacklist) { return patientBlacklistMapper.selectPatientBlacklistList(patientBlacklist); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java index 3dc1646b..3f43235f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java @@ -1,5 +1,6 @@ package com.xinelu.manage.service.patientprehospitalization.impl; +import com.xinelu.common.annotation.DataScope; import com.xinelu.common.constant.NodeTypeConstants; import com.xinelu.common.constant.PatientTypeConstants; import com.xinelu.common.core.domain.AjaxResult; @@ -110,6 +111,7 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital } @Override + @DataScope(anencyAlias = "p") public List selectList(PatientInfoDto patientInfo) { return preHospitalizationMapper.selectList(patientInfo); } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientblacklist/PatientBlacklistMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientblacklist/PatientBlacklistMapper.xml index a235dfb1..2b94d540 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientblacklist/PatientBlacklistMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientblacklist/PatientBlacklistMapper.xml @@ -62,6 +62,8 @@ and b.blacklist_source = #{blacklistSource} + + ${params.dataScope} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml index a5b8161c..2b3f3ba9 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml @@ -338,6 +338,8 @@ and p.registration_no = #{registrationNo} + + ${params.dataScope} order by p.appointment_date diff --git a/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java b/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java index a3caf658..b86339e4 100644 --- a/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java +++ b/postdischarge-system/src/main/java/com/xinelu/system/domain/vo/AgencyNameVO.java @@ -14,7 +14,7 @@ public class AgencyNameVO { /** * 主键id */ - private Long agencyId; + private Long hospitalAgencyId; /** * 机构名称 diff --git a/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java b/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java index 29ec63d6..ef174f75 100644 --- a/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java +++ b/postdischarge-system/src/main/java/com/xinelu/system/mapper/SysUserMapper.java @@ -146,28 +146,28 @@ public interface SysUserMapper { * 剩余机构信息 * * @param agencyName 机构搜索信息 - * @param agencyId 机构id + * @param hospitalAgencyId 机构id * @return AgencyNameVO */ - List selectAgencyList(@Param("agencyName") String agencyName, @Param("agencyId") Long agencyId); + List selectAgencyList(@Param("agencyName") String agencyName, @Param("hospitalAgencyId") Long hospitalAgencyId); /** * 机构查询 * - * @param agencyId 机构id + * @param hospitalAgencyId 机构id * @return */ - List selectBelongAgencyList(Long agencyId); + List selectBelongAgencyList(Long hospitalAgencyId); /** * 剩余科室信息 * * @param departmentName 科室搜索条件 * @param departmentId 科室id - * @param agencyId 机构id + * @param hospitalAgencyId 机构id * @return AgencyNameVO */ - List selectDepartmentList(@Param("departmentName") String departmentName, @Param("departmentId") Long departmentId, @Param("agencyId") Long agencyId); + List selectDepartmentList(@Param("departmentName") String departmentName, @Param("departmentId") Long departmentId, @Param("hospitalAgencyId") Long hospitalAgencyId); /** * 科室信息