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 new file mode 100644 index 0000000..43e042e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -0,0 +1,216 @@ +package com.casic.missiles.modular.system.controller; + +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.service.IAlarmNowViewService; +import com.casic.missiles.modular.system.service.IAreaService; +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; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/waterStatistic") +public class WaterStaticsController extends BaseController { + @Autowired + private IStatisticsService statisticsService; + @Autowired + private IAlarmNowViewService alarmNowViewService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAreaService iAreaService; + + /** + * 根据权属单位统计闸井数量 + * + * @return + */ + @RequestMapping(value = "/countByDayFirst") + @ResponseBody + 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 -> { + //过滤一级区域 + if ("2".equals(area.getLevel().toString())) { + areaLevel1List.add(area); + } + }); + List> mapList = new ArrayList<>(); + //寻找一级区域下的所有子区域的总用水量 按照天 + for (Area area1 : areaLevel1List) { + Map map = new HashMap<>(); + for (Area area : areaList) { + if (area.getPids().contains("[" + area1.getPid() + "]")) { + childIdsList.add(area.getId()); + } + } + if (ToolUtil.isNotEmpty(childIdsList)) { + List> retMap = statisticsService.countByDayFirst(startTime, endTime, StringUtils.join(childIdsList.toArray(), ",")); + map.put(area1.getAreaName(), retMap); + } + mapList.add(map); + } + //封装数据 + List>> returnMapList = new ArrayList<>(); + for (String dateStr : dateStrs) { + Map retMap = new HashMap<>(); + retMap.put("date", dateStr); + retMap.put("data", new ArrayList<>()); + for (Area area1 : areaLevel1List) { + List> returnMaps = new ArrayList<>(); + Map countMap = new HashMap<>(); + countMap.put("areaName", area1.getAreaName()); + countMap.put("count", "0"); + for (Map objectMap : mapList) { + if (ToolUtil.isNotEmpty(objectMap.get(area1.getAreaName()))) { + List> maps = (List>) objectMap.get(area1.getAreaName()); + for (Map map : maps) { + if (ToolUtil.isNotEmpty(map.get("DATE")) && (dateStr).equals(map.get("DATE").toString())) { + countMap.put("count", map.get("count").toString()); + } + } + } + } + returnMaps.add(countMap); + returnMapList.add(returnMaps); + } + + } + return ResponseData.success(returnMapList); + + } + + /** + * 根据井类型统计闸井数量 + */ + @RequestMapping(value = "/wellStaticsByType") + @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"); + } + } + + /** + * 根据设备类型统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByType") + @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"); + } + } + + /** + * 根据权属单位统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByDept") + @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"); + } + } + + /** + * 根据在线状态统计设备数量 + */ + @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"); + } + } + + /** + * 根据权属单位统计工单数 + */ + @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"); + } + } + + /** + * 当前报警统计 + */ + @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"); + } + } + + /** + * 统计每日报警总数 + */ + @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/controller/WaterStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java new file mode 100644 index 0000000..43e042e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -0,0 +1,216 @@ +package com.casic.missiles.modular.system.controller; + +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.service.IAlarmNowViewService; +import com.casic.missiles.modular.system.service.IAreaService; +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; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/waterStatistic") +public class WaterStaticsController extends BaseController { + @Autowired + private IStatisticsService statisticsService; + @Autowired + private IAlarmNowViewService alarmNowViewService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAreaService iAreaService; + + /** + * 根据权属单位统计闸井数量 + * + * @return + */ + @RequestMapping(value = "/countByDayFirst") + @ResponseBody + 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 -> { + //过滤一级区域 + if ("2".equals(area.getLevel().toString())) { + areaLevel1List.add(area); + } + }); + List> mapList = new ArrayList<>(); + //寻找一级区域下的所有子区域的总用水量 按照天 + for (Area area1 : areaLevel1List) { + Map map = new HashMap<>(); + for (Area area : areaList) { + if (area.getPids().contains("[" + area1.getPid() + "]")) { + childIdsList.add(area.getId()); + } + } + if (ToolUtil.isNotEmpty(childIdsList)) { + List> retMap = statisticsService.countByDayFirst(startTime, endTime, StringUtils.join(childIdsList.toArray(), ",")); + map.put(area1.getAreaName(), retMap); + } + mapList.add(map); + } + //封装数据 + List>> returnMapList = new ArrayList<>(); + for (String dateStr : dateStrs) { + Map retMap = new HashMap<>(); + retMap.put("date", dateStr); + retMap.put("data", new ArrayList<>()); + for (Area area1 : areaLevel1List) { + List> returnMaps = new ArrayList<>(); + Map countMap = new HashMap<>(); + countMap.put("areaName", area1.getAreaName()); + countMap.put("count", "0"); + for (Map objectMap : mapList) { + if (ToolUtil.isNotEmpty(objectMap.get(area1.getAreaName()))) { + List> maps = (List>) objectMap.get(area1.getAreaName()); + for (Map map : maps) { + if (ToolUtil.isNotEmpty(map.get("DATE")) && (dateStr).equals(map.get("DATE").toString())) { + countMap.put("count", map.get("count").toString()); + } + } + } + } + returnMaps.add(countMap); + returnMapList.add(returnMaps); + } + + } + return ResponseData.success(returnMapList); + + } + + /** + * 根据井类型统计闸井数量 + */ + @RequestMapping(value = "/wellStaticsByType") + @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"); + } + } + + /** + * 根据设备类型统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByType") + @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"); + } + } + + /** + * 根据权属单位统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByDept") + @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"); + } + } + + /** + * 根据在线状态统计设备数量 + */ + @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"); + } + } + + /** + * 根据权属单位统计工单数 + */ + @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"); + } + } + + /** + * 当前报警统计 + */ + @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"); + } + } + + /** + * 统计每日报警总数 + */ + @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 7a226d9..52746d6 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(@Param("deptIds")String deptIds); 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); } 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 new file mode 100644 index 0000000..43e042e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -0,0 +1,216 @@ +package com.casic.missiles.modular.system.controller; + +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.service.IAlarmNowViewService; +import com.casic.missiles.modular.system.service.IAreaService; +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; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/waterStatistic") +public class WaterStaticsController extends BaseController { + @Autowired + private IStatisticsService statisticsService; + @Autowired + private IAlarmNowViewService alarmNowViewService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAreaService iAreaService; + + /** + * 根据权属单位统计闸井数量 + * + * @return + */ + @RequestMapping(value = "/countByDayFirst") + @ResponseBody + 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 -> { + //过滤一级区域 + if ("2".equals(area.getLevel().toString())) { + areaLevel1List.add(area); + } + }); + List> mapList = new ArrayList<>(); + //寻找一级区域下的所有子区域的总用水量 按照天 + for (Area area1 : areaLevel1List) { + Map map = new HashMap<>(); + for (Area area : areaList) { + if (area.getPids().contains("[" + area1.getPid() + "]")) { + childIdsList.add(area.getId()); + } + } + if (ToolUtil.isNotEmpty(childIdsList)) { + List> retMap = statisticsService.countByDayFirst(startTime, endTime, StringUtils.join(childIdsList.toArray(), ",")); + map.put(area1.getAreaName(), retMap); + } + mapList.add(map); + } + //封装数据 + List>> returnMapList = new ArrayList<>(); + for (String dateStr : dateStrs) { + Map retMap = new HashMap<>(); + retMap.put("date", dateStr); + retMap.put("data", new ArrayList<>()); + for (Area area1 : areaLevel1List) { + List> returnMaps = new ArrayList<>(); + Map countMap = new HashMap<>(); + countMap.put("areaName", area1.getAreaName()); + countMap.put("count", "0"); + for (Map objectMap : mapList) { + if (ToolUtil.isNotEmpty(objectMap.get(area1.getAreaName()))) { + List> maps = (List>) objectMap.get(area1.getAreaName()); + for (Map map : maps) { + if (ToolUtil.isNotEmpty(map.get("DATE")) && (dateStr).equals(map.get("DATE").toString())) { + countMap.put("count", map.get("count").toString()); + } + } + } + } + returnMaps.add(countMap); + returnMapList.add(returnMaps); + } + + } + return ResponseData.success(returnMapList); + + } + + /** + * 根据井类型统计闸井数量 + */ + @RequestMapping(value = "/wellStaticsByType") + @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"); + } + } + + /** + * 根据设备类型统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByType") + @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"); + } + } + + /** + * 根据权属单位统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByDept") + @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"); + } + } + + /** + * 根据在线状态统计设备数量 + */ + @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"); + } + } + + /** + * 根据权属单位统计工单数 + */ + @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"); + } + } + + /** + * 当前报警统计 + */ + @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"); + } + } + + /** + * 统计每日报警总数 + */ + @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 7a226d9..52746d6 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(@Param("deptIds")String deptIds); 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); } 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 d6aca32..8ad668b 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 @@ -3,50 +3,48 @@ - + - + - + - + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..43e042e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -0,0 +1,216 @@ +package com.casic.missiles.modular.system.controller; + +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.service.IAlarmNowViewService; +import com.casic.missiles.modular.system.service.IAreaService; +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; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/waterStatistic") +public class WaterStaticsController extends BaseController { + @Autowired + private IStatisticsService statisticsService; + @Autowired + private IAlarmNowViewService alarmNowViewService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAreaService iAreaService; + + /** + * 根据权属单位统计闸井数量 + * + * @return + */ + @RequestMapping(value = "/countByDayFirst") + @ResponseBody + 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 -> { + //过滤一级区域 + if ("2".equals(area.getLevel().toString())) { + areaLevel1List.add(area); + } + }); + List> mapList = new ArrayList<>(); + //寻找一级区域下的所有子区域的总用水量 按照天 + for (Area area1 : areaLevel1List) { + Map map = new HashMap<>(); + for (Area area : areaList) { + if (area.getPids().contains("[" + area1.getPid() + "]")) { + childIdsList.add(area.getId()); + } + } + if (ToolUtil.isNotEmpty(childIdsList)) { + List> retMap = statisticsService.countByDayFirst(startTime, endTime, StringUtils.join(childIdsList.toArray(), ",")); + map.put(area1.getAreaName(), retMap); + } + mapList.add(map); + } + //封装数据 + List>> returnMapList = new ArrayList<>(); + for (String dateStr : dateStrs) { + Map retMap = new HashMap<>(); + retMap.put("date", dateStr); + retMap.put("data", new ArrayList<>()); + for (Area area1 : areaLevel1List) { + List> returnMaps = new ArrayList<>(); + Map countMap = new HashMap<>(); + countMap.put("areaName", area1.getAreaName()); + countMap.put("count", "0"); + for (Map objectMap : mapList) { + if (ToolUtil.isNotEmpty(objectMap.get(area1.getAreaName()))) { + List> maps = (List>) objectMap.get(area1.getAreaName()); + for (Map map : maps) { + if (ToolUtil.isNotEmpty(map.get("DATE")) && (dateStr).equals(map.get("DATE").toString())) { + countMap.put("count", map.get("count").toString()); + } + } + } + } + returnMaps.add(countMap); + returnMapList.add(returnMaps); + } + + } + return ResponseData.success(returnMapList); + + } + + /** + * 根据井类型统计闸井数量 + */ + @RequestMapping(value = "/wellStaticsByType") + @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"); + } + } + + /** + * 根据设备类型统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByType") + @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"); + } + } + + /** + * 根据权属单位统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByDept") + @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"); + } + } + + /** + * 根据在线状态统计设备数量 + */ + @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"); + } + } + + /** + * 根据权属单位统计工单数 + */ + @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"); + } + } + + /** + * 当前报警统计 + */ + @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"); + } + } + + /** + * 统计每日报警总数 + */ + @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 7a226d9..52746d6 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(@Param("deptIds")String deptIds); 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); } 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 d6aca32..8ad668b 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 @@ -3,50 +3,48 @@ - + - + - + - + + + + + \ 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 4efffef..3575cb3 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(DataScope dataScope); 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); } 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 new file mode 100644 index 0000000..43e042e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -0,0 +1,216 @@ +package com.casic.missiles.modular.system.controller; + +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.service.IAlarmNowViewService; +import com.casic.missiles.modular.system.service.IAreaService; +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; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/waterStatistic") +public class WaterStaticsController extends BaseController { + @Autowired + private IStatisticsService statisticsService; + @Autowired + private IAlarmNowViewService alarmNowViewService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAreaService iAreaService; + + /** + * 根据权属单位统计闸井数量 + * + * @return + */ + @RequestMapping(value = "/countByDayFirst") + @ResponseBody + 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 -> { + //过滤一级区域 + if ("2".equals(area.getLevel().toString())) { + areaLevel1List.add(area); + } + }); + List> mapList = new ArrayList<>(); + //寻找一级区域下的所有子区域的总用水量 按照天 + for (Area area1 : areaLevel1List) { + Map map = new HashMap<>(); + for (Area area : areaList) { + if (area.getPids().contains("[" + area1.getPid() + "]")) { + childIdsList.add(area.getId()); + } + } + if (ToolUtil.isNotEmpty(childIdsList)) { + List> retMap = statisticsService.countByDayFirst(startTime, endTime, StringUtils.join(childIdsList.toArray(), ",")); + map.put(area1.getAreaName(), retMap); + } + mapList.add(map); + } + //封装数据 + List>> returnMapList = new ArrayList<>(); + for (String dateStr : dateStrs) { + Map retMap = new HashMap<>(); + retMap.put("date", dateStr); + retMap.put("data", new ArrayList<>()); + for (Area area1 : areaLevel1List) { + List> returnMaps = new ArrayList<>(); + Map countMap = new HashMap<>(); + countMap.put("areaName", area1.getAreaName()); + countMap.put("count", "0"); + for (Map objectMap : mapList) { + if (ToolUtil.isNotEmpty(objectMap.get(area1.getAreaName()))) { + List> maps = (List>) objectMap.get(area1.getAreaName()); + for (Map map : maps) { + if (ToolUtil.isNotEmpty(map.get("DATE")) && (dateStr).equals(map.get("DATE").toString())) { + countMap.put("count", map.get("count").toString()); + } + } + } + } + returnMaps.add(countMap); + returnMapList.add(returnMaps); + } + + } + return ResponseData.success(returnMapList); + + } + + /** + * 根据井类型统计闸井数量 + */ + @RequestMapping(value = "/wellStaticsByType") + @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"); + } + } + + /** + * 根据设备类型统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByType") + @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"); + } + } + + /** + * 根据权属单位统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByDept") + @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"); + } + } + + /** + * 根据在线状态统计设备数量 + */ + @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"); + } + } + + /** + * 根据权属单位统计工单数 + */ + @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"); + } + } + + /** + * 当前报警统计 + */ + @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"); + } + } + + /** + * 统计每日报警总数 + */ + @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 7a226d9..52746d6 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(@Param("deptIds")String deptIds); 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); } 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 d6aca32..8ad668b 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 @@ -3,50 +3,48 @@ - + - + - + - + + + + + \ 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 4efffef..3575cb3 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(DataScope dataScope); 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); } 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 8e05072..7290c37 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 @@ -131,4 +131,9 @@ } return mapList; } + + @Override + public List> countByDayFirst(String startTime, String endTime,String areaIds) { + return statisticMapper.countByDayFirst(startTime,endTime,areaIds); + } } 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 new file mode 100644 index 0000000..43e042e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/controller/WaterStaticsController.java @@ -0,0 +1,216 @@ +package com.casic.missiles.modular.system.controller; + +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.service.IAlarmNowViewService; +import com.casic.missiles.modular.system.service.IAreaService; +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; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Controller +@RequestMapping(value = "/waterStatistic") +public class WaterStaticsController extends BaseController { + @Autowired + private IStatisticsService statisticsService; + @Autowired + private IAlarmNowViewService alarmNowViewService; + @Autowired + private ICommonPermissionService permissionService; + @Autowired + private IAreaService iAreaService; + + /** + * 根据权属单位统计闸井数量 + * + * @return + */ + @RequestMapping(value = "/countByDayFirst") + @ResponseBody + 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 -> { + //过滤一级区域 + if ("2".equals(area.getLevel().toString())) { + areaLevel1List.add(area); + } + }); + List> mapList = new ArrayList<>(); + //寻找一级区域下的所有子区域的总用水量 按照天 + for (Area area1 : areaLevel1List) { + Map map = new HashMap<>(); + for (Area area : areaList) { + if (area.getPids().contains("[" + area1.getPid() + "]")) { + childIdsList.add(area.getId()); + } + } + if (ToolUtil.isNotEmpty(childIdsList)) { + List> retMap = statisticsService.countByDayFirst(startTime, endTime, StringUtils.join(childIdsList.toArray(), ",")); + map.put(area1.getAreaName(), retMap); + } + mapList.add(map); + } + //封装数据 + List>> returnMapList = new ArrayList<>(); + for (String dateStr : dateStrs) { + Map retMap = new HashMap<>(); + retMap.put("date", dateStr); + retMap.put("data", new ArrayList<>()); + for (Area area1 : areaLevel1List) { + List> returnMaps = new ArrayList<>(); + Map countMap = new HashMap<>(); + countMap.put("areaName", area1.getAreaName()); + countMap.put("count", "0"); + for (Map objectMap : mapList) { + if (ToolUtil.isNotEmpty(objectMap.get(area1.getAreaName()))) { + List> maps = (List>) objectMap.get(area1.getAreaName()); + for (Map map : maps) { + if (ToolUtil.isNotEmpty(map.get("DATE")) && (dateStr).equals(map.get("DATE").toString())) { + countMap.put("count", map.get("count").toString()); + } + } + } + } + returnMaps.add(countMap); + returnMapList.add(returnMaps); + } + + } + return ResponseData.success(returnMapList); + + } + + /** + * 根据井类型统计闸井数量 + */ + @RequestMapping(value = "/wellStaticsByType") + @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"); + } + } + + /** + * 根据设备类型统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByType") + @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"); + } + } + + /** + * 根据权属单位统计设备数量 + */ + @RequestMapping(value = "/deviceStaticsByDept") + @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"); + } + } + + /** + * 根据在线状态统计设备数量 + */ + @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"); + } + } + + /** + * 根据权属单位统计工单数 + */ + @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"); + } + } + + /** + * 当前报警统计 + */ + @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"); + } + } + + /** + * 统计每日报警总数 + */ + @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 7a226d9..52746d6 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(@Param("deptIds")String deptIds); 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); } 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 d6aca32..8ad668b 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 @@ -3,50 +3,48 @@ - + - + - + - + + + + + \ 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 4efffef..3575cb3 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 @@ -14,4 +14,5 @@ Map deviceStaticsByStatus(DataScope dataScope); 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); } 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 8e05072..7290c37 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 @@ -131,4 +131,9 @@ } return mapList; } + + @Override + public List> countByDayFirst(String startTime, String endTime,String areaIds) { + return statisticMapper.countByDayFirst(startTime,endTime,areaIds); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DateUtil.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DateUtil.java new file mode 100644 index 0000000..88ee7f0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DateUtil.java @@ -0,0 +1,48 @@ +package com.casic.missiles.modular.system.util; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +public class DateUtil { + + public static List getBetweenTime(String starttime, String endtime) { + List betweenTime = new ArrayList(); + try + { + Date sdate= new SimpleDateFormat("yyyy-MM-dd").parse(starttime); + Date edate= new SimpleDateFormat("yyyy-MM-dd").parse(endtime); + + SimpleDateFormat outformat = new SimpleDateFormat("yyyy-MM-dd"); + + Calendar sCalendar = Calendar.getInstance(); + sCalendar.setTime(sdate); + int year = sCalendar.get(Calendar.YEAR); + int month = sCalendar.get(Calendar.MONTH); + int day = sCalendar.get(Calendar.DATE); + sCalendar.set(year, month, day, 0, 0, 0); + + Calendar eCalendar = Calendar.getInstance(); + eCalendar.setTime(edate); + year = eCalendar.get(Calendar.YEAR); + month = eCalendar.get(Calendar.MONTH); + day = eCalendar.get(Calendar.DATE); + eCalendar.set(year, month, day, 0, 0, 0); + + while (sCalendar.before(eCalendar)) + { + betweenTime.add(outformat.format(sCalendar.getTime())); + sCalendar.add(Calendar.DAY_OF_YEAR, 1); + } + betweenTime.add(outformat.format(eCalendar.getTime())); + } + catch(Exception e) + { + e.printStackTrace(); + } + return betweenTime; + } + +}