From e4bc4f97e837fcf1cb976e92a022c0791c9360a4 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期二, 15 十月 2024 14:05:39 +0800 Subject: [PATCH] 优化代码 控制器查询 最近未报数的取水口 修改密码 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml | 124 ++++++++++++++++++++++++++++++++++------- 1 files changed, 102 insertions(+), 22 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml index 9227924..fbd2fd8 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml @@ -9,18 +9,29 @@ <result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" /> <result column="protocol" jdbcType="VARCHAR" property="protocol" /> <result column="findDt" jdbcType="TIMESTAMP" property="findDt" /> + <result column="orgTag" jdbcType="VARCHAR" property="orgTag" /> <result column="addWays" jdbcType="TINYINT" property="addWays" /> <result column="operator" jdbcType="BIGINT" property="operator" /> <result column="operateDt" jdbcType="TIMESTAMP" property="operateDt" /> <result column="deleted" jdbcType="TINYINT" property="deleted" /> </resultMap> + <resultMap id="PartResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrController"> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="intakeId" jdbcType="BIGINT" property="intakeId" /> + <result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" /> + </resultMap> + <sql id="Base_Column_List"> <!--@mbg.generated--> - id, intakeId, rtuAddr, protocol, findDt, addWays, `operator`, operateDt, deleted + id, intakeId, rtuAddr, protocol, findDt, orgTag, addWays, `operator`, operateDt, deleted + </sql> + <sql id="Part_Column_List"> + <!--@mbg.generated--> + id, rtuAddr, intakeId </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> - select + select <include refid="Base_Column_List" /> from pr_controller where id = #{id,jdbcType=BIGINT} @@ -32,13 +43,14 @@ </delete> <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController"> <!--@mbg.generated--> - insert into pr_controller (id, intakeId, rtuAddr, - protocol, findDt, addWays, + insert into pr_controller (id, intakeId, rtuAddr, + protocol, findDt, orgTag, addWays, `operator`, operateDt, deleted ) values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, - #{protocol,jdbcType=VARCHAR}, #{findDt,jdbcType=TIMESTAMP}, #{addWays,jdbcType=TINYINT}, - #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT} + #{protocol,jdbcType=VARCHAR}, #{findDt,jdbcType=TIMESTAMP}, #{orgTag,jdbcType=VARCHAR}, + #{addWays,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, + #{deleted,jdbcType=TINYINT} ) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrController"> @@ -59,6 +71,9 @@ </if> <if test="findDt != null"> findDt, + </if> + <if test="orgTag != null"> + orgTag, </if> <if test="addWays != null"> addWays, @@ -88,6 +103,9 @@ </if> <if test="findDt != null"> #{findDt,jdbcType=TIMESTAMP}, + </if> + <if test="orgTag != null"> + #{orgTag,jdbcType=VARCHAR}, </if> <if test="addWays != null"> #{addWays,jdbcType=TINYINT}, @@ -119,6 +137,9 @@ <if test="findDt != null"> findDt = #{findDt,jdbcType=TIMESTAMP}, </if> + <if test="orgTag != null"> + orgTag = #{orgTag,jdbcType=VARCHAR}, + </if> <if test="addWays != null"> addWays = #{addWays,jdbcType=TINYINT}, </if> @@ -141,6 +162,7 @@ rtuAddr = #{rtuAddr,jdbcType=VARCHAR}, protocol = #{protocol,jdbcType=VARCHAR}, findDt = #{findDt,jdbcType=TIMESTAMP}, + orgTag = #{orgTag,jdbcType=VARCHAR}, addWays = #{addWays,jdbcType=TINYINT}, `operator` = #{operator,jdbcType=BIGINT}, operateDt = #{operateDt,jdbcType=TIMESTAMP}, @@ -148,25 +170,38 @@ where id = #{id,jdbcType=BIGINT} </update> + <!--鏍规嵁鎺у埗鍣ㄧ紪鍙峰垹闄ゅ彇姘村彛缂栧彿--> + <update id="deleteIntakeId"> + UPDATE pr_controller SET intakeId = null WHERE id = ${controllerId} + </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 con.intakeId = inta.id + LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id + INNER JOIN pr_intake inta ON con.intakeId = inta.id + left 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 con.rtuAddr = rtus.rtuAddr <where> - AND ic.operateType = 1 - AND deleted = 0 + AND con.deleted = 0 <if test = "id != null and id > 0"> AND con.id = ${id} </if> - <if test = "rtuAddr != null and rtuAddr !=''"> AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%') </if> - + <if test="isOnLine != null and isOnLine !='' "> + AND rtus.isOnLine = #{isOnLine} + </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> @@ -176,38 +211,63 @@ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄨ褰�--> <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController"> SELECT + CAST(con.id AS char) AS id, con.rtuAddr AS rtuAddr, inta.name AS intakeName, - (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber, - con.findDt + con.protocol, + inta.remarks, + rtus.isOnLine, + (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND operateType = 1) AS bindNumber, + con.findDt AS findDt FROM pr_controller con - INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id + LEFT JOIN pr_intake_controller ic ON ic.controllerId = con.id INNER JOIN pr_intake inta ON con.intakeId = inta.id + left 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 con.rtuAddr = rtus.rtuAddr <where> - AND ic.operateType = 1 - AND deleted = 0 + AND con.deleted = 0 <if test = "id != null and id > 0"> AND con.id = ${id} </if> - <if test = "rtuAddr != null and rtuAddr !=''"> AND con.rtuAddr like CONCAT('%',#{rtuAddr},'%') </if> - + <if test="isOnLine != null and isOnLine !='' "> + AND rtus.isOnLine = #{isOnLine} + </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> + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> </select> <!--鏍规嵁鎺у埗鍣ㄥ湴鍧�鑾峰彇鎺у埗鍣ㄥ垪琛�--> <select id="getControllersByAddr" resultType="java.util.Map"> SELECT id, rtuAddr FROM pr_controller WHERE deleted = 0 AND rtuAddr LIKE CONCAT('%',#{rtuAddr},'%') + </select> + + <!--鏍规嵁鎺у埗鍣ㄥ湴鍧�鑾峰彇鎺у埗鍣ㄥ垪琛�--> + <select id="getControllersByRtuAddrAndIntakeNotNull" parameterType="java.lang.String" resultType="com.dy.pipIrrGlobal.pojoPr.PrController"> + SELECT tb.id id, + tb.rtuAddr rtuAddr, + tb.intakeId intakeId, + itb.name intakeName + FROM pr_controller tb + INNER JOIN pr_intake itb on tb.intakeId = itb.id + WHERE tb.deleted = 0 AND tb.intakeId is not null AND tb.rtuAddr=#{rtuAddr,jdbcType=VARCHAR} </select> <!--鏍规嵁鎺у埗鍣ㄧ紪鍙烽�昏緫鍒犻櫎鎺у埗--> @@ -219,4 +279,24 @@ <select id="getRecordCountOfController" resultType="java.lang.Integer"> SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId} </select> + + <!--鏍规嵁娴佹氮鎺у埗鍣ㄧ紪鍙疯幏鍙栧凡缁戝畾璁板綍鏁�--> + <select id="getBindedCount" resultType="java.lang.Integer"> + SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL + </select> + + <!--鏍规嵁鍙栨按鍙D鎴栭榾鎺у櫒鍦板潃鑾峰彇闃�鎺у櫒瀵硅薄--> + <select id="getRtu" resultType="com.dy.pipIrrGlobal.pojoPr.PrController"> + SELECT * FROM pr_controller + <where> + AND deleted = 0 + <if test = "intakeId != null"> + AND intakeId = #{intakeId} + </if> + <if test = "rtuAddr != null"> + AND rtuAddr = #{rtuAddr} + </if> + </where> + LIMIT 0,1 + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0