| <?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.pipIrrGlobal.daoRm.RmCommandHistoryMapper"> | 
|   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> | 
|     <!--@mbg.generated--> | 
|     <!--@Table rm_command_history--> | 
|     <id column="id" jdbcType="BIGINT" property="id" /> | 
|     <result column="command_code" jdbcType="VARCHAR" property="commandCode" /> | 
|     <result column="command_name" jdbcType="VARCHAR" property="commandName" /> | 
|     <result column="rtuAddr" jdbcType="VARCHAR" property="rtuaddr" /> | 
|     <result column="protocol" jdbcType="VARCHAR" property="protocol" /> | 
|     <result column="param" property="param" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" /> | 
|     <result column="send_time" jdbcType="TIMESTAMP" property="sendTime" /> | 
|     <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" /> | 
|   </resultMap> | 
|   <sql id="Base_Column_List"> | 
|     <!--@mbg.generated--> | 
|     id, command_code, command_name, rtuAddr, 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} | 
|   </select> | 
|   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|     <!--@mbg.generated--> | 
|     delete from rm_command_history | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </delete> | 
|   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> | 
|     <!--@mbg.generated--> | 
|     insert into rm_command_history (id, command_code, command_name,  | 
|       rtuAddr, protocol, param,  | 
|       send_time, `operator`, `result`,  | 
|       result_time, result_text) | 
|     values (#{id,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR},  | 
|       #{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> | 
|   <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> | 
|       <if test="commandCode != null"> | 
|         command_code, | 
|       </if> | 
|       <if test="commandName != null"> | 
|         command_name, | 
|       </if> | 
|       <if test="rtuaddr != null"> | 
|         rtuAddr, | 
|       </if> | 
|       <if test="protocol != null"> | 
|         protocol, | 
|       </if> | 
|       <if test="param != null"> | 
|         param, | 
|       </if> | 
|       <if test="sendTime != null"> | 
|         send_time, | 
|       </if> | 
|       <if test="operator != null"> | 
|         `operator`, | 
|       </if> | 
|       <if test="result != null"> | 
|         `result`, | 
|       </if> | 
|       <if test="resultTime != null"> | 
|         result_time, | 
|       </if> | 
|       <if test="resultText != null"> | 
|         result_text, | 
|       </if> | 
|     </trim> | 
|     <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         #{id,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="commandCode != null"> | 
|         #{commandCode,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="commandName != null"> | 
|         #{commandName,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="rtuaddr != null"> | 
|         #{rtuaddr,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="protocol != null"> | 
|         #{protocol,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="param != null"> | 
|         #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, | 
|       </if> | 
|       <if test="sendTime != null"> | 
|         #{sendTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="operator != null"> | 
|         #{operator,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="result != null"> | 
|         #{result,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="resultTime != null"> | 
|         #{resultTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="resultText != null"> | 
|         #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, | 
|       </if> | 
|     </trim> | 
|   </insert> | 
|   <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> | 
|     <!--@mbg.generated--> | 
|     update rm_command_history | 
|     <set> | 
|       <if test="commandCode != null"> | 
|         command_code = #{commandCode,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="commandName != null"> | 
|         command_name = #{commandName,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="rtuaddr != null"> | 
|         rtuAddr = #{rtuaddr,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="protocol != null"> | 
|         protocol = #{protocol,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="param != null"> | 
|         param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, | 
|       </if> | 
|       <if test="sendTime != null"> | 
|         send_time = #{sendTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="operator != null"> | 
|         `operator` = #{operator,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="result != null"> | 
|         `result` = #{result,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="resultTime != null"> | 
|         result_time = #{resultTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="resultText != null"> | 
|         result_text = #{resultText,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, | 
|       </if> | 
|     </set> | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory"> | 
|     <!--@mbg.generated--> | 
|     update rm_command_history | 
|     set command_code = #{commandCode,jdbcType=VARCHAR}, | 
|       command_name = #{commandName,jdbcType=VARCHAR}, | 
|       rtuAddr = #{rtuaddr,jdbcType=VARCHAR}, | 
|       protocol = #{protocol,jdbcType=VARCHAR}, | 
|       param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, | 
|       send_time = #{sendTime,jdbcType=TIMESTAMP}, | 
|       `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} | 
|   </update> | 
|   | 
|   <!--根据操作员ID获取未关阀记录(包含在线情况)--> | 
|   <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> | 
|     SELECT | 
|         com.command_code AS commandCode, | 
|         inta.name AS intakeNum, | 
|         rtus.isOnLine, | 
|         com.rtuAddr, | 
|         com.param ->>'$.orderNo' AS orderNo, | 
|         com.param ->>'$.icCardNo' AS vcNum, | 
|         com.send_time AS openTime | 
|     FROM rm_command_history com | 
|         INNER JOIN pr_controller con ON com.rtuAddr = con.rtuAddr | 
|         INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|         INNER JOIN JSON_TABLE( | 
|             <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> | 
|             #{onLineMap}, | 
|             '$[*]' COLUMNS( | 
|                 rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
|                 isOnLine BOOLEAN PATH '$.isOnLine' | 
|             ) | 
|         ) rtus ON com.rtuAddr = rtus.rtuAddr | 
|     WHERE (com.command_code = '92' OR com.command_code = 'A2') AND com.operator = #{operator} | 
|     AND NOT EXISTS (SELECT * FROM rm_command_history WHERE (command_code = '93' OR command_code = 'A3') AND param ->>'$.orderNo' = com.param ->>'$.orderNo') | 
|     ORDER BY com.send_time DESC | 
|   </select> | 
| </mapper> |