package com.jeeplus.finance.projectReport.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeeplus.finance.projectReport.domain.CwProjectInfoData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 新增行数据
 * @author: 王强
 * @create: 2022-11-16 20:40
 **/
@Mapper
public interface CwProjectInfoMapper extends BaseMapper<CwProjectInfoData> {

    /**
     * 根据id修改作废标记
     * @param id
     */
    void updateSignById(@Param("id") String id, @Param("sign")String sign);

    CwProjectInfoData selectIdByReportId(String id);

    @InterceptorIgnore(tenantLine = "true")
    CwProjectInfoData selectByReportId(String id);

    CwProjectInfoData selectContainDelByReportId(String id);

    /**
     * 去报废的报告文号表中查报告文号
     * @return
     */
    List<String> getReportNo();

    @InterceptorIgnore(tenantLine = "true")
    CwProjectInfoData selectInfoByReportId(String id);

    /**
     * 根据项目编码查流水号
     * @param projectNo
     * @return
     */
    String selectReportNumberByProjectNo(String projectNo);

    @InterceptorIgnore(tenantLine = "true")
    CwProjectInfoData getById(String id);

    /**
     * 根据报告id删除行信息
     * @param id
     */
    void deleteByReportId(String id);

    List<String> getId(String reportId);

    /**
     * 根据新建行id查出该条信息
     * @param reportNewLineId
     */
    CwProjectInfoData getNewLineInfoById(String reportNewLineId);

    /**
     * 根据报告管理id查看所有的新建行数据
     * @param reportId
     * @return
     */
    int getCountByReportId(String reportId);

    /**
     * 根据报告管理id查出所有的新增行数据
     * @param id
     * @return
     */
    @InterceptorIgnore(tenantLine = "true")
    CwProjectInfoData getByReportId(String id);

    CwProjectInfoData getContainDelByReportId(String id);

    /**
     * 根据报告id修改报告文号与报告流水号
     * @param
     */
    void updateByReportId(@Param("reportId")String reportId,
                          @Param("reportNumber")String reportNumber,
                          @Param("reportNo")String reportNo);

    /**
     * 根据报告id修改报告文号
     * @param
     */
    @InterceptorIgnore(tenantLine = "true")
    void updateReportNoByReportId(@Param("reportId")String reportId,
                          @Param("reportNo")String reportNo);

    /**
     * 复原逻辑删除的数据
     * @param id
     */
    void saveById(@Param("id")String id);

    @InterceptorIgnore(tenantLine = "true")
    void updateCwProjectInfoDataById(CwProjectInfoData cwProjectInfoData);
}
