package com.cf.imes.module.executor.service.order;

import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;

import java.util.Map;

/**
 * 生产单统计 order_{N} Service 接口
 *
 * @author Gqr
 * @since 2024/8/5 16:57
 */
public interface OrderStatisticsService {
    /**
     * 生产单总数统计
     */
    Integer orderCount();

    /**
     * 今日新增生产单总数统计
     */
    Integer orderCountToday();

    /**
     * 今日生产单完成总数
     */
    Integer orderCountTodayFinish();

    /**
     * 今日生产单完成总数
     */
    Integer orderCountProduce();

    /**
     * 今日生产单完成总数
     */
    Double orderSquareProduce();

    /**
     * 生产单状态分组统计
     */
    Map<String, Object> getOrderStatusCount(OrderStatisticsReqVO reqVO);

    /**
     * 生产单、排单单量分组统计
     *
     * @param reqVO
     * @return
     */
    Map<String, Object> getOrderAndPlanCountGroup(OrderStatisticsReqVO reqVO);

    /**
     * 生产单、排单平方数分组统计
     *
     * @param reqVO
     * @return
     */
    Map<String,Object> getOrderAndPlanAreaSumGroup(OrderStatisticsReqVO reqVO);

    /**
     * 小板数量分组统计
     *
     * @param reqVO
     * @return
     */
    Map<String, Object> getOrderPlateCountGroup(OrderStatisticsReqVO reqVO);

    /**
     * 小板面积分组统计
     *
     * @param reqVO
     * @return
     */
    Map<String, Object> getOrderPlateAreaGroup(OrderStatisticsReqVO reqVO);

    /**
     * 大板数量分组统计
     *
     * @param reqVO
     * @return
     */
    Map<String, Object> getBigPlateCountGroup(OrderStatisticsReqVO reqVO);
}
