package com.ozs.plan.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ozs.plan.doman.PlanYears;
import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户与角色关联表 数据层
 *
 * @author bu
 */
@Mapper
public interface PlanYearsMapper extends BaseMapper<PlanYears> {

    /**
     * 查询年度计划记录集合
     *
     * @param planYears 年度计划请求对象
     * @return 年度计划记录集合
     */
    public List<PlanYears> selectPlanYearsList(PlanYears planYears);

    /**
     * 创建年度计划
     *
     * @param planYears 年度计划请求对象
     */
    public Integer insertPlanYears(PlanYears planYears);

    /**
     * 批量删除年度计划
     *
     * @param planIds 需要删除的年度计划ID
     * @return 结果
     */
    public Integer deletePlanYearsByIds(Long[] planIds);

    /**
     * 查询项目名称是否存在
     *
     * @param projectName 项目名称
     * @return 结果
     */
    public Integer countProjectName(String projectName);

    /**
     * 查询年度计划
     *
     * @param planYearId 年度计划ID
     * @return 结果
     */
    public PlanYears getById(Long planYearId);

    /**
     * 查询项目名称是否存在(除自己以外)
     *
     * @param projectName 项目名称
     * @return 结果
     */
    public Integer countProjectNameOther(@Param("projectName") String projectName, @Param("planYearId") String planYearId);

    /**
     * 修改年度计划
     *
     * @param ofYears 年度计划
     * @return 结果
     */
    public Integer updateInfoById(PlanYears ofYears);

    public Integer deletePlanYearsById(Long planId);

    public Integer commit(Long planYearId);

    public Integer review(PlanYearsStandardVo vo);

    public Integer sendLetter(PlanYearsStandardVo yearsStandardVo);

    List<PlanYears> query(PlanYearsStandardVo vo);
}
