Преглед изворни кода

[电表][修改]:增加电表电量获取接口

release_toaliyun_real
hupeng пре 6 година
родитељ
комит
bcc1a61995
9 измењених фајлова са 178 додато и 1 уклоњено
  1. +7
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java
  2. +22
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterDataController.java
  3. +9
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java
  5. +2
    -0
      mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java
  6. +2
    -0
      mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java
  7. +10
    -0
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java
  8. +52
    -0
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java
  9. +72
    -1
      mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml

+ 7
- 0
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.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();
} }



} }

+ 22
- 0
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.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));
}


} }

+ 9
- 0
mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java Прегледај датотеку

@@ -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"),


+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java Прегледај датотеку

@@ -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);
} }

+ 2
- 0
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 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);

} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java Прегледај датотеку

@@ -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);
} }

+ 10
- 0
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.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));


+ 52
- 0
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.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;
}

} }

+ 72
- 1
mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml Прегледај датотеку

@@ -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>

Loading…
Откажи
Сачувај