package com.bonus.material.main.service;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.main.domain.DemandAndSupplyVo;
import com.bonus.material.main.domain.MaTypeHomeVo;

import java.math.BigDecimal;

public interface MainService {
    /**
     * 需求数量
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getDemandNum(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 需求数量增长量
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getDemandIncrease(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 已供应数量
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getSuppliedQuantityNum(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 已供应数量增长量
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getSuppliedQuantityIncrease(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 待供应数量
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getSuppliedToBeQuantityNum(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 待供应数量增长量
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getSuppliedToBeQuantityIncrease(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 未结算工程数量
     * @param demandAndSupplyVo
     * @return
     */
    Integer getProjectNum(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 供应总价值
     * @param demandAndSupplyVo
     * @return
     */
    BigDecimal getSuppliedQuantityPrice(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 根据时间段查询当前仓储状态详情数据
     * @param dto
     * @return
     */
    AjaxResult getInStockNum(MaTypeHomeVo dto);

    /**
     * 需求列表
     * @param demandAndSupplyVo
     * @return
     */
    AjaxResult getDemandList(DemandAndSupplyVo demandAndSupplyVo);

    /**
     * 查询机具状态统计占比饼图
     * @param dto
     * @return
     */
    AjaxResult getMaTypeStatusTotal(MaTypeHomeVo dto);
}
