diff --git a/mallinkService/src/main/java/com/iformall/domain/po/KwMeterData.java b/mallinkService/src/main/java/com/iformall/domain/po/KwMeterData.java index 31220dec6..c39121510 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/KwMeterData.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/KwMeterData.java @@ -53,6 +53,12 @@ public class KwMeterData extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createTime") private Date createTime; + @io.swagger.annotations.ApiModelProperty(value = "时段用电量", name = "usedPower") + private Integer usedPower; + + @io.swagger.annotations.ApiModelProperty(value = "时段用电量开始时间", name = "lastDeviceTime") + private Date lastDeviceTime; + public static enum Field { Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/KwMeterDataVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/KwMeterDataVo.java index c3c50486d..b28c3c124 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/KwMeterDataVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/KwMeterDataVo.java @@ -29,12 +29,12 @@ public class KwMeterDataVo extends BaseEntity { private Integer totalPower; @io.swagger.annotations.ApiModelProperty(value = "记录时间", name = "createTime") - private Date createTime; + private Date reportTime; @io.swagger.annotations.ApiModelProperty(value = "统计开始时间", name = "startTime") - private Date startTime; + private Date recordStartTime; @io.swagger.annotations.ApiModelProperty(value = "统计结束时间", name = "endTime") - private Date endTime; + private Date recordEndTime; } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java index e374f96af..ba2b9d1ef 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java @@ -13,5 +13,9 @@ public interface KwMeterDataService { List findVoList(KwMeterDataDto kwMeterDataDto); + PageInfo listAsPage(KwMeterData kwMeterData, Integer pageIndex, Integer pageSize); + + List findList(KwMeterData kwMeterData); + int save(KwMeterData record); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java index 4887daa3a..d2caa5fdb 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java @@ -89,16 +89,23 @@ public class KwBoxServiceImpl implements KwBoxService { } @Override - public KwMeterData saveMeterData(KwBox record, Date deviceTime, String addr, String activePower){ + public KwMeterData saveMeterData(KwBox kwBox, Date deviceTime, String addr, String activePower){ - KwMeter kwMeter = findMeter(record, addr); + KwMeter kwMeter = findMeter(kwBox, addr); if (kwMeter==null) return null; + KwMeterData record = new KwMeterData(); + record.setBoxId(kwBox.getId()); + record.setMeterId(kwMeter.getId()); + record.setTotalPower(0); //set in sql not null + record.setSortColumns(KwMeterData.Field.DeviceTime_DESC); + PageInfo kwMeterDataPage = kwMeterDataService.listAsPage(record,1,1); + KwMeterData kwMeterData = new KwMeterData(); - kwMeterData.setTenantId(record.getTenantId()); + kwMeterData.setTenantId(kwBox.getTenantId()); kwMeterData.setAddress(addr); - kwMeterData.setBoxId(record.getId()); + kwMeterData.setBoxId(kwBox.getId()); kwMeterData.setCreateTime(new Date()); kwMeterData.setDeviceTime(deviceTime); kwMeterData.setMeterId(kwMeter.getId()); @@ -106,6 +113,14 @@ public class KwBoxServiceImpl implements KwBoxService { kwMeterData.setTotalPower(Integer.parseInt(activePower)); } + if (kwMeterDataPage.getList().size() > 0 + && kwMeterDataPage.getList().get(0).getTotalPower() != null + && kwMeterData.getTotalPower() != null) { + kwMeterData.setUsedPower( + kwMeterData.getTotalPower()-kwMeterDataPage.getList().get(0).getTotalPower()); + kwMeterData.setLastDeviceTime(kwMeterDataPage.getList().get(0).getDeviceTime()); + } + kwMeterDataService.save(kwMeterData); return kwMeterData; } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java index 84076a199..f83758b80 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java @@ -34,6 +34,16 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { return kwMeterDataMapper.findVoList(kwMeterDataDto); } + @Override + public PageInfo listAsPage(KwMeterData kwMeterData, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMeterDataMapper.findList(kwMeterData)); + } + + @Override + public List findList(KwMeterData kwMeterData) { + return kwMeterDataMapper.findList(kwMeterData); + } + @Override public int save(KwMeterData record) { final IdWorker idWorker = IdWorker.get(); diff --git a/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml b/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml index 1edbb5679..b1eb8f3e1 100644 --- a/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml @@ -22,11 +22,27 @@ and `id` = #{id} - + and `tenant_id` = #{tenantId} - + + + and `box_id` = #{meterId} + + + + and `meter_id` = #{meterId} + + + + and `address` = #{address} + + + + and `total_power` is not null + + and id in @@ -44,4 +60,57 @@ + + + + + + + + + + + where 1 = 1 + + + and `tenant_id` = #{tenantId} + + + + and `box_id` = #{meterId} + + + + and `meter_id` = #{meterId} + + + + and `address` = #{address} + + + + and `create_time` between #{startTime} and #{endTime} + + + + + + +