From 1e0beb1fe98f1d4a2bc93a5654443a84efda3d8e Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期五, 24 一月 2025 09:33:51 +0800
Subject: [PATCH] device
---
pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml | 191 +++++++++++++++++++++++++++++++----------------
1 files changed, 124 insertions(+), 67 deletions(-)
diff --git a/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
index bfd33b8..2e4be54 100644
--- a/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
+++ b/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
@@ -64,6 +64,9 @@
column="assistants"/>
</resultMap>
+<!-- <resultMap id="customResultMap" type="cn.hutool.json.JSONObject">-->
+<!-- <result column="columnName" typeHandler="com.yourpackage.CustomJsonTypeHandler"/>-->
+<!-- </resultMap>-->
<sql id="Base_Column_List">
id
,user_id,line_id,
@@ -71,7 +74,7 @@
node_id,work_type,dt,status,
start_time,end_time,assistants
</sql>
- <sql id="part_Column_List">
+ <sql id="part_Column_List"><![CDATA[
${alias}.id,
${alias}.user_id,
${alias}.line_id,
@@ -85,7 +88,7 @@
${alias}.start_time,
${alias}.end_time,
${alias}.assistants
- </sql>
+ ]]></sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
@@ -93,61 +96,61 @@
where id = #{id,jdbcType=BIGINT}
</select>
- <select id="selectByUserAndStation" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from plt_station where status ==1
- <trim prefix="and" suffixOverrides="and">
- <if test="id != null and id !=''">
- id = #{id,jdbcType=BIGINT} and
- </if>
- <if test="code != null and code !=''">
- code = #{code,jdbcType=VARCHAR} and
- </if>
- <if test="name != null and name !=''">
- name like concat('%', #{name}, '%') and
- </if>
- <if test="disabled != null and disabled !=''">
- disabled = #{disabled,jdbcType=TINYINT} and
- </if>
- <if test="lineId != null and lineId !=''">
- line_id = #{lineId,jdbcType=BIGINT} and
- </if>
- </trim>
- order by id desc
- </select>
+<!-- <select id="selectByUserAndStation" resultMap="BaseResultMap">-->
+<!-- select-->
+<!-- <include refid="Base_Column_List"/>-->
+<!-- from plt_station where status =1-->
+<!-- <trim prefix="and" suffixOverrides="and">-->
+<!-- <if test="id != null">-->
+<!-- id = #{id,jdbcType=BIGINT} and-->
+<!-- </if>-->
+<!-- <if test="code != null and code !=''">-->
+<!-- code = #{code,jdbcType=VARCHAR} and-->
+<!-- </if>-->
+<!-- <if test="name != null and name !=''">-->
+<!-- name like concat('%', #{name}, '%') and-->
+<!-- </if>-->
+<!-- <if test="disabled != null">-->
+<!-- disabled = #{disabled,jdbcType=TINYINT} and-->
+<!-- </if>-->
+<!-- <if test="lineId != null">-->
+<!-- line_id = #{lineId,jdbcType=BIGINT} and-->
+<!-- </if>-->
+<!-- </trim>-->
+<!-- order by id desc-->
+<!-- </select>-->
<select id="selectList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from sta_assembly_work_last
<where>
- <if test="userId != null and userId !=''">
+ <if test="userId != null">
and user_id = #{userId,jdbcType=BIGINT}
</if>
- <if test="lineId != null and lineId !=''">
+ <if test="lineId != null">
and line_id = #{lineId,jdbcType=BIGINT}
</if>
- <if test="stationId != null and stationId !=''">
+ <if test="stationId != null">
and station_id = #{stationId,jdbcType=BIGINT}
</if>
- <if test="planId != null and planId !=''">
+ <if test="planId != null">
and plan_id = #{planId,jdbcType=BIGINT}
</if>
- <if test="processId != null and processId !=''">
+ <if test="processId != null">
and process_id = #{processId,jdbcType=BIGINT}
</if>
- <if test="nodeId != null and nodeId !=''">
+ <if test="nodeId != null">
and node_id = #{nodeId,jdbcType=BIGINT}
</if>
- <if test="status != null and status !=''">
+ <if test="status != null">
and status = #{status,jdbcType=TINYINT}
</if>
- <if test="startTime != null and startTime !=''">
- and start_time = #{startTime,jdbcType=TIMESTAMP},
+ <if test="startTime != null">
+ and start_time = #{startTime,jdbcType=TIMESTAMP}
</if>
- <if test="endTime != null and endTime !=''">
- and end_time = #{endTime,jdbcType=TIMESTAMP},
+ <if test="endTime != null">
+ and end_time = #{endTime,jdbcType=TIMESTAMP}
</if>
<if test="assistants != null and assistants !=''">
and assistants = #{assistants,jdbcType=VARCHAR}
@@ -190,7 +193,7 @@
and p.name like concat('%', #{planName}, '%')
</if>
<if test="processName != null and processName != '' ">
- and pp.name like concat('%', #{processName}, '%')
+ and ppp.name like concat('%', #{processName}, '%')
</if>
<if test="nodeName != null and nodeName != '' ">
and n.content like concat('%', #{nodeName}, '%')
@@ -198,31 +201,31 @@
<if test="lineName != null and lineName != '' ">
and ll.name like concat('%', #{lineName}, '%')
</if>
- <if test="startTime != null and startTime !=''">
+ <if test="startTime != null">
and l.start_time <![CDATA[ > ]]> #{startTime}
</if>
- <if test="endTime != null and endTime !=''">
+ <if test="endTime != null">
and l.start_time <![CDATA[ < ]]> #{endTime}
</if>
- <if test="userId != null and userId !=''">
+ <if test="userId != null">
and l.user_id = #{userId,jdbcType=BIGINT}
</if>
- <if test="lineId != null and lineId !=''">
+ <if test="lineId != null">
and l.line_id = #{lineId,jdbcType=BIGINT}
</if>
- <if test="stationId != null and stationId !=''">
+ <if test="stationId != null">
and l.station_id = #{stationId,jdbcType=BIGINT}
</if>
- <if test="planId != null and planId !=''">
+ <if test="planId != null">
and l.plan_id = #{planId,jdbcType=BIGINT}
</if>
- <if test="processId != null and processId !=''">
+ <if test="processId != null">
and l.process_id = #{processId,jdbcType=BIGINT}
</if>
- <if test="nodeId != null and nodeId !=''">
+ <if test="nodeId != null">
and l.node_id = #{nodeId,jdbcType=BIGINT}
</if>
- <if test="status != null and status !=''">
+ <if test="status != null">
and l.status = #{status,jdbcType=TINYINT}
</if>
<if test="assistants != null and assistants !=''">
@@ -265,31 +268,31 @@
<if test="lineName != null and lineName != '' ">
and ll.name like concat('%', #{lineName}, '%')
</if>
- <if test="startTime != null and startTime !=''">
+ <if test="startTime != null">
and l.start_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
</if>
- <if test="endTime != null and endTime !=''">
+ <if test="endTime != null">
and l.start_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
</if>
- <if test="userId != null and userId !=''">
+ <if test="userId != null">
and l.user_id = #{userId,jdbcType=BIGINT}
</if>
- <if test="lineId != null and lineId !=''">
+ <if test="lineId != null">
and l.line_id = #{lineId,jdbcType=BIGINT}
</if>
- <if test="stationId != null and stationId !=''">
+ <if test="stationId != null">
and l.station_id = #{stationId,jdbcType=BIGINT}
</if>
- <if test="planId != null and planId !=''">
+ <if test="planId != null">
and l.plan_id = #{planId,jdbcType=BIGINT}
</if>
- <if test="processId != null and processId !=''">
+ <if test="processId != null">
and l.process_id = #{processId,jdbcType=BIGINT}
</if>
- <if test="nodeId != null and nodeId !=''">
+ <if test="nodeId != null">
and l.node_id = #{nodeId,jdbcType=BIGINT}
</if>
- <if test="status != null and status !=''">
+ <if test="status != null">
and l.status = #{status,jdbcType=TINYINT}
</if>
<if test="assistants != null and assistants !=''">
@@ -332,6 +335,60 @@
and id != #{id,jdbcType=BIGINT}
</if>
</select>
+ <select id="queryWorkList" resultType="cn.hutool.json.JSONObject" >
+ WITH a as ( SELECT pap.id as plan_id,pap.order_name,pap.`name` as plan_name,pap.number,pap.input_number,pap.output_number,
+ ppp.id as process_id,ppp.`name` as process_name,
+ ppn.id as node_id, ppn.content as node_name,
+ pp.`code` as pro_code , pp.`name` as pro_name,
+ pbn.batch_number as batch_number, ppn.sort as sort
+ from (SELECT pl.*, po.`NAME` AS order_name FROM pr_assembly_plan pl LEFT JOIN pr_order po ON pl.order_id = po.id) pap,
+ pr_production_process ppp,pr_production_node ppn,plt_product pp,pr_batch_number pbn
+ WHERE pap.process_id = ppp.id and ppp.id = ppn.process_id
+ and pap.pro_id = pp.id and pap.batch_id = pbn.id
+ order by plan_id,process_id,sort)
+ SELECT ps.station_name,IFNULL(ppl.line_name,'') AS line_name,IFNULL(sawl.user_name,'') AS user_name,IFNULL(sawl.assistants_name,'') AS assistants_name,
+ IFNULL(sawl.order_name,'') AS order_name,IFNULL(sawl.pro_name,'') AS pro_name, IFNULL(sawl.plan_name,'') AS plan_name,
+ IF(sawl.plan_name IS NULL,'',CONCAT(IFNULL(sawl.number,'0'),'/',IFNULL(sawl.input_number,'0'),'/',IFNULL(sawl.output_number,'0'))) AS plan_number,
+ IFNULL(sawl.process_name,'') AS process_name,IFNULL(sawl.node_name,'') AS node_name,IFNULL(sawl.dt,'') AS dt,sawl.work_type FROM
+ (SELECT id,`name` AS station_name, line_id FROM plt_station WHERE deleted = 0 AND disabled = 0) ps
+ LEFT JOIN (SELECT id,`name` AS line_name FROM plt_production_line) ppl ON ps.line_id = ppl.id
+ LEFT JOIN (select w.station_id,b.`name` as user_name ,GROUP_CONCAT(us.name) as assistants_name,a.order_name, a.pro_name,a.plan_name,
+ a.number,a.input_number,a.output_number,a.process_name, a.node_name,w.dt,
+ CASE w.work_type
+ WHEN '1' THEN '缁勮'
+ WHEN '2' THEN '娴嬭瘯'
+ WHEN '3' THEN '鍝佹'
+ WHEN '4' THEN '缁翠慨'
+ ELSE IFNULL(w.work_type,'') END AS work_type
+ from sta_assembly_work_last w
+ LEFT JOIN ba_user b ON w.user_id = b.id
+ LEFT JOIN a ON w.plan_id = a.plan_id AND w.node_id = a.node_id
+ LEFT JOIN ba_user us ON FIND_IN_SET(us.id,w.assistants) GROUP BY w.id
+ ) sawl ON ps.id = sawl.station_id
+ </select>
+ <select id="queryAttendUser" resultType="cn.hutool.json.JSONObject">
+ WITH total AS (
+ SELECT DISTINCT user_id,dt AS login_time FROM sta_assembly_work_last
+ union
+ SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(a.assistants, ',', b.help_topic_id + 1 ), ',', - 1 ) AS user_id ,login_time
+ FROM
+ (SELECT assistants ,dt AS login_time FROM sta_assembly_work_last) a
+ JOIN mysql.help_topic AS b ON b.help_topic_id <![CDATA[ < ]]> ( LENGTH( a.assistants ) - LENGTH( REPLACE ( a.assistants, ',', '' ) ) + 1 )
+ union
+ SELECT DISTINCT user_id ,end_time AS login_time FROM sta_assembly_work_history WHERE end_time BETWEEN #{startTime,jdbcType=TIMESTAMP} AND #{endTime,jdbcType=TIMESTAMP}
+ union
+ SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(c.assistants, ',', d.help_topic_id + 1 ), ',', - 1 ) AS user_id ,login_time
+ FROM
+ (SELECT assistants,end_time AS login_time FROM sta_assembly_work_history WHERE end_time BETWEEN #{startTime,jdbcType=TIMESTAMP} AND #{endTime,jdbcType=TIMESTAMP}) c
+ JOIN mysql.help_topic AS d ON d.help_topic_id <![CDATA[ < ]]> ( LENGTH( c.assistants ) - LENGTH( REPLACE ( c.assistants, ',', '' ) ) + 1 ))
+ SELECT MAX(CASE record.title WHEN 'require_attend' THEN record.count_user ELSE 0 END) require_attend,
+ MAX(CASE record.title WHEN 'actual_attend' THEN record.count_user ELSE 0 END) actual_attend
+ FROM
+ (SELECT COUNT(DISTINCT user_id) AS count_user,'require_attend' AS title FROM total WHERE user_id !=''
+ UNION
+ SELECT COUNT(DISTINCT user_id) AS count_user,'actual_attend' AS title FROM total WHERE user_id !='' AND login_time <![CDATA[ > ]]> #{todayDt,jdbcType=TIMESTAMP}) record
+ </select>
+
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete
from sta_assembly_work_last
@@ -359,14 +416,14 @@
<if test="lineId != null">line_id,</if>
<if test="stationId != null">station_id,</if>
<if test="planId != null">plan_id,</if>
- <if test="processId != null">process_id,</if>
- <if test="nodeId != null">node_id,</if>
- <if test="workType != null">work_Type,</if>
+ <if test="processId!= null">process_id,</if>
+ <if test="nodeId!= null">node_id,</if>
+ <if test="workType!= null">work_Type,</if>
<if test="dt != null">dt,</if>
<if test="status != null">status,</if>
<if test="startTime != null">start_time,</if>
<if test="endTime != null">end_time,</if>
- <if test="assistants != null">assistants,</if>
+ <if test="assistants != null and assistants !=''">assistants,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id,jdbcType=BIGINT},</if>
@@ -374,14 +431,14 @@
<if test="lineId != null">#{lineId,jdbcType=BIGINT},</if>
<if test="stationId != null">#{stationId,jdbcType=BIGINT},</if>
<if test="planId != null">#{planId,jdbcType=BIGINT},</if>
- <if test="processId != null">#{processId,jdbcType=BIGINT},</if>
- <if test="nodeId != null">#{nodeId,jdbcType=BIGINT},</if>
- <if test="workType != null">#{workType,jdbcType=TINYINT},</if>
+ <if test="processId!= null">#{processId,jdbcType=BIGINT},</if>
+ <if test="nodeId!= null">#{nodeId,jdbcType=BIGINT},</if>
+ <if test="workType!= null">#{workType,jdbcType=TINYINT},</if>
<if test="dt != null">#{dt,jdbcType=TIMESTAMP},</if>
<if test="status != null">#{status,jdbcType=TINYINT},</if>
<if test="startTime != null">#{startTime,jdbcType=TIMESTAMP},</if>
<if test="endTime != null">#{endTime,jdbcType=TIMESTAMP},</if>
- <if test="assistants != null">#{assistants,jdbcType=VARCHAR},</if>
+ <if test="assistants != null and assistants !=''">#{assistants,jdbcType=VARCHAR},</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast">
@@ -399,13 +456,13 @@
<if test="planId != null">
plan_id = #{planId,jdbcType=BIGINT},
</if>
- <if test="processId != null">
+ <if test="processId!= null">
process_id = #{processId,jdbcType=BIGINT},
</if>
- <if test="nodeId != null">
+ <if test="nodeId!= null">
node_id = #{nodeId,jdbcType=BIGINT},
</if>
- <if test="workType != null">
+ <if test="workType!= null">
work_type = #{workType,jdbcType=TINYINT},
</if>
<if test="dt != null">
@@ -420,7 +477,7 @@
<if test="endTime != null">
end_time = #{endTime,jdbcType=TIMESTAMP},
</if>
- <if test="assistants != null">
+ <if test="assistants != null and assistants !=''">
assistants = #{assistants,jdbcType=VARCHAR},
</if>
</set>
--
Gitblit v1.8.0