package com.yanzhu.jh.project.service;

import java.util.List;
import com.yanzhu.jh.project.domain.SurProject;

/**
 * 项目管理Service接口
 * 
 * @author JiangYuQi
 * @date 2023-07-29
 */
public interface ISurProjectService 
{
    /**
     * 查询项目管理
     * 
     * @param id 项目管理主键
     * @return 项目管理
     */
    public SurProject selectSurProjectById(Long id);

    /**
     * 查询项目管理列表
     * 
     * @param surProject 项目管理
     * @return 项目管理集合
     */
    public List<SurProject> selectSurProjectList(SurProject surProject);

    /**
     * 新增项目管理
     * 
     * @param surProject 项目管理
     * @return 结果
     */
    public int insertSurProject(SurProject surProject);

    /**
     * 修改项目管理
     * 
     * @param surProject 项目管理
     * @return 结果
     */
    public int updateSurProject(SurProject surProject);

    /**
     * 批量删除项目管理
     * 
     * @param ids 需要删除的项目管理主键集合
     * @return 结果
     */
    public int deleteSurProjectByIds(Long[] ids);

    /**
     * 删除项目管理信息
     * 
     * @param id 项目管理主键
     * @return 结果
     */
    public int deleteSurProjectById(Long id);

    public List<SurProject> selectProgressProjects(SurProject surProject);

    public List<SurProject> groupByProjectCategory(SurProject surProject);

    public List<SurProject>  groupByCategory(SurProject surProject);

    public List<SurProject>  groupByLevel(SurProject surProject);

    /**
     * 监理单位、总包单位、分包单位用户不展示项目概况菜单,二级菜单只展示自已参与的项目
     * roleId（15，16，17，99）(select spu.project_id from sur_project_userinfo spu where spu.user_id = #{id} and spu.is_del=0) id-->userId
     * roleId（5，6，7） select spui.projectId from sur_project_unit_info spui where spui.unitId = #{deptId} and spui.del_flag=0 --->deptId     *
     * @param surProject
     * @return
     */
    public List<SurProject> selectSurProjectListByBuser(SurProject surProject);
}
