whyclxw
2024-06-15 17f23160c7dff513fbab0da321b81b405e03eb0a
再用电池模块推送环境数据
2个文件已修改
3个文件已添加
94 ■■■■■ 已修改文件
src/main/java/com/whyc/factory/ThreadPoolExecutorFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/RtEnvirmentMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/RtEnvirment.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/RtEnvirmentService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/BattSocket.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/factory/ThreadPoolExecutorFactory.java
@@ -10,7 +10,7 @@
    private static ThreadPoolExecutor init() {
        //线程池初始化,拒绝策略为丢弃
        UserThreadFactory userThreadFactory = new UserThreadFactory("SNMP");
        UserThreadFactory userThreadFactory = new UserThreadFactory("br");
        ThreadPoolExecutor pool = new ThreadPoolExecutor(8, 48, 10, TimeUnit.SECONDS, new LinkedBlockingDeque<>(16), userThreadFactory,new ThreadPoolExecutor.AbortPolicy());
        poolExecutor = pool;
        return pool;
src/main/java/com/whyc/mapper/RtEnvirmentMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.RtEnvirment;
public interface RtEnvirmentMapper extends CustomMapper<RtEnvirment>{
}
src/main/java/com/whyc/pojo/RtEnvirment.java
New file
@@ -0,0 +1,39 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value="环境实时数据", description="")
@TableName(schema = "db_real_batt",value = "rt_envirment")
public class RtEnvirment {
    @TableField("num")
    @ApiModelProperty("主键编号")
    private Integer num;
    @TableField("tmp")
    @ApiModelProperty("温度")
    private Integer tmp;
    @TableField("record_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("记录时间")
    private Date recordTime;
    @TableField("hmy")
    @ApiModelProperty("湿度")
    private Integer hmy;
}
src/main/java/com/whyc/service/RtEnvirmentService.java
New file
@@ -0,0 +1,27 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
import com.whyc.mapper.RtEnvirmentMapper;
import com.whyc.pojo.RtEnvirment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.management.Query;
@Service
public class RtEnvirmentService {
    @Autowired(required = false)
    private RtEnvirmentMapper mapper;
    /*
     实时环境数据
     **/
    public Response getResRtEnvir() {
        QueryWrapper wrapper= Wrappers.query();
        wrapper.select("limti 1");
        RtEnvirment rtEnvir=mapper.selectOne(wrapper);
        return new Response().setII(1,rtEnvir!=null,rtEnvir," 实时环境数据");
    }
}
src/main/java/com/whyc/webSocket/BattSocket.java
@@ -5,10 +5,7 @@
import com.whyc.factory.ThreadPoolExecutorFactory;
import com.whyc.pojo.RtState;
import com.whyc.pojo.StationInf;
import com.whyc.service.BattAlarmService;
import com.whyc.service.BattInfService;
import com.whyc.service.RtDataService;
import com.whyc.service.RtStateService;
import com.whyc.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -43,7 +40,6 @@
    private volatile Map<String, Thread> threadMap = new HashMap<>();
    private volatile Map<Long, Boolean> threadFlagMap = new HashMap<>();
    private static final int executeTime = 5000;
@@ -52,6 +48,8 @@
    private static RtDataService rtDataService;
    private static BattAlarmService battAlarmService;
    private static RtEnvirmentService rtEnvirmentService;
    @Autowired
@@ -69,6 +67,11 @@
        BattSocket.battAlarmService = battAlarmService;
    }
    @Autowired
    public void setRtEnvirmentService(RtEnvirmentService rtEnvirmentService) {
        BattSocket.rtEnvirmentService = rtEnvirmentService;
    }
    @OnOpen
    public void onOpen(Session session) {
        this.session = session;
@@ -84,7 +87,7 @@
                    Map<String, Object> res = new HashMap<>();
                    while (!currentThread().isInterrupted()) {
                        ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor();
                        CountDownLatch latch = new CountDownLatch(3);
                        CountDownLatch latch = new CountDownLatch(4);
                        poolExecutor.execute(() -> {
                            Response resRtState = rtStateService.getResRtState(binfId);
                            res.put("resRtState", resRtState);
@@ -100,6 +103,11 @@
                            res.put("resBattAlm", resBattAlm);
                            latch.countDown();
                        });
                        poolExecutor.execute(() -> {
                            Response resRtEnvir = rtEnvirmentService.getResRtEnvir();
                            res.put("resRtEnvir", resRtEnvir);
                            latch.countDown();
                        });
                        latch.await(10, TimeUnit.MINUTES);
                        session.getBasicRemote().sendObject(new Response().set(1, res));
                        sleep(executeTime);