Explorar el Código

[电表][修复]:电量计算接口

release_toaliyun_real
hupeng hace 6 años
padre
commit
cecaaa90f4
Se han modificado 4 ficheros con 78 adiciones y 54 borrados
  1. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java
  2. +30
    -26
      mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java
  3. +43
    -26
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java
  4. +4
    -1
      mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml

+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java Ver fichero

@@ -16,5 +16,5 @@ public interface KwMeterDataMapper extends CommonMapper<KwMeterData, Long> {


List<KwMeterDataVo> findVoList(KwMeterDataDto param); List<KwMeterDataVo> findVoList(KwMeterDataDto param);


List<KwMeterDataVo> getPower(KwMeterDataDto param);
KwMeterDataVo getPower(KwMeterDataDto param);
} }

+ 30
- 26
mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java Ver fichero

@@ -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); resultMap.put("monthDailyPower",monthDailyPower);


kwMeterDataDto = new KwMeterDataDto(); kwMeterDataDto = new KwMeterDataDto();
@@ -462,35 +468,33 @@ public class WxChartServiceImpl implements WxChartDataService {
resultMap.put("yearMonthlyPower",yearMonthlyPower); resultMap.put("yearMonthlyPower",yearMonthlyPower);




kwMeterDataDto.setReportType(EnumMeterDataReportType.BY_HOUR.getCode());
List<KwMeterDataVo> monthHoursPower = kwMeterDataService.findVoList(kwMeterDataDto);

resultMap.put("monthHoursPower",monthHoursPower);


kwMeterDataDto = new KwMeterDataDto(); 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.setStartTime(addMonth(0));
kwMeterDataDto.setEndTime(addMonth(new Date(),0)); kwMeterDataDto.setEndTime(addMonth(new Date(),0));
kwMeterDataDto.setTenantId(tenantId); kwMeterDataDto.setTenantId(tenantId);


+ 43
- 26
mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java Ver fichero

@@ -82,40 +82,57 @@ public class KwMeterDataServiceImpl implements KwMeterDataService {
usedPower.setMeterId(dto.getMeterId()); usedPower.setMeterId(dto.getMeterId());
usedPower.setTenantId(dto.getTenantId()); usedPower.setTenantId(dto.getTenantId());
usedPower.setReportTime(new Date().toString()); usedPower.setReportTime(new Date().toString());
if (dto.getStartTime() != null) {
if (dto.getStartTime() != null && dto.getEndTime() != null) {
KwMeterDataDto param = new KwMeterDataDto(); KwMeterDataDto param = new KwMeterDataDto();
param.setTenantId(dto.getTenantId()); param.setTenantId(dto.getTenantId());
param.setMeterId(dto.getMeterId()); param.setMeterId(dto.getMeterId());
param.setReportType(dto.getReportType()); param.setReportType(dto.getReportType());
param.setStartTime(dto.getStartTime()); 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()); 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; return usedPower;
} }
} }

+ 4
- 1
mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml Ver fichero

@@ -199,7 +199,7 @@
<select id="getPower" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap"> <select id="getPower" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap">
SELECT SELECT
<if test=" null == reportType"> <if test=" null == reportType">
now() as reportTime,
#{reportTime} as reportTime,
</if> </if>
<if test=" 1 == reportType "> <if test=" 1 == reportType ">
date_format(create_time, '%Y-%m-%d %H:00') as reportTime, date_format(create_time, '%Y-%m-%d %H:00') as reportTime,
@@ -218,6 +218,9 @@
max(device_time) as recordEndTime, max(device_time) as recordEndTime,
max(total_power) as totalPower, max(total_power) as totalPower,
</if> </if>
<if test=" null != endTime and null != endTime">
sum(used_power) as usedPower,
</if>
tenant_id,box_id,meter_id tenant_id,box_id,meter_id
FROM kw_meter_data FROM kw_meter_data
where 1 = 1 where 1 = 1


Cargando…
Cancelar
Guardar