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