From 8fbe2f5f29b9658b6201b3daabe2d575c9da88fd Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 26 六月 2026 14:54:46 +0800
Subject: [PATCH] update

---
 admin-server/src/main/java/com/estate/expert/admin/service/impl/ProjectServiceImpl.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 49 insertions(+), 3 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 f5fddd0..c436d23 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,15 +4,17 @@
 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;
 import com.estate.expert.admin.domain.project.enums.ProjectType;
+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.*;
 import com.estate.expert.admin.service.common.CrudServiceBaseImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -40,6 +42,16 @@
     @Resource
     private GeoTranslateComponent geoTranslateComponent;
 
+    @Resource
+    private ScreenAccountMybatisMapper screenAccountMybatisMapper;
+
+
+    @Resource
+    private CheckTaskRepository checkTaskRepository;
+
+    @Resource
+    private PlanService planService;
+
     @Override
     public PageResp<ProjectDto> list(String keyword,
                                      List<ProjectType> projectTypes, List<Integer> clientIds, PageReq pageReq) {
@@ -54,7 +66,15 @@
 
     @Override
     public List<Project> listByClient(Integer clientId) {
+        // clientId为空时查询所有项目
+        if (clientId == null) {
+            return projectRepository.findProjects(null, null, null);
+        }
         return projectRepository.findAllByClientIdAndDeleted(clientId, false);
+    }
+    @Override
+    public List<Project> listByTitle(String name) {
+        return screenAccountMybatisMapper.findAllByTitleIdAndDeleted(name);
     }
 
     @Override
@@ -110,6 +130,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