From 169208b55df32e15d66ef7b32882143556a58adb Mon Sep 17 00:00:00 2001
From: 晏有为 <13214124+yan-youwei@user.noreply.gitee.com>
Date: 星期一, 27 五月 2024 14:09:13 +0800
Subject: [PATCH] 更新检验下单操作

---
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml |   94 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 85 insertions(+), 9 deletions(-)

diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index cc2e865..57bb691 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -50,6 +50,18 @@
         <result property="remark" column="remark"/>
     </resultMap>
 
+    <resultMap id="selectSampleDefectsMap" type="com.yuanchu.mom.vo.SampleDefectsFatherVo">
+        <id column="id" property="id"/>
+        <result column="sample" property="sample"/>
+        <association property="children" resultMap="SampleDefectsChildrenMap" javaType="java.util.List"/>
+    </resultMap>
+
+    <resultMap id="SampleDefectsChildrenMap" type="com.yuanchu.mom.vo.SampleDefectsChildrenVo">
+        <result column="entrust_code" property="entrust_code"/>
+        <result column="inspection_item" property="inspection_item"/>
+        <result column="name" property="name"/>
+        <result column="create_time" property="create_time"/>
+    </resultMap>
     <select id="selectInsOrderParameter" resultType="com.yuanchu.mom.pojo.InsOrder">
         select *
         from (
@@ -81,13 +93,20 @@
         SELECT
         io.*,
         ir.id report_id,
-        concat(ROUND((select count(*) from ins_sample isa2
-        where ins_state = 5 and isa2.ins_order_id = io.id) / (select count(*) from ins_sample isa2
-        where isa2.ins_order_id = io.id) * 100, 2), '%') insProgress
+        ir.url,
+        ir.url_s,
+        (select count(*) from ins_sample isa2
+        where isa2.ins_order_id = io.id) sample_num,
+        concat(ROUND((select count(*) from ins_order_state ios
+        where ins_state = 5 and ios.ins_order_id = io.id) / (select count(*) from ins_order_state ios2
+        where ios2.ins_order_id = io.id) * 100, 2), '%') insProgress,
+        group_concat(distinct isa.sample_code,' ') sample_code,
+        group_concat(distinct isa.sample,' ') sample_name,
+        group_concat(distinct isa.model,' ') sample_model
         FROM
         ins_order io
         LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id
-        LEFT JOIN ( SELECT id, ins_order_id, is_ratify FROM ins_report WHERE is_ratify = 1 ) ir ON io.id =
+        LEFT JOIN ( SELECT id, ins_order_id, is_ratify, url,url_s FROM ins_report WHERE is_ratify = 1 ) ir ON io.id =
         ir.ins_order_id
         GROUP BY
         io.id
@@ -104,7 +123,7 @@
     <select id="selectSampleAndProductByOrderId" resultType="com.yuanchu.mom.dto.SampleProductDto2">
         select *
         from (
-        select i.id,isa.sample_code,isa.sample,isa.model,ip.state,ip.unit,ip.inspection_item,ip.inspection_item_subclass,
+        select i.id,isa.sample_code,isa.sample,isa.model,isa.ins_state,ip.state,ip.unit,ip.inspection_item,ip.inspection_item_subclass,
         ip.son_laboratory,ip.inspection_item_type,ip.inspection_value_type,ip.ask,ip.`last_value`,ip.ins_result,ipr.equip_value
         from ins_sample isa
         left join ins_order i on isa.ins_order_id = i.id
@@ -125,6 +144,7 @@
         isa.sample,
         isa.model,
         c.price,
+        c.cost,
         c.inspection_item,
         u.company,
         u.`name`,
@@ -134,17 +154,21 @@
         ins_order i
         LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
         LEFT JOIN `user` u ON u.id = i.user_id
-        LEFT JOIN (select SUM(b.price) price,b.ins_sample_id,GROUP_CONCAT(b.inspection_item SEPARATOR ',')
-        inspection_item from (select * from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP
+        LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id,GROUP_CONCAT(b.inspection_item2
+        SEPARATOR ',')
+        inspection_item from (select *,GROUP_CONCAT(inspection_item
+        SEPARATOR ',') inspection_item2  from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP
         BY b.ins_sample_id) c ON c.ins_sample_id = isa.id
+        where (i.state = 1 or i.state = 3 or i.state = 4)
         ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
     </select>
     <select id="selectDeviceList" resultType="java.util.Map">
-        select device_name,specification_model,factory_no,date_format(latest_traceability, '%Y-%m-%d') latest_traceability from device
-        where device_name in
+        select device_name,specification_model,management_number,DATE_ADD(date_format(last_calibration_date, '%Y-%m-%d'),INTERVAL calibration_date month) latest_traceability
+        from device
+        where device.management_number in
         <foreach collection="names" index="index" open="(" separator="," close=")" item="val">
             #{val}
         </foreach>
@@ -172,5 +196,57 @@
             id=#{id}
         </where>
     </update>
+    <update id="updateStatus">
+        update ins_order set state=3 where id=#{id}
+    </update>
 
+    <select id="selectSampleDefects" resultMap="selectSampleDefectsMap">
+        SELECT io.entrust_code,sam.sample,ip.inspection_item,u.name,b.create_time, sam.id
+        from ins_order io
+        left JOIN ins_sample sam on io.id=sam.ins_order_id
+        LEFT JOIN ins_product ip on ip.ins_sample_id=sam.id
+        LEFT JOIN
+        (SELECT create_time,create_user,ins_product_id FROM
+        (select * FROM ins_product_user ORDER BY ins_product_user.create_time DESC) a
+        GROUP BY a.ins_product_id) b
+        on b.ins_product_id=ip.id
+        left JOIN `user` u on u.id=b.create_user
+        WHERE (ip.ins_result=0 OR ip.state=0)
+        <if test="inspectionItems != null and inspectionItems != ''">
+            and inspection_item like concat('%', #{inspectionItems}, '%')
+        </if>
+        <if test="orderNumber != null and orderNumber != ''">
+            and io.entrust_code like concat('%', #{orderNumber}, '%')
+        </if>
+    </select>
+
+    <select id="getCount" resultType="long">
+        select count(1)
+        from (
+        SELECT io.entrust_code,sam.sample,ip.inspection_item,u.name,b.create_time, sam.id
+        from ins_order io
+        left JOIN ins_sample sam on io.id=sam.ins_order_id
+        LEFT JOIN ins_product ip on ip.ins_sample_id=sam.id
+        LEFT JOIN
+        (SELECT create_time,create_user,ins_product_id FROM (select * FROM ins_product_user ORDER BY
+        ins_product_user.create_time DESC) a GROUP BY a.ins_product_id) b
+        on b.ins_product_id=ip.id
+        left JOIN `user` u on u.id=b.create_user
+        where (ip.ins_result=0 OR ip.state=0)
+        <if test="inspectionItems != null and inspectionItems != ''">
+            and inspection_item like concat('%', #{inspectionItems}, '%')
+        </if>
+        <if test="orderNumber != null and orderNumber != ''">
+            and io.entrust_code like concat('%', #{orderNumber}, '%')
+        </if>
+        ) temp
+    </select>
+    <select id="getEnumLabelByValue" resultType="java.lang.String">
+        select label from `center-lims`.enums
+        where value = #{value}
+    </select>
+    <select id="getStandardMethodCode" resultType="java.lang.String">
+        select code from `center-lims`.standard_method
+        where id = #{id}
+    </select>
 </mapper>

--
Gitblit v1.9.3