alarmBySecondArea(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
+ Long countByFirstArea(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
}
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 8ad668b..0869697 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
@@ -35,6 +35,7 @@
AND BWI.DEPTID IN (${deptIds})
GROUP BY BD.DEVICE_TYPE
) A ON BDT.ID = A.deviceType
+ WHERE bdt.`VALID`=1
@@ -1060,4 +1060,14 @@
SELECT *
FROM sys_area
+
+
+ SELECT
+ sa.id
+ FROM sys_area sa
+ where 1=1
+
+ AND (sa.PIDS like CONCAT('%[',#{areaId},']%'))
+
+
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
index 0560bb7..b81a804 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.service.IService;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -23,4 +24,6 @@
DeviceType selectDeviceTypeByName(String typeName);
int countDeviceByType(Serializable typeId);
+
+ List getTypeList();
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java
index 43e042e..0e9f752 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java
@@ -3,19 +3,18 @@
import com.casic.missiles.core.base.controller.BaseController;
import com.casic.missiles.core.base.response.ResponseData;
import com.casic.missiles.core.common.service.ICommonPermissionService;
-import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.core.util.ToolUtil;
-import com.casic.missiles.modular.system.dto.AlarmNowView;
import com.casic.missiles.modular.system.model.Area;
+import com.casic.missiles.modular.system.model.DeviceType;
import com.casic.missiles.modular.system.service.IAlarmNowViewService;
import com.casic.missiles.modular.system.service.IAreaService;
+import com.casic.missiles.modular.system.service.IDeviceTypeService;
import com.casic.missiles.modular.system.service.IStatisticsService;
import com.casic.missiles.modular.system.util.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
@@ -28,15 +27,58 @@
public class WaterStaticsController extends BaseController {
@Autowired
private IStatisticsService statisticsService;
- @Autowired
- private IAlarmNowViewService alarmNowViewService;
- @Autowired
- private ICommonPermissionService permissionService;
+
@Autowired
private IAreaService iAreaService;
+ @Autowired
+ private IDeviceTypeService iDeviceTypeService;
+
+
+
/**
- * 根据权属单位统计闸井数量
+ * 查询一级分区各区用水量
+ *
+ * @return
+ */
+ @RequestMapping(value = "/countByFirstArea")
+ @ResponseBody
+ public Object countByFirstArea(String startTime, String endTime) {
+ List areaList = iAreaService.selectList(null);
+ List areaLevel1List = new ArrayList<>();
+
+ areaList.forEach(area -> {
+ //过滤一级区域
+ if ("2".equals(area.getLevel().toString())) {
+ areaLevel1List.add(area);
+ }
+ });
+ List> mapList = new ArrayList<>();
+ //寻找一级区域下的所有子区域的总用水量 按照天
+ for (Area area1 : areaLevel1List) {
+ List childIdsList = new ArrayList<>();
+ Map map = new HashMap<>();
+ map.put("areaId", area1.getId());
+ map.put("areaName", area1.getAreaName());
+ map.put("count", 0);
+ for (Area area : areaList) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area1.getId() + "]")) {
+ childIdsList.add(area.getId());
+ }
+ }
+ if (ToolUtil.isNotEmpty(childIdsList)) {
+ Long count = statisticsService.countByFirstArea(startTime, endTime, StringUtils.join(childIdsList.toArray(), ","));
+ map.put("count", count);
+ }
+ mapList.add(map);
+ }
+
+ return ResponseData.success(mapList);
+ }
+
+
+ /**
+ * 查询一级分区7日用水量
*
* @return
*/
@@ -45,7 +87,6 @@
public Object countByDayFirst(String startTime, String endTime) {
List areaList = iAreaService.selectList(null);
List areaLevel1List = new ArrayList<>();
- List childIdsList = new ArrayList<>();
List dateStrs = DateUtil.getBetweenTime(startTime, endTime);
areaList.forEach(area -> {
//过滤一级区域
@@ -56,9 +97,10 @@
List> mapList = new ArrayList<>();
//寻找一级区域下的所有子区域的总用水量 按照天
for (Area area1 : areaLevel1List) {
+ List childIdsList = new ArrayList<>();
Map map = new HashMap<>();
for (Area area : areaList) {
- if (area.getPids().contains("[" + area1.getPid() + "]")) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area1.getId() + "]")) {
childIdsList.add(area.getId());
}
}
@@ -69,7 +111,7 @@
mapList.add(map);
}
//封装数据
- List>> returnMapList = new ArrayList<>();
+ List> returnMapList = new ArrayList<>();
for (String dateStr : dateStrs) {
Map retMap = new HashMap<>();
retMap.put("date", dateStr);
@@ -90,127 +132,137 @@
}
}
returnMaps.add(countMap);
- returnMapList.add(returnMaps);
+ retMap.put("data", returnMaps);
+ returnMapList.add(retMap);
}
-
}
return ResponseData.success(returnMapList);
-
}
/**
- * 根据井类型统计闸井数量
+ * 查询二级分区用水量
+ *
+ * @return
*/
- @RequestMapping(value = "/wellStaticsByType")
+ @RequestMapping(value = "/countBySecondArea")
@ResponseBody
- public Object wellStaticsByType() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.wellStaticsByType(dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
+ public Object countBySecondArea(String areaId, String startTime, String endTime) {
+ List areaList = iAreaService.selectList(null);
+ List areaLevel2List = new ArrayList<>();
+
+ areaList.forEach(area -> {
+ //根据一级区域过滤二级区域
+ if ("3".equals(area.getLevel().toString()) &&area.getPids()!=null&& area.getPids().contains("[" + areaId + "]")) {
+ areaLevel2List.add(area);
+ }
+ });
+ List> mapList = new ArrayList<>();
+ //寻找一级区域下的所有子区域的总用水量 按照天
+ for (Area area2 : areaLevel2List) {
+ List childIdsList = new ArrayList<>();
+ Map map = new HashMap<>();
+ map.put("areaId", area2.getId());
+ map.put("areaName", area2.getAreaName());
+ map.put("count", 0);
+ for (Area area : areaList) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area2.getId() + "]")) {
+ childIdsList.add(area.getId());
+ }
+ }
+ if (ToolUtil.isNotEmpty(childIdsList)) {
+ Long count = statisticsService.countByFirstArea(startTime, endTime, StringUtils.join(childIdsList.toArray(), ","));
+ map.put("count", count);
+ }
+ mapList.add(map);
}
+
+ return ResponseData.success(mapList);
}
+
/**
- * 根据设备类型统计设备数量
+ * 查询二级分区水表告警
+ *
+ * @return
*/
- @RequestMapping(value = "/deviceStaticsByType")
+ @RequestMapping(value = "/alarmBySecondArea")
@ResponseBody
- public Object deviceStaticsByType() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.deviceStaticsByType(dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
+ public Object alarmBySecondArea(String areaId, String startTime, String endTime) {
+ List areaList = iAreaService.selectList(null);
+ List areaLevel2List = new ArrayList<>();
+ areaList.forEach(area -> {
+ //根据一级区域过滤二级区域
+ if ("3".equals(area.getLevel().toString()) && area.getPids().contains("[" + areaId + "]")) {
+ areaLevel2List.add(area);
+ }
+ });
+ List> mapList = new ArrayList<>();
+ //寻找一级区域下的所有子区域的总用水量 按照天
+ for (Area area2 : areaLevel2List) {
+ List childIdsList = new ArrayList<>();
+ Map map = new HashMap<>();
+ map.put("areaId", area2.getId());
+ map.put("areaName", area2.getAreaName());
+ map.put("alarm", 0);
+ map.put("warning", 0);
+ for (Area area : areaList) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area2.getId() + "]")) {
+ childIdsList.add(area.getId());
+ }
+ }
+ if (ToolUtil.isNotEmpty(childIdsList)) {
+ Map objectMap = statisticsService.alarmBySecondArea(startTime, endTime, StringUtils.join(childIdsList.toArray(), ","));
+ if (ToolUtil.isNotEmpty(objectMap) && ToolUtil.isNotEmpty(objectMap.get("alarm")))
+ map.put("alarm", objectMap.get("alarm").toString());
+ if (ToolUtil.isNotEmpty(objectMap) && ToolUtil.isNotEmpty(objectMap.get("warning")))
+ map.put("warning", objectMap.get("warning").toString());
+ }
+ mapList.add(map);
}
+
+ return ResponseData.success(mapList);
}
+
/**
- * 根据权属单位统计设备数量
+ * 设备7日报警趋势
+ *
+ * @return
*/
- @RequestMapping(value = "/deviceStaticsByDept")
+ @RequestMapping(value = "/alarmCountByDay")
@ResponseBody
- public Object deviceStaticsByDept(@RequestParam(value = "deviceType", required = false) String deviceType) {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.deviceStaticsByDept(dataScope, deviceType);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
+ public Object alarmCountByDay(String startTime, String endTime) {
+ List deviceTypeList =iDeviceTypeService.getTypeList();
- /**
- * 根据在线状态统计设备数量
- */
- @RequestMapping(value = "/deviceStaticsByStatus")
- @ResponseBody
- public Object deviceStaticsByStatus() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- Map res = statisticsService.deviceStaticsByStatus(dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
+ List dateStrs = DateUtil.getBetweenTime(startTime, endTime);
- /**
- * 根据权属单位统计工单数
- */
- @RequestMapping(value = "/jobsByDept")
- @ResponseBody
- public Object jobsByDept(String beginTime, String endTime, String deviceType) {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.jobsByDept(dataScope, beginTime, endTime, deviceType);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
+ List> objectMapList = statisticsService.alarmCountByDay(startTime, endTime);
- /**
- * 当前报警统计
- */
- @RequestMapping(value = "/alarmsNow")
- @ResponseBody
- public Object alarmsNow() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List alarmNowViews = alarmNowViewService.getNowAlarmRecords(dataScope);
- Map res = new HashMap<>();
- res.put("total", alarmNowViews.size());
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
+ //封装数据
+ List> returnMapList = new ArrayList<>();
+ for (String dateStr : dateStrs) {
+ Map retMap = new HashMap<>();
+ retMap.put("date", dateStr);
+ retMap.put("data", new ArrayList<>());
+ List> returnMaps = new ArrayList<>();
+ for (DeviceType deviceType : deviceTypeList) {
+ Map countMap = new HashMap<>();
+ countMap.put("name", deviceType.getTypeName());
+ countMap.put("count", "0");
+ for (Map objectMap : objectMapList) {
+ if (ToolUtil.isNotEmpty(objectMap.get("name"))) {
+ if(deviceType.getTypeName().equals(objectMap.get("name").toString())&&
+ dateStr.equals(objectMap.get("alarmDate").toString())){
+ countMap.put("count", objectMap.get("count").toString());
+ }
+ }
+ }
+ returnMaps.add(countMap);
+ }
+ retMap.put("data", returnMaps);
+ returnMapList.add(retMap);
}
+ return ResponseData.success(returnMapList);
}
- /**
- * 统计每日报警总数
- */
- @RequestMapping("/alarmsByDay")
- @ResponseBody
- public Object alarmsByDay(String beginTime, String endTime) {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.alarmsByDay(beginTime, endTime, dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
-
-
}
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 52746d6..7e30d95 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
@@ -15,4 +15,7 @@
List> jobsByDept(@Param("dataScope")DataScope dataScope,@Param("beginTime")String beginTime,@Param("endTime")String endTime,@Param("deviceType")String deviceType);
Map jobsByDeptId(@Param("deptIds")String deptIds,@Param("beginTime")String beginTime,@Param("endTime")String endTime);
List> countByDayFirst(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
+ List> alarmCountByDay(@Param("startTime")String startTime,@Param("endTime")String endTime);
+ Map alarmBySecondArea(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
+ Long countByFirstArea(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
}
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 8ad668b..0869697 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
@@ -35,6 +35,7 @@
AND BWI.DEPTID IN (${deptIds})
GROUP BY BD.DEVICE_TYPE
) A ON BDT.ID = A.deviceType
+ WHERE bdt.`VALID`=1
@@ -116,8 +117,8 @@
SELECT IFNULL(SUM(dd.`FLOW_ACC_DATE`), 0) AS 'count', dd.`DATE`
FROM data_watermeter_day dd
- LEFT JOIN device_view dv
- ON dd.`DEVCODE` = dv.`DEVCODE`
+ LEFT JOIN device_view dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
where dv.VALID = '1'
AND dd.`DATE`= ]]> #{startTime}
@@ -131,4 +132,64 @@
GROUP BY dd.`DATE`
+
+ SELECT
+ IFNULL(SUM(dd.`FLOW_ACC_DATE`), 0) AS 'count'
+ FROM
+ data_watermeter_day dd
+ LEFT JOIN device_view dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
+ where dv.VALID = '1'
+
+ AND dd.`DATE`= ]]> #{startTime}
+
+
+ AND dd.`DATE` #{endTime}
+
+
+ AND dv.`AREA` IN (${areaIds})
+
+
+
+ SELECT
+ IFNULL(COUNT(dd.`ID`),0) AS 'alarm',
+ IFNULL(COUNT(dd.`ID`),0) AS 'warning'
+ FROM
+ alarm_records dd
+ LEFT JOIN device_view dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
+ where dv.VALID = '1'
+
+ AND dd.`ALARM_TIME`= ]]> #{startTime}
+
+
+ AND dd.`ALARM_TIME` #{endTime}
+
+
+ AND dv.`AREA` IN (${areaIds})
+
+ LIMIT 1
+
+
+
+ SELECT
+ IFNULL(COUNT(dd.`ID`), 0) AS 'count',
+ DATE_FORMAT(dd.`ALARM_TIME`,'%Y-%m-%d') AS 'alarmDate',
+ bt.`TYPE_NAME` AS 'name'
+ FROM
+ alarm_records dd
+ LEFT JOIN bus_device dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
+ AND dv.`VALID` = 1
+ LEFT JOIN base_device_type bt
+ ON bt.`ID` = dv.`DEVICE_TYPE`
+ WHERE bt.`VALID` = 1
+
+ AND dd.`ALARM_TIME`= ]]> #{startTime}
+
+
+ AND dd.`ALARM_TIME` #{endTime}
+
+ GROUP BY DATE_FORMAT(dd.`ALARM_TIME`,'%Y-%m-%d')
+
\ 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 3575cb3..66a4d88 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
@@ -15,4 +15,7 @@
List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException;
List> alarmsByDay(String beginTime,String endTime,DataScope dataScope);
List> countByDayFirst(String startTime,String endTime,String areaIds);
+ List> alarmCountByDay(String startTime,String endTime);
+ Map alarmBySecondArea(String startTime,String endTime,String areaIds);
+ Long countByFirstArea(String startTime,String endTime,String areaIds);
}
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 7290c37..bc54695 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
@@ -136,4 +136,19 @@
public List> countByDayFirst(String startTime, String endTime,String areaIds) {
return statisticMapper.countByDayFirst(startTime,endTime,areaIds);
}
+
+ @Override
+ public Long countByFirstArea(String startTime, String endTime,String areaIds) {
+ return statisticMapper.countByFirstArea(startTime,endTime,areaIds);
+ }
+
+ @Override
+ public Map alarmBySecondArea(String startTime, String endTime, String areaIds) {
+ return statisticMapper.alarmBySecondArea(startTime,endTime,areaIds);
+ }
+
+ @Override
+ public List> alarmCountByDay(String startTime, String endTime) {
+ return statisticMapper.alarmCountByDay( startTime, endTime);
+ }
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java
index a376ba8..ae94fc5 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java
@@ -23,6 +23,7 @@
List selectDataScopePage(@Param("scope") DataScope dataScope, @Param("page") Page page, @Param("deviceType") String deviceType, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords, @Param("isOnline") String isOnline, @Param("areaId") String areaId);
DeviceWellDto selectWellIdByCode(@Param("wellCode") String wellCode);
+ List getAreaIds(@Param("areaId") Long areaId);
String getArea(@Param("id") String id);
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml
index eee62f1..de868cb 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml
@@ -109,7 +109,7 @@
OR wellCode LIKE )
- and area LIKE
+ and area IN (${areaId})
ORDER BY INSTALLDATE DESC
@@ -1060,4 +1060,14 @@
SELECT *
FROM sys_area
+
+
+ SELECT
+ sa.id
+ FROM sys_area sa
+ where 1=1
+
+ AND (sa.PIDS like CONCAT('%[',#{areaId},']%'))
+
+
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
index 0560bb7..b81a804 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.service.IService;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -23,4 +24,6 @@
DeviceType selectDeviceTypeByName(String typeName);
int countDeviceByType(Serializable typeId);
+
+ List getTypeList();
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java
index bf94a23..68632ce 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java
@@ -16,6 +16,7 @@
import com.casic.missiles.modular.system.dto.*;
import com.casic.missiles.modular.system.model.*;
import com.casic.missiles.modular.system.service.*;
+import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BeanPropertyBindingResult;
@@ -163,9 +164,22 @@
return super.updateById(entity);
}
+ public List getAreaPids(Long areaId) {
+ List areaIds = null;
+ if (ToolUtil.isNotEmpty(areaId)) {
+ areaIds = this.baseMapper.getAreaIds(areaId);
+ areaIds.add(areaId);
+ }
+ return areaIds;
+ }
@Override
public List selectDataScopePage(DataScope dataScope, Page page, String deviceType, String deptid, String beginTime, String endTime, String keywords, String isOnline, String areaId) {
- return this.baseMapper.selectDataScopePage(dataScope, page, deviceType, deptid, beginTime, endTime, keywords, isOnline, areaId);
+ String areaIds ="";
+ if(ToolUtil.isNotEmpty(areaId)){
+ List areaIdList= getAreaPids(Long.valueOf(areaId));
+ areaIds= StringUtils.join(areaIdList.toArray(),",");
+ }
+ return this.baseMapper.selectDataScopePage(dataScope, page, deviceType, deptid, beginTime, endTime, keywords, isOnline, areaIds);
}
@Override
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java
index 43e042e..0e9f752 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java
@@ -3,19 +3,18 @@
import com.casic.missiles.core.base.controller.BaseController;
import com.casic.missiles.core.base.response.ResponseData;
import com.casic.missiles.core.common.service.ICommonPermissionService;
-import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.core.util.ToolUtil;
-import com.casic.missiles.modular.system.dto.AlarmNowView;
import com.casic.missiles.modular.system.model.Area;
+import com.casic.missiles.modular.system.model.DeviceType;
import com.casic.missiles.modular.system.service.IAlarmNowViewService;
import com.casic.missiles.modular.system.service.IAreaService;
+import com.casic.missiles.modular.system.service.IDeviceTypeService;
import com.casic.missiles.modular.system.service.IStatisticsService;
import com.casic.missiles.modular.system.util.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
@@ -28,15 +27,58 @@
public class WaterStaticsController extends BaseController {
@Autowired
private IStatisticsService statisticsService;
- @Autowired
- private IAlarmNowViewService alarmNowViewService;
- @Autowired
- private ICommonPermissionService permissionService;
+
@Autowired
private IAreaService iAreaService;
+ @Autowired
+ private IDeviceTypeService iDeviceTypeService;
+
+
+
/**
- * 根据权属单位统计闸井数量
+ * 查询一级分区各区用水量
+ *
+ * @return
+ */
+ @RequestMapping(value = "/countByFirstArea")
+ @ResponseBody
+ public Object countByFirstArea(String startTime, String endTime) {
+ List areaList = iAreaService.selectList(null);
+ List areaLevel1List = new ArrayList<>();
+
+ areaList.forEach(area -> {
+ //过滤一级区域
+ if ("2".equals(area.getLevel().toString())) {
+ areaLevel1List.add(area);
+ }
+ });
+ List> mapList = new ArrayList<>();
+ //寻找一级区域下的所有子区域的总用水量 按照天
+ for (Area area1 : areaLevel1List) {
+ List childIdsList = new ArrayList<>();
+ Map map = new HashMap<>();
+ map.put("areaId", area1.getId());
+ map.put("areaName", area1.getAreaName());
+ map.put("count", 0);
+ for (Area area : areaList) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area1.getId() + "]")) {
+ childIdsList.add(area.getId());
+ }
+ }
+ if (ToolUtil.isNotEmpty(childIdsList)) {
+ Long count = statisticsService.countByFirstArea(startTime, endTime, StringUtils.join(childIdsList.toArray(), ","));
+ map.put("count", count);
+ }
+ mapList.add(map);
+ }
+
+ return ResponseData.success(mapList);
+ }
+
+
+ /**
+ * 查询一级分区7日用水量
*
* @return
*/
@@ -45,7 +87,6 @@
public Object countByDayFirst(String startTime, String endTime) {
List areaList = iAreaService.selectList(null);
List areaLevel1List = new ArrayList<>();
- List childIdsList = new ArrayList<>();
List dateStrs = DateUtil.getBetweenTime(startTime, endTime);
areaList.forEach(area -> {
//过滤一级区域
@@ -56,9 +97,10 @@
List> mapList = new ArrayList<>();
//寻找一级区域下的所有子区域的总用水量 按照天
for (Area area1 : areaLevel1List) {
+ List childIdsList = new ArrayList<>();
Map map = new HashMap<>();
for (Area area : areaList) {
- if (area.getPids().contains("[" + area1.getPid() + "]")) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area1.getId() + "]")) {
childIdsList.add(area.getId());
}
}
@@ -69,7 +111,7 @@
mapList.add(map);
}
//封装数据
- List>> returnMapList = new ArrayList<>();
+ List> returnMapList = new ArrayList<>();
for (String dateStr : dateStrs) {
Map retMap = new HashMap<>();
retMap.put("date", dateStr);
@@ -90,127 +132,137 @@
}
}
returnMaps.add(countMap);
- returnMapList.add(returnMaps);
+ retMap.put("data", returnMaps);
+ returnMapList.add(retMap);
}
-
}
return ResponseData.success(returnMapList);
-
}
/**
- * 根据井类型统计闸井数量
+ * 查询二级分区用水量
+ *
+ * @return
*/
- @RequestMapping(value = "/wellStaticsByType")
+ @RequestMapping(value = "/countBySecondArea")
@ResponseBody
- public Object wellStaticsByType() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.wellStaticsByType(dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
+ public Object countBySecondArea(String areaId, String startTime, String endTime) {
+ List areaList = iAreaService.selectList(null);
+ List areaLevel2List = new ArrayList<>();
+
+ areaList.forEach(area -> {
+ //根据一级区域过滤二级区域
+ if ("3".equals(area.getLevel().toString()) &&area.getPids()!=null&& area.getPids().contains("[" + areaId + "]")) {
+ areaLevel2List.add(area);
+ }
+ });
+ List> mapList = new ArrayList<>();
+ //寻找一级区域下的所有子区域的总用水量 按照天
+ for (Area area2 : areaLevel2List) {
+ List childIdsList = new ArrayList<>();
+ Map map = new HashMap<>();
+ map.put("areaId", area2.getId());
+ map.put("areaName", area2.getAreaName());
+ map.put("count", 0);
+ for (Area area : areaList) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area2.getId() + "]")) {
+ childIdsList.add(area.getId());
+ }
+ }
+ if (ToolUtil.isNotEmpty(childIdsList)) {
+ Long count = statisticsService.countByFirstArea(startTime, endTime, StringUtils.join(childIdsList.toArray(), ","));
+ map.put("count", count);
+ }
+ mapList.add(map);
}
+
+ return ResponseData.success(mapList);
}
+
/**
- * 根据设备类型统计设备数量
+ * 查询二级分区水表告警
+ *
+ * @return
*/
- @RequestMapping(value = "/deviceStaticsByType")
+ @RequestMapping(value = "/alarmBySecondArea")
@ResponseBody
- public Object deviceStaticsByType() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.deviceStaticsByType(dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
+ public Object alarmBySecondArea(String areaId, String startTime, String endTime) {
+ List areaList = iAreaService.selectList(null);
+ List areaLevel2List = new ArrayList<>();
+ areaList.forEach(area -> {
+ //根据一级区域过滤二级区域
+ if ("3".equals(area.getLevel().toString()) && area.getPids().contains("[" + areaId + "]")) {
+ areaLevel2List.add(area);
+ }
+ });
+ List> mapList = new ArrayList<>();
+ //寻找一级区域下的所有子区域的总用水量 按照天
+ for (Area area2 : areaLevel2List) {
+ List childIdsList = new ArrayList<>();
+ Map map = new HashMap<>();
+ map.put("areaId", area2.getId());
+ map.put("areaName", area2.getAreaName());
+ map.put("alarm", 0);
+ map.put("warning", 0);
+ for (Area area : areaList) {
+ if (area.getPids()!=null&&area.getPids().contains("[" + area2.getId() + "]")) {
+ childIdsList.add(area.getId());
+ }
+ }
+ if (ToolUtil.isNotEmpty(childIdsList)) {
+ Map objectMap = statisticsService.alarmBySecondArea(startTime, endTime, StringUtils.join(childIdsList.toArray(), ","));
+ if (ToolUtil.isNotEmpty(objectMap) && ToolUtil.isNotEmpty(objectMap.get("alarm")))
+ map.put("alarm", objectMap.get("alarm").toString());
+ if (ToolUtil.isNotEmpty(objectMap) && ToolUtil.isNotEmpty(objectMap.get("warning")))
+ map.put("warning", objectMap.get("warning").toString());
+ }
+ mapList.add(map);
}
+
+ return ResponseData.success(mapList);
}
+
/**
- * 根据权属单位统计设备数量
+ * 设备7日报警趋势
+ *
+ * @return
*/
- @RequestMapping(value = "/deviceStaticsByDept")
+ @RequestMapping(value = "/alarmCountByDay")
@ResponseBody
- public Object deviceStaticsByDept(@RequestParam(value = "deviceType", required = false) String deviceType) {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.deviceStaticsByDept(dataScope, deviceType);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
+ public Object alarmCountByDay(String startTime, String endTime) {
+ List deviceTypeList =iDeviceTypeService.getTypeList();
- /**
- * 根据在线状态统计设备数量
- */
- @RequestMapping(value = "/deviceStaticsByStatus")
- @ResponseBody
- public Object deviceStaticsByStatus() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- Map res = statisticsService.deviceStaticsByStatus(dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
+ List dateStrs = DateUtil.getBetweenTime(startTime, endTime);
- /**
- * 根据权属单位统计工单数
- */
- @RequestMapping(value = "/jobsByDept")
- @ResponseBody
- public Object jobsByDept(String beginTime, String endTime, String deviceType) {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.jobsByDept(dataScope, beginTime, endTime, deviceType);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
+ List> objectMapList = statisticsService.alarmCountByDay(startTime, endTime);
- /**
- * 当前报警统计
- */
- @RequestMapping(value = "/alarmsNow")
- @ResponseBody
- public Object alarmsNow() {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List alarmNowViews = alarmNowViewService.getNowAlarmRecords(dataScope);
- Map res = new HashMap<>();
- res.put("total", alarmNowViews.size());
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
+ //封装数据
+ List> returnMapList = new ArrayList<>();
+ for (String dateStr : dateStrs) {
+ Map retMap = new HashMap<>();
+ retMap.put("date", dateStr);
+ retMap.put("data", new ArrayList<>());
+ List> returnMaps = new ArrayList<>();
+ for (DeviceType deviceType : deviceTypeList) {
+ Map countMap = new HashMap<>();
+ countMap.put("name", deviceType.getTypeName());
+ countMap.put("count", "0");
+ for (Map objectMap : objectMapList) {
+ if (ToolUtil.isNotEmpty(objectMap.get("name"))) {
+ if(deviceType.getTypeName().equals(objectMap.get("name").toString())&&
+ dateStr.equals(objectMap.get("alarmDate").toString())){
+ countMap.put("count", objectMap.get("count").toString());
+ }
+ }
+ }
+ returnMaps.add(countMap);
+ }
+ retMap.put("data", returnMaps);
+ returnMapList.add(retMap);
}
+ return ResponseData.success(returnMapList);
}
- /**
- * 统计每日报警总数
- */
- @RequestMapping("/alarmsByDay")
- @ResponseBody
- public Object alarmsByDay(String beginTime, String endTime) {
- DataScope dataScope = permissionService.getCurrUserDataScope();
- try {
- List> res = statisticsService.alarmsByDay(beginTime, endTime, dataScope);
- return ResponseData.success(res);
- } catch (Exception e) {
- e.printStackTrace();
- return ResponseData.error("faliure");
- }
- }
-
-
}
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 52746d6..7e30d95 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
@@ -15,4 +15,7 @@
List> jobsByDept(@Param("dataScope")DataScope dataScope,@Param("beginTime")String beginTime,@Param("endTime")String endTime,@Param("deviceType")String deviceType);
Map jobsByDeptId(@Param("deptIds")String deptIds,@Param("beginTime")String beginTime,@Param("endTime")String endTime);
List> countByDayFirst(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
+ List> alarmCountByDay(@Param("startTime")String startTime,@Param("endTime")String endTime);
+ Map alarmBySecondArea(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
+ Long countByFirstArea(@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("areaIds")String areaIds);
}
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 8ad668b..0869697 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
@@ -35,6 +35,7 @@
AND BWI.DEPTID IN (${deptIds})
GROUP BY BD.DEVICE_TYPE
) A ON BDT.ID = A.deviceType
+ WHERE bdt.`VALID`=1
@@ -116,8 +117,8 @@
SELECT IFNULL(SUM(dd.`FLOW_ACC_DATE`), 0) AS 'count', dd.`DATE`
FROM data_watermeter_day dd
- LEFT JOIN device_view dv
- ON dd.`DEVCODE` = dv.`DEVCODE`
+ LEFT JOIN device_view dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
where dv.VALID = '1'
AND dd.`DATE`= ]]> #{startTime}
@@ -131,4 +132,64 @@
GROUP BY dd.`DATE`
+
+ SELECT
+ IFNULL(SUM(dd.`FLOW_ACC_DATE`), 0) AS 'count'
+ FROM
+ data_watermeter_day dd
+ LEFT JOIN device_view dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
+ where dv.VALID = '1'
+
+ AND dd.`DATE`= ]]> #{startTime}
+
+
+ AND dd.`DATE` #{endTime}
+
+
+ AND dv.`AREA` IN (${areaIds})
+
+
+
+ SELECT
+ IFNULL(COUNT(dd.`ID`),0) AS 'alarm',
+ IFNULL(COUNT(dd.`ID`),0) AS 'warning'
+ FROM
+ alarm_records dd
+ LEFT JOIN device_view dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
+ where dv.VALID = '1'
+
+ AND dd.`ALARM_TIME`= ]]> #{startTime}
+
+
+ AND dd.`ALARM_TIME` #{endTime}
+
+
+ AND dv.`AREA` IN (${areaIds})
+
+ LIMIT 1
+
+
+
+ SELECT
+ IFNULL(COUNT(dd.`ID`), 0) AS 'count',
+ DATE_FORMAT(dd.`ALARM_TIME`,'%Y-%m-%d') AS 'alarmDate',
+ bt.`TYPE_NAME` AS 'name'
+ FROM
+ alarm_records dd
+ LEFT JOIN bus_device dv
+ ON dd.`DEVCODE` = dv.`DEVCODE`
+ AND dv.`VALID` = 1
+ LEFT JOIN base_device_type bt
+ ON bt.`ID` = dv.`DEVICE_TYPE`
+ WHERE bt.`VALID` = 1
+
+ AND dd.`ALARM_TIME`= ]]> #{startTime}
+
+
+ AND dd.`ALARM_TIME` #{endTime}
+
+ GROUP BY DATE_FORMAT(dd.`ALARM_TIME`,'%Y-%m-%d')
+
\ 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 3575cb3..66a4d88 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
@@ -15,4 +15,7 @@
List> jobsByDept(DataScope dataScope,String beginTime, String endTime, String deviceType) throws ParseException;
List> alarmsByDay(String beginTime,String endTime,DataScope dataScope);
List> countByDayFirst(String startTime,String endTime,String areaIds);
+ List> alarmCountByDay(String startTime,String endTime);
+ Map alarmBySecondArea(String startTime,String endTime,String areaIds);
+ Long countByFirstArea(String startTime,String endTime,String areaIds);
}
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 7290c37..bc54695 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
@@ -136,4 +136,19 @@
public List> countByDayFirst(String startTime, String endTime,String areaIds) {
return statisticMapper.countByDayFirst(startTime,endTime,areaIds);
}
+
+ @Override
+ public Long countByFirstArea(String startTime, String endTime,String areaIds) {
+ return statisticMapper.countByFirstArea(startTime,endTime,areaIds);
+ }
+
+ @Override
+ public Map alarmBySecondArea(String startTime, String endTime, String areaIds) {
+ return statisticMapper.alarmBySecondArea(startTime,endTime,areaIds);
+ }
+
+ @Override
+ public List> alarmCountByDay(String startTime, String endTime) {
+ return statisticMapper.alarmCountByDay( startTime, endTime);
+ }
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java
index a376ba8..ae94fc5 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java
@@ -23,6 +23,7 @@
List selectDataScopePage(@Param("scope") DataScope dataScope, @Param("page") Page page, @Param("deviceType") String deviceType, @Param("deptid") String deptid, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("keywords") String keywords, @Param("isOnline") String isOnline, @Param("areaId") String areaId);
DeviceWellDto selectWellIdByCode(@Param("wellCode") String wellCode);
+ List getAreaIds(@Param("areaId") Long areaId);
String getArea(@Param("id") String id);
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml
index eee62f1..de868cb 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml
@@ -109,7 +109,7 @@
OR wellCode LIKE )
- and area LIKE
+ and area IN (${areaId})
ORDER BY INSTALLDATE DESC
@@ -1060,4 +1060,14 @@
SELECT *
FROM sys_area
+
+
+ SELECT
+ sa.id
+ FROM sys_area sa
+ where 1=1
+
+ AND (sa.PIDS like CONCAT('%[',#{areaId},']%'))
+
+
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
index 0560bb7..b81a804 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceTypeService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.service.IService;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -23,4 +24,6 @@
DeviceType selectDeviceTypeByName(String typeName);
int countDeviceByType(Serializable typeId);
+
+ List getTypeList();
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java
index bf94a23..68632ce 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java
@@ -16,6 +16,7 @@
import com.casic.missiles.modular.system.dto.*;
import com.casic.missiles.modular.system.model.*;
import com.casic.missiles.modular.system.service.*;
+import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BeanPropertyBindingResult;
@@ -163,9 +164,22 @@
return super.updateById(entity);
}
+ public List getAreaPids(Long areaId) {
+ List areaIds = null;
+ if (ToolUtil.isNotEmpty(areaId)) {
+ areaIds = this.baseMapper.getAreaIds(areaId);
+ areaIds.add(areaId);
+ }
+ return areaIds;
+ }
@Override
public List selectDataScopePage(DataScope dataScope, Page page, String deviceType, String deptid, String beginTime, String endTime, String keywords, String isOnline, String areaId) {
- return this.baseMapper.selectDataScopePage(dataScope, page, deviceType, deptid, beginTime, endTime, keywords, isOnline, areaId);
+ String areaIds ="";
+ if(ToolUtil.isNotEmpty(areaId)){
+ List areaIdList= getAreaPids(Long.valueOf(areaId));
+ areaIds= StringUtils.join(areaIdList.toArray(),",");
+ }
+ return this.baseMapper.selectDataScopePage(dataScope, page, deviceType, deptid, beginTime, endTime, keywords, isOnline, areaIds);
}
@Override
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceTypeServiceImpl.java
index c71b3f6..f17b69c 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceTypeServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceTypeServiceImpl.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.system.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.casic.missiles.modular.system.dao.DeviceTypeMapper;
import com.casic.missiles.modular.system.service.IDeviceTypeService;
import com.casic.missiles.modular.system.model.DeviceType;
@@ -7,6 +8,7 @@
import org.springframework.stereotype.Service;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -31,4 +33,10 @@
return this.baseMapper.countDeviceByType(typeId);
}
+ @Override
+ public List getTypeList() {
+ EntityWrapper deviceTypeEntityWrapper = new EntityWrapper<>();
+ deviceTypeEntityWrapper.eq("VALID","1");
+ return this.baseMapper.selectList(deviceTypeEntityWrapper);
+ }
}