自动化立体仓库 - WMS系统
zwl
2 天以前 ad4fb70a79a07d494de4b3183ff6cf00d94aab08
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.mapper.DigitalTwinMapper">
 
    <resultMap id="dtOrderMap" type="com.zy.asrs.entity.digitaltwin.DtOrderVo">
        <constructor>
            <arg column="orderDate" javaType="java.util.Date"/>
            <arg column="orderNum" javaType="java.lang.Integer"/>
        </constructor>
    </resultMap>
 
    <!--总览:总库位、已用库位、今日库存、今日出库、今日入库-->
    <select id="overview" resultType="Double">
        SELECT COUNT(*)
        FROM asr_loc_mast
        WHERE loc_sts != 'Z'
        <if test="areaId != null and areaId != ''">
            AND area_id = #{areaId}
        </if>
        UNION ALL
        SELECT COUNT(*)
        FROM asr_loc_mast
        WHERE loc_sts IN ('F', 'P', 'Q', 'R', 'S', 'X')
        <if test="areaId != null and areaId != ''">
            AND area_id = #{areaId}
        </if>
        UNION ALL
        SELECT ISNULL(SUM(d.anfme), 0)
        FROM asr_loc_detl d
        <if test="areaId != null and areaId != ''">
            INNER JOIN asr_loc_mast m ON m.loc_no = d.loc_no
            WHERE m.area_id = #{areaId}
        </if>
        UNION ALL
        SELECT ISNULL(SUM(anfme), 0) FROM asr_wrkin_view WHERE CONVERT(VARCHAR, io_time, 23) = CONVERT(VARCHAR, GETDATE(), 23)
        <if test="areaId != null and areaId != ''">
            AND area_id = #{areaId}
        </if>
        UNION ALL
        SELECT ISNULL(SUM(anfme), 0) FROM asr_wrkout_view WHERE CONVERT(VARCHAR, io_time, 23) = CONVERT(VARCHAR, GETDATE(), 23)
        <if test="areaId != null and areaId != ''">
            AND area_id = #{areaId}
        </if>
    </select>
 
    <select id="recentOrder" resultType="com.zy.asrs.entity.digitaltwin.DtOrderVo">
 
        SELECT
        FORMAT(orderDate, 'yyyy-MM-dd') as orderDate,
        COUNT(*) as orderNum
        FROM (
        SELECT
        CAST(io_time AS DATE) as orderDate
        FROM asr_wrk_mast_log
        WHERE io_time BETWEEN #{startTime} AND #{endTime}
          AND user_no IS NOT NULL
          AND LTRIM(RTRIM(user_no)) &lt;&gt; ''
        ) combined
        GROUP BY orderDate
        ORDER BY orderDate
 
    </select>
 
    <select id="recentInBound" resultType="com.zy.asrs.entity.digitaltwin.DtInAndOutBoundVo">
        SELECT CONVERT(VARCHAR, io_time, 23) AS boundDate, SUM(anfme) AS inBoundNum
        FROM asr_wrkin_view
        WHERE io_time BETWEEN #{startTime} AND #{endTime}
<!--        <if test="areaId != null">-->
<!--            and area_id = #{areaId}-->
<!--        </if>-->
        GROUP BY CONVERT(VARCHAR, io_time, 23)
    </select>
 
    <select id="recentOutBound" resultType="com.zy.asrs.entity.digitaltwin.DtInAndOutBoundVo">
        SELECT CONVERT(VARCHAR, io_time, 23) AS boundDate, SUM(anfme) AS outBoundNum
        FROM asr_wrkout_view
        WHERE io_time BETWEEN #{startTime} AND #{endTime}
<!--        <if test="areaId != null">-->
<!--            and area_id = #{areaId}-->
<!--        </if>-->
        GROUP BY CONVERT(VARCHAR, io_time, 23)
    </select>
 
    <select id="recentDetainMat" resultType="com.zy.asrs.entity.digitaltwin.DtDetainMatVo">
        SELECT *
        FROM (
                 SELECT
                     ROW_NUMBER() OVER(ORDER BY t.inBoundTime DESC) AS rownum,
                     t.*
                 FROM (
                          SELECT
                              matnr AS matId,
                              maktx AS matName,
                              loc_no AS lokId,
                              '' AS lokName,
                              DATEDIFF(MINUTE, appe_time, GETDATE()) AS detainTime,
                              CONVERT(VARCHAR, appe_time, 126) AS inBoundTime
                          FROM asr_loc_detl
                          WHERE appe_time &lt;= #{startTime}
                      ) t
             ) a
        WHERE a.rownum BETWEEN ((#{pageIndex}-1)*#{pageSize}+1) AND (#{pageIndex}*#{pageSize})
    </select>
 
</mapper>