From 85db1f723386d4eb7bf6fc1611577f7672898d10 Mon Sep 17 00:00:00 2001 From: guo Date: Wed, 10 Jan 2024 17:48:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=89=E6=AF=92=E6=B0=94=E4=BD=93=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netty/tcp/handler/TcpNettyHandler.java | 4 + .../java/com/zhgd/netty/udp/UDPServerApp.java | 21 +++-- .../com/zhgd/netty/udp/UDPServerHandler.java | 33 ++++--- .../location/mapper/LocationDataMapper.java | 2 + .../mapper/xml/LocationDataMapper.xml | 11 ++- .../entity/PoisonousGasDevAlarm.java | 14 +-- .../entity/PoisonousGasDevCurrentData.java | 14 +-- .../IPoisonousGasDevCurrentDataService.java | 2 + ...PoisonousGasDevCurrentDataServiceImpl.java | 90 +++++++++++++++++++ .../zhgd/xmgl/security/WebSecurityConfig.java | 1 + .../com/zhgd/xmgl/task/LocationDataTask.java | 38 ++++++++ 11 files changed, 188 insertions(+), 42 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/task/LocationDataTask.java diff --git a/src/main/java/com/zhgd/netty/tcp/handler/TcpNettyHandler.java b/src/main/java/com/zhgd/netty/tcp/handler/TcpNettyHandler.java index 210df8510..5f9d5f9e6 100644 --- a/src/main/java/com/zhgd/netty/tcp/handler/TcpNettyHandler.java +++ b/src/main/java/com/zhgd/netty/tcp/handler/TcpNettyHandler.java @@ -46,6 +46,10 @@ public class TcpNettyHandler extends SimpleChannelInboundHandler { highFormworkSupportResponseOk(ctx); } } + //有毒气体 + if (StringUtils.startsWith(str, "##")) { + poisonousGasDevCurrentDataService.addDataFromTcpFor212Protocol(str); + } //16进制判断 String hexString = readToHexString(bytes); diff --git a/src/main/java/com/zhgd/netty/udp/UDPServerApp.java b/src/main/java/com/zhgd/netty/udp/UDPServerApp.java index 4dca34454..7f2cc3c79 100644 --- a/src/main/java/com/zhgd/netty/udp/UDPServerApp.java +++ b/src/main/java/com/zhgd/netty/udp/UDPServerApp.java @@ -8,6 +8,7 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioDatagramChannel; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -16,16 +17,18 @@ import javax.annotation.PostConstruct; @Component @Slf4j public class UDPServerApp { + @Autowired + private UDPServerHandler udpServerHandler; - @Value("${udp.port:}") - private Integer port; + @Value("${udp.port:}") + private Integer port; - @PostConstruct - public void startUdpApp() { - if (port == null) { - return; - } - log.info("启动udp……"); + @PostConstruct + public void startUdpApp() { + if (port == null) { + return; + } + log.info("启动udp……"); Bootstrap bootstrap = new Bootstrap(); EventLoopGroup workGroup = new NioEventLoopGroup(); bootstrap.group(workGroup).channel(NioDatagramChannel.class) @@ -34,7 +37,7 @@ public class UDPServerApp { @Override protected void initChannel(NioDatagramChannel ch) throws Exception { - ch.pipeline().addLast(new UDPServerHandler()); + ch.pipeline().addLast(udpServerHandler); } }); try { diff --git a/src/main/java/com/zhgd/netty/udp/UDPServerHandler.java b/src/main/java/com/zhgd/netty/udp/UDPServerHandler.java index 6a5e3675b..35c41d648 100644 --- a/src/main/java/com/zhgd/netty/udp/UDPServerHandler.java +++ b/src/main/java/com/zhgd/netty/udp/UDPServerHandler.java @@ -3,6 +3,7 @@ package com.zhgd.netty.udp; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zhgd.xmgl.modules.location.entity.LocationData; import com.zhgd.xmgl.modules.location.entity.LocationTunnel; import com.zhgd.xmgl.modules.location.mapper.LocationDataMapper; @@ -17,10 +18,12 @@ import io.netty.channel.socket.DatagramPacket; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; @Slf4j +@Component public class UDPServerHandler extends SimpleChannelInboundHandler { @Autowired private PoisonousGasDevMapper poisonousGasDevMapper; @@ -54,36 +57,30 @@ public class UDPServerHandler extends SimpleChannelInboundHandler locationTunnels = locationTunnelMapper.selectList(new LambdaQueryWrapper() .eq(LocationTunnel::getProjectSn, projectSn)); if (CollUtil.isNotEmpty(locationTunnels)) { - long l = IdUtil.getSnowflake().nextId(); + //清除以前标签 + locationDataMapper.update(null, new LambdaUpdateWrapper() + .set(LocationData::getRealtimeId, null) + .eq(LocationData::getCardno, cardno) + .isNotNull(LocationData::getRealtimeId)); + LocationTunnel locationTunnel = locationTunnels.get(0); + Long realtimeId = locationTunnel.getRealtimeId(); + if (realtimeId == null) { + realtimeId = IdUtil.getSnowflake().nextId(); + } LocationData locationData = new LocationData(); locationData.setCardType("1510"); locationData.setCardno(cardno); locationData.setPersonName(workerInfos.get(0).getWorkerName()); - //locationData.setRegionId(); - //locationData.setRegionCode(); - //locationData.setRegionName(); - //locationData.setPileNo(); - //locationData.setNX(); - //locationData.setNY(); - //locationData.setPX(); - //locationData.setPY(); //算出洞口的距离 locationData.setInlX(Double.valueOf(inlX) + 271); - //locationData.setMasterX(); - //locationData.setRingNum(); - //locationData.setLongitude(); - //locationData.setLatitude(); - //locationData.setAltitude(); locationData.setAlarm(0); - //locationData.setVolume(); - //locationData.setHeartRate(); locationData.setProjectSn(projectSn); - locationData.setRealtimeId(l); + locationData.setRealtimeId(realtimeId); locationData.setTunnelId(locationTunnel.getTunnelId()); locationDataMapper.insert(locationData); - locationTunnel.setRealtimeId(l); + locationTunnel.setRealtimeId(realtimeId); locationTunnelMapper.updateById(locationTunnel); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/location/mapper/LocationDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/location/mapper/LocationDataMapper.java index b2736dde4..c5469806a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/location/mapper/LocationDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/location/mapper/LocationDataMapper.java @@ -27,4 +27,6 @@ public interface LocationDataMapper extends BaseMapper { List getRealTimeLocationWorker(HashMap paramMap); IPage queryPageList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + Integer clearLocationData(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/location/mapper/xml/LocationDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/location/mapper/xml/LocationDataMapper.xml index 5d84b4c36..7ae612362 100644 --- a/src/main/java/com/zhgd/xmgl/modules/location/mapper/xml/LocationDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/location/mapper/xml/LocationDataMapper.xml @@ -23,8 +23,10 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevAlarm.java b/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevAlarm.java index 93a75f346..d9a3081a8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevAlarm.java +++ b/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevAlarm.java @@ -103,6 +103,13 @@ public class PoisonousGasDevAlarm implements Serializable { @Excel(name = "项目sn", width = 15) @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; + @Excel(name = "监测值", width = 15) + @ApiModelProperty(value = "气体值") + private Double gasVal; + @ApiModelProperty(value = "单位 0:ppm;1:%LEL;2:%VOL;3:mg/m3;4:pphm;5:g/m3;6:无单位;7:ppb") + private java.lang.Integer unit; + @ApiModelProperty(value = "报警状态 1低报警2高报警3超量程4故障5、A2报警6、A1报警") + private java.lang.Integer alarmType; /** * 创建时间 */ @@ -120,13 +127,6 @@ public class PoisonousGasDevAlarm implements Serializable { @ApiModelProperty(value = "更新时间") private java.util.Date updateTime; - @Excel(name = "监测值", width = 15) - @ApiModelProperty(value = "气体值") - private Double gasVal; - @ApiModelProperty(value = "单位 0:ppm;1:%LEL;2:%VOL;3:mg/m3;4:pphm;5:g/m3;6:无单位;7:ppb") - private java.lang.Integer unit; - @ApiModelProperty(value = "报警状态 1低报警2高报警3超量程") - private java.lang.Integer alarmType; @ApiModelProperty(value = "设备名称") @TableField(exist = false) diff --git a/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevCurrentData.java b/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevCurrentData.java index d5e5d4630..195444bbd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevCurrentData.java +++ b/src/main/java/com/zhgd/xmgl/modules/poisonous/entity/PoisonousGasDevCurrentData.java @@ -38,10 +38,10 @@ public class PoisonousGasDevCurrentData implements Serializable { @ApiModelProperty(value = "设备sn") private java.lang.String devSn; /** - * 气体类型(1氧气、2甲烷、3一氧化碳) + * 气体类型(1氧气、2甲烷、3一氧化碳、4硫化氢) */ - @Excel(name = "气体类型", width = 15, replace = {"氧气_1", "甲烷_2", "一氧化碳_3"}) - @ApiModelProperty(value = "气体类型(1氧气、2甲烷、3一氧化碳)") + @Excel(name = "气体类型", width = 15, replace = {"氧气_1", "甲烷_2", "一氧化碳_3", "硫化氢_4"}) + @ApiModelProperty(value = "气体类型(1氧气、2甲烷、3一氧化碳、4硫化氢)") private Integer gasType; @Excel(name = "监测值", width = 15) @@ -59,10 +59,6 @@ public class PoisonousGasDevCurrentData implements Serializable { @ApiModelProperty(value = "单位 0:ppm;1:%LEL;2:%VOL;3:mg/m3;4:pphm;5:g/m3;6:无单位;7:ppb") private java.lang.Integer unit; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建时间 yyyy-MM-dd HH:mm:ss") - private java.util.Date createDate; - /** * 上传时间 yyyy-MM-dd HH:mm:ss */ @@ -71,6 +67,10 @@ public class PoisonousGasDevCurrentData implements Serializable { @ApiModelProperty(value = "上传时间 yyyy-MM-dd HH:mm:ss") @Excel(name = "上报时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") private java.util.Date uploadTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间 yyyy-MM-dd HH:mm:ss") + private java.util.Date createDate; + /** * 更新时间 yyyy-MM-dd HH:mm:ss */ diff --git a/src/main/java/com/zhgd/xmgl/modules/poisonous/service/IPoisonousGasDevCurrentDataService.java b/src/main/java/com/zhgd/xmgl/modules/poisonous/service/IPoisonousGasDevCurrentDataService.java index 6011eac33..0de462f88 100644 --- a/src/main/java/com/zhgd/xmgl/modules/poisonous/service/IPoisonousGasDevCurrentDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/poisonous/service/IPoisonousGasDevCurrentDataService.java @@ -26,4 +26,6 @@ public interface IPoisonousGasDevCurrentDataService extends IService queryPageList(PoisonousGasDevCurrentData poisonousGasDevCurrentData, Integer pageNo, Integer pageSize, HttpServletRequest req); void add(PoisonousGasDevCurrentData poisonousGasDevCurrentData); + + void addDataFromTcpFor212Protocol(String str); } diff --git a/src/main/java/com/zhgd/xmgl/modules/poisonous/service/impl/PoisonousGasDevCurrentDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/poisonous/service/impl/PoisonousGasDevCurrentDataServiceImpl.java index cb9701333..484fb5dee 100644 --- a/src/main/java/com/zhgd/xmgl/modules/poisonous/service/impl/PoisonousGasDevCurrentDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/poisonous/service/impl/PoisonousGasDevCurrentDataServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.poisonous.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -20,6 +21,7 @@ import com.zhgd.xmgl.modules.poisonous.mapper.PoisonousGasDevMapper; import com.zhgd.xmgl.modules.poisonous.service.IPoisonousGasDevCurrentDataService; import com.zhgd.xmgl.util.RefUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; @@ -203,6 +205,94 @@ public class PoisonousGasDevCurrentDataServiceImpl extends ServiceImpl