From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Thu, 24 Dec 2020 13:47:50 +0800 Subject: [PATCH] 波动补偿 --- src/main/java/com/moral/service/impl/HistoryDailyServiceImpl.java | 171 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 108 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/moral/service/impl/HistoryDailyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryDailyServiceImpl.java index 6c6bcea..b053761 100644 --- a/src/main/java/com/moral/service/impl/HistoryDailyServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryDailyServiceImpl.java @@ -23,72 +23,117 @@ @Service public class HistoryDailyServiceImpl implements HistoryDailyService { - @Resource - private HistoryDailyMapper historyDailyMapper; - - @Resource - private OrganizationService organizationService; + @Resource + private HistoryDailyMapper historyDailyMapper; - @Resource - private DeviceService deviceService; + @Resource + private OrganizationService organizationService; - @Override - public List<Map<String, Object>> getEmissionsData(Map<String, Object> parameters) throws Exception { - String sensorKey = parameters.get("sensorKey").toString(); - getAllchildrenOrg(parameters); - ParameterUtils.getTimeType4Time(parameters); - ParameterUtils.getElementByType(parameters); - ParameterUtils.getStartAndEndByTime(parameters); - ParameterUtils.getRegionType4RegionCode(parameters); - List<Map<String, Object>> list = historyDailyMapper.getEmissionsData(parameters); - - Map<String, Float> result = new HashMap<String, Float>(); - - for (Map<String, Object> map : list) { - String mac = map.get("mac").toString(); - String name = map.get("name").toString(); - if (!ObjectUtils.isEmpty(map.get(sensorKey))) { - Float thickness = Float.valueOf(map.get(sensorKey).toString()); - Device device = deviceService.getDeviceByMac(mac); - DeviceProperty deviceProperty = device.getDeviceProperty(); - if (!ObjectUtils.isEmpty(deviceProperty)) { - String extC = deviceProperty.getExtC(); - String extD = deviceProperty.getExtD(); - if (!(ObjectUtils.isEmpty(extC) || ObjectUtils.isEmpty(extD))) { - Float acreage = Float.valueOf(extC); - Float windSpeed = Float.valueOf(extD); - Float emissions = thickness * acreage * windSpeed * 24 * 60 * 60 / 1000000; - if (result.containsKey(name)) { - result.put(name, emissions + result.get(name) ); - } else { - result.put(name, emissions); - } - } - } + @Resource + private DeviceService deviceService; - } - } - List<Map<String, Object>> resultMap = new ArrayList<Map<String,Object>>(); - - for (Entry<String, Float> entry : result.entrySet()) { - resultMap.add(new HashMap<String, Object>() { - { - put("name", entry.getKey()); - put("emissions", entry.getValue()); - } - }); - } - return resultMap; - } + @Override + public List<Map<String, Object>> getEmissionsData(Map<String, Object> parameters) throws Exception { + String sensorKey = parameters.get("sensorKey").toString(); + getAllchildrenOrg(parameters); + ParameterUtils.getTimeType4Time(parameters); + ParameterUtils.getElementByType(parameters); + ParameterUtils.getStartAndEndByTime(parameters); + ParameterUtils.getRegionType4RegionCode(parameters); + List<Map<String, Object>> list = historyDailyMapper.getEmissionsData(parameters); - private void getAllchildrenOrg(Map<String, Object> parameters) { - if (parameters.containsKey("orgId")) { - Integer orgId = Integer.valueOf(parameters.remove("orgId").toString()); - if (!(-1 == orgId || ResourceUtil.getValue("orgId").equals(orgId + ""))) { - Set<Integer> orgIds = organizationService.getChildOrganizationIds(orgId); - parameters.put("orgIds", orgIds); - } - } - } + Map<String, Float> result = new HashMap<String, Float>(); + + for (Map<String, Object> map : list) { + String mac = map.get("mac").toString(); + String name = map.get("name").toString(); + if (!ObjectUtils.isEmpty(map.get(sensorKey))) { + Float thickness = Float.valueOf(map.get(sensorKey).toString()); + Device device = deviceService.getDeviceByMac(mac); + DeviceProperty deviceProperty = device.getDeviceProperty(); + if (!ObjectUtils.isEmpty(deviceProperty)) { + String extC = deviceProperty.getExtC(); + String extD = deviceProperty.getExtD(); + if (!(ObjectUtils.isEmpty(extC) || ObjectUtils.isEmpty(extD))) { + Float acreage = Float.valueOf(extC); + Float windSpeed = Float.valueOf(extD); + Float emissions = thickness * acreage * windSpeed * 24 * 60 * 60 / 1000000; + if (result.containsKey(name)) { + result.put(name, emissions + result.get(name)); + } else { + result.put(name, emissions); + } + } + } + + } + } + List<Map<String, Object>> resultMap = new ArrayList<Map<String, Object>>(); + + for (Entry<String, Float> entry : result.entrySet()) { + resultMap.add(new HashMap<String, Object>() { + { + put("name", entry.getKey()); + put("emissions", entry.getValue()); + } + }); + } + return resultMap; + } + + private void getAllchildrenOrg(Map<String, Object> parameters) { + if (parameters.containsKey("orgId")) { + Integer orgId = Integer.valueOf(parameters.remove("orgId").toString()); + if (!(-1 == orgId || ResourceUtil.getValue("orgId").equals(orgId + ""))) { + Set<Integer> orgIds = organizationService.getChildOrganizationIds(orgId); + parameters.put("orgIds", orgIds); + } + } + } + + @Override + public Map getOverproofData(Map<String, Object> parameters) throws Exception { + getAllchildrenOrg(parameters); + ParameterUtils.getTimeType4Time(parameters); + ParameterUtils.getElementByType(parameters); + ParameterUtils.getStartAndEndByTime(parameters); + ParameterUtils.getRegionType4RegionCode(parameters); + List<Map<String, Object>> list = historyDailyMapper.getOverproofData(parameters); + Map<String, Map<String, Object>[]> resultMap = new HashMap<String, Map<String, Object>[]>(); + for (Map<String, Object> map : list) { + String name = map.get("name").toString(); + Integer deviceTech = Integer.valueOf(map.get("device_tech").toString()); + Map<String, Object>[] resultlist; + if (resultMap.containsKey(name)) { + resultlist = resultMap.get(name); + } else { + resultlist = new HashMap[3]; + } + resultlist[deviceTech - 1] = new HashMap<String, Object>() { + private static final long serialVersionUID = 1L; + { + put("avg", map.get("avg")); + put("limit", map.get("limit")); + } + }; + resultMap.put(name, resultlist); + } + return resultMap; + } + + // ������������������������������mac������������������������������������������������������������������ + @Override + public Map<String, Double> getTraceabilityData(Map<String, Object> parameters) throws Exception { + ParameterUtils.getElementByType(parameters); + Map<String, Double> resultMap = historyDailyMapper.getTraceabilityData(parameters); + return resultMap; + } + + @Override + public List<Map<String, Object>> getDataByTimeSlot(String mac, String startTime, String endTime) throws Exception { + List<Map<String, Object>> resultMap = historyDailyMapper.getDataByTimeSlot(mac,startTime,endTime); + //System.out.println(resultMap); + return resultMap; + } } -- Gitblit v1.8.0