package com.bonus.bracelet.mapper;

import com.bonus.common.entity.bracelet.vo.BaseProject;
import com.bonus.common.entity.bracelet.vo.EngineeringVo;
import com.bonus.common.entity.file.ResourceFileVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 项目信息 数据层
 * 
 * @author bonus
 */
@Repository(value = "BaseProjectMapper")
public interface BaseProjectMapper
{
    /**
     * 查询项目数据集合
     * 
     * @param project 项目信息
     * @return 项目数据集合
     */
    public List<BaseProject> selectProjectList(BaseProject project);

    public List<ResourceFileVo> selectProjectFile(Integer projectId);

    public BaseProject selectProjectById(Integer projectId);

    public BaseProject checkProjectDeptNameUnique(@Param("projectDepartName") String projectDepartName,@Param("projectId") Integer projectId);


    public BaseProject checkProjectDeptNameUniqueAdd(@Param("projectDepartName") String projectDepartName);

    /**
     * 新增保存项目信息
     *
     * @param project 项目信息
     * @return 结果
     */
    public int insertProject(BaseProject project);

    /**
     * 修改项目信息
     *
     * @param project 项目信息
     * @return 结果
     */
    public int updateProject(BaseProject project);

    /**
     * 批量删除项目信息
     *
     * @param projectId 需要删除的项目ID
     * @return 结果
     */
    public int deleteProjectByIds(int projectId);


    /**
     * 删除文件信息
     *
     * @param projectId 需要删除的项目ID
     * @return 结果
     */
    public void deleteFile(int projectId);

    public void  deleteFileId(String filePath);

    public List<String> selectFilePathById(int projectId);

    /**
     * 批量导出项目部数据
     * @param ids
     * @return
     */
    public List<BaseProject> getProjectSomeLists(int[] ids);

    public int getAppCount(int projectId);

    public int getProCount(int projectId);


    /**
     * 获取文件id
     * @param filepath
     * @return
     */
    Integer getHighId(String filepath);


    /**
     * 删除文件资源信息
     * @param filePath
     * @param id
     */
    public void  delHighFile(@Param("filePath") String filePath,@Param("id") int id);
}
