From 1ec3b6f73b1ee8b81d8c6583c38ffdf5ea52ed56 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 29 九月 2026 14:29:08 +0800
Subject: [PATCH] 新疆-融邦 1.协同办公-协同审批:采购及销售审批进入销售流程后也可预览在台账上传的附件
---
src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml | 105 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 94 insertions(+), 11 deletions(-)
diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
index a5314fd..fa6d51f 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
@@ -8,6 +8,10 @@
<result column="no" property="no" />
<result column="return_type" property="returnType" />
<result column="supplier_id" property="supplierId" />
+ <result column="shipping_type" property="shippingType" />
+ <result column="truck_plate_no" property="truckPlateNo" />
+ <result column="express_company" property="expressCompany" />
+ <result column="express_no" property="expressNo" />
<result column="project_id" property="projectId" />
<result column="project_phase" property="projectPhase" />
<result column="prepared_at" property="preparedAt" />
@@ -22,7 +26,18 @@
SELECT
pro.*,
sm.supplier_name as supplier_name,
- pl.purchase_contract_number as purchase_contract_number
+ pl.purchase_contract_number as purchase_contract_number,
+ CASE
+ WHEN EXISTS (
+ SELECT 1
+ FROM purchase_return_order_products prop
+ INNER JOIN stock_out_record sor ON sor.record_id = prop.id
+ AND sor.record_type = '9'
+ AND sor.approval_status = 1
+ WHERE prop.purchase_return_order_id = pro.id
+ ) THEN 1
+ ELSE 0
+ END AS stock_out_approved
FROM purchase_return_orders pro
LEFT JOIN supplier_manage sm ON pro.supplier_id = sm.id
LEFT JOIN purchase_ledger pl ON pl.id = pro.purchase_ledger_id
@@ -59,6 +74,10 @@
pro.no returnNo,
t.inboundBatches,
sm.supplier_name,
+ pro.shipping_type,
+ pro.truck_plate_no,
+ pro.express_company,
+ pro.express_no,
pro.prepared_at,
pro.total_amount,
CASE pro.return_type WHEN 0 THEN '閫�璐ч��娆�' WHEN 1 THEN '鎷掓敹' END AS returnType,
@@ -100,8 +119,14 @@
sir.stock_in_num,
sir.batch_no,
slp.tax_inclusive_unit_price,
- GREATEST(sir.stock_in_num - COALESCE(rs.total_return_num, 0), 0) AS un_quantity,
- COALESCE(rs.total_return_num, 0) AS total_return_num
+ GREATEST(
+ sir.stock_in_num
+ - COALESCE(rs.total_return_num, 0)
+ - COALESCE(so.total_sale_out_num, 0),
+ 0
+ ) AS un_quantity,
+ COALESCE(rs.total_return_num, 0) AS total_return_num,
+ COALESCE(so.total_sale_out_num, 0) AS saleOutQuantity
FROM stock_in_record sir
LEFT JOIN quality_inspect qi ON sir.record_type = 10 AND sir.record_id = qi.id
LEFT JOIN purchase_ledger pl
@@ -119,6 +144,46 @@
WHERE 1=1
GROUP BY stock_in_record_id
) rs ON rs.stock_in_record_id = sir.id
+ LEFT JOIN (
+ <!-- 宸查攢鍞暟閲忥細鈶� 鎵嬪伐鍙戣揣鍗曞嚭搴撲粛璧� shipping_product_detail锛�
+ 鈶� 娌瑰搧鍑哄簱涓嶅啀浜� shipping_product_detail锛屾敼鎸夈�屽嚭搴撳崟鐨勮鏍�+鎵规銆嶅涓婇噰璐叆搴撴壒娆★紝
+ 姹囨�荤粦瀹氳鐨勫垎鎽婃暟閲忥紙涓�涓嚭搴撳崟缁戝涓彴璐︽椂锛岀粦瀹氳鏁伴噺涔嬪拰=鏁村崟鍑哄簱閲忥級 -->
+ SELECT
+ x.batch_no,
+ x.product_model_id,
+ SUM(x.total_sale_out_num) AS total_sale_out_num
+ FROM (
+ SELECT
+ inv.batch_no,
+ inv.product_model_id,
+ SUM(spd.quantity) AS total_sale_out_num
+ FROM shipping_product_detail spd
+ INNER JOIN shipping_info si
+ ON si.id = spd.shipping_info_id
+ INNER JOIN stock_out_record sor
+ ON sor.record_id = si.id
+ AND sor.record_type = '13'
+ AND sor.approval_status IN (0, 1, 3)
+ INNER JOIN stock_inventory inv
+ ON inv.id = spd.stock_inventory_id
+ GROUP BY inv.batch_no, inv.product_model_id
+
+ UNION ALL
+
+ SELECT
+ sor.batch_no,
+ sor.product_model_id,
+ SUM(b.quantity) AS total_sale_out_num
+ FROM stock_out_record_sales_ledger b
+ INNER JOIN stock_out_record sor
+ ON sor.id = b.stock_out_record_id
+ AND sor.approval_status IN (0, 1, 3)
+ AND (sor.type IS NULL OR sor.type = '')
+ GROUP BY sor.batch_no, sor.product_model_id
+ ) x
+ GROUP BY x.batch_no, x.product_model_id
+ ) so ON so.product_model_id = sir.product_model_id
+ AND (so.batch_no = sir.batch_no OR (so.batch_no IS NULL AND sir.batch_no IS NULL))
WHERE sir.approval_status = 1
AND sir.record_type IN ('7','10')
and pl.id = #{purchaseLedgerId}
@@ -138,8 +203,14 @@
slp.tax_inclusive_unit_price,
prop.return_quantity,
prop.purchase_return_order_id,
- GREATEST(sir.stock_in_num - COALESCE(rs1.total_return_num1, 0), 0) AS un_quantity,
- COALESCE(rs.total_return_num, 0) AS total_return_num
+ GREATEST(
+ sir.stock_in_num
+ - COALESCE(rs.total_return_num, 0)
+ - COALESCE(so.total_sale_out_num, 0),
+ 0
+ ) AS un_quantity,
+ COALESCE(rs.total_return_num, 0) AS total_return_num,
+ COALESCE(so.total_sale_out_num, 0) AS saleOutQuantity
from purchase_return_order_products prop
left join purchase_return_orders pro on prop.purchase_return_order_id = pro.id
LEFT JOIN stock_in_record sir ON prop.stock_in_record_id = sir.id and sir.record_type in ('7','10')
@@ -147,13 +218,25 @@
LEFT JOIN (SELECT stock_in_record_id,
SUM(return_quantity) AS total_return_num
FROM purchase_return_order_products
- WHERE 1 = 1 and purchase_return_order_id = #{id}
+ WHERE 1 = 1
GROUP BY stock_in_record_id) rs ON rs.stock_in_record_id = sir.id
- LEFT JOIN (SELECT stock_in_record_id,
- SUM(return_quantity) AS total_return_num1
- FROM purchase_return_order_products
- WHERE 1 = 1 and purchase_return_order_id = #{id}
- GROUP BY stock_in_record_id) rs1 ON rs1.stock_in_record_id = sir.id
+ LEFT JOIN (
+ SELECT
+ inv.batch_no,
+ inv.product_model_id,
+ SUM(spd.quantity) AS total_sale_out_num
+ FROM shipping_product_detail spd
+ INNER JOIN shipping_info si
+ ON si.id = spd.shipping_info_id
+ INNER JOIN stock_out_record sor
+ ON sor.record_id = si.id
+ AND sor.record_type = '13'
+ AND sor.approval_status IN (0, 1, 3)
+ INNER JOIN stock_inventory inv
+ ON inv.id = spd.stock_inventory_id
+ GROUP BY inv.batch_no, inv.product_model_id
+ ) so ON so.product_model_id = sir.product_model_id
+ AND (so.batch_no = sir.batch_no OR (so.batch_no IS NULL AND sir.batch_no IS NULL))
where pro.id = #{id}
</select>
</mapper>
--
Gitblit v1.9.3