package cn.iocoder.yudao.module.mes.dal.mysql.dashboard;
|
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 管理驾驶舱统计 Mapper
|
* <p>
|
* 手写 SQL 聚合生产、质检、库存、出库、追溯五大维度核心指标。
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesDashboardMapper {
|
|
// ========== 生产维度 ==========
|
|
/** 按状态统计批次数量,返回 [{ "status": 10, "count": 5 }] */
|
List<Map<String, Object>> selectBatchCountGroupByStatus();
|
|
/** 按状态统计袋码数量,返回 [{ "status": 10, "count": 5 }] */
|
List<Map<String, Object>> selectBagCodeCountGroupByStatus();
|
|
/** 统计托盘码总数 */
|
Long selectPalletTotal();
|
|
/** 统计今日扫码入库袋数(扫码成功事件数量之和) */
|
Long selectTodayInboundBagCount(@Param("beginTime") LocalDateTime beginTime);
|
|
/** 按天聚合新增批次数,返回 [{ "date": "2026-08-13", "count": 1 }] */
|
List<Map<String, Object>> selectDailyBatchCount(@Param("beginTime") LocalDateTime beginTime,
|
@Param("endTime") LocalDateTime endTime);
|
|
/** 按天聚合新增袋码数 */
|
List<Map<String, Object>> selectDailyBagCodeCount(@Param("beginTime") LocalDateTime beginTime,
|
@Param("endTime") LocalDateTime endTime);
|
|
/** 按天聚合新增托盘码数 */
|
List<Map<String, Object>> selectDailyPalletCount(@Param("beginTime") LocalDateTime beginTime,
|
@Param("endTime") LocalDateTime endTime);
|
|
/** 按天聚合扫码入库袋数(扫码成功事件数量之和),返回 [{ "date": "...", "quantity": 100 }] */
|
List<Map<String, Object>> selectDailyInboundBagQuantity(@Param("beginTime") LocalDateTime beginTime,
|
@Param("endTime") LocalDateTime endTime);
|
|
// ========== 质检维度 ==========
|
|
/** 按检验结果统计数量,返回 [{ "result": 1, "count": 5 }] */
|
List<Map<String, Object>> selectQualityCountGroupByResult();
|
|
/** 指标均值与合格率,返回 [{ "indicatorCode", "checkCount", "averageValue", "passRate" }] */
|
List<Map<String, Object>> selectIndicatorStatistics();
|
|
// ========== 库存维度 ==========
|
|
/** 按库存状态汇总数量,返回 [{ "stockState": 10, "quantity": 100 }] */
|
List<Map<String, Object>> selectStockGroupByState();
|
|
/** 按仓库汇总数量,返回 [{ "name": "仓库A", "quantity": 100 }] */
|
List<Map<String, Object>> selectStockGroupByWarehouse();
|
|
/** 按品种汇总数量,返回 [{ "name": "棉花", "quantity": 100 }] */
|
List<Map<String, Object>> selectStockGroupByItem();
|
|
// ========== 出库维度 ==========
|
|
/** 出库汇总(单数/总量/今日出库量),返回单行 Map:{ orderTotal, quantityTotal, todayQuantity } */
|
Map<String, Object> selectOutboundSummary(@Param("beginTime") LocalDateTime beginTime);
|
|
/** 按天聚合出库量,返回 [{ "date": "...", "quantity": 100 }] */
|
List<Map<String, Object>> selectOutboundDailyQuantity(@Param("beginTime") LocalDateTime beginTime,
|
@Param("endTime") LocalDateTime endTime);
|
|
/** 按经销商汇总出库量(TOP 20),返回 [{ "name": "经销商A", "quantity": 100 }] */
|
List<Map<String, Object>> selectOutboundGroupByClient();
|
|
}
|