From ed093002ab4882ca377430b2f8506cb5ed72fdbd Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 04 十二月 2024 14:11:10 +0800
Subject: [PATCH] power实时推送

---
 src/main/java/com/whyc/pojo/StationInf.java             |    2 
 src/main/java/com/whyc/service/PowerRealRt2Service.java |    7 
 src/main/java/com/whyc/pojo/PowerInf.java               |    8 
 src/main/java/com/whyc/service/PowerBattRtService.java  |    7 
 src/main/java/com/whyc/pojo/PowerBattRt.java            |   57 ++++
 src/main/java/com/whyc/service/PowerRealRt1Service.java |    7 
 src/main/java/com/whyc/mapper/PowerInfMapper.java       |    6 
 src/main/java/com/whyc/service/PowerInfService.java     |   75 +++++
 src/main/java/com/whyc/pojo/PowerRealRt2.java           |  170 +++++++++++++
 src/main/java/com/whyc/mapper/PowerRealRt2Mapper.java   |    6 
 src/main/java/com/whyc/service/PowerRealRt3Service.java |    7 
 src/main/java/com/whyc/webSocket/PowerSocket.java       |  126 +++++++++
 src/main/java/com/whyc/mapper/PowerBattRtMapper.java    |    6 
 src/main/java/com/whyc/pojo/PowerRealRt3.java           |   86 ++++++
 src/main/java/com/whyc/mapper/PowerRealRt3Mapper.java   |    6 
 src/main/java/com/whyc/mapper/PowerRealRt1Mapper.java   |    6 
 src/main/java/com/whyc/pojo/PowerRealRt1.java           |  182 ++++++++++++++
 17 files changed, 763 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/mapper/PowerBattRtMapper.java b/src/main/java/com/whyc/mapper/PowerBattRtMapper.java
