Administrator
2024-06-07 fea4afb0bf137c135e6cc59a74f9dff34966f813
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -7,7 +7,8 @@
    <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="intake_id" jdbcType="BIGINT" property="intakeId" />
    <result column="rtu_addr" 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" />
@@ -18,7 +19,7 @@
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, command_code, command_name, rtuAddr, protocol, param, send_time, `operator`,
    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">
@@ -36,11 +37,11 @@
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
    <!--@mbg.generated-->
    insert into rm_command_history (id, command_code, command_name, 
      rtuAddr, protocol, param,
      intake_id, rtu_addr, 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},
    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>
@@ -57,8 +58,11 @@
      <if test="commandName != null">
        command_name,
      </if>
      <if test="rtuaddr != null">
        rtuAddr,
      <if test="intakeId != null">
        intake_id,
      </if>
      <if test="rtuAddr != null">
        rtu_addr,
      </if>
      <if test="protocol != null">
        protocol,
@@ -92,8 +96,11 @@
      <if test="commandName != null">
        #{commandName,jdbcType=VARCHAR},
      </if>
      <if test="rtuaddr != null">
        #{rtuaddr,jdbcType=VARCHAR},
      <if test="intakeId != null">
        #{intakeId,jdbcType=BIGINT},
      </if>
      <if test="rtuAddr != null">
        #{rtuAddr,jdbcType=VARCHAR},
      </if>
      <if test="protocol != null">
        #{protocol,jdbcType=VARCHAR},
@@ -128,8 +135,11 @@
      <if test="commandName != null">
        command_name = #{commandName,jdbcType=VARCHAR},
      </if>
      <if test="rtuaddr != null">
        rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
      <if test="intakeId != null">
        intake_id = #{intakeId,jdbcType=BIGINT},
      </if>
      <if test="rtuAddr != null">
        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
      </if>
      <if test="protocol != null">
        protocol = #{protocol,jdbcType=VARCHAR},
@@ -160,7 +170,8 @@
    update rm_command_history
    set command_code = #{commandCode,jdbcType=VARCHAR},
      command_name = #{commandName,jdbcType=VARCHAR},
      rtuAddr = #{rtuaddr,jdbcType=VARCHAR},
      intake_id = #{intakeId,jdbcType=BIGINT},
      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
      protocol = #{protocol,jdbcType=VARCHAR},
      param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
      send_time = #{sendTime,jdbcType=TIMESTAMP},
@@ -177,12 +188,12 @@
        com.command_code AS commandCode,
        inta.name AS intakeNum,
        rtus.isOnLine,
        com.rtuAddr,
        com.rtu_addr AS 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_controller con ON com.rtu_addr = 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}]',-->
@@ -191,9 +202,47 @@
                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')
        ) rtus ON com.rtu_addr = rtus.rtuAddr
    <where>
      AND (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97')
      AND com.operator = #{operator}
      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'
      )
    </where>
    ORDER BY com.send_time DESC
  </select>
  <!--根据取水口ID获取该取水口未关阀参数-->
  <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
    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
    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'
      )
    ORDER BY com.send_time DESC
      LIMIT 0,1
  </select>
</mapper>