From 416ac1367a1c2b6ed533f6986713ed2111595c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Wed, 25 Feb 2026 14:00:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?BMS=E5=BA=94=E4=BB=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E9=9A=94?= =?UTF-8?q?=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PaymentOrderApplicationService.java | 46 +++++++++++++++++-- .../resources/mapper/PaymentOrderMapper.xml | 3 ++ 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java index 67a33870e..39c11c87e 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java @@ -40,10 +40,48 @@ public class PaymentOrderApplicationService { public List queryList(PaymentOrderDO paymentOrderDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - paymentOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + Long frontendOrganizationId = paymentOrderDO.getOrganizationId(); // 前端传递的 organizationId + + // 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己 + if (userOrganizationId != null && userOrganizationId == 2827L) { + // 南光组织(organizationId=2827):可以查询所有组织的数据 + if (frontendOrganizationId != null) { + // 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤 + paymentOrderDO.setOrganizationId(frontendOrganizationId); + paymentOrderDO.setTopOrganizationId(null); // 明确设置为 null,避免使用 topOrganizationId 条件 + } else { + // 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据 + paymentOrderDO.setOrganizationId(null); + paymentOrderDO.setTopOrganizationId(null); + } + } else { + // 其他组织:设置organizationId,只查询当前组织的数据 + // 如果前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 + if (frontendOrganizationId != null && userOrganizationId != null) { + // 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 + if (!frontendOrganizationId.equals(userOrganizationId)) { + // 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询 + paymentOrderDO.setOrganizationId(userOrganizationId); + } + // 如果前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值 + } else { + // 前端没有传递 organizationId,使用当前登录用户的组织ID + if (userOrganizationId != null) { + paymentOrderDO.setOrganizationId(userOrganizationId); + } + } + // 如果 organizationId 不为 null,则优先使用 organizationId,不使用 topOrganizationId + if (paymentOrderDO.getOrganizationId() == null) { + Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); + if (topOrganizationId != null && topOrganizationId != 1) { + paymentOrderDO.setTopOrganizationId(topOrganizationId); + } + } else { + // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId + paymentOrderDO.setTopOrganizationId(null); + } } } return paymentOrderDomainService.queryList(paymentOrderDO); diff --git a/mhd_bms/src/main/resources/mapper/PaymentOrderMapper.xml b/mhd_bms/src/main/resources/mapper/PaymentOrderMapper.xml index a920c88b1..d5ac52816 100644 --- a/mhd_bms/src/main/resources/mapper/PaymentOrderMapper.xml +++ b/mhd_bms/src/main/resources/mapper/PaymentOrderMapper.xml @@ -34,6 +34,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + AND a.organization_id = #{paymentOrderDO.organizationId} + AND a.top_organization_id = #{paymentOrderDO.topOrganizationId} From 8443d739d1ff700514941cdcd426849418849491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Wed, 25 Feb 2026 14:25:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?= =?UTF-8?q?=E9=9A=94=E7=A6=BB=E4=BF=AE=E6=94=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Lease/LeaseApplicationService.java | 8 ++-- .../batch/BatchApplicationService.java | 4 +- .../brand/BrandApplicationService.java | 4 +- .../ContractManageApplicationService.java | 38 +++++++++++++++++-- .../MaterialBaseInfoApplicationService.java | 4 +- .../service/pack/PackApplicationService.java | 4 +- ...ShipperLeaseDetailsApplicationService.java | 21 ++++++---- .../StorageLocationApplicationService.java | 4 +- ...torageLocationGroupApplicationService.java | 4 +- .../StorageSectionApplicationService.java | 4 +- .../WarehouseApplicationService.java | 4 +- .../mapper/basic/ContractManageMapper.xml | 6 +++ .../BillManageApplicationService.java | 4 +- .../BillingStatementApplicationService.java | 8 ++-- .../BusinessDocumentApplicationService.java | 4 +- .../PaymentOrderApplicationService.java | 4 +- .../ReceiptManageApplicationService.java | 4 +- ...SettlementCustomersApplicationService.java | 38 +++++++++++++++++-- .../mapper/SettlementCustomersMapper.xml | 3 ++ .../DifferentManageApplicationService.java | 4 +- .../HandoverTaskOrderApplicationService.java | 4 +- ...oryAdjustmentRecordApplicationService.java | 4 +- ...InvestigationManageApplicationService.java | 4 +- .../MaterialBaseInfoApplicationService.java | 4 +- .../MaterialInventoryApplicationService.java | 4 +- .../PickingOrderApplicationService.java | 4 +- .../ShiftManageApplicationService.java | 4 +- .../StatementStatisticsService.java | 4 +- .../StockInOrderApplicationService.java | 4 +- .../StockOutOrderApplicationService.java | 4 +- .../StockOutTaskOrderApplicationService.java | 4 +- .../StockReceiptOrderApplicationService.java | 4 +- .../StockShelfOrderApplicationService.java | 4 +- 33 files changed, 151 insertions(+), 75 deletions(-) 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 f8c6462bd..7efc00a27 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 @@ -120,8 +120,8 @@ public class LeaseApplicationService { leaseDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - leaseDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + leaseDO.setTopOrganizationId(2827L); } } } @@ -352,8 +352,8 @@ public class LeaseApplicationService { shipperLeaseDetailsDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - shipperLeaseDetailsDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + shipperLeaseDetailsDO.setTopOrganizationId(2827L); } } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batch/BatchApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batch/BatchApplicationService.java index c77a3a42f..b93baaf91 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batch/BatchApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batch/BatchApplicationService.java @@ -82,8 +82,8 @@ public class BatchApplicationService { batchDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - batchDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + batchDO.setTopOrganizationId(2827L); } } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/brand/BrandApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/brand/BrandApplicationService.java index 4a9fa1554..f57eb8262 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/brand/BrandApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/brand/BrandApplicationService.java @@ -80,8 +80,8 @@ public class BrandApplicationService { brandDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - brandDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + brandDO.setTopOrganizationId(2827L); } } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 70cc791fe..37ec7c423 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -72,10 +72,40 @@ public class ContractManageApplicationService { public List queryList(ContractManageDO contractManageDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - contractManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + Long frontendOrganizationId = contractManageDO.getOrganizationId(); // 前端传递的 organizationId + + // 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己且 topOrganizationId=2827 + if (userOrganizationId != null && userOrganizationId == 2827L) { + // 南光组织(organizationId=2827):可以查询所有组织的数据 + if (frontendOrganizationId != null) { + // 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤 + contractManageDO.setOrganizationId(frontendOrganizationId); + contractManageDO.setTopOrganizationId(null); // 明确设置为 null,避免使用 topOrganizationId 条件 + } else { + // 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据 + contractManageDO.setOrganizationId(null); + contractManageDO.setTopOrganizationId(null); + } + } else { + // 其他组织:设置organizationId为当前组织ID,并且设置topOrganizationId=2827 + // 如果前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 + if (frontendOrganizationId != null && userOrganizationId != null) { + // 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 + if (!frontendOrganizationId.equals(userOrganizationId)) { + // 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询 + contractManageDO.setOrganizationId(userOrganizationId); + } + // 如果前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值 + } else { + // 前端没有传递 organizationId,使用当前登录用户的组织ID + if (userOrganizationId != null) { + contractManageDO.setOrganizationId(userOrganizationId); + } + } + // 对于非2827组织,必须设置 topOrganizationId=2827 + contractManageDO.setTopOrganizationId(2827L); } } return contractManageDomainService.queryList(contractManageDO); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index 7fa3c5b55..ae9cd97a9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -86,8 +86,8 @@ public class MaterialBaseInfoApplicationService { materialBaseInfoDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - materialBaseInfoDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + materialBaseInfoDO.setTopOrganizationId(2827L); } } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/pack/PackApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/pack/PackApplicationService.java index 4cfbfbe5a..a24339ce3 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/pack/PackApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/pack/PackApplicationService.java @@ -81,8 +81,8 @@ public class PackApplicationService { packDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - packDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + packDO.setTopOrganizationId(2827L); } } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/shipperLeaseDetails/ShipperLeaseDetailsApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/shipperLeaseDetails/ShipperLeaseDetailsApplicationService.java index 2cfbe02e1..a7557a4df 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/shipperLeaseDetails/ShipperLeaseDetailsApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/shipperLeaseDetails/ShipperLeaseDetailsApplicationService.java @@ -76,15 +76,22 @@ public class ShipperLeaseDetailsApplicationService { shipperLeaseDetailsDO.setTopOrganizationId(null); } } else { - // 其他组织:设置organizationId,只查询当前组织的数据 - if (topOrganizationId != null && topOrganizationId != 1){ - shipperLeaseDetailsDO.setTopOrganizationId(topOrganizationId); - } + // 其他组织:设置organizationId为当前组织ID,并且设置topOrganizationId=2827 // 如果前端传递了organizationId,验证是否与当前登录用户的组织ID一致 - if (shipperLeaseDetailsDO.getOrganizationId() != null && !shipperLeaseDetailsDO.getOrganizationId().equals(loginUserOrganizationId)) { - // 前端传递了其他组织的organizationId,强制使用当前登录用户的组织ID,防止越权查询 - shipperLeaseDetailsDO.setOrganizationId(loginUserOrganizationId); + Long frontendOrganizationId = shipperLeaseDetailsDO.getOrganizationId(); + if (frontendOrganizationId != null && loginUserOrganizationId != null) { + if (!frontendOrganizationId.equals(loginUserOrganizationId)) { + // 前端传递了其他组织的organizationId,强制使用当前登录用户的组织ID,防止越权查询 + shipperLeaseDetailsDO.setOrganizationId(loginUserOrganizationId); + } + } else { + // 前端没有传递 organizationId,使用当前登录用户的组织ID + if (loginUserOrganizationId != null) { + shipperLeaseDetailsDO.setOrganizationId(loginUserOrganizationId); + } } + // 对于非2827组织,必须设置 topOrganizationId=2827 + shipperLeaseDetailsDO.setTopOrganizationId(2827L); } } return shipperLeaseDetailsDomainService.queryList(shipperLeaseDetailsDO); 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 5ac9c4652..566c37e41 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 @@ -87,8 +87,8 @@ public class StorageLocationApplicationService { storageLocationDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - storageLocationDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + storageLocationDO.setTopOrganizationId(2827L); } } 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 ae86e3e37..5005914c9 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 @@ -71,8 +71,8 @@ public class StorageLocationGroupApplicationService { storageLocationGroupDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - storageLocationGroupDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + storageLocationGroupDO.setTopOrganizationId(2827L); } } } 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 30b5d8d76..0a17bb062 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 @@ -86,8 +86,8 @@ public class StorageSectionApplicationService { storageSectionDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - storageSectionDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + storageSectionDO.setTopOrganizationId(2827L); } } } 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 02634b427..4871df6ed 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 @@ -85,8 +85,8 @@ public class WarehouseApplicationService { warehouseDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - warehouseDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + warehouseDO.setTopOrganizationId(2827L); } } } diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml index 088bdab17..1f120b45c 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageMapper.xml @@ -187,6 +187,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND date_format(effective_date,'%Y-%m-%d') #{contractManageDO.nowDateString} ) + + and organization_id = #{contractManageDO.organizationId} + + + and top_organization_id = #{contractManageDO.topOrganizationId} + diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java index d714b7f33..a141ccd3d 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java @@ -116,8 +116,8 @@ public class BillManageApplicationService { billManageDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - billManageDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + billManageDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billingStatement/BillingStatementApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billingStatement/BillingStatementApplicationService.java index ea75f98aa..0d657b297 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billingStatement/BillingStatementApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billingStatement/BillingStatementApplicationService.java @@ -110,8 +110,8 @@ public class BillingStatementApplicationService { billingStatementDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - billingStatementDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + billingStatementDO.setTopOrganizationId(2827L); } } } @@ -162,8 +162,8 @@ public class BillingStatementApplicationService { billingStatementCollectDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - billingStatementCollectDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + billingStatementCollectDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java index dde8c0caf..d463bf061 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java @@ -123,8 +123,8 @@ public class BusinessDocumentApplicationService { businessDocumentDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - businessDocumentDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + businessDocumentDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java index 39c11c87e..20e2e1724 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/paymentOrder/PaymentOrderApplicationService.java @@ -79,8 +79,8 @@ public class PaymentOrderApplicationService { paymentOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - paymentOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + paymentOrderDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java index 9ff2f29e5..550eec895 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java @@ -86,8 +86,8 @@ public class ReceiptManageApplicationService { receiptManageDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - receiptManageDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + receiptManageDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java index b609dae66..be94d89b1 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java @@ -72,10 +72,40 @@ public class SettlementCustomersApplicationService { private void setTopOrganizationIdLogin(SettlementCustomersDO settlementCustomersDO){ LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - settlementCustomersDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + if (loginUser != null && loginUser.getUserPo() != null) { + Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); + Long frontendOrganizationId = settlementCustomersDO.getOrganizationId(); // 前端传递的 organizationId + + // 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己且 topOrganizationId=2827 + if (userOrganizationId != null && userOrganizationId == 2827L) { + // 南光组织(organizationId=2827):可以查询所有组织的数据 + if (frontendOrganizationId != null) { + // 前端传递了 organizationId(包括2827或其他组织),使用前端传递的值进行过滤 + settlementCustomersDO.setOrganizationId(frontendOrganizationId); + settlementCustomersDO.setTopOrganizationId(null); // 明确设置为 null,避免使用 topOrganizationId 条件 + } else { + // 前端没有传递 organizationId,清空组织过滤条件,查询所有组织的数据 + settlementCustomersDO.setOrganizationId(null); + settlementCustomersDO.setTopOrganizationId(null); + } + } else { + // 其他组织:设置organizationId为当前组织ID,并且设置topOrganizationId=2827 + // 如果前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 + if (frontendOrganizationId != null && userOrganizationId != null) { + // 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致 + if (!frontendOrganizationId.equals(userOrganizationId)) { + // 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询 + settlementCustomersDO.setOrganizationId(userOrganizationId); + } + // 如果前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值 + } else { + // 前端没有传递 organizationId,使用当前登录用户的组织ID + if (userOrganizationId != null) { + settlementCustomersDO.setOrganizationId(userOrganizationId); + } + } + // 对于非2827组织,必须设置 topOrganizationId=2827 + settlementCustomersDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml b/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml index 713704b1c..7e7b0d4e7 100644 --- a/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml +++ b/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml @@ -101,6 +101,9 @@ and main_role = #{settlementCustomersDO.mainRole} + + and organization_id = #{settlementCustomersDO.organizationId} + and top_organization_id = #{settlementCustomersDO.topOrganizationId} diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java index 4c770eb10..71e843227 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/differentManage/DifferentManageApplicationService.java @@ -75,8 +75,8 @@ public class DifferentManageApplicationService { differentManageDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - differentManageDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + differentManageDO.setTopOrganizationId(2827L); } } AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java index b8153c140..7e6e039c0 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java @@ -106,8 +106,8 @@ public class HandoverTaskOrderApplicationService { handoverTaskOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - handoverTaskOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + handoverTaskOrderDO.setTopOrganizationId(2827L); } } AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java index bcdd97300..22c5e98b6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inventoryAdjustmentRecord/InventoryAdjustmentRecordApplicationService.java @@ -93,8 +93,8 @@ public class InventoryAdjustmentRecordApplicationService { inventoryAdjustmentRecordDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - inventoryAdjustmentRecordDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + inventoryAdjustmentRecordDO.setTopOrganizationId(2827L); } } AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java index 71e4023f6..a6da8e5bd 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/investigationManage/InvestigationManageApplicationService.java @@ -107,8 +107,8 @@ public class InvestigationManageApplicationService { investigationManageDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - investigationManageDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + investigationManageDO.setTopOrganizationId(2827L); } } AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index bc2a08264..6141690ac 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -102,8 +102,8 @@ public class MaterialBaseInfoApplicationService { materialBaseInfoDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - materialBaseInfoDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + materialBaseInfoDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java index 048e57de0..f5704c71e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialInventory/MaterialInventoryApplicationService.java @@ -94,8 +94,8 @@ public class MaterialInventoryApplicationService { materialInventoryDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - materialInventoryDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + materialInventoryDO.setTopOrganizationId(2827L); } } // 前端有传warehouseId则优先使用传参;未传时才使用"用户关联仓库"作为默认值 diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index 13cb8b6d3..eec9a2bd5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -104,8 +104,8 @@ public class PickingOrderApplicationService { pickingOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - pickingOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + pickingOrderDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java index 0501c0a07..e0be362c0 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/shiftManage/ShiftManageApplicationService.java @@ -110,8 +110,8 @@ public class ShiftManageApplicationService { shiftManageDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - shiftManageDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + shiftManageDO.setTopOrganizationId(2827L); } } AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java index c052f836a..367e97829 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/statementStatistics/StatementStatisticsService.java @@ -96,8 +96,8 @@ public class StatementStatisticsService { immediateInventoryDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - immediateInventoryDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + immediateInventoryDO.setTopOrganizationId(2827L); } } // 只有在用户没有明确指定仓库参数时,才使用缓存中的仓库信息 diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java index 7e823acfe..fe3e52b96 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java @@ -111,8 +111,8 @@ public class StockInOrderApplicationService { stockInOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - stockInOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + stockInOrderDO.setTopOrganizationId(2827L); } } // 前端有传warehouseId则优先使用传参;未传时才使用"用户关联仓库"作为默认值 diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index 55b5f0316..7144d5d33 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -138,8 +138,8 @@ public class StockOutOrderApplicationService { stockOutOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - stockOutOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + stockOutOrderDO.setTopOrganizationId(2827L); } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java index 89cb55390..e3945cb7d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java @@ -89,8 +89,8 @@ public class StockOutTaskOrderApplicationService { stockOutTaskOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - stockOutTaskOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + stockOutTaskOrderDO.setTopOrganizationId(2827L); } } AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index f64287c34..eb10158c2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -134,8 +134,8 @@ public class StockReceiptOrderApplicationService { stockReceiptOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - stockReceiptOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + stockReceiptOrderDO.setTopOrganizationId(2827L); } } try { diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java index ad2ba418f..0e40e23d6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java @@ -140,8 +140,8 @@ public class StockShelfOrderApplicationService { stockShelfOrderDO.setTopOrganizationId(topOrganizationId); } } else { - // 如果 organizationId 不为 null,清空 topOrganizationId,确保查询使用 organizationId - stockShelfOrderDO.setTopOrganizationId(null); + // 对于非2827组织,必须设置 topOrganizationId=2827 + stockShelfOrderDO.setTopOrganizationId(2827L); } } try {