From b77f77dae23be890dd98e03a8a9abffec9e3d94c Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 28 Jun 2018 14:05:13 +0800
Subject: [PATCH] 展示下级组织数据

---
 src/main/resources/mapper/DeviceMapper.xml                        |   32 ++++++++++++++--
 src/main/resources/mapper/MonitorPointMapper.xml                  |   10 ++++
 src/main/java/com/moral/mapper/DeviceMapper.java                  |    4 +-
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java       |   27 +++++++++----
 src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java |   25 +++++++++---
 5 files changed, 77 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java
index d6ffa80..0a934e1 100644
--- a/src/main/java/com/moral/mapper/DeviceMapper.java
+++ b/src/main/java/com/moral/mapper/DeviceMapper.java
@@ -19,7 +19,7 @@
 
 	List<Map<String, Object>> getDeviceVersionIdByMonitorPoint(Integer monitorPointId);
 
-	List<Device> selectByOrgIdAndDevName(@Param("orgId")Integer orgId,@Param("devState") String state,@Param("name")String name);
+	List<Device> selectByOrgIdAndDevName(@Param("orgId")Integer orgId, @Param("orgIds")List<Integer> orgIds,@Param("devState") String state,@Param("name")String name);
 
 	/**
 	 *
@@ -27,7 +27,7 @@
 	 * @param mpId
 	 * @return ���������������������
 	 */
-	List<Device> selectByOrgIdAndMpId(@Param("orgId")Integer orgId,@Param("mpId")Integer mpId);
+	List<Device> selectByOrgIdAndMpId(@Param("orgId")Integer orgId,@Param("orgIds")List<Integer> orgIds,@Param("mpId")Integer mpId);
 	List<Device> selectByMap(Map<String, Object> params);
 	Device selectWithOrgIdsByMac(String mac);
 	List<Integer> getDeviceVersionIdByAreaCode(Map<String, Object> parameters);
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 33ff1b4..e2873c2 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -14,6 +14,7 @@
 import com.moral.common.util.ExampleUtil;
 import com.moral.common.util.RedisUtils;
 import com.moral.mapper.MonitorPointMapper;
+import com.moral.mapper.OrganizationMapper;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -55,6 +56,8 @@
 	@Resource
 	private AccountService accountService;
     private Class ENTITY_CLASS = Device.class;
+    @Resource
+	OrganizationMapper orgMapper;
 	@Resource
 	RedisUtils redisUtils;
 	@Override
@@ -179,17 +182,23 @@
 
 	/**
 	 *
-	 * @param map
+	 * @param params
 	 * map��� ������ ������id���4������������
 	 * @return ������������������������
 	 */
 	@Override
-	public List<Device> query(Map<String, Object> map) {
-		List <Device> list = deviceMapper.selectByMap(map);
-		loadDeviceState(list);
-		return list;
+	public List<Device> query(Map<String, Object> params) {
+		Object orgIdObj = params.get("orgId");
+		List<Device> deviceList = null;
+		if(orgIdObj != null) {
+			Integer orgId = Integer.parseInt(orgIdObj.toString());
+			List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
+			params.put("orgIds", orgIds);
+			deviceList = deviceMapper.selectByMap(params);
+			loadDeviceState(deviceList);
+		}
+		return deviceList;
 	}
-
 	/**
 	 *  ������������id��������������� ������������������
 	 * @param orgId
@@ -200,6 +209,7 @@
 	 */
 	@Override
 	public PageResult query(Integer orgId, String deviceName, Integer pageSize, Integer pageNo) {
+		List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
 		if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
 			PageHelper.startPage(pageNo,pageSize);
 		}
@@ -221,7 +231,7 @@
 				state = "4";
 				deviceName = null;break;
 		}
