From 5f1807ece119b2337ed71b575292e47a447cd154 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Thu, 28 Feb 2019 16:43:09 +0800 Subject: [PATCH] 排放量 报表 --- src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 130 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 118 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java index 78c626f..0dfde57 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -2,21 +2,28 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; 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; +import javax.validation.constraints.NotNull; + import com.moral.mapper.DictionaryDataMapper; 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; @@ -24,7 +31,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; @@ -42,6 +51,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) { @@ -58,10 +73,10 @@ 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); - } +// for(MonitorPoint monitorPoint:monitorPointList){ +// Integer state = getStateFromRedis(monitorPoint.getId()); +// monitorPoint.setState(state); +// } } return monitorPointList == null ? new ArrayList<>() : monitorPointList; } @@ -83,13 +98,6 @@ public PageBean queryByPageBean(PageBean pageBean) { Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean); List<Example.Criteria> criteriaList = example.getOredCriteria(); - if(criteriaList!=null&&criteriaList.size()>0){ - for(Example.Criteria cri : criteriaList){ - cri.andNotEqualTo("isDelete", Constants.IS_DELETE_TRUE); - } - }else { - example.or().andNotEqualTo("isDelete",Constants.IS_DELETE_TRUE); - } PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize()); List<MonitorPoint> monitorPointList = monitorPointMapper.selectWithAreaNameByExample(example); return new PageBean(monitorPointList); @@ -214,6 +222,21 @@ return list; } + /** + * ������������������������������������ + * @param orgId + * @return + */ + @Override + public Integer countOfSubOrgs(@NotNull Integer orgId){ + Example example = new Example(ENTITY_CLASS); + //��������������������������� + if(!dictionaryDataMapper.isSupperOrgId(orgId)){ + List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId); + example.or().andIn("organizationId",orgIds); + } + return monitorPointMapper.selectCountByExample(example); + } @Override public List<MonitorPoint> getMonitorPointsByOrganizationId(Integer orgId) { Example example = new Example(MonitorPoint.class); @@ -221,7 +244,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); @@ -243,4 +269,84 @@ 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; + } + + @SuppressWarnings("unchecked") + @Override + public Collection<Object> getDevicesStateByRegion(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); + + if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) { + Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString())); + parameters.put("orgIds", organizationIds); + } + List<Map<String, Object>> monitorPoints = deviceMapper.getDevicesStateByRegion(parameters); + Map<String, Object> result = new HashMap<String, Object>(); + Map<String,Object> device; + List<Map<String, Object>> devices; + for (Map<String, Object> map : monitorPoints) { + String id = map.get("id").toString(); + + device = new HashMap<String,Object>(); + device.put("id", map.remove("deviceId")); + device.put("name", map.remove("deviceName")); + device.put("state", map.remove("state")); + device.put("mac", map.remove("mac")); + + if (result.containsKey(id)) { + Map<String, Object> monitorPoint = (Map<String, Object>) result.get(id); + devices = (List<Map<String, Object>>) monitorPoint.get("devices"); + } else { + devices = new ArrayList<Map<String, Object>>(); + result.put(id, map); + } + devices.add(device); + map.put("devices", devices); + result.put(id, map); + } + + return result.values(); + } } -- Gitblit v1.8.0