package com.yunfeiyun.agmp.fms.service;

import com.yunfeiyun.agmp.fms.domain.FmsTaskrcd;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsTaskrcdAuditReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsTaskrcdListReqVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsTaskrcdByTaskrcdIdResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsTaskrcdInfoResVo;
import com.yunfeiyun.agmp.fms.domain.vo.FmsTaskrcdVo;

import java.util.List;

/**
 * 农事任务提交记录Service接口
 * 
 * @author 杨晓辉
 * @date 2023-05-23
 */
public interface IFmsTaskrcdService 
{
    /**
     * 根据农事任务记录id查询农事记录信息
     *
     * @param taskrcdId 农事任务提交记录主键
     * @return 农事任务提交记录
     */
    public FmsTaskrcdByTaskrcdIdResVo selectFmsTaskrcdInfoByTaskrcdId(String taskrcdId);

    /**
     * 查询农事任务提交记录
     * 
     * @param taskrcdId 农事任务提交记录主键
     * @return 农事任务提交记录
     */
    public FmsTaskrcd selectFmsTaskrcdByTaskrcdId(String taskrcdId);


    /**
     * 根据任务ID查询农事任务提交记录
     *
     * @param taskId 农事任务主键
     * @return 农事任务提交记录
     */
    public FmsTaskrcdInfoResVo selectFmsTaskrcdByTaskId(String taskId);

    /**
     * 查询农事任务提交记录列表
     * 
     * @param fmsTaskrcdListReqVo 农事任务提交记录查询
     * @return 农事任务提交记录集合
     */
    public List<FmsTaskrcdVo> selectFmsTaskrcdList(FmsTaskrcdListReqVo fmsTaskrcdListReqVo);

    /**
     * 新增农事任务提交记录
     * 
     * @param fmsTaskrcdVo 农事任务提交记录
     * @return 结果
     */
    public int insertFmsTaskrcd(FmsTaskrcdVo fmsTaskrcdVo);

    /**
     * 修改农事任务提交记录
     * 
     * @param fmsTaskrcd 农事任务提交记录
     * @return 结果
     */
    public int updateFmsTaskrcd(FmsTaskrcd fmsTaskrcd);

    /**
     * 批量删除农事任务提交记录
     * 
     * @param taskrcdIds 需要删除的农事任务提交记录主键集合
     * @return 结果
     */
    public int deleteFmsTaskrcdByTaskrcdIds(String[] taskrcdIds);

    /**
     * 删除农事任务提交记录信息
     * 
     * @param taskrcdId 农事任务提交记录主键
     * @return 结果
     */
    public int deleteFmsTaskrcdByTaskrcdId(String taskrcdId);

    /**
     * 审核农事任务提交记录
     * @param fmsTaskrcdAuditReqVo 农事任务审核信息
     * @return 结果信息
     * */
    public int audit(FmsTaskrcdAuditReqVo fmsTaskrcdAuditReqVo) throws Exception;
}
