diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java index 588dc14bd..d4fea89bb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java @@ -6,10 +6,12 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; +import com.iformall.domain.dto.KwMeterDataDto; import com.iformall.domain.po.KwMerchantMeter; import com.iformall.enums.EnumMerchantMeterStatus; import com.iformall.enums.EnumMerchantStatus; import com.iformall.service.kw.KwMerchantMeterService; +import com.iformall.service.kw.KwMeterDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -31,6 +33,8 @@ public class KwMerchantMeterController extends BaseController { @Autowired private KwMerchantMeterService kwMerchantMeterService; + @Autowired + private KwMeterDataService kwMeterDataService; @ApiOperation("设备列表") @GetMapping("list") @@ -89,4 +93,7 @@ public class KwMerchantMeterController extends BaseController { return new ResultData(); } + + + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterDataController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterDataController.java index 650f00162..07e2306c4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterDataController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterDataController.java @@ -2,6 +2,7 @@ package com.iformall.controller.device; import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; @@ -42,4 +43,25 @@ public class KwMeterDataController extends BaseController { return new ResultData(kwMeterDataService.listVoAsPage(kwMeterDataDto, pageNum,pageSize)); } + + + @ApiOperation("获取电量") + @GetMapping("getMeterUsedPower") + public Result getMeterUsedPower(@ModelAttribute KwMeterDataDto kwMeterDataDto) { + + if (kwMeterDataDto == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMeterDataDto.getMeterId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + if (kwMeterDataDto.getStartTime() == null && kwMeterDataDto.getStartNumber() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + if (kwMeterDataDto.getEndTime() == null && kwMeterDataDto.getEndNumber() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + return new ResultData(kwMeterDataService.getMeterUsedPower(kwMeterDataDto)); + } + + } diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java b/mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java index 28e19e8dd..dd1d5b137 100644 --- a/mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java +++ b/mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java @@ -48,6 +48,15 @@ public class KwMeterDataDto extends BaseEntity { private Integer reportType; + @io.swagger.annotations.ApiModelProperty(value = "开始电量", name = "startNumber") + private Integer startNumber; + + @io.swagger.annotations.ApiModelProperty(value = "结束电量", name = "endNumber") + private Integer endNumber; + + @io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "merchantId") + private Long merchantId; + public static enum Field { Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), diff --git a/mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java b/mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java index 5a7dcc0c1..65c6d414f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java @@ -12,4 +12,6 @@ public interface KwMeterDataMapper extends CommonMapper { List findList(KwMeterData param); List findVoList(KwMeterDataDto param); + + List getPower(KwMeterDataDto param); } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java index 6da4dee8c..133b7729f 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java @@ -7,6 +7,7 @@ import com.iformall.domain.po.KwMerchantMeter; import com.iformall.domain.vo.KwMerchantMeterVo; + import java.util.List; public interface KwMerchantMeterService { @@ -48,4 +49,5 @@ public interface KwMerchantMeterService { List findListVo(KwMerchantMeter record); int selectCount(KwMerchantMeter record); int unbindBatch(KwMerchantMeter record); + } \ No newline at end of file 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 095995e11..b4043066a 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java @@ -18,4 +18,6 @@ public interface KwMeterDataService { List findList(KwMeterData kwMeterData); int save(List recordList); + + KwMeterDataVo getMeterUsedPower(KwMeterDataDto dto); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java index d209f15c4..d1873fb18 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java @@ -2,17 +2,24 @@ package com.iformall.service.kw.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; +import com.iformall.domain.dto.KwMeterDataDto; import com.iformall.domain.po.KwMerchantMeter; import com.iformall.domain.vo.KwMerchantMeterVo; +import com.iformall.domain.vo.KwMeterDataVo; +import com.iformall.enums.EnumMerchantMeterStatus; +import com.iformall.exception.MallinkException; import com.iformall.mapper.KwMerchantMeterMapper; +import com.iformall.mapper.KwMeterDataMapper; import com.iformall.service.kw.KwMerchantMeterService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -24,6 +31,9 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { @Autowired KwMerchantMeterMapper kwMerchantMeterMapper; + @Autowired + KwMeterDataMapper kwMeterDataMapper; + @Override public PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findListVo(record)); 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 6aa024509..9903f1719 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 @@ -2,18 +2,24 @@ package com.iformall.service.kw.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; +import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.dto.KwMeterDataDto; import com.iformall.domain.po.KwMeterData; import com.iformall.domain.vo.KwMeterDataVo; import com.iformall.mapper.KwMeterDataMapper; import com.iformall.service.kw.KwMeterDataService; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import java.util.Date; import java.util.List; @@ -49,4 +55,50 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { return kwMeterDataMapper.insertList(recordList); } + @Override + public KwMeterDataVo getMeterUsedPower(KwMeterDataDto dto) + { + KwMeterDataVo usedPower = new KwMeterDataVo(); + usedPower.setMeterId(dto.getMeterId()); + usedPower.setTenantId(dto.getTenantId()); + usedPower.setReportTime(new Date().toString()); + if (dto.getStartTime() != null) { + KwMeterDataDto param = new KwMeterDataDto(); + param.setTenantId(dto.getTenantId()); + param.setMeterId(dto.getMeterId()); + param.setReportType(dto.getReportType()); + param.setStartTime(dto.getStartTime()); + List 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 endPower = kwMeterDataMapper.getPower(param); + + if (endPower.size() > 0) { + usedPower.setRecordEndTime(endPower.get(0).getRecordEndTime()); + usedPower.setTotalPower(endPower.get(0).getTotalPower()); + } + } + if (usedPower.getLastTotalPower()==null) + usedPower.setLastTotalPower(dto.getStartNumber()); + if (usedPower.getTotalPower()==null) + usedPower.setTotalPower(dto.getEndNumber()); + + if (usedPower.getLastTotalPower()==null || usedPower.getTotalPower() == null) + return null; + + usedPower.setUsedPower(usedPower.getTotalPower() - usedPower.getLastTotalPower()); + + return usedPower; + } + } diff --git a/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml b/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml index fd1948a25..775d5ed50 100644 --- a/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml @@ -130,7 +130,7 @@ sum(used_power) as usedPower FROM kw_meter_data where - + group by reportTime,meter_id ) as temp group by @@ -145,4 +145,75 @@ order by reportTime desc + +