自动化立体仓库 - WMS系统
zwl
7 天以前 7294ef58d1a343bdc765773ba69928820ce0d20f
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.zy.asrs.mapper;
 
import com.zy.asrs.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
 
import java.util.List;
 
@Mapper
@Repository
public interface ReportQueryMapper {
    
    //分页查询库位使用率
    List<ViewStockUseBean> queryViewStockUseList(ViewStockUseBean viewStockUse);
    int getViewStockUseCount(ViewStockUseBean viewStockUse);
    List<ViewStockUseBean> getViewStockUseAll(ViewStockUseBean viewStockUse);
 
    //分页查询库存滞留时间
    public List<ViewStayTimeBean> queryViewStayTimeList(ViewStayTimeBean viewStayTime);
    public int getViewStayTimeCount(ViewStayTimeBean viewStayTime);
    //不分页查询所有信息,用于excel导出
    public List<ViewStayTimeBean> getViewStayTimeAll(ViewStayTimeBean viewStayTime);
 
//    // 库位Map
    @Select("select distinct row1 from asr_loc_mast order by row1 asc")
    List<Integer> getViewLocRowTotal();
 
    @Select("select distinct lev1 from asr_loc_mast where row1=#{row1} order by lev1 desc")
    public List<String> getViewLocLevCount(@Param("row1") int row1);
//
    @Select("select loc_no as locNo, bay1,loc_sts as locSts from asr_loc_mast where row1=#{row1} and lev1=#{lev1} order by bay1")
    public List<ViewLocMapDto> getViewLocBays(@Param("row1") int row1, @Param("lev1") int lev1);
 
    // 库位Map
    @Select("select distinct bay1 from asr_loc_mast where row1=#{row1} order by bay1")
    public List<String> getViewLocBayCount(@Param("row1") int row1);
 
    @Select("select lev1,loc_sts as locSts from asr_loc_mast where row1=#{row1} and bay1=#{bay1} order by bay1")
    public List<ViewLocMapDto> getViewLocLevs(@Param("row1") int row1, @Param("bay1") int bay1);
 
 
    //分页查询站点入出库次数统计
    public List<ViewInOutBean> queryViewInOutList(ViewInOutBean viewInOut);
    public int getViewInOutCount(ViewInOutBean viewInOut);
    //不分页查询所有信息,用于excel导出
    public List<ViewInOutBean> getViewInOutAll(ViewInOutBean viewInOut);
 
    //分页查询日入库记录
    public List<ViewWorkInBean> queryViewWorkInList(ViewWorkInBean viewWorkIn);
    public int getViewWorkInCount(ViewWorkInBean viewWorkIn);
    //不分页查询所有信息,用于excel导出
    public List<ViewWorkInBean> getViewWorkInAll(ViewWorkInBean viewWorkIn);
 
    //分页查询日出库记录
    public List<ViewWorkInBean> queryViewWorkOutList(ViewWorkInBean viewWorkOut);
    public int getViewWorkOutCount(ViewWorkInBean viewWorkOut);
    //不分页查询所有信息,用于excel导出
    public List<ViewWorkInBean> getViewWorkOutAll(ViewWorkInBean viewWorkOut);
 
 
    // ------图表
    //饼状图
    @Select("select * from asr_loc_use_view")
    public LocChartPie getLocUseRate();
    //曲线图
    @Select("select ymd,SUM(sto_qty) inqty,SUM(ret_qty) outqty from asr_sta_inout_view "
            + "where ymd>CONVERT(char(10), DATEADD(DAY,-12,GETDATE()), 120) group by ymd order by ymd")
    public List<WorkChartAxis> getChartAxis();
 
    /**
     * 按小时汇总(视图 v_asr_inout_hourly_stat,ymd 与接口 yyyy-MM-dd HH 对齐)
     */
    @Select("SELECT ymd, inqty, outqty,cube_inqty as cubeInqty,cube_outqty as cubeOutqty FROM v_asr_inout_hourly_stat ")
    List<WorkChartAxis> getChartAxisHourly();
 
    /**
     * 按小时汇总(视图 v_asr_inout_hourly_stat,ymd 与接口 yyyy-MM-dd HH 对齐)
     */
    @Select("SELECT ymd, teu_total FROM asr_wrk_detl_teu_day_view ORDER BY ymd")
    List<WorkTeuTotalAxis> getteuTotal();
 
    /**
     * 最近 12 天体积汇总
     */
    @Select("SELECT CONVERT(char(10), stat_date, 23) AS ymd, "
            + "CAST(ISNULL(wrk_sts_5_cube_sum, 0) AS decimal(18,4)) AS cube5Total, "
            + "CAST(ISNULL(wrk_sts_15_cube_sum, 0) AS decimal(18,4)) AS cube15Total "
            + "FROM dbo.asr_wrk_cube_day_stat ORDER BY stat_date")
    List<WorkCubeTotalAxis> getCubeTotal();
 
    /**
     * 最近 12 天入库体积汇总,先筛选完成状态主档,再关联明细,避免明细日志大范围预聚合。
     */
    @Select("WITH dates AS ( "
            + "    SELECT DATEADD(DAY, -v.n, CONVERT(date, GETDATE())) AS stat_date "
            + "    FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11)) AS v(n) "
            + "), completed_mast AS ( "
            + "    SELECT DISTINCT m.wrk_no, m.io_time "
            + "    FROM dbo.asr_wrk_mast_log AS m "
            + "    WHERE m.wrk_sts = 5 "
            + "      AND m.io_time >= DATEADD(DAY, -11, CONVERT(date, GETDATE())) "
            + "      AND m.io_time < DATEADD(DAY, 1, CONVERT(date, GETDATE())) "
            + "), agg AS ( "
            + "    SELECT CONVERT(date, cm.io_time) AS stat_date, "
            + "           SUM(ISNULL(d.cube_number, 0)) AS wrk_sts_5_cube_sum "
            + "    FROM completed_mast AS cm "
            + "    INNER JOIN dbo.asr_wrk_detl_log AS d "
            + "        ON d.wrk_no = cm.wrk_no "
            + "       AND d.io_time = cm.io_time "
            + "    GROUP BY CONVERT(date, cm.io_time) "
            + ") "
            + "SELECT CONVERT(char(10), ds.stat_date, 23) AS ymd, "
            + "       CAST(ISNULL(a.wrk_sts_5_cube_sum, 0) AS decimal(18,4)) AS cube5Total "
            + "FROM dates AS ds "
            + "LEFT JOIN agg AS a ON a.stat_date = ds.stat_date "
            + "ORDER BY ds.stat_date "
            + "OPTION (RECOMPILE)")
    List<WorkCubeTotalAxis> getInboundCubeTotal();
 
 
 
    List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
    Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
    List<ViewWorkCountInView> selectWorkCountOut(@Param("curr") Integer pageNumber, @Param("limit") Integer pageSize, String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
    Integer selectWorkCountOutTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
    Integer selectWorkCountInSum(String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
    Integer selectWorkCountOutSum(String matnr, @Param("start") String startTime, @Param("end") String endTime);
}