MesQcPendingInspectMapper.xml
7.91 KB
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?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="cn.iocoder.yudao.module.mes.dal.mysql.qc.pendinginspect.MesQcPendingInspectMapper">
<!--
待检任务查询(UNION ALL 多来源),已实现的来源:
1. 到货通知单(IQC):状态=待质检(2),行的 iqc_check_flag=1 且 iqc_id IS NULL
2. 外协入库单(IQC/OIQC):状态=待检验(1),行的 iqc_check=1 且 iqc_id IS NULL
3. 生产报工(IPQC):状态=待检验(3)
4. 销售出库单(OQC):行的 oqc_check=1 且 oqc_id IS NULL
5. 生产退料单(RQC):状态=待检验(5),行的 qc_flag=1 且 quality_status=0(待检)
6. 销售退货单(RQC):状态=待执行(10),行的 quality_status=0(待检)
-->
<select id="selectQcPendingPage" resultType="cn.iocoder.yudao.module.mes.controller.admin.qc.pendinginspect.vo.MesQcPendingInspectRespVO">
SELECT * FROM (
<!-- 1. IQC 来源:到货通知单 -->
SELECT
n.id AS sourceDocId,
${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@WM_ARRIVAL_NOTICE} AS sourceDocType,
n.code AS sourceDocCode,
l.id AS sourceLineId,
n.arrival_date AS recordTime,
${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@IQC.type} AS qcType,
l.item_id AS itemId,
l.arrival_quantity AS quantity,
n.vendor_id AS vendorId,
NULL AS workOrderId,
NULL AS workstationId,
NULL AS taskId,
NULL AS clientId
FROM mes_wm_arrival_notice n
JOIN mes_wm_arrival_notice_line l ON n.id = l.notice_id
WHERE n.status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmArrivalNoticeStatusEnum@PENDING_QC.status}
AND l.iqc_check_flag = 1
AND l.iqc_id IS NULL
AND n.deleted = 0
AND l.deleted = 0
UNION ALL
<!-- 2. IQC 来源:外协入库单 -->
SELECT
r.id AS sourceDocId,
${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@WM_OUTSOURCE_RECPT} AS sourceDocType,
r.code AS sourceDocCode,
rl.id AS sourceLineId,
r.receipt_date AS recordTime,
${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@IQC.type} AS qcType,
rl.item_id AS itemId,
rl.quantity AS quantity,
r.vendor_id AS vendorId,
NULL AS workOrderId,
NULL AS workstationId,
NULL AS taskId,
NULL AS clientId
FROM mes_wm_outsource_receipt r
JOIN mes_wm_outsource_receipt_line rl ON r.id = rl.receipt_id
WHERE r.status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmOutsourceReceiptStatusEnum@CONFIRMED.status}
AND rl.iqc_check = 1
AND rl.iqc_id IS NULL
AND r.deleted = 0
AND rl.deleted = 0
UNION ALL
<!-- 3. IPQC 来源:生产报工(状态=待检验) -->
SELECT
f.id AS sourceDocId,
${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@PRO_FEEDBACK} AS sourceDocType,
f.code AS sourceDocCode,
NULL AS sourceLineId,
f.feedback_time AS recordTime,
${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@IPQC.type} AS qcType,
f.item_id AS itemId,
f.uncheck_quantity AS quantity,
NULL AS vendorId,
f.work_order_id AS workOrderId,
f.workstation_id AS workstationId,
f.task_id AS taskId,
NULL AS clientId
FROM mes_pro_feedback f
WHERE f.status = ${@cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum@UNCHECK.status}
AND f.deleted = 0
UNION ALL
<!-- 4. OQC 来源:销售出库单行(oqc_check=1 且 oqc_id IS NULL) -->
SELECT
s.id AS sourceDocId,
${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@WM_PRODUCT_SALES} AS sourceDocType,
s.code AS sourceDocCode,
sl.id AS sourceLineId,
s.sales_date AS recordTime,
${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@OQC.type} AS qcType,
sl.item_id AS itemId,
sl.quantity AS quantity,
NULL AS vendorId,
NULL AS workOrderId,
NULL AS workstationId,
NULL AS taskId,
s.client_id AS clientId
FROM mes_wm_product_sales s
JOIN mes_wm_product_sales_line sl ON s.id = sl.sales_id
WHERE sl.oqc_check = 1
AND sl.oqc_id IS NULL
AND s.deleted = 0
AND sl.deleted = 0
UNION ALL
<!-- 5. RQC 来源:生产退料单行(状态=待检验,行的 qc_flag=1 且 quality_status=0) -->
SELECT
ri.id AS sourceDocId,
${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@WM_RETURN_ISSUE} AS sourceDocType,
ri.code AS sourceDocCode,
ril.id AS sourceLineId,
ri.return_date AS recordTime,
${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@RQC.type} AS qcType,
ril.item_id AS itemId,
ril.quantity AS quantity,
NULL AS vendorId,
ri.work_order_id AS workOrderId,
ri.workstation_id AS workstationId,
NULL AS taskId,
NULL AS clientId
FROM mes_wm_return_issue ri
JOIN mes_wm_return_issue_line ril ON ri.id = ril.issue_id
WHERE ri.status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmReturnIssueStatusEnum@CONFIRMED.status}
AND ril.qc_flag = 1
AND ril.quality_status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum@PENDING.status}
AND ri.deleted = 0
AND ril.deleted = 0
UNION ALL
<!-- 6. RQC 来源:销售退货单(待检验(CONFIRMED),行的 quality_status=0) -->
SELECT
r.id AS sourceDocId,
${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@WM_RETURN_SALES} AS sourceDocType,
r.code AS sourceDocCode,
rl.id AS sourceLineId,
r.return_date AS recordTime,
${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@RQC.type} AS qcType,
rl.item_id AS itemId,
rl.quantity AS quantity,
NULL AS vendorId,
NULL AS workOrderId,
NULL AS workstationId,
NULL AS taskId,
r.client_id AS clientId
FROM mes_wm_return_sales r
JOIN mes_wm_return_sales_line rl ON r.id = rl.return_id
WHERE r.status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmReturnSalesStatusEnum@CONFIRMED.status}
AND rl.qc_flag = 1
AND rl.quality_status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum@PENDING.status}
AND r.deleted = 0
AND rl.deleted = 0
) t
<where>
<if test="sourceDocCode != null and sourceDocCode != ''">
AND t.sourceDocCode LIKE CONCAT('%', #{sourceDocCode}, '%')
</if>
<if test="qcType != null">
AND t.qcType = #{qcType}
</if>
<if test="itemId != null">
AND t.itemId = #{itemId}
</if>
</where>
ORDER BY t.recordTime DESC
</select>
</mapper>