diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 8f91400..8b7767b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -65,6 +65,16 @@ BWI.DEPTID + + str_to_date(${paramStr},'%Y-%m-%d %H:%i:%s') @@ -307,10 +317,14 @@ ORDER BY "totalAlarm" DESC - + SELECT DEVICE_TYPE AS "deviceType",deptid FROM config_dept_permission - WHERE DEPTID=#{deptid} + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 8f91400..8b7767b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -65,6 +65,16 @@ BWI.DEPTID + + str_to_date(${paramStr},'%Y-%m-%d %H:%i:%s') @@ -307,10 +317,14 @@ ORDER BY "totalAlarm" DESC - + SELECT DEVICE_TYPE AS "deviceType",deptid FROM config_dept_permission - WHERE DEPTID=#{deptid} + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index 54a0e5b..41876f4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -19,6 +19,8 @@ Map deviceStaticsByStatus(DataScope dataScope); + List> deviceStaticsByRoad(DataScope dataScope); + List> deviceStaticsByStatusAndType(DataScope dataScope); List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 8f91400..8b7767b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -65,6 +65,16 @@ BWI.DEPTID + + str_to_date(${paramStr},'%Y-%m-%d %H:%i:%s') @@ -307,10 +317,14 @@ ORDER BY "totalAlarm" DESC - + SELECT DEVICE_TYPE AS "deviceType",deptid FROM config_dept_permission - WHERE DEPTID=#{deptid} + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index 54a0e5b..41876f4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -19,6 +19,8 @@ Map deviceStaticsByStatus(DataScope dataScope); + List> deviceStaticsByRoad(DataScope dataScope); + List> deviceStaticsByStatusAndType(DataScope dataScope); List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index ada781a..c54d46d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -57,11 +58,11 @@ @Override public List> deviceStaticsByType(DataScope dataScope) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String deviceTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(deviceTypes); List> mapList = statisticMapper.deviceStaticsByType(); - List> dataScopeFilter= mapList.stream().filter( - map->deviceTypeMap.containsKey(map.get("id").toString()) + List> dataScopeFilter = mapList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("id").toString()) ).collect(Collectors.toList()); return dataScopeFilter; } @@ -76,7 +77,14 @@ } @Override - public Map deviceStaticsByStatus(DataScope dataScope) { + + public List> deviceStaticsByRoad(DataScope dataScope){ + return statisticMapper.deviceStaticsByRoad(dataScope); + } + + + @Override + public Map deviceStaticsByStatus(DataScope dataScope) { String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map mapList = statisticMapper.deviceStaticsByStatus(deptIds); return mapList; @@ -151,12 +159,12 @@ public ResponseData alarmWellListPage(DataScope dataScope, Page> page, String beginTime, String endTime, String alarmContent) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { - List> alarmWellList = statisticMapper.alarmWellListPage(dataScope,page, beginTime, endTime, alarmContent); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> alarmWellList = statisticMapper.alarmWellListPage(dataScope, page, beginTime, endTime, alarmContent); + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); page.setRecords(dataScopeFilter); responseData.setCode(200); @@ -172,13 +180,13 @@ public Object getAlarmCountByType(String beginTime, String endTime, String alarmType) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); + String detypeTypes = getDeviceType(deptId); ResponseData responseData = new ResponseData(); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmCountByType(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -195,12 +203,12 @@ public Object getAlarmByStatus(String beginTime, String endTime, String alarmType) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmByStatus(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -213,11 +221,32 @@ return responseData; } - private Map deviceTypeToMap(String deviceTypes){ - List deviceTypeList =JSON.parseObject(deviceTypes, List.class); - return deviceTypeList.stream().collect( - Collectors.toMap(e->e,e->e) - ); + private String getDeviceType(Long deptId) { + List> deptTypeList = statisticMapper.getDeviceType(); + List> deptList = statisticMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(deptId); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } + + private Map deviceTypeToMap(String deviceTypes) { + if(StrUtil.isEmpty(deviceTypes)){ + return null; + } + List deviceTypeList = JSON.parseObject(deviceTypes, List.class); + return deviceTypeList.stream().collect( + Collectors.toMap(e -> e, e -> e) + ); } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 8f91400..8b7767b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -65,6 +65,16 @@ BWI.DEPTID + + str_to_date(${paramStr},'%Y-%m-%d %H:%i:%s') @@ -307,10 +317,14 @@ ORDER BY "totalAlarm" DESC - + SELECT DEVICE_TYPE AS "deviceType",deptid FROM config_dept_permission - WHERE DEPTID=#{deptid} + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index 54a0e5b..41876f4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -19,6 +19,8 @@ Map deviceStaticsByStatus(DataScope dataScope); + List> deviceStaticsByRoad(DataScope dataScope); + List> deviceStaticsByStatusAndType(DataScope dataScope); List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index ada781a..c54d46d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -57,11 +58,11 @@ @Override public List> deviceStaticsByType(DataScope dataScope) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String deviceTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(deviceTypes); List> mapList = statisticMapper.deviceStaticsByType(); - List> dataScopeFilter= mapList.stream().filter( - map->deviceTypeMap.containsKey(map.get("id").toString()) + List> dataScopeFilter = mapList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("id").toString()) ).collect(Collectors.toList()); return dataScopeFilter; } @@ -76,7 +77,14 @@ } @Override - public Map deviceStaticsByStatus(DataScope dataScope) { + + public List> deviceStaticsByRoad(DataScope dataScope){ + return statisticMapper.deviceStaticsByRoad(dataScope); + } + + + @Override + public Map deviceStaticsByStatus(DataScope dataScope) { String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map mapList = statisticMapper.deviceStaticsByStatus(deptIds); return mapList; @@ -151,12 +159,12 @@ public ResponseData alarmWellListPage(DataScope dataScope, Page> page, String beginTime, String endTime, String alarmContent) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { - List> alarmWellList = statisticMapper.alarmWellListPage(dataScope,page, beginTime, endTime, alarmContent); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> alarmWellList = statisticMapper.alarmWellListPage(dataScope, page, beginTime, endTime, alarmContent); + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); page.setRecords(dataScopeFilter); responseData.setCode(200); @@ -172,13 +180,13 @@ public Object getAlarmCountByType(String beginTime, String endTime, String alarmType) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); + String detypeTypes = getDeviceType(deptId); ResponseData responseData = new ResponseData(); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmCountByType(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -195,12 +203,12 @@ public Object getAlarmByStatus(String beginTime, String endTime, String alarmType) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmByStatus(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -213,11 +221,32 @@ return responseData; } - private Map deviceTypeToMap(String deviceTypes){ - List deviceTypeList =JSON.parseObject(deviceTypes, List.class); - return deviceTypeList.stream().collect( - Collectors.toMap(e->e,e->e) - ); + private String getDeviceType(Long deptId) { + List> deptTypeList = statisticMapper.getDeviceType(); + List> deptList = statisticMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(deptId); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } + + private Map deviceTypeToMap(String deviceTypes) { + if(StrUtil.isEmpty(deviceTypes)){ + return null; + } + List deviceTypeList = JSON.parseObject(deviceTypes, List.class); + return deviceTypeList.stream().collect( + Collectors.toMap(e -> e, e -> e) + ); } } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java index 8fa6f08..5bffdb5 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java @@ -24,8 +24,9 @@ Map countRecordsByTime(@Param("dataScope") DataScope dataScope, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("tableName") String tableName); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + List> getDeptList(); int countRecordsToday(@Param("dataScope") DataScope dataScope, @Param("endTime") String endTime, @Param("beginTime") String beginTime); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 8f91400..8b7767b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -65,6 +65,16 @@ BWI.DEPTID + + str_to_date(${paramStr},'%Y-%m-%d %H:%i:%s') @@ -307,10 +317,14 @@ ORDER BY "totalAlarm" DESC - + SELECT DEVICE_TYPE AS "deviceType",deptid FROM config_dept_permission - WHERE DEPTID=#{deptid} + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index 54a0e5b..41876f4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -19,6 +19,8 @@ Map deviceStaticsByStatus(DataScope dataScope); + List> deviceStaticsByRoad(DataScope dataScope); + List> deviceStaticsByStatusAndType(DataScope dataScope); List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index ada781a..c54d46d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -57,11 +58,11 @@ @Override public List> deviceStaticsByType(DataScope dataScope) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String deviceTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(deviceTypes); List> mapList = statisticMapper.deviceStaticsByType(); - List> dataScopeFilter= mapList.stream().filter( - map->deviceTypeMap.containsKey(map.get("id").toString()) + List> dataScopeFilter = mapList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("id").toString()) ).collect(Collectors.toList()); return dataScopeFilter; } @@ -76,7 +77,14 @@ } @Override - public Map deviceStaticsByStatus(DataScope dataScope) { + + public List> deviceStaticsByRoad(DataScope dataScope){ + return statisticMapper.deviceStaticsByRoad(dataScope); + } + + + @Override + public Map deviceStaticsByStatus(DataScope dataScope) { String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map mapList = statisticMapper.deviceStaticsByStatus(deptIds); return mapList; @@ -151,12 +159,12 @@ public ResponseData alarmWellListPage(DataScope dataScope, Page> page, String beginTime, String endTime, String alarmContent) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { - List> alarmWellList = statisticMapper.alarmWellListPage(dataScope,page, beginTime, endTime, alarmContent); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> alarmWellList = statisticMapper.alarmWellListPage(dataScope, page, beginTime, endTime, alarmContent); + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); page.setRecords(dataScopeFilter); responseData.setCode(200); @@ -172,13 +180,13 @@ public Object getAlarmCountByType(String beginTime, String endTime, String alarmType) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); + String detypeTypes = getDeviceType(deptId); ResponseData responseData = new ResponseData(); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmCountByType(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -195,12 +203,12 @@ public Object getAlarmByStatus(String beginTime, String endTime, String alarmType) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmByStatus(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -213,11 +221,32 @@ return responseData; } - private Map deviceTypeToMap(String deviceTypes){ - List deviceTypeList =JSON.parseObject(deviceTypes, List.class); - return deviceTypeList.stream().collect( - Collectors.toMap(e->e,e->e) - ); + private String getDeviceType(Long deptId) { + List> deptTypeList = statisticMapper.getDeviceType(); + List> deptList = statisticMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(deptId); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } + + private Map deviceTypeToMap(String deviceTypes) { + if(StrUtil.isEmpty(deviceTypes)){ + return null; + } + List deviceTypeList = JSON.parseObject(deviceTypes, List.class); + return deviceTypeList.stream().collect( + Collectors.toMap(e -> e, e -> e) + ); } } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java index 8fa6f08..5bffdb5 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java @@ -24,8 +24,9 @@ Map countRecordsByTime(@Param("dataScope") DataScope dataScope, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("tableName") String tableName); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + List> getDeptList(); int countRecordsToday(@Param("dataScope") DataScope dataScope, @Param("endTime") String endTime, @Param("beginTime") String beginTime); diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml index 283fc66..c96cc65 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml @@ -122,13 +122,6 @@ ORDER BY dp.LOGTIME DESC - - - + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java index e347e36..2163939 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/StaticsController.java @@ -121,6 +121,28 @@ /** * 根据在线状态统计设备数量 */ + @RequestMapping(value = "/deviceStaticsByRoad") + @ResponseBody + public Object deviceStaticsByRoad() { + ResponseData responseData = new ResponseData(); + DataScope dataScope = permissionService.getAuthService().getLoginUserDataScope(); + try { + List> res = statisticsService.deviceStaticsByRoad(dataScope); + responseData.setData(res); + responseData.setCode(200); + responseData.setSuccess(true); + responseData.setMessage("查询成功"); + } catch (DataAccessException e) { + e.printStackTrace(); + responseData.setCode(500); + responseData.setMessage("查询异常"); + } + return responseData; + } + + /** + * 根据在线状态统计设备数量 + */ @RequestMapping(value = "/deviceStaticsByStatusAndType") @ResponseBody public Object deviceStaticsByStatusAndType() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java index 73bdc38..4a35142 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/StatisticMapper.java @@ -12,12 +12,16 @@ List> wellStaticsByType(@Param("deptIds") String deptIds); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + + List> getDeptList(); List> deviceStaticsByType(); List> deviceStaticsByDept(@Param("dataScope") DataScope dataScope, @Param("deviceType") String deviceType); + List> deviceStaticsByRoad(@Param("dataScope") DataScope dataScope); + Map deviceStaticsByStatus(@Param("deptIds") String deptIds); List> deviceStaticsByStatusAndType(@Param("deptIds") String deptIds); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml index 8f91400..8b7767b 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/dao/mapping/StatisticMapper.xml @@ -65,6 +65,16 @@ BWI.DEPTID + + str_to_date(${paramStr},'%Y-%m-%d %H:%i:%s') @@ -307,10 +317,14 @@ ORDER BY "totalAlarm" DESC - + SELECT DEVICE_TYPE AS "deviceType",deptid FROM config_dept_permission - WHERE DEPTID=#{deptid} + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java index 54a0e5b..41876f4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/IStatisticsService.java @@ -19,6 +19,8 @@ Map deviceStaticsByStatus(DataScope dataScope); + List> deviceStaticsByRoad(DataScope dataScope); + List> deviceStaticsByStatusAndType(DataScope dataScope); List> jobsByDept(DataScope dataScope, String beginTime, String endTime, String deviceType) throws ParseException; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java index ada781a..c54d46d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/service/impl/StatisticServiceImpl.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -57,11 +58,11 @@ @Override public List> deviceStaticsByType(DataScope dataScope) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String deviceTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(deviceTypes); List> mapList = statisticMapper.deviceStaticsByType(); - List> dataScopeFilter= mapList.stream().filter( - map->deviceTypeMap.containsKey(map.get("id").toString()) + List> dataScopeFilter = mapList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("id").toString()) ).collect(Collectors.toList()); return dataScopeFilter; } @@ -76,7 +77,14 @@ } @Override - public Map deviceStaticsByStatus(DataScope dataScope) { + + public List> deviceStaticsByRoad(DataScope dataScope){ + return statisticMapper.deviceStaticsByRoad(dataScope); + } + + + @Override + public Map deviceStaticsByStatus(DataScope dataScope) { String deptIds = StringUtils.strip(dataScope.getDeptIds().toString(), "[]"); Map mapList = statisticMapper.deviceStaticsByStatus(deptIds); return mapList; @@ -151,12 +159,12 @@ public ResponseData alarmWellListPage(DataScope dataScope, Page> page, String beginTime, String endTime, String alarmContent) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { - List> alarmWellList = statisticMapper.alarmWellListPage(dataScope,page, beginTime, endTime, alarmContent); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> alarmWellList = statisticMapper.alarmWellListPage(dataScope, page, beginTime, endTime, alarmContent); + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); page.setRecords(dataScopeFilter); responseData.setCode(200); @@ -172,13 +180,13 @@ public Object getAlarmCountByType(String beginTime, String endTime, String alarmType) { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); + String detypeTypes = getDeviceType(deptId); ResponseData responseData = new ResponseData(); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmCountByType(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -195,12 +203,12 @@ public Object getAlarmByStatus(String beginTime, String endTime, String alarmType) { ResponseData responseData = new ResponseData(); Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String detypeTypes= statisticMapper.getDeviceType(deptId); - Map deviceTypeMap=deviceTypeToMap(detypeTypes); + String detypeTypes = getDeviceType(deptId); + Map deviceTypeMap = deviceTypeToMap(detypeTypes); try { List> alarmWellList = statisticMapper.getAlarmByStatus(beginTime, endTime, alarmType); - List> dataScopeFilter= alarmWellList.stream().filter( - map->deviceTypeMap.containsKey(map.get("deviceType").toString()) + List> dataScopeFilter = alarmWellList.stream().filter( + map -> deviceTypeMap.containsKey(map.get("deviceType").toString()) ).collect(Collectors.toList()); responseData.setCode(200); responseData.setMessage("查询成功"); @@ -213,11 +221,32 @@ return responseData; } - private Map deviceTypeToMap(String deviceTypes){ - List deviceTypeList =JSON.parseObject(deviceTypes, List.class); - return deviceTypeList.stream().collect( - Collectors.toMap(e->e,e->e) - ); + private String getDeviceType(Long deptId) { + List> deptTypeList = statisticMapper.getDeviceType(); + List> deptList = statisticMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(deptId); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } + + private Map deviceTypeToMap(String deviceTypes) { + if(StrUtil.isEmpty(deviceTypes)){ + return null; + } + List deviceTypeList = JSON.parseObject(deviceTypes, List.class); + return deviceTypeList.stream().collect( + Collectors.toMap(e -> e, e -> e) + ); } } diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java index 8fa6f08..5bffdb5 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/ThirdPartyDataMapper.java @@ -24,8 +24,9 @@ Map countRecordsByTime(@Param("dataScope") DataScope dataScope, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("tableName") String tableName); - String getDeviceType(@Param("deptid")Long deptId); + List> getDeviceType(); + List> getDeptList(); int countRecordsToday(@Param("dataScope") DataScope dataScope, @Param("endTime") String endTime, @Param("beginTime") String beginTime); diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml index 283fc66..c96cc65 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/dao/mapping/ThirdPartyDataMapper.xml @@ -122,13 +122,6 @@ ORDER BY dp.LOGTIME DESC - - - + + + + \ No newline at end of file diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java index e01f8ce..1fd7073 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java @@ -17,6 +17,7 @@ import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -35,7 +36,7 @@ String deptid, String endTime, String beginTime, String keyWords) { ResponseData responseData = new ResponseData(); try { - List gasDectorDataDtoList = thirdPartyMapper.getGasDectorListPage(page, dataScope, StrUtil.isEmpty(deptid)?-1:Long.valueOf(deptid), endTime, beginTime, keyWords); + List gasDectorDataDtoList = thirdPartyMapper.getGasDectorListPage(page, dataScope, StrUtil.isEmpty(deptid) ? -1 : Long.valueOf(deptid), endTime, beginTime, keyWords); gasDectorDataDtoList.forEach(gasDectorDataDto -> { gasDectorDataDto.setDeptName(permissionService.getDeptService().getDeptName(gasDectorDataDto.getDeptid())); }); @@ -56,7 +57,7 @@ String deptid, String endTime, String beginTime, String keyWords) { ResponseData responseData = new ResponseData(); try { - List pantiltDtoList = thirdPartyMapper.getPantiltDataListPage(page, dataScope, StrUtil.isEmpty(deptid)?-1:Long.valueOf(deptid), endTime, beginTime, keyWords); + List pantiltDtoList = thirdPartyMapper.getPantiltDataListPage(page, dataScope, StrUtil.isEmpty(deptid) ? -1 : Long.valueOf(deptid), endTime, beginTime, keyWords); page.setRecords(pantiltDtoList); responseData.setData(page); responseData.setMessage("查询成功"); @@ -81,11 +82,16 @@ ResponseData responseData = new ResponseData(); try { Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); - String deviceTypes = thirdPartyMapper.getDeviceType(deptId); - List> result = countThirdRecord(dataScope, deviceTypes, beginTime, endTime); - responseData.setData(result); - responseData.setMessage("查询成功"); - responseData.setCode(200); + String deviceTypes = getDeviceType(deptId); + if (StrUtil.isEmpty(deviceTypes)) { + responseData.setCode(200); + responseData.setMessage("没有数据权限"); + } else { + List> result = countThirdRecord(dataScope, deviceTypes, beginTime, endTime); + responseData.setData(result); + responseData.setCode(200); + responseData.setMessage("查询成功"); + } } catch (DataAccessException dex) { log.error("主题:查询历史设备数据出现数据异常,开始时间:{},结束时间{},异常信息{}", beginTime, endTime, dex); responseData.setMessage("查询异常"); @@ -148,4 +154,21 @@ return countRecordList; } + private String getDeviceType(Long deptId) { + List> deptTypeList = thirdPartyMapper.getDeviceType(); + List> deptList = thirdPartyMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(deptId); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } }