From 572f5ef8d66a67a5904955748577c1931ab2372f Mon Sep 17 00:00:00 2001 From: xins Date: Mon, 23 Oct 2023 10:18:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=A5=E4=BE=9D=E5=BE=AE=E6=9C=8D=E5=8A=A11.?= =?UTF-8?q?6.2=201=E3=80=81=E8=AE=BE=E5=A4=87=E7=9B=91=E6=B5=8B=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E5=8F=B3=E4=BE=A7=E8=AE=BE=E5=A4=87=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=9C=89?= =?UTF-8?q?=E6=8B=8D=E6=91=84=E7=9A=84=E7=85=A7=E7=89=87=E5=88=99=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E7=85=A7=E7=89=87=EF=BC=8Celse=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=9C=89=E8=AE=BE=E5=A4=87=E7=85=A7=E7=89=87=E5=88=99=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E8=AE=BE=E5=A4=87=E7=85=A7=E7=89=87=EF=BC=8Celse?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E9=BB=98=E8=AE=A4=E8=AE=BE=E5=A4=87=E7=85=A7?= =?UTF-8?q?=E7=89=87=202=E3=80=81=E6=89=8B=E6=9C=BAapp=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=AE=BE=E7=BD=AE=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=92=8C=E8=8E=B7=E5=8F=96=E7=BD=91=E5=85=B3=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=203=E3=80=81=E7=9B=91=E6=8E=A7=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=A6=96=E9=A1=B5=E7=9B=91=E6=8E=A7=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E5=92=8C=E8=AE=BE=E5=A4=87=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E5=86=99=E5=8F=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/HwAppController.java | 64 +++++++++++++------ .../ruoyi/business/mapper/HwDeviceMapper.java | 5 ++ .../business/service/IHwDeviceService.java | 9 +++ .../service/impl/HwDeviceServiceImpl.java | 19 ++++++ .../impl/HwMonitorUnitServiceImpl.java | 4 +- .../mapper/business/HwDeviceMapper.xml | 17 +++++ .../mapper/business/HwMonitorUnitMapper.xml | 5 +- ruoyi-ui/src/views/board/equipment/index.vue | 7 +- ruoyi-ui/src/views/board/index/index.vue | 4 +- .../business/deviceMode/deviceModeService.vue | 2 +- 10 files changed, 108 insertions(+), 28 deletions(-) diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwAppController.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwAppController.java index a3a3048..387c752 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwAppController.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/controller/HwAppController.java @@ -1,14 +1,8 @@ package com.ruoyi.business.controller; -import com.ruoyi.business.domain.HwAlarmInfo; -import com.ruoyi.business.domain.HwDevice; -import com.ruoyi.business.domain.HwMonitorUnit; -import com.ruoyi.business.domain.HwScene; +import com.ruoyi.business.domain.*; import com.ruoyi.business.domain.VO.AllNumsVo; -import com.ruoyi.business.service.IHwAlarmInfoService; -import com.ruoyi.business.service.IHwDeviceService; -import com.ruoyi.business.service.IHwMonitorUnitService; -import com.ruoyi.business.service.IHwSceneService; +import com.ruoyi.business.service.*; import com.ruoyi.common.core.constant.HwDictConstants; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -46,9 +40,13 @@ public class HwAppController extends BaseController { @Autowired private IHwDeviceService hwDeviceService; + @Autowired + private IHwDeviceModeService hwDeviceModeService; + /** * 获取场景,如果是管理员,则可以获取所有场景 */ + @RequiresPermissions("business:app:index") @GetMapping("/selectSecnes") public AjaxResult selectSecnes(HwScene scene) { List hwScenes = hwSceneService.selectHwSceneList(scene); @@ -58,7 +56,7 @@ public class HwAppController extends BaseController { /** *  按场景展示总的设备数量和总的最子级监控单元数量(app首页上方) */ - @RequiresPermissions("business:monitor:standard") + @RequiresPermissions("business:app:index") @GetMapping("/sceneAllNums/{sceneId}") public AllNumsVo sceneAllNums(@PathVariable("sceneId") Long sceneId) { return hwMonitorUnitService.selectAllNums(sceneId); @@ -67,7 +65,7 @@ public class HwAppController extends BaseController { /** * 分页获取最子集监控单元列表(首页) */ - @RequiresPermissions("business:monitor:standard") + @RequiresPermissions("business:app:index") @GetMapping("/limitSubMonitorUnit/{sceneId}") public TableDataInfo limitSubMonitorUnit(@PathVariable("sceneId") Long sceneId) { HwMonitorUnit hwMonitorUnit = new HwMonitorUnit(); @@ -85,7 +83,7 @@ public class HwAppController extends BaseController { * @date 2023-09-15 11:03 */ @GetMapping("/getAlarmInfos") - @RequiresPermissions("business:monitor:alarm") + @RequiresPermissions("business:app:index") public TableDataInfo getAlarmInfos(HwAlarmInfo hwAlarmInfo) { hwAlarmInfo.setHandleStatus(HwDictConstants.ALARM_HANDLE_STATUS_NO); List alarmInfos = hwAlarmInfoService.selectHwAlarmInfoList(hwAlarmInfo); @@ -100,7 +98,7 @@ public class HwAppController extends BaseController { * @return AjaxResult */ @PutMapping("/handleAlarmInfo") - @RequiresPermissions("business:monitor:alarm") + @RequiresPermissions("business:app:index") public AjaxResult handleAlarmInfo(@RequestBody HwAlarmInfo hwAlarmInfo) { hwAlarmInfo.setUpdateBy(SecurityUtils.getUsername()); return toAjax(hwAlarmInfoService.updateHwAlarmInfo(hwAlarmInfo)); @@ -114,7 +112,7 @@ public class HwAppController extends BaseController { * @return list * @throws */ - @RequiresPermissions("business:monitor:deviceMonitor") + @RequiresPermissions("business:app:monitorUnit") @GetMapping("/treeList/{sceneId}") public AjaxResult monitorUnitTree(@PathVariable("sceneId") Long sceneId) { HwMonitorUnit queryMonitorUnit = new HwMonitorUnit(); @@ -129,11 +127,12 @@ public class HwAppController extends BaseController { * @date 2023-09-28 13:31 * @return AjaxResult */ - @RequiresPermissions("business:monitor:deviceMonitor") + @RequiresPermissions("business:app:monitorUnit") @GetMapping("/getDevicesInfoByMonitorUnitId/{monitorUnitId}") public AjaxResult getDevicesInfoByMonitorUnitId(@PathVariable("monitorUnitId") Long monitorUnitId){ - - return success(); + HwDevice queryDevice = new HwDevice(); + queryDevice.setMonitorUnitId(monitorUnitId); + return success(hwDeviceService.selectDeviceNum(queryDevice)); } /** @@ -141,7 +140,7 @@ public class HwAppController extends BaseController { * * @param monitorUnitId 监控单元id */ - @RequiresPermissions("business:monitor:deviceMonitor") + @RequiresPermissions("business:app:monitorUnit") @GetMapping("/selectDevicesByMonitorUnitId/{monitorUnitId}/{sceneId}") public AjaxResult selectDeviceByDeviceModeByMonitorUnitId(@PathVariable("monitorUnitId") Long monitorUnitId, @PathVariable("sceneId") Long sceneId) { @@ -156,7 +155,7 @@ public class HwAppController extends BaseController { /** * 新增设备信息 */ - @RequiresPermissions("business:device:add") + @RequiresPermissions("business:app:deviceAdd") @Log(title = "设备信息(手机端)", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody HwDevice hwDevice) { @@ -172,11 +171,38 @@ public class HwAppController extends BaseController { * * @param deviceCode 设备编号 */ - @RequiresPermissions("business:monitor:deviceMonitor") + @RequiresPermissions("business:app:device") @GetMapping("/getDeviceByDeviceCode/{deviceCode}") public AjaxResult getDeviceByDeviceCode(@PathVariable("deviceCode") String deviceCode){ return success(hwDeviceService.selectHwDeviceByDeviceCode(deviceCode)); } + /** + * 根据场景获取设备模型列表 + * + * @param sceneId 场景ID + */ + @RequiresPermissions("business:app:deviceAdd") + @GetMapping("/getDeviceModesBySceneId/{sceneId}") + public AjaxResult getDeviceModesBySceneId(@PathVariable("sceneId") Long sceneId){ + HwDeviceMode queryDeviceMode = new HwDeviceMode(); + queryDeviceMode.setSceneId(sceneId); + queryDeviceMode.setDeviceModeStatus(HwDictConstants.DEVICE_MODE_STATUS_NORMAL); + return success(hwDeviceModeService.selectHwDeviceModeList(queryDeviceMode)); + } + + /** + * 根据场景获取网关设备列表 + * + * @param sceneId 场景ID + */ + @RequiresPermissions("business:app:deviceAdd") + @GetMapping("/getGatewayDevicesBySceneId/{sceneId}") + public AjaxResult getGatewayDevicesBySceneId(@PathVariable("sceneId") Long sceneId){ + HwDevice queryDevice = new HwDevice(); + queryDevice.setSceneId(sceneId); + queryDevice.setDeviceType(HwDictConstants.DEVICE_TYPE_GATEWAY_DEVICE); + return success(hwDeviceService.selectHwDeviceList(queryDevice)); + } } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java index 1cb31cd..8b7c436 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/mapper/HwDeviceMapper.java @@ -108,4 +108,9 @@ public interface HwDeviceMapper * @return HwDevice */ public HwDevice selectHwDeviceByDeviceCode(String deviceCode); + + public int selectDeviceNumCount(HwDevice hwDevice); + + public int selectAbnormalDeviceNumCount(HwDevice hwDevice); + } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java index 3525ce1..a19a9d0 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/IHwDeviceService.java @@ -169,4 +169,13 @@ public interface IHwDeviceService * @date 2023-10-10 20:05 */ public void rebuildTdTables(); + + /** + * @param: device + * @description 获取正上设备数量和有报警的设备数量 + * @author xins + * @date 2023-10-20 10:08 + * @return JSONObject + */ + public JSONObject selectDeviceNum(HwDevice device); } diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java index 59b84ab..44e7a29 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwDeviceServiceImpl.java @@ -486,6 +486,7 @@ public class HwDeviceServiceImpl implements IHwDeviceService { hwDeviceVo.setDeviceModeId(hwDevice.getDeviceModeId()); hwDeviceVo.setDeviceCode(hwDevice.getDeviceCode()); hwDeviceVo.setDeviceName(hwDevice.getDeviceName()); + hwDeviceVo.setDevicePic(hwDevice.getDevicePic()); hwDeviceVo.setDeviceType(HwDictConstants.ACQUISITION_DEVICE); hwDeviceVo.setDeviceDataMap(ddValueMap); acquisitionDeviceVos.add(hwDeviceVo); @@ -689,6 +690,24 @@ public class HwDeviceServiceImpl implements IHwDeviceService { } + /** + * @param: device + * @description 获取正上设备数量和有报警的设备数量 + * @author xins + * @date 2023-10-20 10:08 + * @return JSONObject + */ + @Override + public JSONObject selectDeviceNum(HwDevice device) { + JSONObject result = new JSONObject(); + int deviceNum = hwDeviceMapper.selectDeviceNumCount(device); + int abnormalDeviceNum = hwDeviceMapper.selectAbnormalDeviceNumCount(device); + result.put("normalDeviceNum", deviceNum - abnormalDeviceNum); + result.put("abnormalDeviceNum", abnormalDeviceNum); + return result; + } + + /** * @param: hwDevice 前端传的对象 * @param: dbDevice 目前数据库的对象 diff --git a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java index f4efe06..62ad7fb 100644 --- a/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java +++ b/ruoyi-modules/hw-business/src/main/java/com/ruoyi/business/service/impl/HwMonitorUnitServiceImpl.java @@ -125,10 +125,10 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService { //获取总的设备数量与监控单元数量(标准场景使用) @Override public AllNumsVo selectAllNums(Long sceneId) { - //监控单元 - //查询设备数量包括网关 + //监控单元数量 Integer monitor = hwMonitorUnitMapper.selectSubSetNums(sceneId) == null ? 0 : hwMonitorUnitMapper.selectSubSetNums(sceneId); + //查询设备数量(子设备和直连设备),不包括网关 Integer integer = hwMonitorUnitMapper.selectDeviceNums(sceneId) == null ? 0 : hwMonitorUnitMapper.selectDeviceNums(sceneId); AllNumsVo vo = new AllNumsVo(); diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml index 14a0fdc..1e9b538 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwDeviceMapper.xml @@ -292,4 +292,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where device_code = #{deviceCode} limit 1 + + + + + + \ No newline at end of file diff --git a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml index 104efda..e3aef8b 100644 --- a/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml +++ b/ruoyi-modules/hw-business/src/main/resources/mapper/business/HwMonitorUnitMapper.xml @@ -112,14 +112,13 @@ GROUP BY scene_id diff --git a/ruoyi-ui/src/views/board/equipment/index.vue b/ruoyi-ui/src/views/board/equipment/index.vue index a833bf5..6f450e9 100644 --- a/ruoyi-ui/src/views/board/equipment/index.vue +++ b/ruoyi-ui/src/views/board/equipment/index.vue @@ -75,9 +75,14 @@ :src="i.deviceDataMap[Object.keys(i.deviceDataMap).find(e=> i.deviceDataMap[e].toString().includes('http'))]" style="width: 100%; height: 100%"> + + diff --git a/ruoyi-ui/src/views/board/index/index.vue b/ruoyi-ui/src/views/board/index/index.vue index 8ca3a5a..e5e5dfa 100644 --- a/ruoyi-ui/src/views/board/index/index.vue +++ b/ruoyi-ui/src/views/board/index/index.vue @@ -81,11 +81,11 @@
传感器数量
{{ - centerNum.subSum + centerNum.sum }}
监控单元数量
-
{{ centerNum.sum }}
+
{{ centerNum.subSum }}
在运: {{ inTransitNum }}
diff --git a/ruoyi-ui/src/views/business/deviceMode/deviceModeService.vue b/ruoyi-ui/src/views/business/deviceMode/deviceModeService.vue index 123ce7c..331f5c7 100644 --- a/ruoyi-ui/src/views/business/deviceMode/deviceModeService.vue +++ b/ruoyi-ui/src/views/business/deviceMode/deviceModeService.vue @@ -309,7 +309,7 @@ export default { {required: true, message: "请输入标识符", trigger: "blur"}, { pattern: /^[a-zA-Z][a-z0-9_]+$/, - message: "2-20个字符,由大小写字母、数字或下划线组成,开头必须为小写字母", + message: "2-30个字符,由大小写字母、数字或下划线组成,开头必须为字母", trigger: "blur" } ],