Просмотр исходного кода

[电表][修复]:业态统计,商户电量top10

release_toaliyun_real
hupeng 6 лет назад
Родитель
Сommit
2bcc63f344
13 измененных файлов: 268 добавлений и 23 удалений
  1. +0
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java
  2. +27
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDataDto.java
  3. +2
    -2
      mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDto.java
  4. +2
    -3
      mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java
  5. +28
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterDataVo.java
  6. +5
    -1
      mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java
  7. +0
    -1
      mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java
  8. +73
    -7
      mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java
  9. +6
    -1
      mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java
  10. +10
    -3
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java
  11. +3
    -0
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java
  12. +108
    -2
      mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml
  13. +4
    -2
      mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml

+ 0
- 1
mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java Просмотреть файл

@@ -48,7 +48,6 @@ public class KwMerchantMeterController extends BaseController {
public Result list(@ModelAttribute KwMerchantMeterDto kwMerchantMeterDto, Integer pageNum, Integer pageSize) { public Result list(@ModelAttribute KwMerchantMeterDto kwMerchantMeterDto, Integer pageNum, Integer pageSize) {
if (kwMerchantMeterDto == null) kwMerchantMeterDto = new KwMerchantMeterDto(); if (kwMerchantMeterDto == null) kwMerchantMeterDto = new KwMerchantMeterDto();
kwMerchantMeterDto.setTenantId(getTenantId()); kwMerchantMeterDto.setTenantId(getTenantId());
kwMerchantMeterDto.setStatus(EnumMerchantMeterStatus.VALID.getCode());
return new ResultData(kwMerchantMeterService.listVoAsPage(kwMerchantMeterDto, pageNum, pageSize)); return new ResultData(kwMerchantMeterService.listVoAsPage(kwMerchantMeterDto, pageNum, pageSize));
} }




+ 27
- 0
mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDataDto.java Просмотреть файл

@@ -0,0 +1,27 @@
package com.iformall.domain.dto;

import com.iformall.domain.po.BaseEntity;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @author gongbiao
*/
@Data
public class KwMerchantMeterDataDto extends KwMeterDataDto {

@io.swagger.annotations.ApiModelProperty(value="状态1使用0停用",name="merchantStatus")
private Integer merchantStatus;

@io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "merchantId")
private Long merchantId;

@io.swagger.annotations.ApiModelProperty(value = "业态ID", name = "businessId")
private Integer businessId;

@io.swagger.annotations.ApiModelProperty(value = "获取个数", name = "limitCount")
private Integer limitCount;
}

+ 2
- 2
mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDto.java Просмотреть файл

@@ -31,8 +31,8 @@ public class KwMerchantMeterDto extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="子业态",name="subBusinessId") @io.swagger.annotations.ApiModelProperty(value="子业态",name="subBusinessId")
private Integer subBusinessId; private Integer subBusinessId;


@io.swagger.annotations.ApiModelProperty(value="状态1使用0停用",name="status")
private Integer status;
@io.swagger.annotations.ApiModelProperty(value="状态1使用0停用",name="merchantStatus")
private Integer merchantStatus;


protected String sortColumns; protected String sortColumns;




+ 2
- 3
mallinkService/src/main/java/com/iformall/domain/dto/KwMeterDataDto.java Просмотреть файл

@@ -57,9 +57,8 @@ public class KwMeterDataDto extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "结束电量", name = "endNumber") @io.swagger.annotations.ApiModelProperty(value = "结束电量", name = "endNumber")
private Integer endNumber; private Integer endNumber;


@io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "merchantId")
private Long merchantId;

@io.swagger.annotations.ApiModelProperty(value = "电表状态", name = "status")
private Integer status;


