From 4ffcc9ca554e2b541d5e00c2d61d5835708e2190 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Wed, 07 Nov 2018 10:14:23 +0800 Subject: [PATCH] 获取 组织下的监控点和设备数据 --- src/main/java/com/moral/entity/MonitorPoint.java | 5 ++ src/main/java/com/moral/service/MonitorPointService.java | 2 + src/main/java/com/moral/service/impl/OrganizationServiceImpl.java | 32 ++++++++++----- src/main/java/com/moral/controller/ScreenController.java | 14 +++++++ src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 49 ++++++++++++++++++++++++ 5 files changed, 91 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index f0c0f43..4be11b4 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -39,6 +39,7 @@ import com.moral.common.bean.PageResult; import com.moral.common.bean.ResultBean; import com.moral.common.util.ValidateUtil; +import com.moral.common.util.WebUtils; import com.moral.common.xml.Version; import com.moral.entity.alarm.AlarmSensorLevel; @@ -759,4 +760,17 @@ Map<String, Object> map = qualityDailyService.getQualityCountDayByRegion(parameters); return new ResultBean<Map<String, Object>>(map); } + + @GetMapping("monitorpoints-devices") + @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<List<MonitorPoint>> getMonitorPointsAndDevicesByRegion(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + List<MonitorPoint> monitorPoints= monitorPointService.getMonitorPointsAndDevicesByRegion(parameters); + return new ResultBean<List<MonitorPoint>>(monitorPoints); + } + } diff --git a/src/main/java/com/moral/entity/MonitorPoint.java b/src/main/java/com/moral/entity/MonitorPoint.java index c9dc40d..6decda3 100644 --- a/src/main/java/com/moral/entity/MonitorPoint.java +++ b/src/main/java/com/moral/entity/MonitorPoint.java @@ -1,5 +1,7 @@ package com.moral.entity; +import java.util.List; + import javax.persistence.Id; import javax.persistence.Transient; @@ -104,4 +106,7 @@ private Long townCode; private Long villageCode; + + @Transient + private List<Device> devices; } \ 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 ad0afe4..ec68268 100644 --- a/src/main/java/com/moral/service/MonitorPointService.java +++ b/src/main/java/com/moral/service/MonitorPointService.java @@ -32,4 +32,6 @@ List<Integer> queryVersionsById(Integer id); MonitorPoint queryMonitorPointById(Integer mpointId); + + List<MonitorPoint> getMonitorPointsAndDevicesByRegion(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 e79b10e..10078a1 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -3,8 +3,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -14,11 +16,13 @@ import com.moral.mapper.OrganizationMapper; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import com.github.pagehelper.PageHelper; import com.moral.common.bean.Constants; import com.moral.common.bean.PageBean; import com.moral.common.util.ExampleUtil; +import com.moral.common.util.ParameterUtils; import com.moral.common.util.RedisUtils; import com.moral.common.util.StringUtils; import com.moral.common.util.ValidateUtil; @@ -26,7 +30,9 @@ import com.moral.entity.MonitorPoint; import com.moral.mapper.DeviceMapper; import com.moral.mapper.MonitorPointMapper; +import com.moral.service.DeviceService; import com.moral.service.MonitorPointService; +import com.moral.service.OrganizationService; import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example.Criteria; @@ -44,6 +50,12 @@ @Resource DictionaryDataMapper dictionaryDataMapper; + @Resource + private DeviceService deviceService; + + @Resource + private OrganizationService organizationService; + private static Class ENTITY_CLASS = MonitorPoint.class; @Override public List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters) { @@ -253,4 +265,41 @@ public MonitorPoint queryMonitorPointById(Integer mpointId) { return this.monitorPointMapper.selectByPrimaryKey(mpointId); } + + @Override + public List<MonitorPoint> getMonitorPointsAndDevicesByRegion(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); + + Example example = new Example(MonitorPoint.class); + Criteria criteria = example.createCriteria(); + criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE); + if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) { + //criteria.andEqualTo("organizationId", organizationId); + Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString())); + criteria.andIn("organizationId", organizationIds); + } + criteria.andEqualTo(parameters.get("regionType") + "Code", parameters.remove("regionCode")); + + //��������������������� + List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example); + //��������������������������������� + Iterator<MonitorPoint> iterator = monitorPoints.iterator(); + while (iterator.hasNext()) { + MonitorPoint monitorPoint = iterator.next(); + List<Device> devices = deviceService.getDevicesByMonitorPointId(monitorPoint.getId()); + if (ObjectUtils.isEmpty(devices)) { + iterator.remove(); + } else { + monitorPoint.setDevices(devices); + } + + } + return monitorPoints; + } } diff --git a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java index 594bf60..da6e198 100644 --- a/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java +++ b/src/main/java/com/moral/service/impl/OrganizationServiceImpl.java @@ -1,5 +1,21 @@ package com.moral.service.impl; +import static com.moral.common.bean.Constants.IS_DELETE_FALSE; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import org.apache.commons.collections.CollectionUtils; +import org.springframework.data.annotation.Transient; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageHelper; import com.moral.common.bean.Constants; @@ -12,17 +28,9 @@ import com.moral.mapper.OrganizationMapper; import com.moral.mapper.OrganizationRelationMapper; import com.moral.service.OrganizationService; -import org.apache.commons.collections.CollectionUtils; -import org.springframework.data.annotation.Transient; -import org.springframework.stereotype.Service; + import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example.Criteria; - -import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; - -import static com.moral.common.bean.Constants.IS_DELETE_FALSE; @Service public class OrganizationServiceImpl implements OrganizationService { @@ -118,8 +126,10 @@ relation.setChildId(organization.getId()); List<OrganizationRelation> relations = organizationRelationMapper.select(relation); if(CollectionUtils.isEmpty(relations)){ - relation.setParentId(organization.getParentId()); - organizationRelationMapper.insert(relation); + if (!ObjectUtils.isEmpty(organization.getParentId())) { + relation.setParentId(organization.getParentId()); + organizationRelationMapper.insert(relation); + } }else{ OrganizationRelation relationOfSelect = relations.get(0); //��������������������������������������� -- Gitblit v1.8.0