zouyu
2026-01-16 f605b84620bf35bb02a2ee5ef2086c164b520e67
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
<?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.ruoyi.production.mapper.ProductionOrderMapper">
 
    <select id="selectFinishProduced" resultType="java.lang.Double">
        SELECT
            IFNULL(SUM( finished_num ),0) finished_num
        FROM
            sales_ledger_production_accounting
        <where>
            <if test="startTime !=null and endTime!=null">
                AND create_time BETWEEN #{startTime} AND #{endTime}
            </if>
        </where>
    </select>
    <select id="selectTotalWorkhours" resultType="java.lang.Double">
        SELECT
        IFNULL(SUM( work_hours ),0) finished_num
        FROM
        sales_ledger_production_accounting
        <where>
            <if test="startTime !=null and endTime!=null">
                AND create_time BETWEEN #{startTime} AND #{endTime}
            </if>
        </where>
    </select>
    <select id="selectProductData" resultType="java.util.Map">
        select
            SUM(CASE WHEN `status`=1 THEN scheduling_num ELSE 0 END) AS tobeProduced,
            SUM(CASE WHEN `status`=2 THEN (scheduling_num-finished_num) ELSE 0 END) AS inProduced,
            SUM(CASE WHEN `status`=3 THEN finished_num ELSE 0 END) AS finishProduced
        from sales_ledger_work
        <where>
            <if test="startTime !=null and endTime!=null">
                AND create_time BETWEEN #{startTime} AND #{endTime}
            </if>
        </where>
    </select>
    <select id="selectWorkhoursReport" resultType="java.util.Map">
        select
        SUM(work_hours) AS workHours,
        process
        from sales_ledger_production_accounting
        <where>
            <if test="startTime !=null and endTime!=null">
                AND create_time BETWEEN #{startTime} AND #{endTime}
            </if>
        </where>
        GROUP BY process
    </select>
 
</mapper>