liu
昨天 00e4d71bd9d504ed25339595690ebe074146b7e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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();
 
}