From 3fdea1ab6ab545de0a25573318ecd838de3be576 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 17 九月 2026 15:54:13 +0800
Subject: [PATCH] feat: 1.检验任务查询优化 2.模板时间和地点保存
---
inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 136 +++++++++++++++++++++++++++++++++++----------
1 files changed, 105 insertions(+), 31 deletions(-)
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index 84af8bb..c540fb2 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -61,6 +61,7 @@
<result property="tell" column="tell" jdbcType="VARCHAR"/>
<result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
<result property="insResult" column="ip_ins_result" jdbcType="INTEGER"/>
+ <result property="isBinding" column="ip_is_binding" jdbcType="INTEGER"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="insBushId" column="ins_bush_id" jdbcType="INTEGER"/>
<result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
@@ -69,6 +70,7 @@
<result property="createTime" column="ip_create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="ip_update_time" jdbcType="TIMESTAMP"/>
<result property="templateId" column="template_id" jdbcType="INTEGER"/>
+ <result property="templateRowIndex" column="template_row_index" jdbcType="INTEGER"/>
<result property="methodS" column="method_s"/>
<result property="tell" column="tell"/>
<result property="dic" column="dic"/>
@@ -141,15 +143,17 @@
man_day,
bsm,
ask,
- `last_value`,
- ip.ins_result ip_ins_result,
- state,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ ip.is_binding ip_is_binding,
+ state,
ins_sample_id,
ip.create_user ip_create_user,
ip.update_user ip_update_user,
ip.create_time ip_create_time,
ip.update_time ip_update_time,
template_id,
+ template_row_index,
ipr.ins_value,
ipr.com_value,
ipr.equip_value,
@@ -162,11 +166,36 @@
ip.structure_item_parameter_id
</sql>
+ <!--
+ 鐩寸粦妯℃澘璁㈠崟涓嶄緷璧� ins_product銆傞�氳繃璁㈠崟妯℃澘蹇収鍜屽崟鏍峰搧鏍囧噯缁撴瀯璇嗗埆锛�
+ 鍒楄〃銆佷换鍔″垏鎹㈠強璇︽儏缁熶竴浣跨敤鍥哄畾浠诲姟瀹為獙瀹も�滄柊鑱氣�濄��
+ -->
+ <sql id="directTemplateOrderJoin">
+ LEFT JOIN (
+ SELECT DISTINCT iost.ins_order_id
+ FROM ins_order_standard_template iost
+ INNER JOIN ins_order dto ON dto.id = iost.ins_order_id
+ INNER JOIN ins_sample dts ON dts.ins_order_id = dto.id
+ WHERE dts.standard_method_list_id IS NULL
+ AND (dts.factory IS NULL OR TRIM(dts.factory) = '')
+ AND (dts.sample_type IS NULL OR TRIM(dts.sample_type) = '')
+ AND (dts.model IS NULL OR TRIM(dts.model) = '')
+ AND (dto.factory IS NULL OR TRIM(dto.factory) = '')
+ AND (dto.sample_type IS NULL OR TRIM(dto.sample_type) = '')
+ ) direct_template ON direct_template.ins_order_id = io.id
+ </sql>
+
<select id="findInsSampleAndOrder" resultType="com.ruoyi.inspect.vo.InsOrderPlanVO">
select * from(select * from(
SELECT
- a.*,ios.ins_state,ios.verify_tell,verify_user
+ a.*,
+ CASE
+ WHEN ios.ins_state IS NULL AND a.direct_template = 1 THEN 0
+ ELSE ios.ins_state
+ END AS ins_state,
+ ios.verify_tell,
+ verify_user
FROM
(
SELECT
@@ -177,13 +206,17 @@
io.send_time,
io.order_type,
case when
- io.type_source = 0
- then io.sample_view
- else io.sample end sample,
+ io.type_source = 0
+ then io.sample_view
+ else io.sample end sample,
GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
userName,
checkName,
- ip.son_laboratory,
+ CASE
+ WHEN direct_template.ins_order_id IS NOT NULL THEN '鏂拌仛'
+ ELSE ip.son_laboratory
+ END AS son_laboratory,
+ CASE WHEN direct_template.ins_order_id IS NOT NULL THEN 1 ELSE 0 END AS direct_template,
io.ins_time,
io.laboratory,
io.type_source,
@@ -192,18 +225,21 @@
ira.url,
ira.url_s,
ira.temp_url_pdf,
- iiq.is_copper
+ iiq.is_copper,
+ iiq.is_split_order,
+ iiq.material_prop AS material_prop
FROM
ins_order io
LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
LEFT JOIN ins_report ira ON ira.ins_order_id = io.id
LEFT JOIN ifs_inventory_quantity iiq ON iiq.id = io.ifs_inventory_id
+ <include refid="directTemplateOrderJoin"/>
LEFT JOIN (
SELECT ins_sample_id,GROUP_CONCAT( DISTINCT uu.name SEPARATOR ',') AS userName
FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id
WHERE u.state=0
<if test="sonLaboratory!= null and sonLaboratory != ''">
- and son_laboratory=#{sonLaboratory}
+ and son_laboratory=#{sonLaboratory}
</if>
GROUP BY ins_sample_id
ORDER BY ins_sample_id
@@ -231,10 +267,16 @@
</if>
</if>
<if test="sonLaboratory!= null and sonLaboratory != ''">
- and ip.son_laboratory = #{sonLaboratory}
+ and CASE
+ WHEN direct_template.ins_order_id IS NOT NULL THEN '鏂拌仛'
+ ELSE ip.son_laboratory
+ END = #{sonLaboratory}
</if>
GROUP BY
- ip.son_laboratory,
+ CASE
+ WHEN direct_template.ins_order_id IS NOT NULL THEN '鏂拌仛'
+ ELSE ip.son_laboratory
+ END,
io.id
) a
LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
@@ -242,7 +284,7 @@
a.type DESC,
a.id
) b
- where ins_state is not null
+ where (ins_state is not null or direct_template = 1)
<if test="laboratory!=null and laboratory!=''">
and laboratory=#{laboratory}
</if>
@@ -250,13 +292,19 @@
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
- ORDER BY send_time asc
+ ORDER BY send_time desc
+
</select>
<select id="inspectionOrderDetailsTaskSwitching" resultType="com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo">
select * from(
SELECT
- a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user
+ a.*,
+ CASE
+ WHEN ios.ins_state IS NULL AND a.direct_template = 1 THEN 0
+ ELSE ios.ins_state
+ END AS ins_state,
+ ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user
FROM
(
SELECT
@@ -268,12 +316,17 @@
group_concat(distinct isa.sample,' ') sampleType,
isu.user_id,
user.name userName,
- ip.son_laboratory,
+ CASE
+ WHEN direct_template.ins_order_id IS NOT NULL THEN '鏂拌仛'
+ ELSE ip.son_laboratory
+ END AS son_laboratory,
+ CASE WHEN direct_template.ins_order_id IS NOT NULL THEN 1 ELSE 0 END AS direct_template,
io.ins_time,
io.laboratory
FROM
ins_order io
LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
+ <include refid="directTemplateOrderJoin"/>
LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id -->
SELECT *
FROM ins_sample_user u
@@ -296,7 +349,10 @@
</if>
OR isu.user_id is NULL
GROUP BY
- ip.son_laboratory,
+ CASE
+ WHEN direct_template.ins_order_id IS NOT NULL THEN '鏂拌仛'
+ ELSE ip.son_laboratory
+ END,
io.id
) a
LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
@@ -308,7 +364,7 @@
OR user_id is NULL
) isu2 on
isu2.ins_sample_id = a.id
- where ins_state is not null
+ where (ins_state is not null or direct_template = 1)
<if test="laboratory != null and laboratory != ''">
and a.laboratory=#{laboratory}
</if>
@@ -354,6 +410,7 @@
tell,
`last_value`,
ip.ins_result ip_ins_result,
+ ip.is_binding ip_is_binding,
state,
ins_sample_id,
ip.create_user ip_create_user,
@@ -396,7 +453,7 @@
ip.sample_type ip_sample_type,
ip.sample ip_sample,
ip.model ip_model,
- son_laboratory,
+ ip.son_laboratory,
ip.unit ip_unit,
price,
man_hour,
@@ -413,6 +470,7 @@
ask,
`last_value`,
ip.ins_result ip_ins_result,
+ ip.is_binding ip_is_binding,
state,
ins_sample_id,
ip.create_user ip_create_user,
@@ -433,8 +491,18 @@
left join ins_product ip on isa.id = ip.ins_sample_id
left join ins_product_result ipr on ip.id = ipr.ins_product_id
where ins_order_id = #{id}
- and state = 1
- and ip.son_laboratory = #{laboratory}
+ and (
+ (ip.state = 1 and ip.son_laboratory = #{laboratory})
+ or (
+ ip.id is null
+ and #{laboratory} = '鏂拌仛'
+ and exists (
+ select 1
+ from ins_order_standard_template iost
+ where iost.ins_order_id = isa.ins_order_id
+ )
+ )
+ )
</select>
<select id="getSampleEn" resultType="java.lang.String">
select name_en
@@ -463,7 +531,8 @@
ifs.id inventoryQuantityId,
ifs.buy_unit_meas buyUnitMeas,
io.test_quantity testQuantity,
- ifs.buy_unit_meas buyUnitMeas
+ ifs.buy_unit_meas buyUnitMeas,
+ ifs.declare_date declareDate
FROM
ifs_inventory_quantity ifs
LEFT JOIN ins_order io ON ifs.id = io.ifs_inventory_id
@@ -502,6 +571,7 @@
tell,
`last_value`,
ip.ins_result ip_ins_result,
+ ip.is_binding ip_is_binding,
state,
ins_sample_id,
ip.create_user ip_create_user,
@@ -514,12 +584,13 @@
ipr.equip_value,
ip.method_s,
ip.radius,
+ ip.structure_item_parameter_id,
isa.special_standard_method
from ins_sample isa
left join ins_product ip on isa.id = ip.ins_sample_id
left join ins_product_result ipr on ip.id = ipr.ins_product_id
where ins_order_id = #{id}
- and ip.standard_method_list_id is not null
+ and (ip.standard_method_list_id is not null or ip.template_row_index is not null)
and state = 1
and ip.is_binding != 1
order by ip.sort asc,
@@ -540,7 +611,7 @@
and ip.son_laboratory = #{laboratory}
and ins_fiber_id is null
and ins_fibers_id is null
- and standard_method_list_id is not null
+ and (standard_method_list_id is not null or template_row_index is not null)
/* 鐢电紗閰嶇疆鏍囪瘑 */
<if test="cableTag == null or cableTag == ''">
and ip.cable_tag is null
@@ -555,9 +626,6 @@
<if test="repetitionTag != null and repetitionTag != ''">
and ip.repetition_tag = #{repetitionTag}
</if>
- <if test="isDisqualification != null and isDisqualification != ''">
- and ip.ins_result = 0
- </if>
order by sort asc
</select>
@@ -570,11 +638,8 @@
and ip.son_laboratory = #{laboratory}
and ins_fiber_id is null
and ins_fibers_id is null
- and standard_method_list_id is not null
+ and (standard_method_list_id is not null or template_row_index is not null)
and ip.raw_material_tag = #{rawMaterialTag}
- <if test="isDisqualification != null and isDisqualification != ''">
- and ip.ins_result = 0
- </if>
order by sort asc
</select>
@@ -697,4 +762,13 @@
order by ip.sort asc
</select>
+ <!-- 鏍规嵁璁㈠崟id鏌ヨ鏍峰搧 -->
+ <select id="getSampleByOrderId" resultType="com.ruoyi.inspect.pojo.InsSample">
+ select is2.*,
+ sml.name standard_method_name
+ from ins_sample is2
+ left join standard_method sml on sml.id = is2.standard_method_list_id
+ where is2.ins_order_id = #{insOrderId}
+ </select>
+
</mapper>
--
Gitblit v1.9.3