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