<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.dy.pmsGlobal.daoSta.StaDeviceProductionLogMapper">
|
|
<resultMap id="BaseResultMap" type="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog">
|
<id property="id" column="id" jdbcType="BIGINT"/>
|
<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="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"/>
|
<result property="assistants" column="assistants" jdbcType="VARCHAR"/>
|
<result property="inTime" column="in_time" jdbcType="TIMESTAMP"/>
|
<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,device_no,work_id,
|
repair_id,plan_id,station_id,
|
curr_node,node_content,device_cycle_content,
|
status,result,
|
error_msg,assistants,in_time,
|
out_time,updated_by,memo,number
|
</sql>
|
|
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
select
|
<include refid="Base_Column_List" />
|
from sta_device_production_log
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<select id="selectByDeviceNo" parameterType="java.lang.String" 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 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">
|
delete from sta_device_production_log
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog" useGeneratedKeys="true">
|
insert into sta_device_production_log
|
( id,device_no,work_id
|
,repair_id,plan_id,station_id
|
,curr_node,node_content,device_cycle_content
|
,status,result
|
,error_msg,assistants,in_time
|
,out_time,updated_by,memo,number
|
)
|
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},#{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}, #{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="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 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 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 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 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 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 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 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 and deviceNo !=''">
|
device_no = #{deviceNo,jdbcType=VARCHAR},
|
</if>
|
<if test="workId != null">
|
work_id = #{workId,jdbcType=BIGINT},
|
</if>
|
<if test="repairId != null">
|
repair_id = #{repairId,jdbcType=BIGINT},
|
</if>
|
<if test="planId != null">
|
plan_id = #{planId,jdbcType=BIGINT},
|
</if>
|
<if test="stationId != null">
|
station_id = #{stationId,jdbcType=BIGINT},
|
</if>
|
<if test="currNode != null">
|
curr_node = #{currNode,jdbcType=BIGINT},
|
</if>
|
<if test="nodeContent != null and nodeContent !=''">
|
node_content = #{nodeContent,jdbcType=VARCHAR},
|
</if>
|
<if test="deviceCycleContent != null and deviceCycleContent !=''">
|
device_cycle_content = #{deviceCycleContent,jdbcType=VARCHAR},
|
</if>
|
<if test="status != null">
|
status = #{status,jdbcType=TINYINT},
|
</if>
|
<if test="result != null">
|
result = #{result,jdbcType=TINYINT},
|
</if>
|
<if test="errorMsg != null and errorMsg !=''">
|
error_msg = #{errorMsg,jdbcType=VARCHAR},
|
</if>
|
<if test="assistants != null and assistants !=''">
|
assistants = #{assistants,jdbcType=VARCHAR},
|
</if>
|
<if test="inTime != null">
|
in_time = #{inTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="outTime != null">
|
out_time = #{outTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="updatedBy != null">
|
updated_by = #{updatedBy,jdbcType=BIGINT},
|
</if>
|
<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}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog">
|
update sta_device_production_log
|
set
|
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},
|
device_cycle_content = #{deviceCycleContent,jdbcType=VARCHAR},
|
status = #{status,jdbcType=TINYINT},
|
result = #{result,jdbcType=TINYINT},
|
error_msg = #{errorMsg,jdbcType=VARCHAR},
|
assistants = #{assistants,jdbcType=VARCHAR},
|
in_time = #{inTime,jdbcType=TIMESTAMP},
|
out_time = #{outTime,jdbcType=TIMESTAMP},
|
updated_by = #{updatedBy,jdbcType=BIGINT},
|
memo = #{memo,jdbcType=VARCHAR},
|
number = #{number,jdbcType=INTEGER}
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
</mapper>
|