李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
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
<?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.chinaztt.mes.production.mapper.OperationTaskMaterialMapper">
 
    <resultMap id="operationTaskMaterialDtoMap" type="com.chinaztt.mes.production.dto.OperationTaskMaterialDTO">
        <id property="id" column="id"/>
        <result property="operationTaskId" column="operation_task_id"/>
        <result property="partId" column="part_id"/>
        <result property="qpa" column="qpa"/>
        <result property="quantityRequired" column="quantity_required"/>
        <result property="quantityIssued" column="quantity_issued"/>
        <result property="partNo" column="part_no"/>
        <result property="partBatchNo" column="part_batch_no"/>
        <result property="partName" column="part_name"/>
        <result property="optaskNo" column="optask_no"/>
        <result property="reservedQuantity" column="reserved_quantity"/>
        <result property="unit" column="unit"/>
        <!--<result property="quantityTobereserved" column="quantity_tobereserved"/>-->
 
 
    </resultMap>
    <select id="getMaterial" resultMap="operationTaskMaterialDtoMap">
        SELECT
            *
        FROM (SELECT
                  potm.*,
                  bp.part_no,
                  bp.part_name,
                  bp.unit,
                  (SELECT COALESCE(SUM(wjso.reserved_quantity), 0)
                   FROM
                       production_operation_task pot
                           LEFT JOIN warehouse_join_stock_order wjso ON wjso.operation_task_id = pot."id"
                           AND wjso.status = '02confirmed'
                   WHERE
                       pot."id" = potm.operation_task_id
                     and wjso.part_no = bp.part_no
                  ) reserved_quantity
              FROM
                  production_operation_task_material potm
                      LEFT JOIN basic_part bp ON bp."id" = potm.part_id
             ) tempA
        <if test="ew.emptyOfWhere == false">
            ${ew.customSqlSegment}
        </if>
    </select>
 
    <select id="pdaMaterial" resultType="com.alibaba.fastjson.JSONObject">
        select
            optask_no         "optaskNo",
            qpa,
            quantity_required "quantityRequired",
            part_no           "partNo",
            part_name         "partName"
        from (select
                  pot."id",
                  pot.optask_no,
                  potm.qpa,
                  potm.quantity_required,
                  bp.part_no,
                  bp.part_name
              from production_operation_task pot
                       left join production_operation_task_material potm on pot."id" = potm.operation_task_id
                       left join basic_part bp on bp."id" = potm.part_id
             ) tempA
        <if test="ew.emptyOfWhere == false">
            <where>
                ${ew.SqlSegment}
            </where>
        </if>
        order by "id" desc
    </select>
 
    <select id="getOperationMaterialById" resultMap="operationTaskMaterialDtoMap">
        SELECT
            A.*,
            B.optask_no,
            C.part_no,
            C.part_name
        FROM
            production_operation_task_material A
                LEFT JOIN production_operation_task B ON B.ID = A.operation_task_id
                LEFT JOIN basic_part C ON C.ID = A.part_id
        WHERE
            A.operation_task_id = #{id}
    </select>
 
    <select id="getOperationMaterialByMaterialId" resultMap="operationTaskMaterialDtoMap">
        SELECT
            A.*,
            B.optask_no,
            C.part_no,
            C.part_name
        FROM
            production_operation_task_material A
                LEFT JOIN production_operation_task B ON B.ID = A.operation_task_id
                LEFT JOIN basic_part C ON C.ID = A.part_id
        WHERE
            A.id = #{id}
    </select>
 
 
 
    <select id="getOperationMaterialByIds" resultType="com.chinaztt.mes.production.dto.OperationTaskMaterialDTO">
        SELECT
            pota.*,
            bp.part_name,
            bp.part_no,
            bp.unit,
            pot.optask_no
        FROM
            production_operation_task_material pota
                LEFT JOIN basic_part bp ON pota.part_id = bp."id"
                LEFT JOIN production_operation_task pot ON pot."id" = pota.operation_task_id
        WHERE bp.planning_method = 'A' AND bp.material_type = '3' AND pota.operation_task_id IN
        <foreach collection="ids" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </select>
</mapper>