| @@ -6,10 +6,12 @@ import com.iformall.common.Result; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.dto.KwMeterDataDto; | |||||
| import com.iformall.domain.po.KwMerchantMeter; | import com.iformall.domain.po.KwMerchantMeter; | ||||
| import com.iformall.enums.EnumMerchantMeterStatus; | import com.iformall.enums.EnumMerchantMeterStatus; | ||||
| import com.iformall.enums.EnumMerchantStatus; | import com.iformall.enums.EnumMerchantStatus; | ||||
| import com.iformall.service.kw.KwMerchantMeterService; | import com.iformall.service.kw.KwMerchantMeterService; | ||||
| import com.iformall.service.kw.KwMeterDataService; | |||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||
| @@ -31,6 +33,8 @@ public class KwMerchantMeterController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private KwMerchantMeterService kwMerchantMeterService; | private KwMerchantMeterService kwMerchantMeterService; | ||||
| @Autowired | |||||
| private KwMeterDataService kwMeterDataService; | |||||
| @ApiOperation("设备列表") | @ApiOperation("设备列表") | ||||
| @GetMapping("list") | @GetMapping("list") | ||||
| @@ -89,4 +93,7 @@ public class KwMerchantMeterController extends BaseController { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.iformall.controller.device; | |||||
| import com.iformall.annotation.SystemControllerLog; | import com.iformall.annotation.SystemControllerLog; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| @@ -42,4 +43,25 @@ public class KwMeterDataController extends BaseController { | |||||
| return new ResultData(kwMeterDataService.listVoAsPage(kwMeterDataDto, pageNum,pageSize)); | 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)); | |||||
| } | |||||
| } | } | ||||
| @@ -48,6 +48,15 @@ public class KwMeterDataDto extends BaseEntity { | |||||
| private Integer reportType; | 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 { | public static enum Field { | ||||
| Id_ASC("`id` ASC"), | Id_ASC("`id` ASC"), | ||||
| Id_DESC("`id` DESC"), | Id_DESC("`id` DESC"), | ||||
| @@ -12,4 +12,6 @@ public interface KwMeterDataMapper extends CommonMapper<KwMeterData, Long> { | |||||
| List<KwMeterData> findList(KwMeterData param); | List<KwMeterData> findList(KwMeterData param); | ||||
| List<KwMeterDataVo> findVoList(KwMeterDataDto param); | List<KwMeterDataVo> findVoList(KwMeterDataDto param); | ||||
| List<KwMeterDataVo> getPower(KwMeterDataDto param); | |||||
| } | } | ||||
| @@ -7,6 +7,7 @@ import com.iformall.domain.po.KwMerchantMeter; | |||||
| import com.iformall.domain.vo.KwMerchantMeterVo; | import com.iformall.domain.vo.KwMerchantMeterVo; | ||||
| import java.util.List; | import java.util.List; | ||||
| public interface KwMerchantMeterService { | public interface KwMerchantMeterService { | ||||
| @@ -48,4 +49,5 @@ public interface KwMerchantMeterService { | |||||
| List<KwMerchantMeterVo> findListVo(KwMerchantMeter record); | List<KwMerchantMeterVo> findListVo(KwMerchantMeter record); | ||||
| int selectCount(KwMerchantMeter record); | int selectCount(KwMerchantMeter record); | ||||
| int unbindBatch(KwMerchantMeter record); | int unbindBatch(KwMerchantMeter record); | ||||
| } | } | ||||
| @@ -18,4 +18,6 @@ public interface KwMeterDataService { | |||||
| List<KwMeterData> findList(KwMeterData kwMeterData); | List<KwMeterData> findList(KwMeterData kwMeterData); | ||||
| int save(List<KwMeterData> recordList); | int save(List<KwMeterData> recordList); | ||||
| KwMeterDataVo getMeterUsedPower(KwMeterDataDto dto); | |||||
| } | } | ||||
| @@ -2,17 +2,24 @@ package com.iformall.service.kw.impl; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.dto.KwMeterDataDto; | |||||
| import com.iformall.domain.po.KwMerchantMeter; | import com.iformall.domain.po.KwMerchantMeter; | ||||
| import com.iformall.domain.vo.KwMerchantMeterVo; | 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.KwMerchantMeterMapper; | ||||
| import com.iformall.mapper.KwMeterDataMapper; | |||||
| import com.iformall.service.kw.KwMerchantMeterService; | import com.iformall.service.kw.KwMerchantMeterService; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import java.util.ArrayList; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -24,6 +31,9 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { | |||||
| @Autowired | @Autowired | ||||
| KwMerchantMeterMapper kwMerchantMeterMapper; | KwMerchantMeterMapper kwMerchantMeterMapper; | ||||
| @Autowired | |||||
| KwMeterDataMapper kwMeterDataMapper; | |||||
| @Override | @Override | ||||
| public PageInfo<KwMerchantMeterVo> listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { | public PageInfo<KwMerchantMeterVo> listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findListVo(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findListVo(record)); | ||||
| @@ -2,18 +2,24 @@ package com.iformall.service.kw.impl; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.Result; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.dto.KwMeterDataDto; | import com.iformall.domain.dto.KwMeterDataDto; | ||||
| import com.iformall.domain.po.KwMeterData; | import com.iformall.domain.po.KwMeterData; | ||||
| import com.iformall.domain.vo.KwMeterDataVo; | import com.iformall.domain.vo.KwMeterDataVo; | ||||
| import com.iformall.mapper.KwMeterDataMapper; | import com.iformall.mapper.KwMeterDataMapper; | ||||
| import com.iformall.service.kw.KwMeterDataService; | import com.iformall.service.kw.KwMeterDataService; | ||||
| import io.swagger.annotations.ApiOperation; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | 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; | import java.util.List; | ||||
| @@ -49,4 +55,50 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { | |||||
| return kwMeterDataMapper.insertList(recordList); | 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<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()); | |||||
| } | |||||
| } | |||||
| 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; | |||||
| } | |||||
| } | } | ||||
| @@ -130,7 +130,7 @@ | |||||
| sum(used_power) as usedPower | sum(used_power) as usedPower | ||||
| FROM kw_meter_data | FROM kw_meter_data | ||||
| where | where | ||||
| <include refid="dynamicWhereConditions"/> | |||||
| <include refid="dynamicWhereConditionsVo"/> | |||||
| group by reportTime,meter_id | group by reportTime,meter_id | ||||
| ) as temp | ) as temp | ||||
| group by | group by | ||||
| @@ -145,4 +145,75 @@ | |||||
| order by reportTime desc | order by reportTime desc | ||||
| </select> | </select> | ||||
| <select id="getPower" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap"> | |||||
| SELECT | |||||
| tenant_id,box_id,meter_id, | |||||
| <if test=" null == reportType"> | |||||
| create_time as reportTime, | |||||
| </if> | |||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| date_format(create_time, '%Y-%m-%d %H:00') as reportTime, | |||||
| </if> | |||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| date_format(create_time, '%Y-%m-%d') as reportTime, | |||||
| </if> | |||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| date_format(create_time, '%Y-%m') as reportTime, | |||||
| </if> | |||||
| <if test=" null != startTime"> | |||||
| min(device_time) as recordStartTime, | |||||
| min(total_power) as totalPower | |||||
| </if> | |||||
| <if test=" null != endTime"> | |||||
| max(device_time) as recordEndTime, | |||||
| max(total_power) as totalPower | |||||
| </if> | |||||
| FROM kw_meter_data | |||||
| where 1 = 1 | |||||
| <if test=" null != tenantId "> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != meterId "> | |||||
| and `meter_id` = #{meterId} | |||||
| </if> | |||||
| <if test=" null != address "> | |||||
| and `address` = #{address} | |||||
| </if> | |||||
| <if test=" null != startTime"> | |||||
| <if test=" null == reportType"> | |||||
| and create_time = #{startTime} | |||||
| </if> | |||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d %H:00') = date_format(#{startTime}, '%Y-%m-%d %H:00') | |||||
| </if> | |||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d') = date_format(#{startTime}, '%Y-%m-%d') | |||||
| </if> | |||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| and date_format(create_time, '%Y-%m') = date_format(#{startTime}, '%Y-%m') | |||||
| </if> | |||||
| </if> | |||||
| <if test=" null != endTime"> | |||||
| <if test=" null == reportType"> | |||||
| and create_time = #{endTime} | |||||
| </if> | |||||
| <if test=" null != reportType and 1 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d %H:00') = date_format(#{endTime}, '%Y-%m-%d %H:00') | |||||
| </if> | |||||
| <if test=" null != reportType and 2 == reportType "> | |||||
| and date_format(create_time, '%Y-%m-%d') = date_format(#{endTime}, '%Y-%m-%d') | |||||
| </if> | |||||
| <if test=" null != reportType and 3 == reportType "> | |||||
| and date_format(create_time, '%Y-%m') = date_format(#{endTime}, '%Y-%m') | |||||
| </if> | |||||
| </if> | |||||
| group by reportTime | |||||
| <if test=" null != meterId "> | |||||
| ,meter_id | |||||
| </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||