入库模块数据权限隔离

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) { public List<StockInOrderPO> queryList(StockInOrderDO stockInOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser(); 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(); Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){ if (topOrganizationId != null && topOrganizationId != 1){
stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); stockInOrderDO.setTopOrganizationId(topOrganizationId);
} }
// 前端有传warehouseId则优先使用传参;未传时才使用"用户关联仓库"作为默认值 // 前端有传warehouseId则优先使用传参;未传时才使用"用户关联仓库"作为默认值
if (stockInOrderDO.getWarehouseId() == null) { if (stockInOrderDO.getWarehouseId() == null) {
@@ -91,10 +91,22 @@ public class StockReceiptOrderApplicationService {
public List<StockReceiptOrderPO> queryList(StockReceiptOrderDO stockReceiptOrderDO) { public List<StockReceiptOrderPO> queryList(StockReceiptOrderDO stockReceiptOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser(); 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(); Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){ if (topOrganizationId != null && topOrganizationId != 1){
stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); stockReceiptOrderDO.setTopOrganizationId(topOrganizationId);
} }
try { try {
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
@@ -97,10 +97,21 @@ public class StockShelfOrderApplicationService {
public List<StockShelfOrderPO> queryList(StockShelfOrderDO stockShelfOrderDO) { public List<StockShelfOrderPO> queryList(StockShelfOrderDO stockShelfOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser(); 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(); Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
if (topOrganizationId != null && topOrganizationId != 1){ if (topOrganizationId != null && topOrganizationId != 1){
stockShelfOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); stockShelfOrderDO.setTopOrganizationId(topOrganizationId);
} }
try { try {
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());