From f5cc69d226d73878bfb9a67b3835ff1842732ffe Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 11:15:23 +0800
Subject: [PATCH] 1.质检规则优化
---
src/main/resources/mapper/sales/ShippingInfoMapper.xml | 137 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 134 insertions(+), 3 deletions(-)
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index efe93cf..0d2dae7 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -2,21 +2,58 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sales.mapper.ShippingInfoMapper">
- <select id="listPage" resultType="com.ruoyi.sales.pojo.ShippingInfo">
+ <select id="listPage" resultType="com.ruoyi.sales.dto.ShippingInfoDto">
SELECT
s.id,
s.sales_ledger_id,
s.shipping_date,
s.shipping_car_number,
+ s.express_number,
+ s.express_company,
+ s.shipping_no,
+ s.type,
+ s.status,
s.create_time,
s.update_time,
s.create_user,
s.update_user,
s.tenant_id,
sl.sales_contract_no,
- sl.customer_name
+ s.outbound_batches,
+ pm.model as specification_model,
+ pm.unit,
+ p.product_name,
+ sl.customer_name,
+ spd.totalQuantity,
+ sor.outboundBatches,
+ pl.purchase_contract_number,
+ IFNULL(rs.total_return_num, 0) AS returnedQuantity,
+ CASE
+ WHEN IFNULL(rs.total_return_num, 0) = 0 THEN '鏃犻��璐�'
+ WHEN IFNULL(rs.total_return_num, 0) >= spd.totalQuantity THEN '鍏ㄩ儴閫�璐�'
+ ELSE '閮ㄥ垎閫�璐�'
+ END AS returnStatus
FROM shipping_info s
+ LEFT JOIN (select shipping_info_id,sum(quantity) totalQuantity from shipping_product_detail GROUP BY shipping_info_id) spd ON spd.shipping_info_id = s.id
LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
+ LEFT JOIN purchase_ledger pl ON sl.purchase_ledger_id = pl.id
+ LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id and slp.type = 1
+ left join product_model pm on slp.product_model_id = pm.id
+ left join product p on pm.product_id = p.id
+ left join (select record_id,GROUP_CONCAT(outbound_batches SEPARATOR ',') AS outboundBatches
+ from stock_out_record
+ where record_type='13'and approval_status=1
+ group by record_id)sor on sor.record_id= s.id
+ LEFT JOIN (
+ SELECT
+ si.id AS shipping_info_id,
+ SUM(rsp.num) AS total_return_num
+ FROM return_sale_product rsp
+ LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
+ LEFT JOIN shipping_info si ON si.id = rm.shipping_id
+ WHERE rm.status = 1
+ GROUP BY si.id
+ ) rs ON rs.shipping_info_id = s.id
WHERE 1=1
<if test="req.salesContractNo != null and req.salesContractNo != ''">
AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
@@ -24,6 +61,16 @@
<if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
</if>
+ <if test="req.shippingNo != null and req.shippingNo != ''">
+ AND s.shipping_no LIKE CONCAT('%',#{req.shippingNo},'%')
+ </if>
+ <if test="req.expressNumber != null and req.expressNumber != ''">
+ AND s.express_number LIKE CONCAT('%',#{req.expressNumber},'%')
+ </if>
+ <if test="req.customerId != null">
+ AND sl.customer_id = #{req.customerId}
+ </if>
+ order by create_time DESC
</select>
<select id="listAll" resultType="com.ruoyi.sales.pojo.ShippingInfo">
SELECT
@@ -41,4 +88,88 @@
FROM shipping_info s
LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
</select>
-</mapper>
\ No newline at end of file
+ <select id="getReturnManagementDtoById" resultType="com.ruoyi.procurementrecord.bean.vo.ShippingProductVo">
+ SELECT distinct
+ sor.id,
+ slp.product_category,
+ slp.specification_model,
+ slp.unit,
+ slp.product_model_id,
+ sor.outbound_batches,
+ sor.stock_out_num,
+ sor.batch_no,
+ slp.tax_inclusive_unit_price,
+ GREATEST(sor.stock_out_num - COALESCE(rs.total_return_num, 0), 0) AS un_quantity,
+ COALESCE(rs.total_return_num, 0) AS total_return_num
+ FROM shipping_info si
+ LEFT JOIN shipping_product_detail spd ON spd.shipping_info_id = si.id
+ LEFT JOIN stock_out_record sor ON sor.record_id = si.id and sor.record_type = '13'
+ LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id and slp.type = 1
+ LEFT JOIN (
+ SELECT
+ stock_out_record_id,
+ SUM(num) AS total_return_num
+ FROM return_sale_product rsp
+ left join return_management rm on rm.id = rsp.return_management_id
+ left join shipping_info si on si.id = rm.shipping_id
+ WHERE 1=1
+ GROUP BY stock_out_record_id
+ ) rs ON rs.stock_out_record_id = sor.id
+ <where>
+ <if test="shippingId != null">
+ si.id = #{shippingId}
+ </if>
+ </where>
+ order by sor.id
+ </select>
+ <select id="getShippingInfoByCustomerName" resultType="com.ruoyi.sales.pojo.ShippingInfo">
+ select * from shipping_info si
+ left join sales_ledger sl on si.sales_ledger_id = sl.id
+ where sl.customer_name = #{customerName}
+ </select>
+
+ <!-- 閿�鍞��璐х敤锛氭煡璇㈠彂璐т俊鎭惈鎵规鍙� -->
+ <select id="getShippingInfoForReturn" resultType="com.ruoyi.sales.vo.ShippingInfoForReturnVo">
+ SELECT
+ si.id AS shippingId,
+ si.shipping_no AS shippingNo,
+ sl.sales_contract_no AS salesContractNo,
+ sl.customer_name AS customerName,
+ IFNULL(p.product_name, slp.product_category) AS productName,
+ IFNULL(pm.model, slp.specification_model) AS model,
+ sor.stock_out_num AS shippingQuantity,
+ IFNULL(rs.total_return_num, 0) AS returnedQuantity,
+ CASE
+ WHEN IFNULL(rs.total_return_num, 0) = 0 THEN '鏃犻��璐�'
+ WHEN IFNULL(rs.total_return_num, 0) >= sor.stock_out_num THEN '鍏ㄩ儴閫�璐�'
+ ELSE '閮ㄥ垎閫�璐�'
+ END AS returnStatus,
+ sor.batch_no AS batchNo,
+ si.shipping_car_number AS shippingCarNumber,
+ si.create_time AS createTime,
+ CONCAT(
+ IFNULL(sor.batch_no, ''),
+ '-',
+ IFNULL(si.shipping_car_number, ''),
+ '-',
+ DATE_FORMAT(si.create_time, '%Y-%m-%d')
+ ) AS displayLabel
+ FROM shipping_info si
+ LEFT JOIN sales_ledger sl ON si.sales_ledger_id = sl.id
+ LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id AND slp.type = 1
+ LEFT JOIN product_model pm ON slp.product_id = pm.id
+ LEFT JOIN product p ON pm.product_id = p.id
+ LEFT JOIN stock_out_record sor ON sor.record_id = si.id AND sor.record_type = '13' AND sor.approval_status = 1
+ LEFT JOIN (
+ SELECT
+ stock_out_record_id,
+ SUM(num) AS total_return_num
+ FROM return_sale_product rsp
+ LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
+ WHERE rm.status = 1
+ GROUP BY stock_out_record_id
+ ) rs ON rs.stock_out_record_id = sor.id
+ WHERE sl.customer_name = #{customerName}
+ ORDER BY si.create_time DESC
+ </select>
+</mapper>
--
Gitblit v1.9.3