From d38bb7f88d0c499265e6da62a52686a654834daa Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期六, 03 八月 2024 08:59:29 +0800 Subject: [PATCH] 2024-08-03 朱宝民 优化获取命令日志历史记录接口 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 161 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 114 insertions(+), 47 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml index aee1cf2..0f4282c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml @@ -4,7 +4,7 @@ <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> <!--@mbg.generated--> <!--@Table rm_command_history--> - <id column="id" jdbcType="BIGINT" property="id" /> + <id column="com_id" jdbcType="BIGINT" property="comId" /> <result column="command_code" jdbcType="VARCHAR" property="commandCode" /> <result column="command_name" jdbcType="VARCHAR" property="commandName" /> <result column="intake_id" jdbcType="BIGINT" property="intakeId" /> @@ -15,42 +15,44 @@ <result column="operator" jdbcType="BIGINT" property="operator" /> <result column="result" jdbcType="TINYINT" property="result" /> <result column="result_time" jdbcType="TIMESTAMP" property="resultTime" /> - <result column="result_text" property="resultText" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" /> + <result column="result_text" jdbcType="LONGVARCHAR" property="resultText" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> - id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, `operator`, - `result`, result_time, result_text + com_id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, + `operator`, `result`, result_time, result_text </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> select <include refid="Base_Column_List" /> from rm_command_history - where id = #{id,jdbcType=BIGINT} + where com_id = #{comId,jdbcType=BIGINT} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!--@mbg.generated--> delete from rm_command_history - where id = #{id,jdbcType=BIGINT} + where com_id = #{comId,jdbcType=BIGINT} </delete> <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> <!--@mbg.generated--> - insert into rm_command_history (id, command_code, command_name, - intake_id, rtu_addr, protocol, param, - send_time, `operator`, `result`, - result_time, result_text) - values (#{id,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR}, #{intakeId,jdbcType=BIGINT}, - #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, - #{sendTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=BIGINT}, #{result,jdbcType=TINYINT}, - #{resultTime,jdbcType=TIMESTAMP}, #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}) + insert into rm_command_history (com_id, command_code, command_name, + intake_id, rtu_addr, protocol, + param, send_time, `operator`, + `result`, result_time, result_text + ) + values (#{comId,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR}, + #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, + #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{sendTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=BIGINT}, + #{result,jdbcType=TINYINT}, #{resultTime,jdbcType=TIMESTAMP}, #{resultText,jdbcType=LONGVARCHAR} + ) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> <!--@mbg.generated--> insert into rm_command_history <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null"> - id, + <if test="comId != null"> + com_id, </if> <if test="commandCode != null"> command_code, @@ -87,8 +89,8 @@ </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null"> - #{id,jdbcType=BIGINT}, + <if test="comId != null"> + #{comId,jdbcType=BIGINT}, </if> <if test="commandCode != null"> #{commandCode,jdbcType=VARCHAR}, @@ -121,7 +123,7 @@ #{resultTime,jdbcType=TIMESTAMP}, </if> <if test="resultText != null"> - #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, + #{resultText,jdbcType=LONGVARCHAR}, </if> </trim> </insert> @@ -160,10 +162,10 @@ result_time = #{resultTime,jdbcType=TIMESTAMP}, </if> <if test="resultText != null"> - result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, + result_text = #{resultText,jdbcType=LONGVARCHAR}, </if> </set> - where id = #{id,jdbcType=BIGINT} + where com_id = #{comId,jdbcType=BIGINT} </update> <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> <!--@mbg.generated--> @@ -178,20 +180,18 @@ `operator` = #{operator,jdbcType=BIGINT}, `result` = #{result,jdbcType=TINYINT}, result_time = #{resultTime,jdbcType=TIMESTAMP}, - result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} - where id = #{id,jdbcType=BIGINT} + result_text = #{resultText,jdbcType=LONGVARCHAR} + where com_id = #{comId,jdbcType=BIGINT} </update> <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級--> <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> SELECT - com.command_code AS commandCode, inta.name AS intakeNum, rtus.isOnLine, com.rtu_addr AS rtuAddr, - com.param ->>'$.orderNo' AS orderNo, com.param ->>'$.icCardNo' AS vcNum, - com.send_time AS openTime + (SELECT param ->>'$.orderNo' AS orderNo FROM rm_command_history WHERE rtu_addr = com.rtu_addr ORDER BY send_time desc LIMIT 0,1) AS orderNo FROM rm_command_history com INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr INNER JOIN pr_intake inta ON con.intakeId = inta.id @@ -214,35 +214,102 @@ AND param ->>'$.orderNo' = com.param ->>'$.orderNo' ) </where> - ORDER BY com.send_time DESC + GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->>'$.icCardNo' </select> <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟--> <select id="getUncloseParam" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam"> SELECT - com.rtu_addr AS rtuAddr, - com.param ->>'$.orderNo' AS orderNo, - com.param ->>'$.icCardNo' AS vcNum + com.rtu_addr AS rtuAddr, + com.param ->>'$.orderNo' AS orderNo, + com.param ->>'$.icCardNo' AS vcNum FROM rm_command_history com - INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr - INNER JOIN pr_intake inta ON con.intakeId = inta.id - INNER JOIN JSON_TABLE( - '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]', - '$[*]' COLUMNS( - rtuAddr VARCHAR(20) PATH '$.rtuAddr', - isOnLine BOOLEAN PATH '$.isOnLine' - ) - ) rtus ON com.rtu_addr = rtus.rtuAddr + INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr + INNER JOIN pr_intake inta ON con.intakeId = inta.id + INNER JOIN JSON_TABLE( + <!-- '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> + #{onLineMap}, + '$[*]' COLUMNS( + rtuAddr VARCHAR(20) PATH '$.rtuAddr', + isOnLine BOOLEAN PATH '$.isOnLine' + ) + ) rtus ON com.rtu_addr = rtus.rtuAddr WHERE (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97') AND con.intakeId = #{intakeId} - AND NOT EXISTS ( - SELECT * - FROM rm_command_history - WHERE (result IS NULL OR result = 1 ) - AND (command_code = '93' OR command_code = 'A3' OR command_code = '98') - AND param ->>'$.orderNo' = com.param ->>'$.orderNo' - ) + AND NOT EXISTS ( + SELECT * + FROM rm_command_history + WHERE (result IS NULL OR result = 1 ) + AND (command_code = '93' OR command_code = 'A3' OR command_code = '98') + AND param ->>'$.orderNo' = com.param ->>'$.orderNo' + ) ORDER BY com.send_time DESC - LIMIT 0,1 + LIMIT 0,1 </select> + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟--> + <select id="getCommandHistoriesCount" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM rm_command_history his + INNER JOIN pr_intake inta ON inta.id = his.intake_id + LEFT JOIN se_client cli ON cli.id = his.operator + LEFT JOIN ba_user user ON user.id = his.operator + <where> + <if test="intakeId != null"> + AND his.intake_id = #{intakeId} + </if> + <if test = "commandName != null and commandName !=''"> + AND his.command_name LIKE CONCAT('%',#{commandName},'%') + </if> + <if test = "result != null"> + AND his.result = #{result} + </if> + <if test = "timeStart != null and timeStop != null"> + AND his.send_time BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍--> + <select id="getCommandHistories" resultType="com.dy.pipIrrGlobal.voRm.VoCommand"> + SELECT + his.com_id AS comId, + his.command_name AS commandName, + inta.name AS intakeName, + his.rtu_addr AS rtuAddr, + his.protocol, + his.send_time AS sendTime, + his.result_time AS resultTime, + (CASE + WHEN his.result = 1 THEN "鎴愬姛" + ELSE "澶辫触" + END) AS result, + his.result_text, + IFNULL(cli.name, user.name) AS userName + FROM rm_command_history his + INNER JOIN pr_intake inta ON inta.id = his.intake_id + LEFT JOIN se_client cli ON cli.id = his.operator + LEFT JOIN ba_user user ON user.id = his.operator + <where> + <if test="intakeId != null"> + AND his.intake_id = #{intakeId} + </if> + <if test = "commandName != null and commandName !=''"> + AND his.command_name LIKE CONCAT('%',#{commandName},'%') + </if> + <if test = "result != null"> + AND his.result = #{result} + </if> + + <if test = "timeStart != null and timeStop != null"> + AND his.send_time BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + ORDER BY his.send_time DESC + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0