diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java index 16738fa25..816a002c6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/inOrderAbnormal/InOrderAbnormalApplicationService.java @@ -32,17 +32,31 @@ public class InOrderAbnormalApplicationService { public List queryList(InOrderAbnormalDO inOrderAbnormalDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - inOrderAbnormalDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + if (loginUser != null && loginUser.getUserPo() != null) { + AssociationWarehouseCacheDO cache = + SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); + if (inOrderAbnormalDO.getWarehouseId() == null && cache != null + && cache.getWarehouseId() != null) { + inOrderAbnormalDO.setWarehouseId(cache.getWarehouseId()); } - // 请求未带 warehouseId 时用用户关联仓库;带了则以请求为准(与出库异常一致) - if (inOrderAbnormalDO.getWarehouseId() == null) { - AssociationWarehouseCacheDO cache = - SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); - if (cache != null && cache.getWarehouseId() != null) { - inOrderAbnormalDO.setWarehouseId(cache.getWarehouseId()); + if (inOrderAbnormalDO.getTopOrganizationId() == null) { + Long top = loginUser.getUserPo().getTopOrganizationId(); + if (top == null || Long.valueOf(1L).equals(top)) { + if (cache != null) { + top = cache.getTopOrganizationId(); + } + } + if (top != null && !Long.valueOf(1L).equals(top)) { + inOrderAbnormalDO.setTopOrganizationId(top); + } + } + if (inOrderAbnormalDO.getOrganizationId() == null) { + Long orgId = loginUser.getUserPo().getOrganizationId(); + if (orgId == null && cache != null) { + orgId = cache.getOrganizationId(); + } + if (orgId != null) { + inOrderAbnormalDO.setOrganizationId(orgId); } } } diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java index 0fb1aa5e6..708f1d052 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/outOrderAbnormal/OutOrderAbnormalApplicationService.java @@ -32,17 +32,32 @@ public class OutOrderAbnormalApplicationService { public List queryList(OutOrderAbnormalDO outOrderAbnormalDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null){ - Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); - if (topOrganizationId != null && topOrganizationId != 1){ - outOrderAbnormalDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + if (loginUser != null && loginUser.getUserPo() != null) { + // 请求带仓库时也会读关联缓存,用于补全「会话里为空的组织」(UserPo 常见无 organizationId) + AssociationWarehouseCacheDO cache = + SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); + if (outOrderAbnormalDO.getWarehouseId() == null && cache != null + && cache.getWarehouseId() != null) { + outOrderAbnormalDO.setWarehouseId(cache.getWarehouseId()); } - // 请求未带 warehouseId 时用用户关联仓库;带了则以请求为准(与入库异常一致) - if (outOrderAbnormalDO.getWarehouseId() == null) { - AssociationWarehouseCacheDO cache = - SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); - if (cache != null && cache.getWarehouseId() != null) { - outOrderAbnormalDO.setWarehouseId(cache.getWarehouseId()); + if (outOrderAbnormalDO.getTopOrganizationId() == null) { + Long top = loginUser.getUserPo().getTopOrganizationId(); + if (top == null || Long.valueOf(1L).equals(top)) { + if (cache != null) { + top = cache.getTopOrganizationId(); + } + } + if (top != null && !Long.valueOf(1L).equals(top)) { + outOrderAbnormalDO.setTopOrganizationId(top); + } + } + if (outOrderAbnormalDO.getOrganizationId() == null) { + Long orgId = loginUser.getUserPo().getOrganizationId(); + if (orgId == null && cache != null) { + orgId = cache.getOrganizationId(); + } + if (orgId != null) { + outOrderAbnormalDO.setOrganizationId(orgId); } } } diff --git a/mhd_wms/src/main/resources/mapper/copyCodeReference/CopyCodeReferenceMapper.xml b/mhd_wms/src/main/resources/mapper/copyCodeReference/CopyCodeReferenceMapper.xml index 1cc5b163b..6bf467ab9 100644 --- a/mhd_wms/src/main/resources/mapper/copyCodeReference/CopyCodeReferenceMapper.xml +++ b/mhd_wms/src/main/resources/mapper/copyCodeReference/CopyCodeReferenceMapper.xml @@ -84,6 +84,12 @@ del_flag FROM copy_code_reference WHERE del_flag = 1 + + AND top_organization_id = #{topOrganizationId} + + + AND organization_id = #{organizationId} + AND warehouse_id = #{warehouseId}