From c62507c7e0ce18e9a62f29221fd3799cb58bf431 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Wed, 07 Nov 2018 10:25:35 +0800
Subject: [PATCH] bug 修复

---
 src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index e79b10e..ae53cce 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) {
@@ -231,7 +243,10 @@
 		
 		criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
 		if (Constants.isNotSpecialOrgId(orgId)) {
-			criteria.andEqualTo("organizationId", orgId);
+			//criteria.andEqualTo("organizationId", orgId);
+			Set<Integer> organizationIds = organizationService.getChildOrganizationIds(orgId);
+			criteria.andIn("organizationId", organizationIds);
+
 		}
 		example.orderBy("name").asc();
 		return monitorPointMapper.selectByExample(example);
@@ -253,4 +268,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;
+	}
 }

--
Gitblit v1.8.0