From 6275fe3945740ce1c972937303117c132c4d13dc Mon Sep 17 00:00:00 2001 From: hupeng Date: Tue, 16 Jul 2019 17:31:35 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=94=B5=E8=A1=A8][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E7=94=B5=E8=A1=A8=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=BD=93=E5=89=8D=E8=AF=BB=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/KwMerchantMeterController.java | 2 - .../controller/device/KwMeterController.java | 8 +- .../domain/dto/KwMerchantMeterDto.java | 110 ++++++++++++++++++ .../java/com/iformall/domain/po/KwMeter.java | 3 + .../iformall/mapper/KwMeterDataMapper.java | 1 + .../service/kw/KwMeterDataService.java | 2 + .../kw/impl/KwMeterDataServiceImpl.java | 11 ++ .../resources/mapper/KwMeterDataMapper.xml | 16 ++- 8 files changed, 145 insertions(+), 8 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDto.java 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 1f2e103ab..61a6adb64 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java @@ -33,8 +33,6 @@ public class KwMerchantMeterController extends BaseController { @Autowired private KwMerchantMeterService kwMerchantMeterService; - @Autowired - private KwMeterDataService kwMeterDataService; @ApiOperation("设备列表") @GetMapping("list") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java index 3b4e2ffa8..406385ba2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java @@ -7,10 +7,12 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.KwBox; import com.iformall.domain.po.KwMeter; +import com.iformall.domain.po.KwMeterData; import com.iformall.enums.EnumBoxStatus; import com.iformall.enums.EnumMeterBindStatus; import com.iformall.enums.EnumMeterStatus; import com.iformall.service.kw.KwBoxService; +import com.iformall.service.kw.KwMeterDataService; import com.iformall.service.kw.KwMeterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -21,6 +23,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; @RestController @@ -32,6 +35,9 @@ public class KwMeterController extends BaseController { @Autowired private KwMeterService kwMeterService; + @Autowired + private KwMeterDataService kwMeterDataService; + @Autowired private KwBoxService kwBoxService; @@ -154,7 +160,7 @@ public class KwMeterController extends BaseController { KwMeter kwMeter = kwMeterService.getById(id); if (kwMeter == null) return new ResultData(ErrorCode.DEVICE_NOT_FOUND); - + kwMeter.setLatestRecord(kwMeterDataService.findLastRecord(id)); return new ResultData(kwMeter); } diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDto.java b/mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDto.java new file mode 100644 index 000000000..6cd37b385 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/KwMerchantMeterDto.java @@ -0,0 +1,110 @@ +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 KwMerchantMeterDto extends BaseEntity { + + + @io.swagger.annotations.ApiModelProperty(value="商户名",name="name") + private String merchantName; + + @io.swagger.annotations.ApiModelProperty(value="联系人",name="linkPerson") + private String linkPerson; + + @io.swagger.annotations.ApiModelProperty(value="联系方式",name="linkPhone") + private String linkPhone; + + @io.swagger.annotations.ApiModelProperty(value="状态0使用1作废",name="status") + private Integer status; + + @io.swagger.annotations.ApiModelProperty(value="经营业态ID:参照wx_business表",name="businessId") + private Integer businessId; + + @io.swagger.annotations.ApiModelProperty(value="子业态",name="subBusinessId") + private Integer subBusinessId; + + + protected String sortColumns; + + @Override + public String getSortColumns() { + super.setSortColumns(this.sortColumns); + return super.getSortColumns(); + } + + @io.swagger.annotations.ApiModelProperty(value = "商户ID", name = "merchantId") + private Long merchantId; + + public static enum Field { + RecordStartTime_ASC("`recordStartTime` ASC"), + RecordStartTime_DESC("`recordStartTime` DESC"), + RecordEndTime_ASC("`recordEndTime` ASC"), + RecordEndTime_DESC("`recordEndTime` DESC"), + UsedPower_ASC("`usedPower` ASC"), + UsedPower_DESC("`usedPower` DESC"), + TotalEndTime_ASC("`totalPower` ASC"), + TotalEndTime_DESC("`totalPower` DESC"), + ReportTime_ASC("`reportTime` ASC"), + ReportTime_DESC("`reportTime` DESC"); + private String value; + + Field(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public void setCol(String value) { + this.value = value; + } + + @Override + public String toString() { + return this.getValue(); + } + } + + public void setSortColumns(Field... fields) { + if (fields == null || fields.length == 0) { + return; + } + for (int k = 0; k < fields.length; k++) { + if (fields[k] == null) { + return; + } + } + StringBuilder sb = new StringBuilder(fields[0].toString()); + for (int k = 1; k < fields.length; k++) { + sb.append(","); + sb.append(fields[k].toString()); + } + this.sortColumns = sb.toString(); + } + + public void setSortColumns(String sortColumns) { + if (sortColumns == null || "".equals(sortColumns.trim())) { + return; + } + if (sortColumns.contains(",")) { + String[] cols = sortColumns.split(","); + List fList = new ArrayList(); + for (int k = 0; k < cols.length; k++) { + fList.add(Field.valueOf(cols[k])); + } + this.setSortColumns(fList.toArray(new Field[fList.size()])); + } else { + this.setSortColumns(Field.valueOf(sortColumns)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/KwMeter.java b/mallinkService/src/main/java/com/iformall/domain/po/KwMeter.java index bfd3bd526..5f9f97400 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/KwMeter.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/KwMeter.java @@ -77,6 +77,9 @@ public class KwMeter extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "状态0绑定1未绑定", name = "bindStatus") private Integer bindStatus; + @Transient + protected KwMeterData latestRecord; + 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 5ad733c27..23fb262ee 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/KwMeterDataMapper.java @@ -4,6 +4,7 @@ import com.iformall.common.CommonMapper; import com.iformall.domain.dto.KwMeterDataDto; import com.iformall.domain.po.KwMeterData; import com.iformall.domain.vo.KwMeterDataVo; +import org.apache.ibatis.annotations.Param; import java.util.List; 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 2b1fc15e8..bddb1ba17 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMeterDataService.java @@ -19,6 +19,8 @@ public interface KwMeterDataService { List findLastRecordList(KwMeterData kwMeterData); + KwMeterData findLastRecord(Long meterId); + int save(List recordList); KwMeterDataVo getPower(KwMeterDataDto dto); 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 9399edc1b..fc7d567d5 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 @@ -64,6 +64,17 @@ public class KwMeterDataServiceImpl implements KwMeterDataService { return kwMeterDataMapper.findLastRecordList(kwMeterData); } + @Override + public KwMeterData findLastRecord(Long meterId) { + KwMeterData kwMeterData = new KwMeterData(); + kwMeterData.setMeterId(meterId); + List list = kwMeterDataMapper.findLastRecordList(kwMeterData); + if (list.size() > 0) + return list.get(0); + else return new KwMeterData(); + } + + @Override public KwMeterDataVo getPower(KwMeterDataDto dto) { diff --git a/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml b/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml index e80230627..34bc9467a 100644 --- a/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMeterDataMapper.xml @@ -62,7 +62,7 @@ - select from kw_meter_data @@ -74,10 +74,16 @@ from kw_meter_data where `total_power` is not null - and `meter_id` in - - #{idItem} - + + and `meter_id` = #{meterId} + + + + and `meter_id` in + + #{idItem} + + group by `meter_id` ) temp where