zss
4 天以前 62e9b968c6f6a624b8d633c3c9551f1c814ea6e4
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
<?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.ProductionProductMainMapper">
 
    <resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductionProductMain">
        <id property="id" column="id"/>
        <result property="productNo" column="product_no"/>
        <result property="userId" column="user_id"/>
        <result property="workOrderId" column="work_order_id"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="createTime" column="create_time"/>
        <result property="status" column="status"/>
        <result property="postName" column="post_name"/>
        <result property="schedule" column="schedule"/>
        <result property="reportingTime" column="reporting_time"/>
    </resultMap>
 
    <select id="listPageProductionProductMainDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
        select ppm.*,
        ppm.post_name as postName,
        po.nps_no as npsNo,
        po.strength as strength,
        pms.material_code as materialCode,
        pm.product_name as productName,
        pms.model as productModelName,
        IFNULL(ppo.total_quantity, 0) as totalQuantity,
        IFNULL(ppo.scrap_qty, 0) as scrapQty,
        IFNULL(ppo.quantity, 0) as quantity
        from
        production_product_main ppm
        left join production_product_output ppo on ppo.product_main_id = ppm.id
        left join product_order po on po.id = ppm.product_order_id
        left join product_order_plan pop on po.id = pop.product_order_id
        left join production_plan pp on pop.production_plan_id = pp.id
        left join product_material_sku pms on pp.product_material_sku_id = pms.id
        left join product_material pm on pm.id = pms.product_id
        <where>
            <if test="c.npsNo != null and c.npsNo != ''">
                AND po.nps_no like concat('%', #{c.npsNo}, '%')
            </if>
            <if test="c.schedule != null and c.schedule != ''">
                AND ppm.schedule like concat('%', #{c.schedule}, '%')
            </if>
            <if test="c.productName != null and c.productName != ''">
                AND pm.product_name like concat('%', #{c.productName}, '%')
            </if>
        </where>
        order by ppm.id desc
    </select>
 
    <select id="getOrderByMainId" resultType="com.ruoyi.production.pojo.ProductOrder">
        select po.*
        from product_order po
                 left join product_work_order pwo on po.id = pwo.product_order_id
                 left join production_product_main pm on work_order_id = pwo.id
        where pm.id = #{productMainId}
    </select>
    <select id="listProductionDetails" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
        SELECT
        slpa.scheduling_date,
        slpa.scheduling_user_name,
        sl.sales_contract_no,
        sl.customer_name,
        p.product_name,
        pm.model as product_model_name,
        pm.unit,
        slpa.process,
        ppo.quantity,
        slpa.work_hours,
        slpa.work_hours * slpa.finished_num AS wages
        FROM
        production_product_main ppm
        LEFT JOIN sales_ledger_production_accounting slpa ON slpa.product_main_id = ppm.id
        LEFT JOIN production_product_output ppo ON ppm.id = ppo.product_main_id
        LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
        LEFT JOIN product_order po ON po.id = pwo.product_order_id
        LEFT JOIN process_route pr ON pr.id = po.route_id
        LEFT JOIN product_model pm ON po.product_model_id = pm.id
        LEFT JOIN product p ON p.id = pm.product_id
        LEFT JOIN sales_ledger sl ON po.sales_ledger_id = sl.id
        <where>
            <if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
                and slpa.scheduling_user_name = #{ew.schedulingUserName}
            </if>
            <if test="ew.entryDate != null ">
                and slpa.scheduling_date >= #{ew.entryDate}
                and slpa.scheduling_date &lt; DATE_ADD(#{ew.entryDate}, INTERVAL 1 DAY)
            </if>
            <if test="ew.entryDateStart != null and ew.entryDateEnd != null">
                and slpa.scheduling_date >= #{ew.entryDateStart}
                and slpa.scheduling_date &lt; date_add(#{ew.entryDateEnd}, INTERVAL 1 DAY)
            </if>
        </where>
    </select>
    <select id="listMain" resultType="java.lang.Long">
        SELECT ppm.id FROM production_product_main ppm
        left join product_work_order pwo on pwo.id = ppm.work_order_id
        left join product_order po on po.id = pwo.product_order_id
        left join sales_ledger sl on sl.id = po.sales_ledger_id
        <where>
            <if test="idList != null and idList.size() > 0">
                and sl.id in
                <foreach item="id" collection="idList" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>
    </select>
    <select id="selectProductionProductMainDto"
            resultType="com.ruoyi.production.dto.ProductionProductMainDto">
        SELECT ppm.id,
        ppm.product_no,
        ppm.post_name,
        ppm.schedule,
        ppm.reporting_time,
        ppo.quantity,
        ppo.scrap_qty,
        ppo.total_quantity
        FROM production_product_main ppm
        left join production_product_output ppo on ppm.id = ppo.product_main_id
        WHERE product_order_id=#{productOrderId}
        order by reporting_time
    </select>
 
    <delete id="deleteByWorkOrderIds" parameterType="java.util.List">
        DELETE FROM production_product_main
        WHERE work_order_id IN
        <foreach collection="workOrderIds" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>