入库模块数据权限隔离

This commit is contained in:
秦鸿展
2026-02-24 08:52:28 +08:00
parent c110ab5dcc
commit 135bd5d380
3 changed files with 41 additions and 6 deletions
@@ -68,10 +68,22 @@ public class StockInOrderApplicationService {
public List<StockInOrderPO> queryList(StockInOrderDO stockInOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
if (loginUser != null && loginUser.getUserPo() != null){
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
// 当前登录用户组织ID为2827时,查询所有组织的数据
if (userOrganizationId != null && userOrganizationId == 2827L) {
// 不设置organizationId,查询所有组织的数据
stockInOrderDO.setOrganizationId(null);
} else {
// 其他情况,只查询当前登录用户所属组织的数据
if (userOrganizationId != null) {
stockInOrderDO.setOrganizationId(userOrganizationId);
}
}
// 处理topOrganizationId逻辑
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockInOrderDO.setTopOrganizationId(topOrganizationId);
}
// 前端有传warehouseId则优先使用传参;未传时才使用"用户关联仓库"作为默认值
if (stockInOrderDO.getWarehouseId() == null) {
@@ -91,10 +91,22 @@ public class StockReceiptOrderApplicationService {
public List<StockReceiptOrderPO> queryList(StockReceiptOrderDO stockReceiptOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
if (loginUser != null && loginUser.getUserPo() != null){
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
// 当前登录用户组织ID为2827时,查询所有组织的数据
if (userOrganizationId != null && userOrganizationId == 2827L) {
// 不设置organizationId,查询所有组织的数据
stockReceiptOrderDO.setOrganizationId(null);
} else {
// 其他情况,只查询当前登录用户所属组织的数据
if (userOrganizationId != null) {
stockReceiptOrderDO.setOrganizationId(userOrganizationId);
}
}
// 处理topOrganizationId逻辑
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockReceiptOrderDO.setTopOrganizationId(topOrganizationId);
}
try {
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
@@ -97,10 +97,21 @@ public class StockShelfOrderApplicationService {
public List<StockShelfOrderPO> queryList(StockShelfOrderDO stockShelfOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
if (loginUser != null && loginUser.getUserPo() != null){
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
// 当前登录用户组织ID为2827时查询所有组织的数据
if (userOrganizationId != null && userOrganizationId == 2827L) {
// 不设置organizationId查询所有组织的数据
stockShelfOrderDO.setOrganizationId(null);
} else {
// 其他情况只查询当前登录用户所属组织的数据
if (userOrganizationId != null) {
stockShelfOrderDO.setOrganizationId(userOrganizationId);
}
}
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){
stockShelfOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
stockShelfOrderDO.setTopOrganizationId(topOrganizationId);
}
try {
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());