From a4c1346fe8b37507d69413632848d30a5826efc6 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Wed, 21 Nov 2018 09:25:08 +0800 Subject: [PATCH] 更新 --- src/main/resources/mapper/DeviceMapper.xml | 22 +++++++++++ src/main/java/com/moral/mapper/DeviceMapper.java | 1 src/main/java/com/moral/service/MonitorPointService.java | 3 + src/main/java/com/moral/controller/ScreenController.java | 12 ++++++ src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 44 ++++++++++++++++++++++ 5 files changed, 82 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 4be11b4..7d68481 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -773,4 +773,16 @@ return new ResultBean<List<MonitorPoint>>(monitorPoints); } + + @GetMapping("devices-state") + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "organizationId",defaultValue = "8", value = "���������������������id", required = true, paramType = "query", dataType = "Integer"), + @ApiImplicitParam(name = "regionCode",defaultValue = "320583", value = "���������", required = true, paramType = "query", dataType = "String") + }) + public ResultBean<Collection<Object>> getDevicesStateByRegion(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + Collection<Object> monitorPoints= monitorPointService.getDevicesStateByRegion(parameters); + return new ResultBean<Collection<Object>>(monitorPoints); + } } diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java index 3ba6f22..8dd670a 100644 --- a/src/main/java/com/moral/mapper/DeviceMapper.java +++ b/src/main/java/com/moral/mapper/DeviceMapper.java @@ -37,4 +37,5 @@ List<Device> getDevicesByProfession(Map<String, Object> parameters); List<Device> getDevicesByOrganizationId(Map<String, Object> parameters); + List<Map<String, Object>> getDevicesStateByRegion(Map<String, Object> parameters); } \ No newline at end of file diff --git a/src/main/java/com/moral/service/MonitorPointService.java b/src/main/java/com/moral/service/MonitorPointService.java index ec68268..f57ae34 100644 --- a/src/main/java/com/moral/service/MonitorPointService.java +++ b/src/main/java/com/moral/service/MonitorPointService.java @@ -1,5 +1,6 @@ package com.moral.service; +import java.util.Collection; import java.util.List; import java.util.Map; @@ -34,4 +35,6 @@ MonitorPoint queryMonitorPointById(Integer mpointId); List<MonitorPoint> getMonitorPointsAndDevicesByRegion(Map<String, Object> parameters); + + Collection<Object> getDevicesStateByRegion(Map<String, Object> parameters); } diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java index ae53cce..ffd22cb 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -305,4 +306,47 @@ } return monitorPoints; } + + @SuppressWarnings("unchecked") + @Override + public Collection<Object> getDevicesStateByRegion(Map<String, Object> parameters) { + //������������ + Object organizationId = parameters.remove("organizationId"); + ValidateUtil.notNull(organizationId, "param.is.null"); + ValidateUtil.notNull(parameters.get("regionCode"), "param.is.null"); + + //������������������ + ParameterUtils.getRegionType4RegionCode(parameters); + + if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) { + Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString())); + parameters.put("orgIds", organizationIds); + } + List<Map<String, Object>> monitorPoints = deviceMapper.getDevicesStateByRegion(parameters); + Map<String, Object> result = new HashMap<String, Object>(); + Map<String,Object> device; + List<Map<String, Object>> devices; + for (Map<String, Object> map : monitorPoints) { + String id = map.get("id").toString(); + + device = new HashMap<String,Object>(); + device.put("id", map.remove("deviceId")); + device.put("name", map.remove("deviceName")); + device.put("state", map.remove("state")); + device.put("mac", map.remove("mac")); + + if (result.containsKey(id)) { + Map<String, Object> monitorPoint = (Map<String, Object>) result.get(id); + devices = (List<Map<String, Object>>) monitorPoint.get("devices"); + } else { + devices = new ArrayList<Map<String, Object>>(); + result.put(id, map); + } + devices.add(device); + map.put("devices", devices); + result.put(id, map); + } + + return result.values(); + } } diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml index 16521ec..92d256a 100644 --- a/src/main/resources/mapper/DeviceMapper.xml +++ b/src/main/resources/mapper/DeviceMapper.xml @@ -362,4 +362,26 @@ AND mp.is_delete = 0 AND mp.organization_id = #{organizationId} </select> + + + <select id="getDevicesStateByRegion" resultType="map"> + SELECT + d.id deviceId,d.mac,d.state,d.name deviceName, + mp.id,mp.name + FROM + device d , + monitor_point mp + <where> + d.monitor_point_id = mp.id + AND d.is_delete = 0 + AND mp.is_delete = 0 + AND mp.${regionType}_code = #{regionCode} + <if test="orgIds != null and orgIds.size > 0"> + AND mp.organization_id IN + <foreach collection="orgIds" open="(" separator="," close=")" item="listItem"> + #{listItem} + </foreach> + </if> + </where> + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0