From 34fb8efd9fef8a6ed0d7cbaff74f37f06bf2db60 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 21 五月 2026 14:42:26 +0800
Subject: [PATCH] update
---
admin-server/src/main/java/com/estate/expert/admin/service/impl/ProjectServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++----
1 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/admin-server/src/main/java/com/estate/expert/admin/service/impl/ProjectServiceImpl.java b/admin-server/src/main/java/com/estate/expert/admin/service/impl/ProjectServiceImpl.java
index 32c9d59..b10e248 100644
--- a/admin-server/src/main/java/com/estate/expert/admin/service/impl/ProjectServiceImpl.java
+++ b/admin-server/src/main/java/com/estate/expert/admin/service/impl/ProjectServiceImpl.java
@@ -4,6 +4,9 @@
import com.estate.expert.admin.domain.business.device.usage.DeviceUsage;
import com.estate.expert.admin.domain.common.request.PageReq;
import com.estate.expert.admin.domain.common.response.PageResp;
+import com.estate.expert.admin.domain.exam.task.check.CheckTask;
+import com.estate.expert.admin.domain.exam.task.check.CheckTaskRepository;
+import com.estate.expert.admin.domain.plan.Plan;
import com.estate.expert.admin.domain.project.Project;
import com.estate.expert.admin.domain.project.ProjectDto;
import com.estate.expert.admin.domain.project.ProjectRepository;
@@ -11,10 +14,7 @@
import com.estate.expert.admin.domain.repository.ScreenAccountMybatisMapper;
import com.estate.expert.admin.domain.standard.hierachy.HierarchyIds;
import com.estate.expert.admin.domain.user.User;
-import com.estate.expert.admin.service.DeviceUsageService;
-import com.estate.expert.admin.service.HierarchyService;
-import com.estate.expert.admin.service.ProjectService;
-import com.estate.expert.admin.service.UserFileService;
+import com.estate.expert.admin.service.*;
import com.estate.expert.admin.service.common.CrudServiceBaseImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -44,6 +44,13 @@
@Resource
private ScreenAccountMybatisMapper screenAccountMybatisMapper;
+
+
+ @Resource
+ private CheckTaskRepository checkTaskRepository;
+
+ @Resource
+ private PlanService planService;
@Override
public PageResp<ProjectDto> list(String keyword,
@@ -119,6 +126,32 @@
address.setGps(location);
}
}
+
+ @Override
+ public List<Project> listAvailableByPlan(Integer planId) {
+ // 根据planId获取计划,并从计划中获取clientId
+ Plan plan = planService.get(planId);
+ if (plan == null || plan.getClient() == null) {
+ return List.of();
+ }
+ Integer clientId = plan.getClient().getId();
+
+ // 根据clientId获取所有未删除的项目
+ List<Project> allProjects = projectRepository.findAllByClientIdAndDeleted(clientId, false);
+
+ // 根据planId获取所有未删除的任务,并提取其中的项目ID
+ List<CheckTask> tasks = checkTaskRepository.findAllByPlanIdAndDeleted(planId, false);
+ List<Integer> usedProjectIds = tasks.stream()
+ .map(task -> task.getProject() != null ? task.getProject().getId() : null)
+ .filter(id -> id != null)
+ .distinct()
+ .toList();
+
+ // 过滤掉已经在任务中使用的项目
+ return allProjects.stream()
+ .filter(project -> !usedProjectIds.contains(project.getId()))
+ .toList();
+ }
}
--
Gitblit v1.7.1