new file mode 100644
index 0000000..69923e8
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/PowerBattRtMapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.PowerBattRt;
+
+public interface PowerBattRtMapper extends CustomMapper<PowerBattRt>{
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/PowerInfMapper.java b/src/main/java/com/whyc/mapper/PowerInfMapper.java
new file mode 100644
index 0000000..b64f7ca
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/PowerInfMapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.PowerInf;
+
+public interface PowerInfMapper extends CustomMapper<PowerInf>{
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/PowerRealRt1Mapper.java b/src/main/java/com/whyc/mapper/PowerRealRt1Mapper.java
new file mode 100644
index 0000000..cd367e6
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/PowerRealRt1Mapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.PowerRealRt1;
+
+public interface PowerRealRt1Mapper extends CustomMapper<PowerRealRt1>{
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/PowerRealRt2Mapper.java b/src/main/java/com/whyc/mapper/PowerRealRt2Mapper.java
new file mode 100644
index 0000000..d2a06f2
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/PowerRealRt2Mapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.PowerRealRt2;
+
+public interface PowerRealRt2Mapper extends CustomMapper<PowerRealRt2>{
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/PowerRealRt3Mapper.java b/src/main/java/com/whyc/mapper/PowerRealRt3Mapper.java
new file mode 100644
index 0000000..4a20b11
--- /dev/null
+++ b/src/main/java/com/whyc/mapper/PowerRealRt3Mapper.java
@@ -0,0 +1,6 @@
+package com.whyc.mapper;
+
+import com.whyc.pojo.PowerRealRt3;
+
+public interface PowerRealRt3Mapper extends CustomMapper<PowerRealRt3>{
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/pojo/PowerBattRt.java b/src/main/java/com/whyc/pojo/PowerBattRt.java
new file mode 100644
index 0000000..6dd7878
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/PowerBattRt.java
@@ -0,0 +1,57 @@
+package com.whyc.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author lxw
+ * @since 2024-12-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName(schema = "db_power_rt",value = "tb_power_batt_rt")
+@ApiModel(value="PowerBattRt瀵硅薄", description="")
+public class PowerBattRt implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鑷涓婚敭")
+    @TableId(value = "num", type = IdType.AUTO)
+    private Long num;
+
+    @ApiModelProperty(value = "鐢垫簮ID")
+    private Integer powerId;
+
+    @ApiModelProperty(value = "璁板綍鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+    @ApiModelProperty(value = "鍗曚綋缂栧彿")
+    private Integer monNum;
+
+    @ApiModelProperty(value = "鍗曚綋鐢靛帇")
+    private Float monVol;
+
+    @ApiModelProperty(value = "鍗曚綋鍐呴樆")
+    private Float monRes;
+
+    @ApiModelProperty(value = "鍗曚綋娓╁害")
+    private Float monTmp;
+
+
+}
diff --git a/src/main/java/com/whyc/pojo/PowerInf.java b/src/main/java/com/whyc/pojo/PowerInf.java
index b18ca24..e005871 100644
--- a/src/main/java/com/whyc/pojo/PowerInf.java
+++ b/src/main/java/com/whyc/pojo/PowerInf.java
@@ -45,5 +45,13 @@
     @ApiModelProperty("鐩存祦杈撳嚭鐢靛帇涓嬮檺闃堝��")
     private Float dcoutvolLowLimit;
 
+    @TableField("power_ip")
+    @ApiModelProperty("鐢垫簮ip")
+    private String powerIp;
+
+    @TableField("dev_type")
+    @ApiModelProperty("鐢垫簮绫诲瀷锛�1<鍖呭惈鐢垫簮瀹炴椂rt>锛�2<鍖呭惈鐢垫簮瀹炴椂rt>锛�3<涓嶅寘鍚數婧愬疄鏃秗t>")
+    private Integer devType;
+
 
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/pojo/PowerRealRt1.java b/src/main/java/com/whyc/pojo/PowerRealRt1.java
new file mode 100644
index 0000000..ba85d8a
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/PowerRealRt1.java
@@ -0,0 +1,182 @@
+package com.whyc.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author lxw
+ * @since 2024-12-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName(schema = "db_power_rt",value = "tb_power_real_rt1")
+@ApiModel(value="PowerRealRt1瀵硅薄", description="")
+public class PowerRealRt1 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鑷涓婚敭")
+    @TableId(value = "num", type = IdType.AUTO)
+    private Long num;
+
+    private Integer powerId;
+
+    @ApiModelProperty(value = "璁板綍鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+    private Float charOutVol;
+
+    private Float charOutCurr;
+
+    private Float groupVol;
+
+    private Float groupCurr;
+
+    private Float groupTmp;
+
+    private Float busVol;
+
+    private Float ac1Vola;
+
+    private Float ac1Volb;
+
+    private Float ac1Volc;
+
+    private Float ac2Vola;
+
+    private Float ac2Volb;
+
+    private Float ac2Volc;
+
+    private Float busVolPositive;
+
+    private Float busVolNegative;
+
+    private Float busResPositive;
+
+    private Float busResNegative;
+
+    private Integer charJunFloat;
+
+    private Integer charOpenClose;
+
+    private Integer charModelError;
+
+    private Integer charOutOvervol;
+
+    private Integer charOutLessvol;
+
+    private Integer battOvervol;
+
+    private Integer battLessvol;
+
+    private Integer battMonOvervol;
+
+    private Integer battMonLessvol;
+
+    private Integer battState;
+
+    private Integer controlBusOvervol;
+
+    private Integer controlBusLessvol;
+
+    private Integer insualBusVolError;
+
+    private Integer controlBusPositiveError;
+
+    private Integer controlBusNegativeError;
+
+    private Integer insualBusAcvolOvervol;
+
+    private Integer battPatrolDetectorError;
+
+    private Integer insualError;
+
+    private Integer acin1Qf11;
+
+    private Integer acin1Qf12;
+
+    private Integer charOutBusDk11;
+
+    private Integer charOutBattDk12;
+
+    private Integer battOutQf1;
+
+    private Integer busSwitchN1lzk;
+
+    private Integer ac1Fault;
+
+    private Integer ac2Fault;
+
+    private Integer mainSwitchFault;
+
+    private Integer feederTripFault;
+
+    private Integer thunderFault;
+
+    private Integer feedersCommFault;
+
+    private Integer dcFeeder7to9Switch1;
+
+    private Integer dcFeeder7Switch;
+
+    private Integer dcFeeder7Bus1Zk11;
+
+    private Integer dcFeeder7Bus2Zk12;
+
+    private Integer dcFeeder8Switch;
+
+    private Integer dcFeeder8Bus1Zk11;
+
+    private Integer dcFeeder8Bus2Zk12;
+
+    private Integer dcFeeder9Switch;
+
+    private Integer dcFeeder9Bus1Zk11;
+
+    private Integer dcFeeder9Bus2Zk12;
+
+    private Integer acFeeder7Switch;
+
+    private Integer acFeeder7Acin1Q11;
+
+    private Integer acFeeder7Acin2Q12;
+
+    private Integer acFeeder7Acin1Fault;
+
+    private Integer acFeeder7Acin2Fault;
+
+    private Integer acFeeder9Switch;
+
+    private Integer acFeeder9Acin1Q11;
+
+    private Integer acFeeder9Acin2Q12;
+
+    private Integer acFeeder9Acin1Fault;
+
+    private Integer acFeeder9Acin2Fault;
+
+    private Integer insualCommFault;
+
+    private Integer insualInsualFault;
+
+    private Integer insualMiainCommFault;
+
+
+}
diff --git a/src/main/java/com/whyc/pojo/PowerRealRt2.java b/src/main/java/com/whyc/pojo/PowerRealRt2.java
new file mode 100644
index 0000000..d38f522
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/PowerRealRt2.java
@@ -0,0 +1,170 @@
+package com.whyc.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author lxw
+ * @since 2024-12-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName(schema = "db_power_rt",value = "tb_power_real_rt2")
+@ApiModel(value="PowerRealRt2瀵硅薄", description="")
+public class PowerRealRt2 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鑷涓婚敭")
+    @TableId(value = "num", type = IdType.AUTO)
+    private Long num;
+
+    private Integer powerId;
+
+    @ApiModelProperty(value = "璁板綍鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+    private Float charOutVol;
+
+    private Float charOutCurr;
+
+    private Float groupVol;
+
+    private Float groupCurr;
+
+    private Float groupTmp;
+
+    private Float busVol;
+
+    private Float ac1Vola;
+
+    private Float ac1Volb;
+
+    private Float ac1Volc;
+
+    private Float ac2Vola;
+
+    private Float ac2Volb;
+
+    private Float ac2Volc;
+
+    private Float busVolPositive;
+
+    private Float busVolNegative;
+
+    private Float busResPositive;
+
+    private Float busResNegative;
+
+    private Integer charJunFloat;
+
+    private Integer charOpenClose;
+
+    private Integer charModelError;
+
+    private Integer charOutOvervol;
+
+    private Integer charOutLessvol;
+
+    private Integer battOvervol;
+
+    private Integer battLessvol;
+
+    private Integer battMonOvervol;
+
+    private Integer battMonLessvol;
+
+    private Integer battState;
+
+    private Integer controlBusOvervol;
+
+    private Integer controlBusLessvol;
+
+    private Integer insualBusVolError;
+
+    private Integer controlBusPositiveError;
+
+    private Integer controlBusNegativeError;
+
+    private Integer insualBusAcvolOvervol;
+
+    private Integer battPatrolDetectorError;
+
+    private Integer insualError;
+
+    private Integer acin2Qf21;
+
+    private Integer acin2Qf22;
+
+    private Integer charOutBusDk21;
+
+    private Integer charOutBattDk22;
+
+    private Integer battOutQf1;
+
+    private Integer ac1Fault;
+
+    private Integer ac2Fault;
+
+    private Integer mainSwitchFault;
+
+    private Integer feederTripFault;
+
+    private Integer thunderFault;
+
+    private Integer feedersCommFault;
+
+    private Integer dcFeeder7to9Switch1;
+
+    private Integer dcFeeder7Switch;
+
+    private Integer dcFeeder7Bus1Zk21;
+
+    private Integer dcFeeder7Bus2Zk22;
+
+    private Integer dcFeeder8Switch;
+
+    private Integer dcFeeder8Bus1Zk21;
+
+    private Integer dcFeeder8Bus2Zk22;
+
+    private Integer dcFeeder9Switch;
+
+    private Integer dcFeeder9Bus1Zk21;
+
+    private Integer dcFeeder9Bus2Zk22;
+
+    private Integer acFeeder8Switch;
+
+    private Integer acFeeder8Acin1Q11;
+
+    private Integer acFeeder8Acin2Q12;
+
+    private Integer acFeeder8Acin1Fault;
+
+    private Integer acFeeder8Acin2Fault;
+
+    private Integer insualCommFault;
+
+    private Integer insualInsualFault;
+
+    private Integer insualMiainCommFault;
+
+
+}
diff --git a/src/main/java/com/whyc/pojo/PowerRealRt3.java b/src/main/java/com/whyc/pojo/PowerRealRt3.java
new file mode 100644
index 0000000..f17e505
--- /dev/null
+++ b/src/main/java/com/whyc/pojo/PowerRealRt3.java
@@ -0,0 +1,86 @@
+package com.whyc.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author lxw
+ * @since 2024-12-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName(schema = "db_power_rt",value = "tb_power_real_rt3")
+@ApiModel(value="PowerRealRt3瀵硅薄", description="")
+public class PowerRealRt3 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "鑷涓婚敭")
+    @TableId(value = "num", type = IdType.AUTO)
+    private Long num;
+
+    private Integer powerId;
+
+    @ApiModelProperty(value = "璁板綍鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+    private Float charOutVol;
+
+    private Float charOutCurr;
+
+    private Float ac1Vola;
+
+    private Float ac1Volb;
+
+    private Float ac1Volc;
+
+    private Float ac2Vola;
+
+    private Float ac2Volb;
+
+    private Float ac2Volc;
+
+    private Integer charJunFloat;
+
+    private Integer charOpenClose;
+
+    private Integer charModelError;
+
+    private Integer charOutOvervol;
+
+    private Integer charOutLessvol;
+
+    private Integer acin3Qf31;
+
+    private Integer acin3Qf32;
+
+    private Integer charOutBatt1Dk31;
+
+    private Integer charOutBatt2Dk31;
+
+    private Integer ac1Fault;
+
+    private Integer ac2Fault;
+
+    private Integer mainSwitchFault;
+
+    private Integer thunderFault;
+
+
+}
diff --git a/src/main/java/com/whyc/pojo/StationInf.java b/src/main/java/com/whyc/pojo/StationInf.java
index 0c5bc2e..848026f 100644
--- a/src/main/java/com/whyc/pojo/StationInf.java
+++ b/src/main/java/com/whyc/pojo/StationInf.java
@@ -28,7 +28,7 @@
 
 
     @TableField("stype")
-    @ApiModelProperty("鏈烘埧绫诲瀷: 1<鐢垫睜缁�> 2<鐢垫簮>")
+    @ApiModelProperty("鏈烘埧绫诲瀷: 0<鍖呭惈鐢垫睜缁勫拰鐢垫簮>1<鐢垫睜缁�> 2<鐢垫簮>")
     private Integer stype;
 
     @TableField(exist = false)
diff --git a/src/main/java/com/whyc/service/PowerBattRtService.java b/src/main/java/com/whyc/service/PowerBattRtService.java
new file mode 100644
index 0000000..8456715
--- /dev/null
+++ b/src/main/java/com/whyc/service/PowerBattRtService.java
@@ -0,0 +1,7 @@
+package com.whyc.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class PowerBattRtService {
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/PowerInfService.java b/src/main/java/com/whyc/service/PowerInfService.java
new file mode 100644
index 0000000..8123cf4
--- /dev/null
+++ b/src/main/java/com/whyc/service/PowerInfService.java
@@ -0,0 +1,75 @@
+package com.whyc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.whyc.dto.Response;
+import com.whyc.mapper.*;
+import com.whyc.pojo.PowerBattRt;
+import com.whyc.pojo.PowerInf;
+import com.whyc.pojo.PowerRealRt1;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class PowerInfService {
+    @Autowired(required = false)
+    private PowerInfMapper mapper;
+
+    @Autowired(required = false)
+    private PowerBattRtMapper powerRtmapper;
+
+    @Autowired(required = false)
+    private PowerRealRt1Mapper realRt1Mapper;
+
+    @Autowired(required = false)
+    private PowerRealRt2Mapper realRt2Mapper;
+
+    @Autowired(required = false)
+    private PowerRealRt3Mapper realRt3Mapper;
+
+    //鏍规嵁id鑾峰彇鐢垫簮淇℃伅
+    public  Map<String,Object> getInfById(int powerId) {
+        Map<String,Object> map=new HashMap<>();
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("power_id",powerId);
+        wrapper.last("limit 1");
+        PowerInf pinf=mapper.selectOne(wrapper);
+        Integer devType=pinf.getDevType();
+        map.put("devType",devType);
+        if(devType!=3){//绗笁绉嶄笉鍖呭惈鍗曚綋瀹炴椂
+            List<PowerBattRt> list=getBattRt(powerId);
+            map.put("battRt",list);
+        }
+        Object obj=getRealRt(powerId,devType);
+        map.put("realRt"+devType,obj);
+        return map;
+    }
+    //鑾峰彇鐢电數婧愪俊鎭�
+    private Object getRealRt(int powerId,int devType) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("power_id",powerId);
+        wrapper.last("limit 1");
+        Object obj=null;
+        if(devType==1){
+            obj=realRt1Mapper.selectOne(wrapper);
+        }
+        if(devType==2){
+            obj=realRt2Mapper.selectOne(wrapper);
+        }
+        if(devType==3){
+            obj=realRt3Mapper.selectOne(wrapper);
+        }
+        return obj;
+    }
+
+    //鑾峰彇鐢垫簮鐢垫睜缁勪俊鎭�
+    private List<PowerBattRt> getBattRt(int powerId) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("power_id",powerId);
+        List<PowerBattRt> list=mapper.selectList(wrapper);
+        return list;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/PowerRealRt1Service.java b/src/main/java/com/whyc/service/PowerRealRt1Service.java
new file mode 100644
index 0000000..b817f52
--- /dev/null
+++ b/src/main/java/com/whyc/service/PowerRealRt1Service.java
@@ -0,0 +1,7 @@
+package com.whyc.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class PowerRealRt1Service {
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/PowerRealRt2Service.java b/src/main/java/com/whyc/service/PowerRealRt2Service.java
new file mode 100644
index 0000000..b16b3d8
--- /dev/null
+++ b/src/main/java/com/whyc/service/PowerRealRt2Service.java
@@ -0,0 +1,7 @@
+package com.whyc.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class PowerRealRt2Service {
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/PowerRealRt3Service.java b/src/main/java/com/whyc/service/PowerRealRt3Service.java
new file mode 100644
index 0000000..85c9803
--- /dev/null
+++ b/src/main/java/com/whyc/service/PowerRealRt3Service.java
@@ -0,0 +1,7 @@
+package com.whyc.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class PowerRealRt3Service {
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/webSocket/PowerSocket.java b/src/main/java/com/whyc/webSocket/PowerSocket.java
new file mode 100644
index 0000000..c3da6d4
--- /dev/null
+++ b/src/main/java/com/whyc/webSocket/PowerSocket.java
@@ -0,0 +1,126 @@
+package com.whyc.webSocket;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.whyc.config.WebSocketConfig;
+import com.whyc.dto.Response;
+import com.whyc.factory.ThreadPoolExecutorFactory;
+import com.whyc.pojo.PowerInf;
+import com.whyc.pojo.RtState;
+import com.whyc.pojo.StationInf;
+import com.whyc.service.*;
+import com.whyc.util.ActionUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpSession;
+import javax.websocket.*;
+import javax.websocket.server.ServerEndpoint;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * packageName com.whyc.websocket
+ *
+ * @author lxw
+ * @version JDK 8
+ * @className PowerSocket (姝ゅ浠lass涓轰緥)
+ * @date 2024/6/15
+ * @description TODO
+ */
+@Component
+@ServerEndpoint(value = "/power", encoders = WebSocketEncoder.class)
+public class PowerSocket{
+    private Session session;
+
+    private Thread thread;
+
+    private volatile boolean runFlag = true;
+
+    private volatile Map<String, Thread> threadMap = new HashMap<>();
+
+
+    private static final int executeTime = 5000;
+
+    private static PowerInfService pinfService;
+
+    private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>();
+
+
+    @Autowired
+    public void setPowerInfService(PowerInfService pinfService) {
+        PowerSocket.pinfService = pinfService;
+    }
+
+
+    @OnOpen
+    public void onOpen(Session session) {
+        this.session = session;
+    }
+
+    @OnMessage
+    public void onMessage(Session session, String message) {
+        int powerId=Integer.valueOf(message);
+        thread = new Thread("Thread_PowerSocket") {
+            @Override
+            public void run() {
+                while (runFlag && !isInterrupted()) {
+                    Thread thread = currentThread();
+                    threadFlagMap.put(thread.getId(), true);
+                    try {
+                        Map<String,Object> map=getPowerRt(powerId);
+                        if (session.isOpen()) {
+                            //鎺ㄩ�佷俊鎭�
+                            synchronized (session) {
+                                session.getBasicRemote().sendObject(new Response().set(1, map));
+                            }
+                            threadFlagMap.put(thread.getId(), false);
+                        }
+                        sleep(executeTime);
+                    } catch (Exception e) {
+                        interrupt();
+                    }
+                }
+            }
+        };
+        thread.start();
+        threadFlagMap.put(thread.getId(),true);
+        //鍋滄鑰佺殑socket绾跨▼
+        Thread threadBefore = threadMap.get(session.getId());
+        if(threadBefore !=null && threadBefore.isAlive()){
+            while (threadFlagMap.get(threadBefore.getId())){
+            }
+            threadBefore.interrupt();
+        }
+        //灏嗙嚎绋嬪瓨鍌�,渚夸簬璋冪敤瀹氫綅
+        threadMap.put(session.getId(), this.thread);
+    }
+    //鑾峰彇鐢垫簮鐨勫疄鏃舵暟鎹�
+    private  Map<String,Object> getPowerRt(int powerId) {
+        Map<String,Object> map=pinfService.getInfById(powerId);
+        return map;
+    }
+
+    @OnClose
+    public void onClose(CloseReason closeReason){
+        System.err.println("closeReason = " + closeReason);
+        runFlag = false;
+        if (thread != null && thread.isAlive()) {
+            thread.interrupt();
+        }
+        threadMap.remove(session.getId());
+    }
+
+    @OnError
+    public void onError(Throwable error) {
+        error.printStackTrace();
+        if (thread != null && thread.isAlive()) {
+            thread.interrupt();
+        }
+        threadMap.remove(session.getId());
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1