From 4917ae8ab0ef975560674adf20d7001bef0a47d9 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 22 一月 2025 11:27:22 +0800 Subject: [PATCH] 通信中间件代码优化;取水口统合数据增加远程的属性内容。 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java | 4 + pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java | 55 +++++++++++++++++- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java | 5 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml | 26 ++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java | 33 +++++++++++ 5 files changed, 117 insertions(+), 6 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java index a8ae268..a19d9be 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import lombok.Data; @@ -33,16 +34,19 @@ /** * 鏈�鏂版姤璀︽椂闂� */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date alarmDt ; /** * 鏈�鍚庡紑闃�鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date lastOpenDt ; /** * 鏈�鍚庡叧闂椂闂� */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date lastCloseDt ; diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java new file mode 100644 index 0000000..ccc1610 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java @@ -0,0 +1,33 @@ +package com.dy.pipIrrGlobal.daoAllRound; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author: liurunyu + * @Date: 2025/1/14 16:45 + * @Description + */ +@Mapper +public interface Ar4RemoteMapper extends BaseMapper<Object> { + + /** + * 鏌ヨ鍙栨按鍙f渶鏂版姤璀︿俊鎭� + * @param intakeId + * @return + */ + List<VoArIntakeRemote> alarmInfo(@Param("intakeId") Long intakeId) ; + + /** + * 鏌ヨ鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅 + * @param intakeId + * @return + */ + List<VoArIntakeRemote> openCloseValveInfo(@Param("intakeId") Long intakeId) ; + + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml new file mode 100644 index 0000000..8548633 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml @@ -0,0 +1,26 @@ +<?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.daoAllRound.Ar4RemoteMapper"> + + <select id="alarmInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> + select + CONCAT( + IF(alarm_loss = 1, '婕忔崯鎶ヨ锛�', ''), + IF(alarm_battery_volt = 1, '鐢垫睜鐢靛帇鎶ヨ锛�', ''), + IF(alarm_valve = 1, '闃�闂ㄦ姤璀︼紝', ''), + IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅滄姤璀︼紝', '') + ) AS alarm, + dt AS alarmDt + from rm_alarm_state_last rasl + where intake_id = #{intakeId,jdbcType=BIGINT} + </select> + + <select id="openCloseValveInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> + select + op_dt AS lastOpenDt, + cl_dt AS lastCloseDt + from rm_open_close_valve_last rocvl + where intake_id = #{intakeId,jdbcType=BIGINT} + </select> + +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java index b754cd8..7e415b2 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java @@ -75,15 +75,16 @@ Long lastDownComTime = tcpSe.lastDownComTime ; boolean nowSend = false ; if(this.result.isQuickSend){ + //鍦ㄥ懡浠ゆ瀯寤烘椂锛屽彧鏈夊湪浣庡姛鑰楁儏鍐典笅锛屾墠浼氭妸isQuickSend浠樺�间负true //鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛屽綋鍓嶆槸閫熷彂鍛戒护锛屾弧瓒冲彂閫佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠� nowSend = true ; }else if(lastDownComTime == null){ //鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛屽綋鍓峈TU涓婄嚎浠ユ潵鏈浘涓嬪彂杩囧懡浠わ紝婊¤冻鍙戦�佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠� nowSend = true ; - }else if(this.result.isFastCom && now - lastDownComTime >= ServerProperties.fastCommandSendInterval){ + }else if(this.result.isFastCom && (now - lastDownComTime) >= ServerProperties.fastCommandSendInterval){ //鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛孯TU涓婄嚎浠ユ潵鏇句笅鍙戣繃鍛戒护锛屽綋鍓嶅懡浠ゆ槸蹇�熷懡浠や笖瓒呰繃鍛戒护涓嬪彂闂撮殧锛屾弧瓒冲彂閫佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠� nowSend = true ; - }else if(!this.result.isFastCom && now - lastDownComTime >= ServerProperties.commandSendInterval){ + }else if(!this.result.isFastCom && (now - lastDownComTime) >= ServerProperties.commandSendInterval){ //鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛孯TU涓婄嚎浠ユ潵鏇句笅鍙戣繃鍛戒护锛屽綋鍓嶅懡浠ら潪蹇�熷懡浠わ紝RTU涓嬪彂鍛戒护闂撮殧瓒呰繃鍛戒护涓嬪彂闂撮殧锛屾弧瓒冲彂閫佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠� nowSend = true ; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java index 990d0a9..52d1d71 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java @@ -7,6 +7,7 @@ import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote; import com.dy.pipIrrGlobal.daoAllRound.Ar4BaseMapper; +import com.dy.pipIrrGlobal.daoAllRound.Ar4RemoteMapper; import com.dy.pipIrrGlobal.rtuMw.CodeLocal; import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw; import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; @@ -32,6 +33,9 @@ private Ar4BaseMapper baseDao; @Autowired + private Ar4RemoteMapper remoteDao; + + @Autowired private Environment env; @Autowired @@ -43,12 +47,33 @@ */ public QueryResultVo<VoArIntakeRemote> intakeInfo(Long intakeId){ VoArIntakeRemote rVo = new VoArIntakeRemote() ; + String rtuAddr = this.getRtuAddr(intakeId); + this.getRtuOnLine(intakeId, rtuAddr, rVo); + this.getAlarmInfo(intakeId, rtuAddr, rVo); + this.getOpenCloseValveInfo(intakeId, rtuAddr, rVo); + return null ; + } - String rtuAddr = null ; + /** + * 鑾峰彇鍙栨按鍙e搴旂殑RTU鍦板潃 + * @param intakeId 鍙栨按鍙D + * @return RTU鍦板潃 + */ + private String getRtuAddr(Long intakeId){ List<String> rtuAddrs = baseDao.intakeRtuAddr(intakeId) ; if(rtuAddrs != null && rtuAddrs.size() > 0){ - rtuAddr = rtuAddrs.get(0) ; + return rtuAddrs.get(0) ; } + return null ; + } + + /** + * 寰楀埌鍙栨按RTU鍦ㄧ嚎鎯呭喌 + * @param intakeId + * @param rtuAddr + * @param rVo + */ + private void getRtuOnLine(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ if(rtuAddr != null){ //鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌 Command com = this.createInnerCommand(CodeLocal.onLinePart); @@ -77,7 +102,29 @@ log.error("閫氫俊涓棿浠惰繑鍥炲唴閮ㄥ懡浠ょ粨鏋滀负null"); } } - - return null ; + } + /** + * 寰楀埌鍙栨按鍙f渶鏂版姤璀︿俊鎭� + * @param intakeId + */ + private void getAlarmInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ + List<VoArIntakeRemote> list = remoteDao.alarmInfo(intakeId); + if(list != null && list.size() > 0){ + VoArIntakeRemote vo = list.get(0) ; + rVo.alarm = vo.alarm ; + rVo.alarmDt = vo.alarmDt ; + } + } + /** + * 寰楀埌鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅 + * @param intakeId + */ + private void getOpenCloseValveInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ + List<VoArIntakeRemote> list = remoteDao.openCloseValveInfo(intakeId); + if(list != null && list.size() > 0){ + VoArIntakeRemote vo = list.get(0) ; + rVo.lastOpenDt = vo.lastOpenDt ; + rVo.lastCloseDt = vo.lastCloseDt ; + } } } -- Gitblit v1.8.0