diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java index 1aa314ba7..e8b061636 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationMaterialInventory/service/ReservationMaterialInventoryApplicationService.java @@ -55,61 +55,19 @@ public class ReservationMaterialInventoryApplicationService { public List queryList(ReservationMaterialInventoryDO materialInventoryDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null && loginUser.getUserPo() != null){ + if (loginUser != null && loginUser.getUserPo() != null) { + Long loginTopOrgId = loginUser.getUserPo().getTopOrganizationId(); Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); - Long frontendOrganizationId = materialInventoryDO.getOrganizationId(); // 前端传递的 organizationId - - // 数据权限:根据 organizationId 来设置查询权限 - // 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己 - if (userOrganizationId != null && userOrganizationId == 2827L) { - // 南光组织(organizationId=2827):可以查询所有组织的数据 - // 如果前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤 - // 如果前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据 - if (frontendOrganizationId != null) { - // 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤 - materialInventoryDO.setOrganizationId(frontendOrganizationId); - materialInventoryDO.setTopOrganizationId(null); // 明确设置为 null,避免使用 topOrganizationId 条件 - } else { - // 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据 - materialInventoryDO.setOrganizationId(null); - materialInventoryDO.setTopOrganizationId(null); - } - } else { - // 其他组织:设置organizationId,只查询当前组织的数据 - // 如果前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 - if (frontendOrganizationId != null && userOrganizationId != null) { - // 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 - if (!frontendOrganizationId.equals(userOrganizationId)) { - // 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询 - materialInventoryDO.setOrganizationId(userOrganizationId); - } - // 如果前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值 - } else { - // 前端没有传递 organizationId,使用当前登录用户的组织ID - if (userOrganizationId != null) { - materialInventoryDO.setOrganizationId(userOrganizationId); - } - } - // 只有当 organizationId 为 null 时,才使用 topOrganizationId 作为查询条件 - // 如果 organizationId 不为 null,则优先使用 organizationId,不使用 topOrganizationId - if (materialInventoryDO.getOrganizationId() == null) { - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1) { - materialInventoryDO.setTopOrganizationId(topOrganizationId); - } - } else { - // 对于非2827组织,必须设置 topOrganizationId=2827 - materialInventoryDO.setTopOrganizationId(2827L); - } + boolean isTopOrgUser = userOrganizationId != null && userOrganizationId.equals(loginTopOrgId); + + // 出库预约-添加货物:按一级组织(租户)过滤;委托方(货主)叠加货主维度查自己的货 + materialInventoryDO.setOrganizationId(null); + if (loginTopOrgId != null && loginTopOrgId != 1) { + materialInventoryDO.setTopOrganizationId(loginTopOrgId); + } + if (!isTopOrgUser && materialInventoryDO.getShipperId() == null) { + materialInventoryDO.setShipperId(loginUser.getUserPo().getUserId()); } - // 前端有传warehouseId则优先使用传参;未传时才使用"用户关联仓库"作为默认值 -// if (materialInventoryDO.getWarehouseId() == null) { -// AssociationWarehouseCacheDO associationWarehouseCacheDO = -// SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); -// if (associationWarehouseCacheDO != null) { -// materialInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId()); -// } -// } } return materialInventoryDomainService.queryList(materialInventoryDO); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java index 4dc2f9a89..bca9f5c24 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java @@ -103,6 +103,9 @@ public class ReserveStockOutOrderApplicationService { */ public List queryList(ReserveStockOutOrderDO stockOutOrderDO) { + if (stockOutOrderDO.getShipperId() != null && stockOutOrderDO.getShipperId() != 0L) { + return stockOutOrderDomainService.queryList(stockOutOrderDO); + } LoginUser loginUser = SecurityUtils.getLoginUser(); if (loginUser != null && loginUser.getUserPo() != null) { @@ -221,6 +224,9 @@ public class ReserveStockOutOrderApplicationService { public List detailsList(ReserveStockOutOrderDO stockOutOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); + if (stockOutOrderDO.getShipperId() != null && stockOutOrderDO.getShipperId() != 0L) { + return stockOutOrderDomainService.detailsList(stockOutOrderDO); + } if (loginUser != null && loginUser.getUserPo() != null) { Long userOrganizationId = loginUser.getUserPo().getOrganizationId();