diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ReverseTraceController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ReverseTraceController.java
index 205d95cd..232e4757 100644
--- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ReverseTraceController.java
+++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ReverseTraceController.java
@@ -1,7 +1,6 @@
package org.dromara.mes.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
-import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController;
@@ -31,7 +30,7 @@ import java.util.List;
@Validated
@RequiredArgsConstructor
@RestController
-@RequestMapping("/mes/reverseTrace")
+@RequestMapping("/reverseTrace")
public class ReverseTraceController extends BaseController {
private final IReverseTraceService reverseTraceService;
diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapper.xml
index f789c757..d3bd7842 100644
--- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapper.xml
+++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapper.xml
@@ -6,20 +6,32 @@
@@ -136,12 +211,15 @@
SELECT 1 FROM wms_instock_record wir
WHERE RTRIM(LTRIM(ISNULL(wir.batch_code, ''))) = RTRIM(LTRIM(#{batchCode}))
) THEN N'已入库'
- WHEN EXISTS (
- SELECT 1 FROM qc_inspection_main qim
- WHERE qim.batch_no = #{batchCode}
- AND qim.del_flag = '0'
- AND qim.result = '0'
- ) THEN N'已质检'
+ WHEN EXISTS (
+ SELECT 1 FROM qc_inspection_main qim
+ WHERE (
+ RTRIM(LTRIM(ISNULL(qim.batch_no, ''))) = RTRIM(LTRIM(#{batchCode}))
+ OR RTRIM(LTRIM(ISNULL(qim.barcode, ''))) = RTRIM(LTRIM(#{batchCode}))
+ )
+ AND qim.del_flag = '0'
+ AND qim.result = '0'
+ ) THEN N'已质检'
ELSE N'生产完成'
END AS status
FROM prod_plan_info_4 p
@@ -170,12 +248,15 @@
SELECT 1 FROM wms_instock_record wir
WHERE RTRIM(LTRIM(ISNULL(wir.batch_code, ''))) = RTRIM(LTRIM(#{batchCode}))
) THEN N'已入库'
- WHEN EXISTS (
- SELECT 1 FROM qc_inspection_main qim
- WHERE qim.batch_no = #{batchCode}
- AND qim.del_flag = '0'
- AND qim.result = '0'
- ) THEN N'已质检'
+ WHEN EXISTS (
+ SELECT 1 FROM qc_inspection_main qim
+ WHERE (
+ RTRIM(LTRIM(ISNULL(qim.batch_no, ''))) = RTRIM(LTRIM(#{batchCode}))
+ OR RTRIM(LTRIM(ISNULL(qim.barcode, ''))) = RTRIM(LTRIM(#{batchCode}))
+ )
+ AND qim.del_flag = '0'
+ AND qim.result = '0'
+ ) THEN N'已质检'
ELSE N'生产完成'
END AS status
FROM prod_plan_info p
@@ -203,14 +284,14 @@
c.address AS deliveryAddress,
CONVERT(VARCHAR(19), COALESCE(wor.create_time, wso.audit_time), 120) AS outboundTime,
CONVERT(VARCHAR(32), wor.outstock_qty) AS outboundQty,
- wso.outstock_code AS invoiceNo
+ COALESCE(wso.outstock_code, wor.outstock_code) AS invoiceNo
FROM wms_outstock_record wor
- INNER JOIN wms_outstock_order wso
+ LEFT JOIN wms_outstock_order wso
ON wso.outstock_id = wor.outstock_id
LEFT JOIN wms_base_customer c
- ON c.customer_id = wso.customer_id
+ ON c.customer_id = COALESCE(wso.customer_id, wor.customer_id)
WHERE RTRIM(LTRIM(ISNULL(wor.batch_code, ''))) = RTRIM(LTRIM(#{batchCode}))
- ORDER BY wor.create_time DESC
+ ORDER BY COALESCE(wor.create_time, wso.audit_time) DESC
@@ -218,7 +299,11 @@
SELECT TOP 1
qim.inspection_id AS inspectionId,
qim.inspection_no AS qcCode,
- qim.batch_no AS batchCode,
+ COALESCE(
+ NULLIF(RTRIM(LTRIM(qim.batch_no)), ''),
+ NULLIF(RTRIM(LTRIM(qim.barcode)), ''),
+ #{batchCode}
+ ) AS batchCode,
qim.material_code AS productCode,
qim.material_name AS productName,
CAST(NULL AS VARCHAR(200)) AS spec,
@@ -233,7 +318,10 @@
FROM qc_inspection_main qim
LEFT JOIN qc_inspection_type qit
ON qit.type_id = qim.inspection_type AND qit.del_flag = '0'
- WHERE qim.batch_no = #{batchCode}
+ WHERE (
+ RTRIM(LTRIM(ISNULL(qim.batch_no, ''))) = RTRIM(LTRIM(#{batchCode}))
+ OR RTRIM(LTRIM(ISNULL(qim.barcode, ''))) = RTRIM(LTRIM(#{batchCode}))
+ )
AND qim.del_flag = '0'
ORDER BY qim.inspection_end_time DESC, qim.create_time DESC
@@ -323,7 +411,8 @@
SELECT TOP 1
p4.product_order_id,
p4.plan_id,
- p4.plan_code
+ p4.plan_code,
+ p4.tenant_id AS tenant_id
FROM prod_plan_info_4 p4
WHERE p4.product_order_id = #{productOrderId}
ORDER BY p4.create_time DESC, p4.plan_id DESC
@@ -537,7 +626,8 @@
pis.production_barcode,
pis.input_barcode,
pis.materiel_id,
- pis.feeding_time
+ pis.feeding_time,
+ pis.tenant_id
FROM prod_input_scan_info pis
WHERE RTRIM(LTRIM(ISNULL(pis.production_barcode, ''))) = RTRIM(LTRIM(#{productionBarcode}))
),
@@ -545,12 +635,19 @@
SELECT
qim.inspection_id,
qim.inspection_no,
- qim.batch_no,
+ COALESCE(
+ NULLIF(RTRIM(LTRIM(qim.batch_no)), ''),
+ NULLIF(RTRIM(LTRIM(qim.barcode)), '')
+ ) AS traceBatch,
qim.material_code,
qim.supplier_name,
qim.result,
+ qim.tenant_id,
ROW_NUMBER() OVER (
- PARTITION BY qim.batch_no, qim.material_code
+ PARTITION BY COALESCE(
+ NULLIF(RTRIM(LTRIM(qim.batch_no)), ''),
+ NULLIF(RTRIM(LTRIM(qim.barcode)), '')
+ ), qim.material_code
ORDER BY qim.inspection_end_time DESC, qim.create_time DESC
) AS rn
FROM qc_inspection_main qim
@@ -560,9 +657,10 @@
SELECT
wor.batch_code,
wor.material_id,
+ wor.tenant_id,
SUM(wor.outstock_qty) AS outstock_qty
FROM wms_outstock_record wor
- GROUP BY wor.batch_code, wor.material_id
+ GROUP BY wor.batch_code, wor.material_id, wor.tenant_id
)
SELECT
ir.production_barcode AS productionBarcode,
@@ -572,7 +670,7 @@
ir.input_barcode AS batchCode,
ql.supplier_name AS supplier,
CONVERT(VARCHAR(32), os.outstock_qty) AS qty,
- mu.unit_name AS unit,
+ COALESCE(mu.unit_name, bmi.material_unit) AS unit,
CONVERT(VARCHAR(19), ir.feeding_time, 120) AS inTime,
ql.inspection_no AS qcCode,
CASE ql.result
@@ -585,9 +683,10 @@
LEFT JOIN base_material_info bmi
ON bmi.material_id = ir.materiel_id AND bmi.del_flag = '0'
LEFT JOIN base_measurement_unit_info mu
- ON mu.unit_id = bmi.unit_id
+ -- 这里优先按物料主数据真实字段 material_unit_id 关联,避免旧口径 unit_id 在当前库中不存在导致 SQL 失败
+ ON mu.unit_id = bmi.material_unit_id
LEFT JOIN qc_latest ql
- ON ql.batch_no = ir.input_barcode
+ ON ql.traceBatch = RTRIM(LTRIM(ir.input_barcode))
AND ql.material_code = bmi.material_code
AND ql.rn = 1
LEFT JOIN outstock_sum os
diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapperBackUp.txt b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapperBackUp.txt
new file mode 100644
index 00000000..f789c757
--- /dev/null
+++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ReverseTraceMapperBackUp.txt
@@ -0,0 +1,599 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+