Fancy
2025-01-07 11d2a1de77bf389aef8fa785aa2983ace773a0ec
pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml
@@ -72,10 +72,10 @@
            <if test="deviceNo != null and deviceNo !=''">
                and device_no = #{deviceNo,jdbcType=VARCHAR}
            </if>
            <if test="startTime != null and startTime !=''">
            <if test="startTime != null">
                and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null and endTime !=''">
            <if test="endTime != null">
                and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
        </where>
@@ -85,10 +85,10 @@
            <if test="deviceNo != null and deviceNo !=''">
                and device_no = #{deviceNo,jdbcType=VARCHAR}
            </if>
            <if test="startTime != null and startTime !=''">
            <if test="startTime != null">
                and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null and endTime !=''">
            <if test="endTime != null">
                and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
        </where>
@@ -97,6 +97,25 @@
        left join plt_station s on s.id = t.station_id
        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">
@@ -136,8 +155,8 @@
                <if test="result != null">result,</if>
                <if test="errorMsg != null and errorMsg !=''">error_msg,</if>
                <if test="assistants != null and assistants !=''">assistants,</if>
                <if test="inTime != null and inTime !=''">in_time,</if>
                <if test="outTime != null and outTime !=''">out_time,</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 and memo !=''">memo,</if>
                <if test="number != null">number,</if>
@@ -156,8 +175,8 @@
                <if test="result != null">#{result,jdbcType=TINYINT},</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 and inTime !=''">#{inTime,jdbcType=TIMESTAMP},</if>
                <if test="outTime != null and outTime !=''">#{outTime,jdbcType=TIMESTAMP},</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 and memo !=''">#{memo,jdbcType=VARCHAR},</if>
                <if test="number != null">#{number,jdbcType=INTEGER},</if>
@@ -202,10 +221,10 @@
                <if test="assistants != null and assistants !=''">
                    assistants = #{assistants,jdbcType=VARCHAR},
                </if>
                <if test="inTime != null and inTime !=''">
                <if test="inTime != null">
                    in_time = #{inTime,jdbcType=TIMESTAMP},
                </if>
                <if test="outTime != null and outTime !=''">
                <if test="outTime != null">
                    out_time = #{outTime,jdbcType=TIMESTAMP},
                </if>
                <if test="updatedBy != null">