public static enum Field { public static enum Field {
RecordStartTime_ASC("`recordStartTime` ASC"), RecordStartTime_ASC("`recordStartTime` ASC"),


+ 28
- 0
mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterDataVo.java Просмотреть файл

@@ -0,0 +1,28 @@
package com.iformall.domain.vo;

import com.iformall.domain.po.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
* @author gongbiao
*/
@Data
public class KwMerchantMeterDataVo extends KwMeterDataVo {

@io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "merchantId")
private Long merchantId;

@io.swagger.annotations.ApiModelProperty(value="商户名",name="name")
private String merchantName;

@io.swagger.annotations.ApiModelProperty(value="商户联系方式",name="linkPhone")
private String merchantLinkPhone;

@io.swagger.annotations.ApiModelProperty(value = "业态ID", name = "businessId")
private Integer businessId;

@io.swagger.annotations.ApiModelProperty(value = "业态名称", name = "businessTitle")
private String businessTitle;
}

+ 5
- 1
mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java Просмотреть файл

@@ -1,8 +1,10 @@
package com.iformall.mapper; package com.iformall.mapper;


import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.dto.KwMerchantMeterDataDto;
import com.iformall.domain.dto.KwMerchantMeterDto; import com.iformall.domain.dto.KwMerchantMeterDto;
import com.iformall.domain.po.KwMerchantMeter; import com.iformall.domain.po.KwMerchantMeter;
import com.iformall.domain.vo.KwMerchantMeterDataVo;
import com.iformall.domain.vo.KwMerchantMeterVo; import com.iformall.domain.vo.KwMerchantMeterVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;


@@ -10,7 +12,9 @@ import java.util.List;


public interface KwMerchantMeterMapper extends CommonMapper<KwMerchantMeter, Long> { public interface KwMerchantMeterMapper extends CommonMapper<KwMerchantMeter, Long> {


List<KwMerchantMeterVo> findListVo(KwMerchantMeterDto param);
List<KwMerchantMeterVo> findVoList(KwMerchantMeterDto param);

List<KwMerchantMeterDataVo> findDataVoList(KwMerchantMeterDataDto param);


KwMerchantMeterVo getById(@Param("merchantId")Long merchantId); KwMerchantMeterVo getById(@Param("merchantId")Long merchantId);




+ 0
- 1
mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java Просмотреть файл

@@ -4,7 +4,6 @@ import com.iformall.common.CommonMapper;
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 org.apache.ibatis.annotations.Param;


import java.util.List; import java.util.List;




+ 73
- 7
mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.dto.KwMerchantMeterDataDto;
import com.iformall.domain.dto.KwMeterDataDto; import com.iformall.domain.dto.KwMeterDataDto;
import com.iformall.domain.dto.MarkingCouponDataReportDto; import com.iformall.domain.dto.MarkingCouponDataReportDto;
import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.dto.WxCUserBasicInfoDto;
@@ -24,6 +25,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.map.HashedMap; import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections.map.LinkedMap; import org.apache.commons.collections.map.LinkedMap;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.flowable.common.engine.impl.calendar.BusinessCalendar;
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;
@@ -349,6 +351,15 @@ public class WxChartServiceImpl implements WxChartDataService {
return new ResultData(ErrorCode.REPORT_TYPE_UNKNOWN); return new ResultData(ErrorCode.REPORT_TYPE_UNKNOWN);
} }


private Date addHour(int addHourAmount) {
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, addHourAmount);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
Date date = c.getTime();
return date;
}


private Date addDay(int addDayAmount) { private Date addDay(int addDayAmount) {
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
@@ -449,13 +460,13 @@ public class WxChartServiceImpl implements WxChartDataService {
kwMeterDataDto.setEndTime(addMonth(1)); kwMeterDataDto.setEndTime(addMonth(1));
kwMeterDataDto.setTenantId(tenantId); kwMeterDataDto.setTenantId(tenantId);
kwMeterDataDto.setReportType(EnumMeterDataReportType.MONTH.getCode()); kwMeterDataDto.setReportType(EnumMeterDataReportType.MONTH.getCode());
List<KwMeterDataVo> kwMeterDataVos = kwMeterDataService.findVoList(kwMeterDataDto);
List<KwMeterDataVo> kwMeterDataVosMonthly = kwMeterDataService.findVoList(kwMeterDataDto);


List<KwMeterDataVo> yearMonthlyPower = new ArrayList<>(); List<KwMeterDataVo> yearMonthlyPower = new ArrayList<>();


for (int i = 11; i >= 0; i--) { for (int i = 11; i >= 0; i--) {
String date = new SimpleDateFormat("yyyy-MM").format(addMonth(-i)); String date = new SimpleDateFormat("yyyy-MM").format(addMonth(-i));
Optional<KwMeterDataVo> optionalKwMeterDataVo = kwMeterDataVos.stream().filter(md->md.getReportTime().equals(date)).findFirst();
Optional<KwMeterDataVo> optionalKwMeterDataVo = kwMeterDataVosMonthly.stream().filter(md->md.getReportTime().equals(date)).findFirst();
if (optionalKwMeterDataVo.isPresent()) if (optionalKwMeterDataVo.isPresent())
yearMonthlyPower.add(optionalKwMeterDataVo.get()); yearMonthlyPower.add(optionalKwMeterDataVo.get());
else { else {
@@ -468,6 +479,29 @@ public class WxChartServiceImpl implements WxChartDataService {
resultMap.put("yearMonthlyPower",yearMonthlyPower); resultMap.put("yearMonthlyPower",yearMonthlyPower);




kwMeterDataDto = new KwMeterDataDto();
kwMeterDataDto.setStartTime(addDay(0));
kwMeterDataDto.setEndTime(addDay(1));
kwMeterDataDto.setTenantId(tenantId);
kwMeterDataDto.setReportType(EnumMeterDataReportType.HOUR.getCode());
List<KwMeterDataVo> kwMeterDataVosHourly = kwMeterDataService.findVoList(kwMeterDataDto);

List<KwMeterDataVo> todayHourlyPower = new ArrayList<>();

for (int i = 0; i <= 23; i++) {
String date = new SimpleDateFormat("HH:mm").format(addHour(i));
Optional<KwMeterDataVo> optionalKwMeterDataVo = kwMeterDataVosHourly.stream().filter(md->md.getReportTime().contains(date)).findFirst();
if (optionalKwMeterDataVo.isPresent()) {
optionalKwMeterDataVo.get().setReportTime(date);
todayHourlyPower.add(optionalKwMeterDataVo.get());
}
else {
KwMeterDataVo kwMeterDataVo = new KwMeterDataVo();
kwMeterDataVo.setReportTime(date);
todayHourlyPower.add(kwMeterDataVo);
}
}
resultMap.put("todayHourlyPower",todayHourlyPower);


kwMeterDataDto = new KwMeterDataDto(); kwMeterDataDto = new KwMeterDataDto();


@@ -487,7 +521,9 @@ public class WxChartServiceImpl implements WxChartDataService {
if (yesterdayUsedPower.getUsedPower() != null) if (yesterdayUsedPower.getUsedPower() != null)
resultMap.put("yesterdayUsedPower", yesterdayUsedPower.getUsedPower()); resultMap.put("yesterdayUsedPower", yesterdayUsedPower.getUsedPower());


if (yesterdayUsedPower.getUsedPower() != null && todayUsedPower.getUsedPower() != null && yesterdayUsedPower.getUsedPower() != 0) {
if (yesterdayUsedPower.getUsedPower() != null
&& todayUsedPower.getUsedPower() != null
&& !yesterdayUsedPower.getUsedPower().equals(0)) {
double hbd = (double) (todayUsedPower.getUsedPower() - yesterdayUsedPower.getUsedPower()) / yesterdayUsedPower.getUsedPower() * 100; double hbd = (double) (todayUsedPower.getUsedPower() - yesterdayUsedPower.getUsedPower()) / yesterdayUsedPower.getUsedPower() * 100;
double hb = new BigDecimal(hbd).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double hb = new BigDecimal(hbd).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
resultMap.put("todayUsedPowerRate", hb + "%"); resultMap.put("todayUsedPowerRate", hb + "%");
@@ -523,16 +559,46 @@ public class WxChartServiceImpl implements WxChartDataService {
int meterCount = kwMeterService.selectCount(kwMeter); int meterCount = kwMeterService.selectCount(kwMeter);


kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode()); kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode());
int meterBindCount = kwMeterService.selectCount(kwMeter);
int boxMeterCount = kwMeterService.selectCount(kwMeter);


resultMap.put("meterCount",meterCount); resultMap.put("meterCount",meterCount);
resultMap.put("meterBindCount",meterBindCount);
resultMap.put("boxMeterCount",boxMeterCount);


KwMerchantMeter kwMerchantMeter = new KwMerchantMeter(); KwMerchantMeter kwMerchantMeter = new KwMerchantMeter();
kwMerchantMeter.setTenantId(tenantId); kwMerchantMeter.setTenantId(tenantId);
kwMerchantMeter.setStatus(EnumMerchantMeterStatus.VALID.getCode()); kwMerchantMeter.setStatus(EnumMerchantMeterStatus.VALID.getCode());
int meterMerchantCount = kwMerchantMeterService.selectCount(kwMerchantMeter);
resultMap.put("meterMerchantCount",meterMerchantCount);
int merchantMeterCount = kwMerchantMeterService.selectCount(kwMerchantMeter);
resultMap.put("merchantMeterCount",merchantMeterCount);

KwMerchantMeterDataDto kwMerchantMeterDataDto = new KwMerchantMeterDataDto();
kwMerchantMeterDataDto.setStartTime(addMonth(0));
kwMerchantMeterDataDto.setEndTime(addMonth(new Date(),0));
kwMerchantMeterDataDto.setSortColumns(KwMerchantMeterDataDto.Field.UsedPower_DESC);

kwMerchantMeterDataDto.setMerchantId(0L);
kwMerchantMeterDataDto.setLimitCount(10);
List <KwMerchantMeterDataVo> merchantTop10 = kwMerchantMeterService.findDataVoList(kwMerchantMeterDataDto);
resultMap.put("merchantTop10",merchantTop10);

kwMerchantMeterDataDto.setMerchantId(null);
kwMerchantMeterDataDto.setBusinessId(0);
kwMerchantMeterDataDto.setLimitCount(null);
List <KwMerchantMeterDataVo> businessPower = kwMerchantMeterService.findDataVoList(kwMerchantMeterDataDto);

List <WxBusiness> businessList = wxBusinessService.findListAll(tenantId,null);
businessList.stream().forEach(b->{
Optional<KwMerchantMeterDataVo> businessData = businessPower.stream().filter(bd->bd.getBusinessId().equals(b.getId())).findAny();
if (businessData.isPresent()) {
businessData.get().setBusinessTitle(b.getTitle());
} else {
KwMerchantMeterDataVo newBusinessData = new KwMerchantMeterDataVo();
newBusinessData.setBusinessId(b.getId());
newBusinessData.setBusinessTitle(b.getTitle());
businessPower.add(newBusinessData);
}
});

resultMap.put("businessPower",businessPower);


return new ResultData(resultMap); return new ResultData(resultMap);
} }


+ 6
- 1
mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java Просмотреть файл

@@ -3,8 +3,10 @@ package com.iformall.service.kw;


import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.dto.KwMerchantMeterDataDto;
import com.iformall.domain.dto.KwMerchantMeterDto; import com.iformall.domain.dto.KwMerchantMeterDto;
import com.iformall.domain.po.KwMerchantMeter; import com.iformall.domain.po.KwMerchantMeter;
import com.iformall.domain.vo.KwMerchantMeterDataVo;
import com.iformall.domain.vo.KwMerchantMeterVo; import com.iformall.domain.vo.KwMerchantMeterVo;




@@ -44,9 +46,12 @@ public interface KwMerchantMeterService {
* 根据实体查询分页列表 * 根据实体查询分页列表
* *
* @param record * @param record
*
* @return * @return
*/ */
List<KwMerchantMeterVo> findListVo(KwMerchantMeterDto record);
List<KwMerchantMeterVo> findVoList(KwMerchantMeterDto record);
List<KwMerchantMeterDataVo> findDataVoList(KwMerchantMeterDataDto record);

int selectCount(KwMerchantMeter record); int selectCount(KwMerchantMeter record);
int unbindBatch(KwMerchantMeter record); int unbindBatch(KwMerchantMeter record);



+ 10
- 3
mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java Просмотреть файл

@@ -5,9 +5,11 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; 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.KwMerchantMeterDataDto;
import com.iformall.domain.dto.KwMerchantMeterDto; import com.iformall.domain.dto.KwMerchantMeterDto;
import com.iformall.domain.dto.KwMeterDataDto; import com.iformall.domain.dto.KwMeterDataDto;
import com.iformall.domain.po.KwMerchantMeter; import com.iformall.domain.po.KwMerchantMeter;
import com.iformall.domain.vo.KwMerchantMeterDataVo;
import com.iformall.domain.vo.KwMerchantMeterVo; import com.iformall.domain.vo.KwMerchantMeterVo;
import com.iformall.domain.vo.KwMeterDataVo; import com.iformall.domain.vo.KwMeterDataVo;
import com.iformall.enums.EnumMerchantMeterStatus; import com.iformall.enums.EnumMerchantMeterStatus;
@@ -37,7 +39,7 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService {


@Override @Override
public PageInfo<KwMerchantMeterVo> listVoAsPage(KwMerchantMeterDto record, Integer pageIndex, Integer pageSize) { public PageInfo<KwMerchantMeterVo> listVoAsPage(KwMerchantMeterDto record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findListVo(record));
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findVoList(record));
} }


@Override @Override
@@ -61,8 +63,13 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService {
} }


@Override @Override
public List<KwMerchantMeterVo> findListVo(KwMerchantMeterDto record) {
return kwMerchantMeterMapper.findListVo(record);
public List<KwMerchantMeterVo> findVoList(KwMerchantMeterDto record) {
return kwMerchantMeterMapper.findVoList(record);
}

@Override
public List<KwMerchantMeterDataVo> findDataVoList(KwMerchantMeterDataDto record) {
return kwMerchantMeterMapper.findDataVoList(record);
} }


@Override @Override


+ 3
- 0
mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterDataServiceImpl.java Просмотреть файл

@@ -9,6 +9,7 @@ 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.enums.EnumMeterStatus;
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 io.swagger.annotations.ApiOperation;
@@ -34,6 +35,7 @@ public class KwMeterDataServiceImpl implements KwMeterDataService {
public PageInfo<KwMeterDataVo> listVoAsPage(KwMeterDataDto kwMeterDataDto, Integer pageIndex, Integer pageSize) { public PageInfo<KwMeterDataVo> listVoAsPage(KwMeterDataDto kwMeterDataDto, Integer pageIndex, Integer pageSize) {
if (kwMeterDataDto.getSortColumn() == null) if (kwMeterDataDto.getSortColumn() == null)
kwMeterDataDto.setSortColumns(KwMeterDataDto.Field.ReportTime_DESC); kwMeterDataDto.setSortColumns(KwMeterDataDto.Field.ReportTime_DESC);
kwMeterDataDto.setStatus(EnumMeterStatus.VALID.getCode());
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMeterDataMapper.findVoList(kwMeterDataDto)); return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMeterDataMapper.findVoList(kwMeterDataDto));
} }


@@ -41,6 +43,7 @@ public class KwMeterDataServiceImpl implements KwMeterDataService {
public List<KwMeterDataVo> findVoList(KwMeterDataDto kwMeterDataDto) { public List<KwMeterDataVo> findVoList(KwMeterDataDto kwMeterDataDto) {
if (kwMeterDataDto.getSortColumn() == null) if (kwMeterDataDto.getSortColumn() == null)
kwMeterDataDto.setSortColumns(KwMeterDataDto.Field.ReportTime_ASC); kwMeterDataDto.setSortColumns(KwMeterDataDto.Field.ReportTime_ASC);
kwMeterDataDto.setStatus(EnumMeterStatus.VALID.getCode());
return kwMeterDataMapper.findVoList(kwMeterDataDto); return kwMeterDataMapper.findVoList(kwMeterDataDto);
} }




+ 108
- 2
mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml Просмотреть файл

@@ -111,12 +111,11 @@
`id`, `tenant_id`, `merchant_id`, `status`, `name`, `link_phone` `id`, `tenant_id`, `merchant_id`, `status`, `name`, `link_phone`
</sql> </sql>


<select id="findListVo" parameterType="com.iformall.domain.dto.KwMerchantMeterDto" resultMap="BaseResultMapVo">
<select id="findVoList" parameterType="com.iformall.domain.dto.KwMerchantMeterDto" resultMap="BaseResultMapVo">
select <include refid="allColumnsVo"/> select <include refid="allColumnsVo"/>
from ( from (
select merchant_id from kw_merchant_meter select merchant_id from kw_merchant_meter
where `status` = 0 where `status` = 0

<if test=" null != tenantId "> <if test=" null != tenantId ">
and `tenant_id` = #{tenantId} and `tenant_id` = #{tenantId}
</if> </if>
@@ -130,8 +129,115 @@
, wx_merchant , wx_merchant
where temp.merchant_id = id where temp.merchant_id = id


<if test=" null != merchantName and ''!=merchantName ">
and `name` like concat('%', #{merchantName},'%')
</if>

<if test=" null != linkPhone and ''!=linkPhone ">
and `link_phone` like concat('%', #{linkPhone},'%')
</if>

<if test=" null != merchantStatus ">
and `status` = #{merchantStatus}
</if>

<if test=" null != businessId ">
and `business_id` = #{businessId}
</if>

</select> </select>



<sql id="dynamicWhereConditionsVo">
where 1 = 1

<if test=" null != tenantId ">
and `tenant_id` = #{tenantId}
</if>

<if test=" null != boxId ">
and `box_id` = #{boxId}
</if>

<if test=" null != meterId ">
and `meter_id` = #{meterId}
</if>

<if test=" null != address ">
and `address` = #{address}
</if>

<if test=" null != startTime and null != endTime ">
and `create_time` between #{startTime} and #{endTime}
</if>

</sql>

<resultMap id="DataVoResultMap" type="com.iformall.domain.vo.KwMerchantMeterDataVo">
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="totalPower" jdbcType="INTEGER" property="totalPower"/>
<result column="lastTotalPower" jdbcType="INTEGER" property="lastTotalPower"/>
<result column="usedPower" jdbcType="INTEGER" property="usedPower"/>
<result column="reportTime" jdbcType="VARCHAR" property="reportTime"/>
<result column="recordStartTime" jdbcType="TIMESTAMP" property="recordStartTime"/>
<result column="recordEndTime" jdbcType="TIMESTAMP" property="recordEndTime"/>
<result column="merchantId" jdbcType="BIGINT" property="merchantId"/>
<result column="merchantName" jdbcType="VARCHAR" property="merchantName"/>
<result column="merchantLinkPhone" jdbcType="VARCHAR" property="merchantLinkPhone"/>
<result column="businessId" jdbcType="INTEGER" property="businessId"/>
<result column="businessTitle" jdbcType="VARCHAR" property="businessTitle"/>
</resultMap>

<select id="findDataVoList" parameterType="com.iformall.domain.dto.KwMerchantMeterDataDto" resultMap="DataVoResultMap">
select
temp.tenant_id,
<if test=" null != merchantId ">
mm.merchant_id as merchantId,
m.name as merchantName,
m.link_phone as merchantLinkPhone,
</if>
<if test=" null != businessId ">
m.business_id as businessId,
</if>
min(temp.recordStartTime) as recordStartTime,
max(temp.recordEndTime) as recordEndTime,
sum(temp.totalPower) as totalPower,
sum(temp.lastTotalPower) as lastTotalPower,
sum(temp.usedPower) as usedPower
from
kw_merchant_meter mm,
(SELECT
tenant_id,box_id,meter_id,
min(last_device_time) as recordStartTime,
min(last_total_power) as lastTotalPower,
max(device_time) as recordEndTime,
max(total_power) as totalPower,
sum(used_power) as usedPower
FROM kw_meter_data
<include refid="dynamicWhereConditionsVo"/>
group by meter_id
) as temp,
wx_merchant m
where mm.status = 0
and mm.meter_id = temp.meter_id
and mm.merchant_id = m.id
<if test=" null != merchantStatus ">
and m`status` = #{merchantStatus}
</if>
group by
temp.tenant_id
<if test=" null != merchantId ">
,merchantId
</if>
<if test=" null != businessId ">
,businessId
</if>
<if test=" null != limitCount">limit #{limitCount}</if>
<if test=" null != sortColumns">order by ${sortColumns}</if>
</select>



<select id="getById" parameterType="java.lang.Long" resultMap="BaseResultMapVo"> <select id="getById" parameterType="java.lang.Long" resultMap="BaseResultMapVo">
select <include refid="allColumnsVo"/> select <include refid="allColumnsVo"/>
from ( from (


+ 4
- 2
mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml Просмотреть файл

@@ -143,7 +143,6 @@


</sql> </sql>



<select id="findVoList" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap"> <select id="findVoList" parameterType="com.iformall.domain.dto.KwMeterDataDto" resultMap="VoResultMap">
select select
temp.tenant_id, temp.tenant_id,
@@ -183,7 +182,10 @@
FROM kw_meter_data FROM kw_meter_data
<include refid="dynamicWhereConditionsVo"/> <include refid="dynamicWhereConditionsVo"/>
group by reportTime,meter_id group by reportTime,meter_id
) as temp
) as temp join kw_meter on id = temp.meter_id
<if test=" null != status ">
and `status` = #{status}
</if>
group by group by
temp.reportTime, temp.reportTime,
temp.tenant_id temp.tenant_id


Загрузка…
Отмена
Сохранить