| @@ -16,5 +16,5 @@ public interface KwMeterDataMapper extends CommonMapper<KwMeterData, Long> { | |||
| List<KwMeterDataVo> findVoList(KwMeterDataDto param); | |||
| List<KwMeterDataVo> getPower(KwMeterDataDto param); | |||
| KwMeterDataVo getPower(KwMeterDataDto param); | |||
| } | |||
| @@ -436,6 +436,12 @@ public class WxChartServiceImpl implements WxChartDataService { | |||
| } | |||
| } | |||
| kwMeterDataDto.setReportType(EnumMeterDataReportType.BY_HOUR.getCode()); | |||
| List<KwMeterDataVo> monthHoursPower = kwMeterDataService.findVoList(kwMeterDataDto); | |||
| resultMap.put("monthHoursPower",monthHoursPower); | |||
| resultMap.put("monthDailyPower",monthDailyPower); | |||
| kwMeterDataDto = new KwMeterDataDto(); | |||
| @@ -462,35 +468,33 @@ public class WxChartServiceImpl implements WxChartDataService { | |||
| resultMap.put("yearMonthlyPower",yearMonthlyPower); | |||
| kwMeterDataDto.setReportType(EnumMeterDataReportType.BY_HOUR.getCode()); | |||
| List<KwMeterDataVo> monthHoursPower = kwMeterDataService.findVoList(kwMeterDataDto); | |||
| resultMap.put("monthHoursPower",monthHoursPower); | |||
| kwMeterDataDto = new KwMeterDataDto(); | |||
| { | |||
| kwMeterDataDto.setStartTime(addDay(0)); | |||
| kwMeterDataDto.setEndTime(addDay(new Date(), 0)); | |||
| kwMeterDataDto.setTenantId(tenantId); | |||
| KwMeterDataVo todayUsedPower = kwMeterDataService.getPower(kwMeterDataDto); | |||
| if (todayUsedPower.getUsedPower() != null) | |||
| resultMap.put("todayUsedPower", todayUsedPower.getUsedPower()); | |||
| kwMeterDataDto.setStartTime(addDay(-1)); | |||
| kwMeterDataDto.setEndTime(addDay(new Date(), -1)); | |||
| kwMeterDataDto.setTenantId(tenantId); | |||
| KwMeterDataVo yesterdayUsedPower = kwMeterDataService.getPower(kwMeterDataDto); | |||
| if (yesterdayUsedPower.getUsedPower() != null) | |||
| resultMap.put("yesterdayUsedPower", yesterdayUsedPower.getUsedPower()); | |||
| if (yesterdayUsedPower.getUsedPower() != null && todayUsedPower.getUsedPower() != null && yesterdayUsedPower.getUsedPower() != 0) { | |||
| double hbd = (double) (todayUsedPower.getUsedPower() - yesterdayUsedPower.getUsedPower()) / yesterdayUsedPower.getUsedPower() * 100; | |||
| double hb = new BigDecimal(hbd).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); | |||
| resultMap.put("todayUsedPowerRate", hb + "%"); | |||
| } else { | |||
| resultMap.put("todayUsedPowerRate", "--" + "%"); | |||
| } | |||
| kwMeterDataDto.setStartTime(addDay(-1)); | |||
| kwMeterDataDto.setEndTime(addDay(new Date(), -1)); | |||
| kwMeterDataDto.setTenantId(tenantId); | |||
| KwMeterDataVo yesterdayUsedPower = kwMeterDataService.getPower(kwMeterDataDto); | |||
| kwMeterDataDto.setStartTime(addDay(0)); | |||
| kwMeterDataDto.setEndTime(addDay(new Date(), 0)); | |||
| kwMeterDataDto.setTenantId(tenantId); | |||
| KwMeterDataVo todayUsedPower = kwMeterDataService.getPower(kwMeterDataDto); | |||
| if (todayUsedPower.getUsedPower() != null) | |||
| resultMap.put("todayUsedPower", todayUsedPower.getUsedPower()); | |||
| if (yesterdayUsedPower.getUsedPower() != null) | |||
| resultMap.put("yesterdayUsedPower", yesterdayUsedPower.getUsedPower()); | |||
| if (yesterdayUsedPower.getUsedPower() != null && todayUsedPower.getUsedPower() != null && yesterdayUsedPower.getUsedPower() != 0) { | |||
| double hbd = (double) (todayUsedPower.getUsedPower() - yesterdayUsedPower.getUsedPower()) / yesterdayUsedPower.getUsedPower() * 100; | |||
| double hb = new BigDecimal(hbd).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); | |||
| resultMap.put("todayUsedPowerRate", hb + "%"); | |||
| } else { | |||
| resultMap.put("todayUsedPowerRate", "--" + "%"); | |||
| } | |||
| kwMeterDataDto.setStartTime(addMonth(0)); | |||
| kwMeterDataDto.setEndTime(addMonth(new Date(),0)); | |||
| kwMeterDataDto.setTenantId(tenantId); | |||
| @@ -82,40 +82,57 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { | |||
| usedPower.setMeterId(dto.getMeterId()); | |||
| usedPower.setTenantId(dto.getTenantId()); | |||
| usedPower.setReportTime(new Date().toString()); | |||
| if (dto.getStartTime() != null) { | |||
| if (dto.getStartTime() != null && dto.getEndTime() != null) { | |||
| KwMeterDataDto param = new KwMeterDataDto(); | |||
| param.setTenantId(dto.getTenantId()); | |||
| param.setMeterId(dto.getMeterId()); | |||
| param.setReportType(dto.getReportType()); | |||
| param.setStartTime(dto.getStartTime()); | |||
| List<KwMeterDataVo> startPower = kwMeterDataMapper.getPower(param); | |||
| if (startPower.size() > 0) { | |||
| usedPower.setRecordStartTime(startPower.get(0).getRecordStartTime()); | |||
| usedPower.setLastTotalPower(startPower.get(0).getTotalPower()); | |||
| } | |||
| } | |||
| if (dto.getEndTime() != null) { | |||
| KwMeterDataDto param = new KwMeterDataDto(); | |||
| param.setTenantId(dto.getTenantId()); | |||
| param.setMeterId(dto.getMeterId()); | |||
| param.setReportType(dto.getReportType()); | |||
| param.setEndTime(dto.getEndTime()); | |||
| List<KwMeterDataVo> endPower = kwMeterDataMapper.getPower(param); | |||
| if (endPower.size() > 0) { | |||
| usedPower.setRecordEndTime(endPower.get(0).getRecordEndTime()); | |||
| usedPower.setTotalPower(endPower.get(0).getTotalPower()); | |||
| KwMeterDataVo usedPowerRes = kwMeterDataMapper.getPower(param); | |||
| if (usedPowerRes != null) { | |||
| usedPower.setTotalPower(usedPowerRes.getTotalPower()); | |||
| usedPower.setLastTotalPower(usedPowerRes.getLastTotalPower()); | |||
| usedPower.setRecordStartTime(usedPowerRes.getRecordStartTime()); | |||
| usedPower.setRecordEndTime(usedPowerRes.getRecordEndTime()); | |||
| usedPower.setUsedPower(usedPowerRes.getUsedPower()); | |||
| } | |||
| } | |||
| if (usedPower.getLastTotalPower()==null) | |||
| usedPower.setLastTotalPower(dto.getStartNumber()); | |||
| if (usedPower.getTotalPower()==null) | |||
| usedPower.setTotalPower(dto.getEndNumber()); | |||
| if (usedPower.getLastTotalPower()!=null && usedPower.getTotalPower() != null) | |||
| usedPower.setUsedPower(usedPower.getTotalPower() - usedPower.getLastTotalPower()); | |||
| } else { | |||
| if (dto.getStartTime() != null) { | |||
| KwMeterDataDto param = new KwMeterDataDto(); | |||
| param.setTenantId(dto.getTenantId()); | |||
| param.setMeterId(dto.getMeterId()); | |||
| param.setReportType(dto.getReportType()); | |||
| param.setStartTime(dto.getStartTime()); | |||
| KwMeterDataVo startPower = kwMeterDataMapper.getPower(param); | |||
| if (startPower != null) { | |||
| usedPower.setRecordStartTime(startPower.getRecordStartTime()); | |||
| usedPower.setLastTotalPower(startPower.getTotalPower()); | |||
| } | |||
| } | |||
| if (dto.getEndTime() != null) { | |||
| KwMeterDataDto param = new KwMeterDataDto(); | |||
| param.setTenantId(dto.getTenantId()); | |||
| param.setMeterId(dto.getMeterId()); | |||
| param.setReportType(dto.getReportType()); | |||
| param.setEndTime(dto.getEndTime()); | |||
| KwMeterDataVo endPower = kwMeterDataMapper.getPower(param); | |||
| if (endPower != null) { | |||
| usedPower.setRecordEndTime(endPower.getRecordEndTime()); | |||
| usedPower.setTotalPower(endPower.getTotalPower()); | |||
| } | |||
| } | |||
| if (usedPower.getLastTotalPower() == null) | |||
| usedPower.setLastTotalPower(dto.getStartNumber()); | |||
| if (usedPower.getTotalPower() == null) | |||
| usedPower.setTotalPower(dto.getEndNumber()); | |||
| if (usedPower.getLastTotalPower() != null && usedPower.getTotalPower() != null) | |||
| usedPower.setUsedPower(usedPower.getTotalPower() - usedPower.getLastTotalPower()); | |||
| } | |||
| return usedPower; | |||
| } | |||
| } | |||
| @@ -199,7 +199,7 @@ | |||
| <select id="getPower" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap"> | |||
| SELECT | |||
| <if test=" null == reportType"> | |||
| now() as reportTime, | |||
| #{reportTime} as reportTime, | |||
| </if> | |||
| <if test=" 1 == reportType "> | |||
| date_format(create_time, '%Y-%m-%d %H:00') as reportTime, | |||
| @@ -218,6 +218,9 @@ | |||
| max(device_time) as recordEndTime, | |||
| max(total_power) as totalPower, | |||
| </if> | |||
| <if test=" null != endTime and null != endTime"> | |||
| sum(used_power) as usedPower, | |||
| </if> | |||
| tenant_id,box_id,meter_id | |||
| FROM kw_meter_data | |||
| where 1 = 1 | |||