diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/Lease/LeaseApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/Lease/LeaseApplicationService.java index f64ace339..0f4938221 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/Lease/LeaseApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/Lease/LeaseApplicationService.java @@ -76,29 +76,17 @@ public class LeaseApplicationService { public List queryList(LeaseDO leaseDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null && loginUser.getUserPo() != null){ - Long loginUserOrganizationId = loginUser.getUserPo().getOrganizationId(); - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - - // 数据权限:根据organizationId来设置查询权限 - // organizationId等于2827时查询全部,其他仅查询各自组织的信息 - if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L)) { - // 南光组织(organizationId=2827):可以查询所有组织的数据 - // 如果前端传递了 organizationId,使用前端传递的值进行过滤 - // 如果前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据 - if (leaseDO.getOrganizationId() == null) { - leaseDO.setOrganizationId(null); - leaseDO.setTopOrganizationId(null); - } - } else { - // 其他组织:设置organizationId,只查询当前组织的数据 - if (topOrganizationId != null && topOrganizationId != 1){ - leaseDO.setTopOrganizationId(topOrganizationId); - } - // 如果前端传递了organizationId,验证是否与当前登录用户的组织ID一致 - if (leaseDO.getOrganizationId() != null && !leaseDO.getOrganizationId().equals(loginUserOrganizationId)) { - // 前端传递了其他组织的organizationId,强制使用当前登录用户的组织ID,防止越权查询 - leaseDO.setOrganizationId(loginUserOrganizationId); + //前端传organizationId = 2827的时候查询所有组织的数据 + Long frontendOrganizationId = leaseDO.getOrganizationId(); + if (frontendOrganizationId != null && frontendOrganizationId == 2827L) { + // 前端传递2827时,查询所有组织的数据,将organizationId设置为null + leaseDO.setOrganizationId(null); + } else { + // 其他情况,只查询当前登录用户所属组织的数据 + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + if (userOrganizationId != null) { + leaseDO.setOrganizationId(userOrganizationId); } } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java index 2d69d28eb..d1b436aab 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java @@ -45,9 +45,19 @@ public class StorageLocationApplicationService { public List queryList(StorageLocationDO storageLocationDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - storageLocationDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + //前端传organizationId = 2827的时候查询所有组织的数据 + Long frontendOrganizationId = storageLocationDO.getOrganizationId(); + if (frontendOrganizationId != null && frontendOrganizationId == 2827L) { + // 前端传递2827时,查询所有组织的数据,将organizationId设置为null + storageLocationDO.setOrganizationId(null); + } else { + // 其他情况,只查询当前登录用户所属组织的数据 + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + if (userOrganizationId != null) { + storageLocationDO.setOrganizationId(userOrganizationId); + } + } } // 只有当前端没有明确传仓库条件时,才使用用户关联仓库缓存进行过滤; // 避免出现“单据仓库=常温仓,但库位列表仍显示保税仓”的错配问题。 diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocationGroup/StorageLocationGroupApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocationGroup/StorageLocationGroupApplicationService.java index 68e902720..4fa0fc453 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocationGroup/StorageLocationGroupApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocationGroup/StorageLocationGroupApplicationService.java @@ -28,14 +28,25 @@ public class StorageLocationGroupApplicationService { public List queryList(StorageLocationGroupDO storageLocationGroupDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - storageLocationGroupDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + //前端传organizationId = 2827的时候查询所有组织的数据 + Long frontendOrganizationId = storageLocationGroupDO.getOrganizationId(); + if (frontendOrganizationId != null && frontendOrganizationId == 2827L) { + // 前端传递2827时,查询所有组织的数据,将organizationId设置为null + storageLocationGroupDO.setOrganizationId(null); + } else { + // 其他情况,只查询当前登录用户所属组织的数据 + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + if (userOrganizationId != null) { + storageLocationGroupDO.setOrganizationId(userOrganizationId); + } } - Long organizationId = loginUser.getUserPo().getOrganizationId(); - if (organizationId != null && organizationId != 1){ - storageLocationGroupDO.setOrganizationId(organizationId); + } + // 处理topOrganizationId逻辑 + if (loginUser != null && loginUser.getUserPo() != null) { + Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); + if (topOrganizationId != null && topOrganizationId != 1) { + storageLocationGroupDO.setTopOrganizationId(topOrganizationId); } } return storageLocationGroupDomainService.queryList(storageLocationGroupDO); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java index 4df1b92dc..28f4f5d49 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java @@ -43,10 +43,18 @@ public class StorageSectionApplicationService { public List queryList(StorageSectionDO storageSectionDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - storageSectionDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + //前端传organizationId = 2827的时候查询所有组织的数据 + Long frontendOrganizationId = storageSectionDO.getOrganizationId(); + if (frontendOrganizationId != null && frontendOrganizationId == 2827L) { + // 前端传递2827时,查询所有组织的数据,将organizationId设置为null + storageSectionDO.setOrganizationId(null); + } else { + // 其他情况,只查询当前登录用户所属组织的数据 + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + if (userOrganizationId != null) { + storageSectionDO.setOrganizationId(userOrganizationId); + } } } return storageSectionDomainService.queryList(storageSectionDO); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java index 7765d64bb..313f91bd9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/warehouse/WarehouseApplicationService.java @@ -42,10 +42,18 @@ public class WarehouseApplicationService { public List queryList(WarehouseDO warehouseDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long organizationId = loginUser.getUserPo().getOrganizationId(); - if (organizationId != null && organizationId != 1){ - warehouseDO.setOrganizationId(loginUser.getUserPo().getOrganizationId()); + //前端传organizationId = 2827的时候查询所有组织的数据 + Long frontendOrganizationId = warehouseDO.getOrganizationId(); + if (frontendOrganizationId != null && frontendOrganizationId == 2827L) { + // 前端传递2827时,查询所有组织的数据,将organizationId设置为null + warehouseDO.setOrganizationId(null); + } else { + // 其他情况,只查询当前登录用户所属组织的数据 + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + if (userOrganizationId != null) { + warehouseDO.setOrganizationId(userOrganizationId); + } } } return warehouseDomainService.queryList(warehouseDO);