package com.yunfeiyun.agmp.fms.mapper;

import com.yunfeiyun.agmp.fms.domain.FmsCrop;
import com.yunfeiyun.agmp.fms.domain.FmsTaskpick;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsPlanReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsTaskPickListReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsTaskPickStockDetailReqVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsTaskPickListResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsTaskPickStockDetailResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsTaskPickStockListResVo;

import java.util.List;

/**
 * 农事任务采收Mapper接口
 * 
 * @author 杨晓辉
 * @date 2023-05-23
 */
public interface FmsTaskpickMapper 
{
    /**
     * 查询农事任务采收
     *
     * @param taskpickId 农事任务采收主键
     * @return 农事任务采收
     */
    public FmsTaskpick selectFmsTaskpickByTaskpickId(String taskpickId);

    /**
     * 查询农事任务采收
     *
     * @param taskId 农事任务采收主键
     * @return 农事任务采收
     */
    public FmsTaskpick selectFmsTaskpickByTaskId(String taskId);

    /**
     * 根据农事规划标识查询采收记录
     *
     * @param planId 农事规划标识
     * @return 农事任务采收
     */
    public List<FmsTaskPickListResVo> selectFmsTaskpickByPlanId(String planId);

    /**
     * 查询农事任务采收列表
     * 
     * @param fmsTaskPickListReqVo 农事任务采收列表查询请求vo
     * @return 农事任务采收集合
     */
    public List<FmsTaskPickListResVo> selectFmsTaskpickList(FmsTaskPickListReqVo fmsTaskPickListReqVo);

    /**
     * 查询农事任务采收农产品列表
     * @param cropName 农事任务采收农产品列表参数
     * @return 农事任务采收农产品列表
     **/
    public List<FmsTaskPickStockListResVo> selectFmsTaskPickStockList(FmsCrop fmsCrop);
    public List<FmsTaskPickStockListResVo> selectFmsTaskPickStockListStat(FmsTaskPickListReqVo reqVo);

    public List<FmsTaskPickStockListResVo> selectSumPickWeightListGroupByCropName(FmsPlanReqVo reqVo);

    /**
     * 查询农事任务采收农产品详情
     * @param fmsTaskPickStockDetailReqVo 农事任务采收农产品详情参数
     * @return 农事任务采收农产品详情列表
     **/
    List<FmsTaskPickStockDetailResVo> selectFmsTaskPickStockDetailList(FmsTaskPickStockDetailReqVo fmsTaskPickStockDetailReqVo);

    /**
     * 新增农事任务采收
     * 
     * @param fmsTaskpick 农事任务采收
     * @return 结果
     */
    public int insertFmsTaskpick(FmsTaskpick fmsTaskpick);

    /**
     * 修改农事任务采收
     * 
     * @param fmsTaskpick 农事任务采收
     * @return 结果
     */
    public int updateFmsTaskpick(FmsTaskpick fmsTaskpick);

    /**
     * 删除农事任务采收
     * 
     * @param taskpickId 农事任务采收主键
     * @return 结果
     */
    public int deleteFmsTaskpickByTaskpickId(String taskpickId);

    /**
     * 批量删除农事任务采收
     * 
     * @param taskpickIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFmsTaskpickByTaskpickIds(String[] taskpickIds);


    /**
     农事任务采收最大编号
     */
    public String selectFmsTaskpickMaxWaterKey();
}
