package com.yunfeiyun.agmp.fms.service;

import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
import com.yunfeiyun.agmp.fms.domain.FmsBlock;
import com.yunfeiyun.agmp.fms.domain.FmsLand;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsBlockReqVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsBlockResVo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 地块Service接口
 * 
 * @author 杨晓辉
 * @date 2023-05-15
 */
public interface IFmsBlockService 
{
    /**
     * 查询地块
     * 
     * @param blockId 地块主键
     * @return 地块
     */
    public FmsBlock selectFmsBlockByBlockId(String blockId);

    public FmsBlockResVo selectFmsBlockInfoByBlockId(String blockId);

    /**
     * 查询地块列表
     * 
     * @param fmsBlock 地块
     * @return 地块集合
     */
    public List<FmsBlock> selectFmsBlockList(FmsBlock fmsBlock);

    /**
     * 新增地块
     * 
     * @param fmsBlock 地块
     * @return 结果
     */
    public AjaxResult insertFmsBlock(FmsBlock fmsBlock, FmsLand fmsLand);

    /**
     * 修改地块
     * 
     * @param fmsBlock 地块
     * @return 结果
     */
    public AjaxResult updateFmsBlock(FmsBlock fmsBlock, FmsLand fmsLand);

    /**
     * 批量删除地块
     * 
     * @param blockIds 需要删除的地块主键集合
     * @return 结果
     */
    public AjaxResult deleteFmsBlockByBlockIds(String[] blockIds);

    /**
     * 删除地块信息
     * 
     * @param blockId 地块主键
     * @return 结果
     */
    public int deleteFmsBlockByBlockId(String blockId);

    Integer selectCountByLandId(String landId);

    BigDecimal selectSumAreaByLandId(FmsLand fmsLand);

    public BigDecimal selectSumArea(FmsBlockReqVo reqVo);

    /**
     * 查询地块，返回包含计划的作物
     * @param reqVo
     * @return
     */
    public List<FmsBlockResVo> selectFmsBlockHasPlan(FmsBlockReqVo reqVo);
}
