From 87d0248925a5a8c3cf07ba8a0283dc363e2b59f4 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期二, 07 一月 2025 17:02:20 +0800
Subject: [PATCH] statistic_work

---
 pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml |   55 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 37 insertions(+), 18 deletions(-)

diff --git a/pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml
index 0ef9802..a61c09f 100644
--- a/pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml
+++ b/pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml
@@ -98,6 +98,25 @@
         left JOIN ba_user u on u.id=t.updated_by
         ORDER BY t.id DESC
     </select>
+    <select id="queryTopError" resultType="cn.hutool.json.JSONObject">
+        WITH total AS ( SELECT
+        DISTINCT u.device_no,
+        SUBSTRING_INDEX( SUBSTRING_INDEX( u.error_msg, '锛�', b.help_topic_id + 1 ), '锛�', -1 ) AS error_msg
+        FROM
+        ( SELECT device_no, error_msg FROM sta_device_production_log_past  WHERE error_msg LIKE ('%涓嶅悎鏍�%')
+        <if test="startTime != null">
+            and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null">
+            and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
+          <!-- AND out_time BETWEEN '2024-08-01 00:00:00' AND '2024-08-30 23:59:59' -->
+          UNION
+        SELECT device_no, error_msg FROM sta_device_production_log  WHERE error_msg LIKE ('%涓嶅悎鏍�%')
+        ) u,
+        mysql.help_topic b WHERE b.help_topic_id <![CDATA[ < ]]>((( LENGTH( u.error_msg ) - LENGTH( REPLACE(u.error_msg,'锛�','') ))/3)  +  1 ))
+        SELECT error_msg, COUNT(error_msg) num FROM total WHERE error_msg LIKE ('%涓嶅悎鏍�%') GROUP BY error_msg ORDER BY num DESC LIMIT 10
+    </select>
 
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
         delete from sta_device_production_log
@@ -124,49 +143,49 @@
         insert into sta_device_production_log
         <trim prefix="(" suffix=")" suffixOverrides=",">
                 <if test="id != null">id,</if>
-                <if test="deviceNo != null">device_no,</if>
+                <if test="deviceNo != null and deviceNo !=''">device_no,</if>
                 <if test="workId != null">work_id,</if>
                 <if test="repairId != null">repair_id,</if>
                 <if test="planId != null">plan_id,</if>
                 <if test="stationId != null">station_id,</if>
                 <if test="currNode != null">curr_node,</if>
-                <if test="nodeContent != null">node_content,</if>
-                <if test="deviceCycleContent != null">device_cycle_content,</if>
+                <if test="nodeContent != null and nodeContent !=''">node_content,</if>
+                <if test="deviceCycleContent != null and deviceCycleContent !=''">device_cycle_content,</if>
                 <if test="status != null">status,</if>
                 <if test="result != null">result,</if>
-                <if test="errorMsg != null">error_msg,</if>
-                <if test="assistants != null">assistants,</if>
+                <if test="errorMsg != null and errorMsg !=''">error_msg,</if>
+                <if test="assistants != null and assistants !=''">assistants,</if>
                 <if test="inTime != null">in_time,</if>
                 <if test="outTime != null">out_time,</if>
                 <if test="updatedBy != null">updated_by,</if>
-                <if test="memo != null">memo,</if>
+                <if test="memo != null and memo !=''">memo,</if>
                 <if test="number != null">number,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
                 <if test="id != null">#{id,jdbcType=BIGINT},</if>
-                <if test="deviceNo != null">#{deviceNo,jdbcType=VARCHAR},</if>
+                <if test="deviceNo != null and deviceNo !=''">#{deviceNo,jdbcType=VARCHAR},</if>
                 <if test="workId != null">#{workId,jdbcType=BIGINT},</if>
                 <if test="repairId != null">#{repairId,jdbcType=BIGINT},</if>
                 <if test="planId != null">#{planId,jdbcType=BIGINT},</if>
                 <if test="stationId != null">#{stationId,jdbcType=BIGINT},</if>
                 <if test="currNode != null">#{currNode,jdbcType=BIGINT},</if>
-                <if test="nodeContent != null">#{nodeContent,jdbcType=VARCHAR},</if>
-                <if test="deviceCycleContent != null">#{deviceCycleContent,jdbcType=VARCHAR},</if>
+                <if test="nodeContent != null and nodeContent !=''">#{nodeContent,jdbcType=VARCHAR},</if>
+                <if test="deviceCycleContent != null and deviceCycleContent !=''">#{deviceCycleContent,jdbcType=VARCHAR},</if>
                 <if test="status != null">#{status,jdbcType=TINYINT},</if>
                 <if test="result != null">#{result,jdbcType=TINYINT},</if>
-                <if test="errorMsg != null">#{errorMsg,jdbcType=VARCHAR},</if>
-                <if test="assistants != null">#{assistants,jdbcType=VARCHAR},</if>
+                <if test="errorMsg != null and errorMsg !=''">#{errorMsg,jdbcType=VARCHAR},</if>
+                <if test="assistants != null and assistants !=''">#{assistants,jdbcType=VARCHAR},</if>
                 <if test="inTime != null">#{inTime,jdbcType=TIMESTAMP},</if>
                 <if test="outTime != null">#{outTime,jdbcType=TIMESTAMP},</if>
                 <if test="updatedBy != null">#{updatedBy,jdbcType=BIGINT},</if>
-                <if test="memo != null">#{memo,jdbcType=VARCHAR},</if>
+                <if test="memo != null and memo !=''">#{memo,jdbcType=VARCHAR},</if>
                 <if test="number != null">#{number,jdbcType=INTEGER},</if>
         </trim>
     </insert>
     <update id="updateByPrimaryKeySelective" parameterType="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog">
         update sta_device_production_log
         <set>
-                <if test="deviceNo != null">
+                <if test="deviceNo != null and deviceNo !=''">
                     device_no = #{deviceNo,jdbcType=VARCHAR},
                 </if>
                 <if test="workId != null">
@@ -184,10 +203,10 @@
                 <if test="currNode != null">
                     curr_node = #{currNode,jdbcType=BIGINT},
                 </if>
-                <if test="nodeContent != null">
+                <if test="nodeContent != null and nodeContent !=''">
                     node_content = #{nodeContent,jdbcType=VARCHAR},
                 </if>
-                <if test="deviceCycleContent != null">
+                <if test="deviceCycleContent != null and deviceCycleContent !=''">
                     device_cycle_content = #{deviceCycleContent,jdbcType=VARCHAR},
                 </if>
                 <if test="status != null">
@@ -196,10 +215,10 @@
                 <if test="result != null">
                     result = #{result,jdbcType=TINYINT},
                 </if>
-                <if test="errorMsg != null">
+                <if test="errorMsg != null and errorMsg !=''">
                     error_msg = #{errorMsg,jdbcType=VARCHAR},
                 </if>
-                <if test="assistants != null">
+                <if test="assistants != null and assistants !=''">
                     assistants = #{assistants,jdbcType=VARCHAR},
                 </if>
                 <if test="inTime != null">
@@ -211,7 +230,7 @@
                 <if test="updatedBy != null">
                     updated_by = #{updatedBy,jdbcType=BIGINT},
                 </if>
-                <if test="memo != null">
+                <if test="memo != null and memo !=''">
                     memo = #{memo,jdbcType=VARCHAR},
                 </if>
                 <if test="number != null">

--
Gitblit v1.8.0