From 55db6f66c093c07df100cb0e609091030c2a4925 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 24 九月 2026 09:19:20 +0800
Subject: [PATCH] feat(process): 完善检验委托单功能实现绑定和关联管理 - 实现检验委托单与成品下单的绑定功能,包括新增绑定、解除绑定和变更绑定关系 - 添加检验委托单关联状态查询和未绑定委托单筛选功能 - 实现检验委托单绑定日志记录和报告同步功能
---
cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml | 50 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 41 insertions(+), 9 deletions(-)
diff --git a/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml b/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml
index ba0c03f..2074ad2 100644
--- a/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml
+++ b/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml
@@ -5,21 +5,53 @@
<!--妫�楠屽鎵樺崟鍒嗛〉鏌ヨ-->
<select id="pageInspectionOrder" resultType="com.ruoyi.process.dto.InspectionOrderDto">
select *
- from (select *
- from cnas_inspection_order
- order by create_time desc) a
+ from (
+ select cio.*,
+ case when cio.ins_order_id is null then 0 else 1 end as binding_status,
+ io.state as order_state,
+ io.ins_result as ins_result,
+ case
+ when cio.ins_order_id is null then null
+ when total_product_counts.total_count is null or total_product_counts.total_count = 0 then '0%'
+ else concat(round(ifnull(approved_product_counts.approved_count, 0) / total_product_counts.total_count * 100, 2), '%')
+ end as ins_progress,
+ case
+ when cio.file_url is not null and trim(cio.file_url) != '' then 2
+ when approved_report.id is not null then 1
+ else 0
+ end as report_status
+ from cnas_inspection_order cio
+ left join ins_order io on cio.ins_order_id = io.id
+ left join (select max(id) as id, ins_order_id
+ from ins_report
+ where is_ratify = 1
+ group by ins_order_id) approved_report on approved_report.ins_order_id = io.id
+ left join (select ins_sample.ins_order_id, count(*) as total_count
+ from ins_product
+ join ins_sample on ins_product.ins_sample_id = ins_sample.id
+ where ins_product.state = 1
+ group by ins_sample.ins_order_id) total_product_counts on total_product_counts.ins_order_id = io.id
+ left join (select ins_sample.ins_order_id, count(*) as approved_count
+ from ins_product
+ join ins_sample on ins_product.ins_sample_id = ins_sample.id
+ where ins_product.state = 1 and ins_product.ins_result is not null
+ group by ins_sample.ins_order_id) approved_product_counts on approved_product_counts.ins_order_id = io.id
+ order by cio.create_time desc
+ ) a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
</select>
- <!--濮旀墭鍗曟煡璇㈡垚鍝佽鍗�-->
- <select id="getInsOrderOnInspection" resultType="com.ruoyi.inspect.pojo.InsOrder">
+ <!--鎴愬搧涓嬪崟閫夋嫨灏氭湭缁戝畾鐨勬楠屽鎵樺崟-->
+ <select id="pageUnboundInspectionOrder" resultType="com.ruoyi.process.pojo.InspectionOrder">
select *
- from (select *
- from ins_order
- where state = 4 and ifs_inventory_id is null
- order by entrust_code desc) a
+ from (
+ select *
+ from cnas_inspection_order
+ where ins_order_id is null
+ order by create_time desc
+ ) a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
--
Gitblit v1.9.3