-		List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,state,deviceName);
+		List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,orgIds,state,deviceName);
 		//���redis������������
 		loadDeviceState(list);
 		if(list instanceof Page){
@@ -240,10 +250,11 @@
 	 */
 	@Override
 	public PageResult query(Integer orgId, Integer mpId, Integer pageSize, Integer pageNo) {
+		List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
 		if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
 			PageHelper.startPage(pageNo,pageSize);
 		}
-		List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,mpId);
+		List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,orgIds,mpId);
 		//���redis������������
 		loadDeviceState(list);
 		if(list instanceof Page){
diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index ed3b52e..78c626f 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -8,7 +8,8 @@
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
-
+import com.moral.mapper.DictionaryDataMapper;
+import com.moral.mapper.OrganizationMapper;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
 
@@ -35,7 +36,12 @@
     @Resource
     private DeviceMapper deviceMapper;
     @Resource
+    private OrganizationMapper orgMapper;
+    @Resource
     RedisUtils redisUtils;
+    @Resource
+    DictionaryDataMapper dictionaryDataMapper;
+
     private static Class ENTITY_CLASS = MonitorPoint.class;
     @Override
     public List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters) {
@@ -45,12 +51,19 @@
     @Override
     public List<MonitorPoint> queryWithStateByMap(Map<String, Object> params){
         params.put("isDelete",Constants.IS_DELETE_FALSE);
-        List<MonitorPoint> monitorPointList = monitorPointMapper.selectByMap(params);
-        for(MonitorPoint monitorPoint:monitorPointList){
-            Integer state = getStateFromRedis(monitorPoint.getId());
-            monitorPoint.setState(state);
+        Object orgIdObj = params.get("orgId");
+        List<MonitorPoint> monitorPointList = null;
+        if(orgIdObj != null) {
+            Integer orgId = Integer.parseInt(orgIdObj.toString());
+            List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
+            params.put("orgIds",orgIds);
+            monitorPointList = monitorPointMapper.selectByMap(params);
+            for(MonitorPoint monitorPoint:monitorPointList){
+                Integer state = getStateFromRedis(monitorPoint.getId());
+                monitorPoint.setState(state);
+            }
         }
-        return monitorPointList;
+        return monitorPointList == null ? new ArrayList<>() : monitorPointList;
     }
     private Integer getStateFromRedis(Integer monitorPointId){
         StringBuilder key = new StringBuilder();
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index dec7671..cf6ecf2 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -150,7 +150,7 @@
 		WHERE
 			mp.area_code = #{areaCode} 
 			AND d.monitor_point_id = mp.id
-		<if test="orgIds != null and orgIds.size &gt; 0">
+		<if test="orgIds != null and orgIds.size() > 0">
 			AND mp.organization_id IN
 			<foreach  collection="orgIds" open="(" separator="," close=")" item="listItem">
 				#{listItem}
@@ -172,7 +172,15 @@
 		left join device_version dve on dev.device_version_id = dve.id
 		<where>
 		<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
-			mpt.organization_id =  #{orgId}
+			(
+			1 > 1
+			<if test="orgIds!=null and orgIds.size() > 0">
+				or mpt.organization_id in
+				<foreach collection="orgIds" item="tempOrgId" open="(" close=")" separator=",">
+					#{tempOrgId,jdbcType=INTEGER}
+				</foreach>
+			</if>
+			)
 		</if>
 			and dev.is_delete = 0
 			<if test="devState!=null">
@@ -194,7 +202,15 @@
 		left join device_version dve on dev.device_version_id = dve.id
 		<where>
 			<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
-				mpt.organization_id =  #{orgId}
+				(
+				1 > 1
+				<if test="orgIds!=null and orgIds.size() > 0">
+					or mpt.organization_id in
+					<foreach collection="orgIds" item="tempOrgId" open="(" close=")" separator=",">
+						#{tempOrgId,jdbcType=INTEGER}
+					</foreach>
+				</if>
+				)
 			</if>
 			and dev.monitor_point_id = #{mpId}
 			and dev.is_delete = 0
@@ -206,7 +222,15 @@
         left join device_version dve on dev.device_version_id = dve.id
 		<where>
 			<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
-				mpt.organization_id = #{orgId,jdbcType=VARCHAR}
+				(
+				1 > 1
+				<if test="orgIds!=null and orgIds.size() > 0">
+					or mpt.organization_id in
+					<foreach collection="orgIds" item="tempOrgId" open="(" close=")" separator=",">
+						#{tempOrgId,jdbcType=INTEGER}
+					</foreach>
+				</if>
+				)
 			</if>
 			<![CDATA[
 			AND dev.longitude < #{mapBounds.Ge,jdbcType=NUMERIC}
diff --git a/src/main/resources/mapper/MonitorPointMapper.xml b/src/main/resources/mapper/MonitorPointMapper.xml
index d1cbef7..8ece846 100644
--- a/src/main/resources/mapper/MonitorPointMapper.xml
+++ b/src/main/resources/mapper/MonitorPointMapper.xml
@@ -109,7 +109,15 @@
 		SELECT mpt.* from monitor_point mpt
 		<where>
 			<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
-				mpt.organization_id = #{orgId,jdbcType=VARCHAR}
+				(
+				1 > 1
+					<if test="orgIds!=null and orgIds.size() > 0">
+						or mpt.organization_id in
+						<foreach collection="orgIds" item="tempOrgId" open="(" close=")" separator=",">
+							#{tempOrgId,jdbcType=INTEGER}
+						</foreach>
+					</if>
+				)
 			</if>
 			<![CDATA[
 			AND mpt.longitude < #{mapBounds.Ge,jdbcType=NUMERIC}

--
Gitblit v1.8.0