package com.yunfeiyun.agmp.fms.mapper;

import com.yunfeiyun.agmp.fms.domain.TssSourceperiod;
import com.yunfeiyun.agmp.fms.domain.dto.TssSourceperiodDto;
import org.apache.ibatis.annotations.Param;


import java.util.List;

/**
 * 溯源周期Mapper接口
 * 
 * @author 杨晓辉
 * @date 2023-06-25
 */
public interface TssSourceperiodMapper 
{
    /**
     * 查询溯源周期
     * 
     * @param sourceperiodId 溯源周期主键
     * @return 溯源周期
     */
    public TssSourceperiod selectTssSourceperiodBySourceperiodId(String sourceperiodId);

    /**
     * 查询溯源周期列表
     * 
     * @param tssSourceperiod 溯源周期
     * @return 溯源周期集合
     */
    public List<TssSourceperiod> selectTssSourceperiodList(TssSourceperiod tssSourceperiod);

    /**
     * 查询溯源周期列表-带资源信息
     * */
    public List<TssSourceperiod> selectTssSourceperiodWithResList(@Param("tssSourceperiod") TssSourceperiod tssSourceperiod, @Param("isOssCloudPolicy") boolean isOssCloudPolicy);
    /**
     * 新增溯源周期
     * 
     * @param tssSourceperiod 溯源周期
     * @return 结果
     */
    public int insertTssSourceperiod(TssSourceperiod tssSourceperiod);
    public int insertTssSourceperiodBatch(List<TssSourceperiod> tssSourceperiods);

    /**
     * 修改溯源周期
     * 
     * @param tssSourceperiod 溯源周期
     * @return 结果
     */
    public int updateTssSourceperiod(TssSourceperiod tssSourceperiod);
    public int updateTssSourceperiodBatch(@Param("list") List<TssSourceperiodDto> tssSourceperiods);

    /**
     * 删除溯源周期
     * 
     * @param sourceperiodId 溯源周期主键
     * @return 结果
     */
    public int deleteTssSourceperiodBySourceperiodId(String sourceperiodId);
    public int deleteTssSourceperiodBySourceinfoId(String sourceperiodId);

    /**
     * 批量删除溯源周期
     * 
     * @param sourceperiodIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTssSourceperiodBySourceperiodIds(String[] sourceperiodIds);
}
