Fancy
2025-01-07 36fdd5fcdd57dc67c7728c572b8423bc0d3c9c88
pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml
@@ -6,14 +6,14 @@
    <resultMap id="BaseResultMap" type="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="equipNo" column="equip_no" jdbcType="VARCHAR"/>
            <result property="deviceNo" column="device_no" jdbcType="VARCHAR"/>
            <result property="workId" column="work_id" jdbcType="BIGINT"/>
            <result property="repairId" column="repair_id" jdbcType="BIGINT"/>
            <result property="planId" column="plan_id" jdbcType="BIGINT"/>
            <result property="stationId" column="station_id" jdbcType="BIGINT"/>
            <result property="currNode" column="curr_node" jdbcType="BIGINT"/>
            <result property="nodeContent" column="node_content" jdbcType="VARCHAR"/>
            <result property="equipCycleContent" column="equip_cycle_content" jdbcType="VARCHAR"/>
            <result property="deviceCycleContent" column="device_cycle_content" jdbcType="VARCHAR"/>
            <result property="status" column="status" jdbcType="TINYINT"/>
            <result property="result" column="result" jdbcType="TINYINT"/>
            <result property="errorMsg" column="error_msg" jdbcType="VARCHAR"/>
@@ -22,16 +22,25 @@
            <result property="outTime" column="out_time" jdbcType="TIMESTAMP"/>
            <result property="updatedBy" column="updated_by" jdbcType="BIGINT"/>
            <result property="memo" column="memo" jdbcType="VARCHAR"/>
            <result property="number" column="number" jdbcType="INTEGER"/>
    </resultMap>
    <resultMap id="joinResultMap" type="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog" extends="BaseResultMap">
        <result property="planName" column="plan_name" jdbcType="VARCHAR"/>
        <result property="stationName" column="station_name" jdbcType="VARCHAR"/>
        <result property="updateUserName" column="update_user_name" jdbcType="VARCHAR"/>
        <association property="assistantNames" jdbcType="VARCHAR" column="assistants"
                     select="com.dy.pmsGlobal.daoBa.BaUserMapper.selectNamesByAssistants" fetchType="eager" />
    </resultMap>
    <sql id="Base_Column_List">
        id,equip_no,work_id,
        id,device_no,work_id,
        repair_id,plan_id,station_id,
        curr_node,node_content,equip_cycle_content,
        curr_node,node_content,device_cycle_content,
        status,result,
        error_msg,assistants,in_time,
        out_time,updated_by,memo
        out_time,updated_by,memo,number
    </sql>
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
        select
@@ -39,13 +48,74 @@
        from sta_device_production_log
        where  id = #{id,jdbcType=BIGINT} 
    </select>
    <select id="selectByEquipNo" parameterType="java.lang.String" resultMap="BaseResultMap">
    <select id="selectByDeviceNo" parameterType="java.lang.String" resultMap="joinResultMap">
        select
        <include refid="Base_Column_List" />
        from sta_device_production_log
        where  equip_no = #{equipNo,jdbcType=VARCHAR}
        order by id desc
            t.* ,p.`name` plan_name,s.`name` station_name,u.`name` update_user_name
        FROM
            (
                select <include refid="Base_Column_List" /> from sta_device_production_log_past where  device_no = #{deviceNo,jdbcType=VARCHAR} union
                select <include refid="Base_Column_List" /> from sta_device_production_log where device_no = #{deviceNo,jdbcType=VARCHAR}
            ) t
                left join pr_assembly_plan p on t.plan_id=p.id
                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="selectProductLog"  resultMap="joinResultMap">
        select
        t.* ,p.`name` plan_name,s.`name` station_name,u.`name` update_user_name
        FROM
        (
        select <include refid="Base_Column_List" /> from sta_device_production_log_past
        <where>
            <if test="deviceNo != null and deviceNo !=''">
                and device_no = #{deviceNo,jdbcType=VARCHAR}
            </if>
            <if test="startTime != null">
                and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null">
                and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
        </where>
        union
        select <include refid="Base_Column_List" /> from sta_device_production_log
        <where>
            <if test="deviceNo != null and deviceNo !=''">
                and device_no = #{deviceNo,jdbcType=VARCHAR}
            </if>
            <if test="startTime != null">
                and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null">
                and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
        </where>
        ) t
        left join pr_assembly_plan p on t.plan_id=p.id
        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">
