From af146eed6ef13dece7895a242cc98776aed35daf Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Thu, 12 Feb 2026 17:36:06 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=B0=83=E6=95=B4=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E7=9A=84listNoPermission=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DemandServiceImpl.java | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java index 4eef226b..117d0882 100644 --- a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java @@ -1807,11 +1807,17 @@ public class DemandServiceImpl extends BaseService implements IDemandService { @Override public SdmResponse listNoPermission(SpdmDemandListReq req) { Long tenantId = ThreadLocalContext.getTenantId(); + String jobNumber = removeLeadingZeros(ThreadLocalContext.getJobNumber()); + Long currentUserId = ThreadLocalContext.getUserId(); + if (ObjectUtils.isEmpty(tenantId) || ObjectUtils.isEmpty(jobNumber)) { + log.error("公司和工号都不能为空"); + return SdmResponse.failed("公司和工号都不能为空"); + } JSONObject jsonObject = new JSONObject(); jsonObject.put("data", new ArrayList<>()); - List demandList = mapper.getDemandListNoPermission(tenantId,req); + List demandList = mapper.getDemandList(tenantId, req); if (CollectionUtils.isEmpty(demandList)) { - log.error("未查询到需求"); + log.error("根据tenantId:{},未查询到需求", tenantId); return SdmResponse.success(jsonObject); } // 0:我发起的 1:我确认的 @@ -1821,6 +1827,27 @@ public class DemandServiceImpl extends BaseService implements IDemandService { return SdmResponse.success(jsonObject); } List demandMemberVoList = mapper.getMemberList(demandList.stream().map(SpdmDemandVo::getUuid).toList(), null); + if (CollectionUtils.isEmpty(demandMemberVoList)) { + log.error("demandList0为空"); + return SdmResponse.success(jsonObject); + } + if (type == 0) { + // 创建人是当前用户 + demandList = demandList.stream().filter(demand -> jobNumber.equals(String.valueOf(demand.getCreator())) || currentUserId.equals(demand.getCreator())).toList(); + } else { + // 仿真负责人是当前用户 + List pDemandMemberVoList = demandMemberVoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType()) && currentUserId.equals(member.getUserId())).toList(); + if (CollectionUtils.isNotEmpty(pDemandMemberVoList)) { + List myDemandIdList = pDemandMemberVoList.stream().map(SpdmDemandMemberVo::getDemandId).toList(); + demandList = demandList.stream().filter(demand -> myDemandIdList.contains(demand.getUuid())).toList(); + }else { + return SdmResponse.success(jsonObject); + } + } + if (CollectionUtils.isEmpty(demandList)) { + log.error("demandList1为空"); + return SdmResponse.success(jsonObject); + } List taskList = taskMapper.getTaskListByDemandIdList(demandList.stream().map(SpdmDemandVo::getUuid).toList()); Map> taskMap = Map.of(); if (CollectionUtils.isNotEmpty(taskList)) { @@ -2005,10 +2032,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService { nodeMap = nodeList.stream().collect(Collectors.groupingBy(SpdmNodeVo::getUuid)); } } - List userIdList = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(demandMemberVoList)) { - userIdList = demandMemberVoList.stream().map(SpdmDemandMemberVo::getUserId).toList(); - } + List userIdList = demandMemberVoList.stream().map(SpdmDemandMemberVo::getUserId).toList(); Map> userMap = Map.of(); if (CollectionUtils.isNotEmpty(userIdList)) { SdmResponse> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(userIdList).build()); @@ -2041,7 +2065,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService { } if (StringUtils.isNotBlank(spdmDemandVo.getWorkspaceId())) { spdmDemandVo.setWorkspaceName(CollectionUtils.isNotEmpty(nodeMap.get(spdmDemandVo.getWorkspaceId())) ? nodeMap.get(spdmDemandVo.getWorkspaceId()).get(0).getNodeName() : ""); - spdmDemandVo.setWorkspaceCode(CollectionUtils.isNotEmpty(nodeMap.get(spdmDemandVo.getWorkspaceId())) ? nodeMap.get(spdmDemandVo.getWorkspaceId()).get(0).getNodeCode() : ""); + spdmDemandVo.setWorkspaceCode((CollectionUtils.isNotEmpty(nodeMap.get(spdmDemandVo.getWorkspaceId())) ? nodeMap.get(spdmDemandVo.getWorkspaceId()).get(0).getNodeCode() : "")); } eachDemandMemberList = demandMemberMap.get(spdmDemandVo.getUuid()); if (CollectionUtils.isEmpty(eachDemandMemberList)) {