From c67372710f77e91a0f6e03353db6f8d768728e3c Mon Sep 17 00:00:00 2001 From: weidong Date: Fri, 12 Apr 2024 09:02:22 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=A0GGA=E7=BB=9F=E8=AE=A1=202=E3=80=81=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=EF=BC=9A=E7=BC=96=E5=8F=B7+=E5=B7=A5?= =?UTF-8?q?=E7=82=B9+=E5=91=8A=E8=AD=A6=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/secapi/dto/GnssStatusMapper.java | 8 +++ .../beidou/controller/IndexController.java | 70 ++++++++----------- .../templates/page/device_overview.html | 1 + .../resources/templates/page/gnss_status.html | 3 +- 4 files changed, 39 insertions(+), 43 deletions(-) diff --git a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssStatusMapper.java b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssStatusMapper.java index e2cd2b1f..b578aa67 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssStatusMapper.java +++ b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssStatusMapper.java @@ -21,6 +21,14 @@ public interface GnssStatusMapper extends MPJBaseMapper { @Select({"select s.*, d.devicetype, d.group_id, d.name from gnssstatus s ,gnssdevices d where s.deviceid=d.deviceid and s.state <> 0"}) List queryOnline(); + @Select({"select s.*, d.devicetype, d.group_id, d.name from gnssstatus s ,gnssdevices d where " + + "s.deviceid=d.deviceid and d.tenantid<>0 and d.opmode<>2"}) + List queryDeployed(); + + @Select({"select s.*, d.devicetype, d.group_id, d.name from gnssstatus s ,gnssdevices d where " + + "s.deviceid=d.deviceid and d.tenantid = #{tenantid} and d.opmode<>2"}) + List queryDeployedByTenant(int tenantid); + // 需要关联设备类型 @Select({"select s.*, d.devicetype from gnssstatus s ,gnssdevices d where s.deviceid=d.deviceid and s.deviceid = #{deviceId}"}) GnssStatusJoin queryByDeviceId(String deviceId); diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java index ea452920..894160c7 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java @@ -1,7 +1,5 @@ package com.imdroid.beidou.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.yulichang.query.MPJQueryWrapper; import com.imdroid.beidou.entity.Tenant; import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +8,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpSession; +import java.util.Iterator; import java.util.List; @Controller @@ -34,58 +33,44 @@ public class IndexController extends BasicController{ @RequestMapping("/page/device_overview") public String deviceOverview(Model m, HttpSession session) { initModel(m, session); - Long deviceDeployedNum; + int deviceDeployedNum; int deviceOfflineNum=0; int warning1Num=0;//一般告警 int warning2Num=0;//严重告警 + int noGGA = 0; - QueryWrapper deviceQueryWrapper = new QueryWrapper<>(); - List deviceList; + List deviceList; if(tenantId == Tenant.SAAS_PROVIDER_ID){ - // 统计所有企业设备 - deviceQueryWrapper.ne("tenantid", tenantId); - deviceQueryWrapper.ne("opmode", GnssDevice.OP_MODE_UNUSE); - // 设备数量 - deviceDeployedNum = gnssDeviceMapper.selectCount(deviceQueryWrapper); - - MPJQueryWrapper query = new MPJQueryWrapper() - .selectAll(GnssStatus.class) - .leftJoin("gnssdevices d on t.deviceid = d.deviceid") - .ne("t.tenantid", tenantId) - .ne("d.opmode", GnssDevice.OP_MODE_UNUSE) - .isNotNull("t.latitude") - .isNotNull("t.longitude") - .orderByDesc("t.warning"); - - deviceList = statusMapper.selectList(query); + deviceList = statusMapper.queryDeployed(); } else{ - // 统计本企业设备 - // 统计所有企业设备 - deviceQueryWrapper.eq("tenantid", tenantId); - deviceQueryWrapper.ne("opmode", GnssDevice.OP_MODE_UNUSE); - // 设备数量 - deviceDeployedNum = gnssDeviceMapper.selectCount(deviceQueryWrapper); - - MPJQueryWrapper query = new MPJQueryWrapper() - .selectAll(GnssStatus.class) - .leftJoin("gnssdevices d on t.deviceid = d.deviceid") - .eq("t.tenantid", tenantId) - .ne("d.opmode", GnssDevice.OP_MODE_UNUSE) - .isNotNull("t.latitude") - .isNotNull("t.longitude") - .orderByDesc("t.warning"); - deviceList = statusMapper.selectList(query); + deviceList = statusMapper.queryDeployedByTenant(tenantId); } + deviceDeployedNum = deviceList.size(); - for(GnssStatus status:deviceList){ + //for(GnssStatusJoin status:deviceList){遍历删除异常 + Iterator iterator = deviceList.iterator(); + while(iterator.hasNext()){ + GnssStatusJoin status=iterator.next(); if(status.getState() == GnssStatus.STATE_OFFLINE) deviceOfflineNum++; if(status.getWarning() == WarningCfg.LEVEL_1) warning1Num++; else if(status.getWarning() == WarningCfg.LEVEL_2) warning2Num++; - // 地图上显示告警原因 - if(status.getWarning()!=WarningCfg.LEVEL_0){ - List warningInfo= WarningCfg.parseCode(status.getWarningcode()); - status.setDeviceid(status.getDeviceid() +" "+warningInfo); + + // 剔除无经纬度的对象,不在地图上显示 + if(status.getLatitude()==null || status.getLongitude()==null){ + noGGA++; + iterator.remove(); + } + else{ + // 地图上显示工点名称 + if(status.getName()!=null){ + status.setDeviceid(status.getDeviceid() +" "+status.getName()); + } + // 地图上显示告警原因 + if(status.getWarning()!=WarningCfg.LEVEL_0){ + List warningInfo= WarningCfg.parseCode(status.getWarningcode()); + status.setDeviceid(status.getDeviceid() +" "+warningInfo); + } } } @@ -95,6 +80,7 @@ public class IndexController extends BasicController{ m.addAttribute("warning1Num", warning1Num); m.addAttribute("warning2Num", warning2Num); m.addAttribute("warningTotalNum", warning1Num+warning2Num); + m.addAttribute("noGGA", noGGA); m.addAttribute("deviceList", deviceList); return "/page/device_overview"; diff --git a/sec-beidou/src/main/resources/templates/page/device_overview.html b/sec-beidou/src/main/resources/templates/page/device_overview.html index 615edcfe..1ce5360d 100644 --- a/sec-beidou/src/main/resources/templates/page/device_overview.html +++ b/sec-beidou/src/main/resources/templates/page/device_overview.html @@ -78,6 +78,7 @@
掉线数 0
+
无GGA 0
装机量 2020
diff --git a/sec-beidou/src/main/resources/templates/page/gnss_status.html b/sec-beidou/src/main/resources/templates/page/gnss_status.html index 3baf6cef..1d17f1c2 100644 --- a/sec-beidou/src/main/resources/templates/page/gnss_status.html +++ b/sec-beidou/src/main/resources/templates/page/gnss_status.html @@ -108,7 +108,8 @@ {field: 'devicetime', title: '设备时间'}, {field: 'state', title: '状态',templet: '#stateTrans'}, {field: 'warning', title: '告警',templet: '#warningTrans'}, - {field: 'location', title: '位置'}, + {field: 'longitude', title: '经度'}, + {field: 'latitude', title: '维度'}, {field: 'voltage', title: '电压'}, {field: 'temperature', title: '温度'}, {field: 'humidity', title: '湿度'},