From b83f639362ae959de55900d14d132585cd72a90d Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 05 七月 2024 08:39:41 +0800 Subject: [PATCH] p206V1.0.0协议与硬件联调,并修改完善代码。 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml | 101 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 83 insertions(+), 18 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..a663b66 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml @@ -14,13 +14,23 @@ <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 </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,8 +42,8 @@ </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, addWays, `operator`, operateDt, deleted ) values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, @@ -148,25 +158,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 +199,60 @@ <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄨ褰�--> <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, + con.protocol, + inta.remarks, + rtus.isOnLine, (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber, - con.findDt + 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" resultMap="PartResultMap"> + SELECT + <include refid="Part_Column_List"> + </include> + FROM pr_controller WHERE deleted = 0 AND intakeId is not null AND rtuAddr=#{rtuAddr,jdbcType=VARCHAR} </select> <!--鏍规嵁鎺у埗鍣ㄧ紪鍙烽�昏緫鍒犻櫎鎺у埗--> @@ -219,4 +264,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