liurunyu
2024-01-08 a5e68895029a10d6134df9d13c6925c752bf1f7b
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -7,6 +7,8 @@
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="code" jdbcType="VARCHAR" property="code" />
    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
    <result column="onlineState" jdbcType="TINYINT" property="onlinestate" />
    <result column="reportTime" jdbcType="TIMESTAMP" property="reporttime" />
    <result column="addWays" jdbcType="TINYINT" property="addways" />
    <result column="operator" jdbcType="BIGINT" property="operator" />
    <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" />
@@ -14,7 +16,7 @@
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, code, protocol, addWays, `operator`, operateDt, deleted
    id, code, protocol, onlineState, reportTime, addWays, `operator`, operateDt, deleted
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -32,11 +34,13 @@
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
    <!--@mbg.generated-->
    insert into pr_controller (id, code, protocol, 
      addWays, `operator`, operateDt,
      deleted)
      onlineState, reportTime, addWays,
      `operator`, operateDt, deleted
      )
    values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, 
      #{addways,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP},
      #{deleted,jdbcType=TINYINT})
      #{onlinestate,jdbcType=TINYINT}, #{reporttime,jdbcType=TIMESTAMP}, #{addways,jdbcType=TINYINT},
      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController">
@@ -51,6 +55,12 @@
      </if>
      <if test="protocol != null">
        protocol,
      </if>
      <if test="onlinestate != null">
        onlineState,
      </if>
      <if test="reporttime != null">
        reportTime,
      </if>
      <if test="addways != null">
        addWays,
@@ -74,6 +84,12 @@
      </if>
      <if test="protocol != null">
        #{protocol,jdbcType=VARCHAR},
      </if>
      <if test="onlinestate != null">
        #{onlinestate,jdbcType=TINYINT},
      </if>
      <if test="reporttime != null">
        #{reporttime,jdbcType=TIMESTAMP},
      </if>
      <if test="addways != null">
        #{addways,jdbcType=TINYINT},
@@ -99,6 +115,12 @@
      <if test="protocol != null">
        protocol = #{protocol,jdbcType=VARCHAR},
      </if>
      <if test="onlinestate != null">
        onlineState = #{onlinestate,jdbcType=TINYINT},
      </if>
      <if test="reporttime != null">
        reportTime = #{reporttime,jdbcType=TIMESTAMP},
      </if>
      <if test="addways != null">
        addWays = #{addways,jdbcType=TINYINT},
      </if>
@@ -119,10 +141,100 @@
    update pr_controller
    set code = #{code,jdbcType=VARCHAR},
      protocol = #{protocol,jdbcType=VARCHAR},
      onlineState = #{onlinestate,jdbcType=TINYINT},
      reportTime = #{reporttime,jdbcType=TIMESTAMP},
      addWays = #{addways,jdbcType=TINYINT},
      `operator` = #{operator,jdbcType=BIGINT},
      operateDt = #{operatedt,jdbcType=TIMESTAMP},
      deleted = #{deleted,jdbcType=TINYINT}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <!--根据指定获取控制器记录数-->
  <select id="getRecordCount" resultType="java.lang.Long">
    SELECT
      COUNT(*) AS recordCount
    FROM pr_controller con
        INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
        INNER JOIN pr_intake inta ON ic.intakeId = inta.id
        , (SELECT @i:=0) AS itable
    <where>
      AND ic.operateType = 1
      <if test = "id != null and id > 0">
        AND con.id = ${id}
      </if>
      <if test = "controllerCode != null and controllerCode !=''">
        AND con.code like CONCAT('%',#{controllerCode},'%')
      </if>
      <if test = "onlineState != null and onlineState > 0">
        AND con.onlineState = ${onlineState}
      </if>
      <if test = "bindNumber != null and bindNumber > 0">
        AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
      </if>
    </where>
  </select>
  <!--根据指定获取控制器记录-->
  <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController">
    SELECT
        (@i:=@i+1) AS id,
        t.* FROM(
          SELECT
            con.code AS controllerCode,
            (CASE
                WHEN con.onlineState = 1 THEN "在线"
                WHEN con.onlineState = 2 THEN "离线"
            END) AS onlineState,
            inta.name AS intakeName,
            (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber,
            con.reportTime
          FROM pr_controller con
            INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id
            INNER JOIN pr_intake inta ON ic.intakeId = inta.id
          <where>
            AND ic.operateType = 1
            <if test = "id != null and id > 0">
              AND con.id = ${id}
            </if>
            <if test = "controllerCode != null and controllerCode !=''">
              AND con.code like CONCAT('%',#{controllerCode},'%')
            </if>
            <if test = "onlineState != null and onlineState > 0">
              AND con.onlineState = ${onlineState}
            </if>
            <if test = "bindNumber != null and bindNumber > 0">
              AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber}
            </if>
          </where>
          ORDER BY con.operateDt DESC
          <if test="pageCurr != null and pageSize != null">
            LIMIT ${pageCurr}, ${pageSize}
          </if>
        ) t
    , (SELECT @i:=0) AS itable
  </select>
  <!--根据控制器编号获取控制器列表-->
  <select id="getControllersByCode" resultType="java.util.Map">
    SELECT id, code FROM pr_controller WHERE code LIKE CONCAT('%',#{controllerCode},'%')
  </select>
  <!--根据控制器编号逻辑删除控制-->
  <update id="deleteControllerById">
    UPDATE pr_controller SET deleted = 1 WHERE id = ${controllerId}
  </update>
  <!--根据控制器编号获取未删除的控制器数量-->
  <select id="getRecordCountOfController" resultType="java.lang.Integer">
    SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId}
  </select>
</mapper>