package com.estate.expert.admin.service; import com.estate.expert.admin.service.common.CrudServiceBase; import com.estate.expert.admin.domain.project.Project; import com.estate.expert.admin.domain.project.ProjectDto; import com.estate.expert.admin.domain.project.enums.ProjectType; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.common.response.PageResp; import java.util.List; /** * 项目服务 */ public interface ProjectService extends CrudServiceBase { /** * 获取项目列表 * @param keyword 关键词 * @param projectTypes 项目类型 * @param clientIds 客户ID列表 * @param pageReq 分页请求 * @return 项目列表 */ PageResp list(String keyword, List projectTypes, List clientIds, PageReq pageReq); /** * 获取项目列表 * @param keyword 关键词 * @param projectTypes 项目类型 * @param clientIds 客户ID列表 * @return 项目列表 */ List list(String keyword, List projectTypes, List clientIds); /** * 获取客户项目列表 * @param clientId 客户ID * @return 客户项目列表 */ List listByClient(Integer clientId); List listByTitle(String name); /** * 获取计划可用的项目列表 * 根据plan中的clientId获取相应的project,同时过滤掉plan对应的没有删除的task中已经包含的project * @param planId 计划ID * @return 可用的项目列表 */ List listAvailableByPlan(Integer planId); }