@@ -54,67 +124,69 @@
    </delete>
    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog" useGeneratedKeys="true">
        insert into sta_device_production_log
        ( id,equip_no,work_id
        ( id,device_no,work_id
        ,repair_id,plan_id,station_id
        ,curr_node,node_content,equip_cycle_content
        ,curr_node,node_content,device_cycle_content
        ,status,result
        ,error_msg,assistants,in_time
        ,out_time,updated_by,memo
        ,out_time,updated_by,memo,number
        )
        values (#{id,jdbcType=BIGINT},#{equipNo,jdbcType=VARCHAR},#{workId,jdbcType=BIGINT}
        values (#{id,jdbcType=BIGINT},#{deviceNo,jdbcType=VARCHAR},#{workId,jdbcType=BIGINT}
        ,#{repairId,jdbcType=BIGINT},#{planId,jdbcType=BIGINT},#{stationId,jdbcType=BIGINT}
        ,#{currNode,jdbcType=BIGINT},#{nodeContent,jdbcType=VARCHAR},#{equipCycleContent,jdbcType=VARCHAR}
        ,#{currNode,jdbcType=BIGINT},#{nodeContent,jdbcType=VARCHAR},#{deviceCycleContent,jdbcType=VARCHAR}
        ,#{status,jdbcType=TINYINT},#{result,jdbcType=TINYINT}
        ,#{errorMsg,jdbcType=VARCHAR},#{assistants,jdbcType=VARCHAR},#{inTime,jdbcType=TIMESTAMP}
        ,#{outTime,jdbcType=TIMESTAMP},#{updatedBy,jdbcType=BIGINT},#{memo,jdbcType=VARCHAR}
        ,#{outTime,jdbcType=TIMESTAMP},#{updatedBy,jdbcType=BIGINT},#{memo,jdbcType=VARCHAR}, #{number,jdbcType=INTEGER}
        )
    </insert>
    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog" useGeneratedKeys="true">
        insert into sta_device_production_log
        <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="id != null">id,</if>
                <if test="equipNo != null">equip_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="equipCycleContent != null">equip_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="equipNo != null">#{equipNo,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="equipCycleContent != null">#{equipCycleContent,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="equipNo != null">
                    equip_no = #{equipNo,jdbcType=VARCHAR},
                <if test="deviceNo != null and deviceNo !=''">
                    device_no = #{deviceNo,jdbcType=VARCHAR},
                </if>
                <if test="workId != null">
                    work_id = #{workId,jdbcType=BIGINT},
@@ -131,11 +203,11 @@
                <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="equipCycleContent != null">
                    equip_cycle_content = #{equipCycleContent,jdbcType=VARCHAR},
                <if test="deviceCycleContent != null and deviceCycleContent !=''">
                    device_cycle_content = #{deviceCycleContent,jdbcType=VARCHAR},
                </if>
                <if test="status != null">
                    status = #{status,jdbcType=TINYINT},
@@ -143,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">
@@ -158,8 +230,11 @@
                <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">
                    number = #{number,jdbcType=INTEGER},
                </if>
        </set>
        where   id = #{id,jdbcType=BIGINT} 
@@ -167,14 +242,14 @@
    <update id="updateByPrimaryKey" parameterType="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog">
        update sta_device_production_log
        set 
            equip_no =  #{equipNo,jdbcType=VARCHAR},
            device_no =  #{deviceNo,jdbcType=VARCHAR},
            work_id =  #{workId,jdbcType=BIGINT},
            repair_id =  #{repairId,jdbcType=BIGINT},
            plan_id =  #{planId,jdbcType=BIGINT},
            station_id =  #{stationId,jdbcType=BIGINT},
            curr_node =  #{currNode,jdbcType=BIGINT},
            node_content =  #{nodeContent,jdbcType=VARCHAR},
            equip_cycle_content =  #{equipCycleContent,jdbcType=VARCHAR},
            device_cycle_content =  #{deviceCycleContent,jdbcType=VARCHAR},
            status =  #{status,jdbcType=TINYINT},
            result =  #{result,jdbcType=TINYINT},
            error_msg =  #{errorMsg,jdbcType=VARCHAR},
@@ -182,7 +257,8 @@
            in_time =  #{inTime,jdbcType=TIMESTAMP},
            out_time =  #{outTime,jdbcType=TIMESTAMP},
            updated_by =  #{updatedBy,jdbcType=BIGINT},
            memo =  #{memo,jdbcType=VARCHAR}
            memo =  #{memo,jdbcType=VARCHAR},
            number = #{number,jdbcType=INTEGER}
        where   id = #{id,jdbcType=BIGINT} 
    </update>
</mapper>