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 > 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