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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +