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

[电表][修改]:调整表结构,删除盒子电表关联表方便后续处理

release_toaliyun_real
hupeng 7 лет назад
Родитель
Сommit
013b1e8c6b
17 измененных файлов: 312 добавлений и 339 удалений
  1. +97
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/device/KwBoxController.java
  2. +117
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java
  3. +2
    -2
      mallinkCallback/src/main/java/com/iformall/controller/device/KwBoxV1Controller.java
  4. +1
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  5. +9
    -0
      mallinkService/src/main/java/com/iformall/domain/po/KwBox.java
  6. +0
    -107
      mallinkService/src/main/java/com/iformall/domain/po/KwBoxMeter.java
  7. +7
    -0
      mallinkService/src/main/java/com/iformall/domain/po/KwMeter.java
  8. +4
    -4
      mallinkService/src/main/java/com/iformall/enums/EnumBoxStatus.java
  9. +34
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMeterStatus.java
  10. +0
    -13
      mallinkService/src/main/java/com/iformall/mapper/KwBoxMeterMapper.java
  11. +0
    -58
      mallinkService/src/main/java/com/iformall/service/kw/KwBoxMeterService.java
  12. +2
    -2
      mallinkService/src/main/java/com/iformall/service/kw/KwBoxService.java
  13. +0
    -60
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxMeterServiceImpl.java
  14. +19
    -40
      mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java
  15. +7
    -1
      mallinkService/src/main/resources/mapper/KwBoxMapper.xml
  16. +0
    -50
      mallinkService/src/main/resources/mapper/KwBoxMeterMapper.xml
  17. +13
    -2
      mallinkService/src/main/resources/mapper/KwMeterMapper.xml

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

@@ -0,0 +1,97 @@
package com.iformall.controller.device;

import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.KwBox;
import com.iformall.enums.EnumBoxStatus;
import com.iformall.service.kw.KwBoxService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("kwBox")
@Api(description="开物盒子")
public class KwBoxController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private KwBoxService kwBoxService;

@ApiOperation("设备列表")
@GetMapping("list")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@SystemControllerLog(description = "开物盒子-设备列表")
public Result list(@ModelAttribute KwBox kwBox, Integer pageNum, Integer pageSize) {
if (kwBox == null) kwBox = new KwBox();
kwBox.setTenantId(getTenantId());
kwBox.setStatus(EnumBoxStatus.VALID.getCode());
return new ResultData(kwBoxService.listAsPage(kwBox, pageNum,pageSize));
}

@ApiOperation("添加设备")
@PostMapping("add")
@SystemControllerLog(description = "开物盒子-添加设备")
public Result add(@RequestBody KwBox kwBox) {

KwBox record = new KwBox();
record.setImei(kwBox.getImei());
List<KwBox> list = kwBoxService.findList(record);
if (list.size() > 0)
return new ResultData(ErrorCode.DEVICE_ALREADY_EXIST);
kwBox.setTenantId(getTenantId());
kwBox.setStatus(EnumBoxStatus.VALID.getCode());
return kwBoxService.saveOrUpdate(kwBox);
}

@ApiOperation("更新设备")
@PostMapping("update")
@SystemControllerLog(description = "开物盒子-更新设备")
public Result update(@RequestBody KwBox kwBox) {
if (kwBox == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
if (kwBox.getId() == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
kwBox.setTenantId(getTenantId());
return kwBoxService.saveOrUpdate(kwBox);
}

@ApiOperation("设备详情")
@GetMapping("detail")
@SystemControllerLog(description = "开物盒子-设备详情")
public Result detail(@RequestParam Long id) {
if (id == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
KwBox kwBox = kwBoxService.getById(id);
if (kwBox == null)
return new ResultData(ErrorCode.SCREENAD_NOT_FOUND);

kwBox.setMeters(kwBoxService.findMeters(kwBox));
return new ResultData(kwBox);
}

@ApiOperation("删除设备")
@PostMapping("delete")
@SystemControllerLog(description = "开物盒子-删除设备")
public Result delete(@RequestParam Long id) {
if (id == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
KwBox kwBox = new KwBox();
kwBox.setId(id);
kwBox.setTenantId(getTenantId());
kwBox.setStatus(EnumBoxStatus.INVALID.getCode());
return kwBoxService.saveOrUpdate(kwBox);
}
}

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

@@ -0,0 +1,117 @@
package com.iformall.controller.device;

import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
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.enums.EnumBoxStatus;
import com.iformall.service.kw.KwBoxService;
import com.iformall.service.kw.KwMeterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("kwMeter")
@Api(description="电表设备")
public class KwMeterController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private KwMeterService kwMeterService;

@Autowired
private KwBoxService kwBoxService;

@ApiOperation("设备列表")
@GetMapping("list")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
@SystemControllerLog(description = "电表设备-设备列表")
public Result list(@ModelAttribute KwMeter kwMeter, Integer pageNum, Integer pageSize) {
if (kwMeter == null) kwMeter = new KwMeter();
kwMeter.setTenantId(getTenantId());
return new ResultData(kwMeterService.listAsPage(kwMeter, pageNum,pageSize));
}

@ApiOperation("添加设备")
@PostMapping("add")
@SystemControllerLog(description = "电表设备-添加设备")
public Result add(@RequestBody KwMeter kwMeter) {

if (kwMeter == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
if (kwMeter.getBoxId() == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
if (kwMeter.getAddress() == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);

KwBox kwBox = kwBoxService.getById(kwMeter.getBoxId());
if (kwBox == null)
return new ResultData(ErrorCode.DEVICE_NOT_FOUND);

KwMeter record = new KwMeter();
record.setBoxId(kwMeter.getBoxId());
List<KwMeter> KwMeters = kwMeterService.findList(record);
if (KwMeters.size() > kwBox.getMaxTagNum())
return new ResultData(ErrorCode.DEVICE_REACHED_MAX_NUMBER);

record.setBoxId(kwMeter.getBoxId());
record.setAddress(kwMeter.getAddress());
KwMeters = kwMeterService.findList(record);
if (KwMeters.size() > 0)
return new ResultData(ErrorCode.DEVICE_ALREADY_EXIST);
kwMeter.setTenantId(getTenantId());
return kwMeterService.saveOrUpdate(kwMeter);
}

@ApiOperation("更新设备")
@PostMapping("update")
@SystemControllerLog(description = "电表设备-更新设备")
public Result update(@RequestBody KwMeter kwMeter) {
if (kwMeter == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
if (kwMeter.getId() == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
kwMeter.setTenantId(getTenantId());
return kwMeterService.saveOrUpdate(kwMeter);
}

@ApiOperation("设备详情")
@GetMapping("detail")
@SystemControllerLog(description = "电表设备-设备详情")
public Result detail(@RequestParam Long id) {
if (id == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
KwMeter kwMeter = kwMeterService.getById(id);
if (kwMeter == null)
return new ResultData(ErrorCode.DEVICE_NOT_FOUND);

return new ResultData(kwMeter);
}

@ApiOperation("删除设备")
@PostMapping("delete")
@SystemControllerLog(description = "电表设备-删除设备")
public Result delete(@RequestParam Long id) {
if (id == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
KwMeter kwMeter = new KwMeter();
kwMeter.setId(id);
kwMeter.setTenantId(getTenantId());
kwMeter.setStatus(EnumBoxStatus.INVALID.getCode());
return kwMeterService.saveOrUpdate(kwMeter);
}
}

+ 2
- 2
mallinkCallback/src/main/java/com/iformall/controller/device/KwBoxV1Controller.java Просмотреть файл

@@ -87,7 +87,7 @@ public class KwBoxV1Controller extends BaseController {
data.put("comKey",kwBox.getComKey());
if (kwBox.getConfig() != null)
data.put("config",kwBox.getConfig());
List<String> meters = kwBoxService.findMeters(kwBox);
List<String> meters = kwBoxService.findMetersAddress(kwBox);
if (!meters.isEmpty())
data.put("meters",meters);
return new ResultData(data);
@@ -148,7 +148,7 @@ public class KwBoxV1Controller extends BaseController {
});
}

List<String> meters = kwBoxService.findMeters(kwBox);
List<String> meters = kwBoxService.findMetersAddress(kwBox);

boolean updateMeters = false;
boolean updateConfig = false;


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

@@ -403,6 +403,7 @@ public enum ErrorCode{
DEVICE_NOT_FOUND(26000, "设备未注册到系统"),
DEVICE_ALREADY_EXIST(26001, "设备已经存在"),
DEVICE_QRCODE_GET_FAILED(26002, "微信二维码生成失败,请重试"),
DEVICE_REACHED_MAX_NUMBER(26003, "设备已经达到最大数量"),
/**
* 消息组件
*/


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

@@ -74,6 +74,15 @@ public class KwBox extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "通信密钥", name = "comKey")
private String comKey;

@io.swagger.annotations.ApiModelProperty(value = "状态0有效1无效", name = "status")
private Integer status;

@io.swagger.annotations.ApiModelProperty(value = "最大目标数量", name = "maxTagNum")
private Integer maxTagNum;

@Transient
private List<KwMeter> meters;

public static enum Field {
Id_ASC("`id` ASC"),
Id_DESC("`id` DESC"),


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

@@ -1,107 +0,0 @@
package com.iformall.domain.po;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* @author gongbiao
*/
@Table(name = "kw_box_meter")
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class KwBoxMeter extends BaseEntity {
@Id
protected Long id;
@Transient
protected List<Long> ids;
@Transient
protected String sortColumns;

@Override
public String getSortColumns() {
super.setSortColumns(this.sortColumns);
return super.getSortColumns();
}

@io.swagger.annotations.ApiModelProperty(value = "tenantId", name = "tenantId")
private String tenantId;

@io.swagger.annotations.ApiModelProperty(value = "电表ID", name = "meterId")
private Long meterId;

@io.swagger.annotations.ApiModelProperty(value = "盒子ID", name = "boxId")
private Long boxId;

@io.swagger.annotations.ApiModelProperty(value = "状态1历史0在用", name = "status")
private Integer status;

@io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createTime")
private Date createTime;

@io.swagger.annotations.ApiModelProperty(value = "修改时间", name = "updateTime")
private Date updateTime;

public static enum Field {
Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), CreateTime_ASC("`create_time` ASC"), CreateTime_DESC("`create_time` DESC"), UpdateTime_ASC("`update_time` ASC"), UpdateTime_DESC("`update_time` 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<Field> 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));
}
}
}

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

@@ -68,6 +68,13 @@ public class KwMeter extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "修改时间", name = "updateTime")
private Date updateTime;

@io.swagger.annotations.ApiModelProperty(value = "开物盒子ID", name = "boxId")
private Long boxId;

@io.swagger.annotations.ApiModelProperty(value = "状态0有效1无效", name = "status")
private Integer status;


public static enum Field {
Id_ASC("`id` ASC"),
Id_DESC("`id` DESC"),


mallinkService/src/main/java/com/iformall/enums/EnumBoxMeterStatus.java → mallinkService/src/main/java/com/iformall/enums/EnumBoxStatus.java Просмотреть файл

@@ -3,12 +3,12 @@ package com.iformall.enums;
/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumBoxMeterStatus {
public enum EnumBoxStatus {

VALID(0, "有效"),
INVALID(1, "无效");
public static EnumBoxMeterStatus getEnum(Integer code) {
for (EnumBoxMeterStatus value : values()) {
public static EnumBoxStatus getEnum(Integer code) {
for (EnumBoxStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
@@ -19,7 +19,7 @@ public enum EnumBoxMeterStatus {
private Integer code;
private String message;

EnumBoxMeterStatus(Integer code, String message) {
EnumBoxStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

+ 34
- 0
mallinkService/src/main/java/com/iformall/enums/EnumMeterStatus.java Просмотреть файл

@@ -0,0 +1,34 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumMeterStatus {

VALID(0, "有效"),
INVALID(1, "无效");
public static EnumMeterStatus getEnum(Integer code) {
for (EnumMeterStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumMeterStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

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

@@ -1,13 +0,0 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.KwBoxMeter;

import java.util.List;

public interface KwBoxMeterMapper extends CommonMapper<KwBoxMeter, Long> {

List<KwBoxMeter> findList(KwBoxMeter param);


}

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

@@ -1,58 +0,0 @@
package com.iformall.service.kw;


import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.KwBoxMeter;

import java.util.List;

public interface KwBoxMeterService {



/**
* 根据实体查询分页列表
*
* @param record
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<KwBoxMeter> listAsPage(KwBoxMeter record, Integer pageIndex, Integer pageSize);


/**
* 根据Id获得实体
*
* @param id
* @return
*/
KwBoxMeter getById(Long id);

/**
* 保存或更新实体
*
* @param record
*/
ResultData saveOrUpdate(KwBoxMeter record);


/**
* 根据Id删除实体
*
* @param id
*/
void deleteById(Long id);


/**
* 根据实体查询分页列表
*
* @param record
* @return
*/
List<KwBoxMeter> findList(KwBoxMeter record);


}

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

@@ -58,8 +58,8 @@ public interface KwBoxService {
*/
List<KwBox> findList(KwBox record);

List<String> findMeters(KwBox record);
List<String> findMetersAddress(KwBox record);
List<KwMeter> findMeters(KwBox record);
KwMeter findMeter(KwBox record, String addr);

KwBox findByImei(String imei);


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

@@ -1,60 +0,0 @@
package com.iformall.service.kw.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.common.ResultData;
import com.iformall.domain.po.KwBoxMeter;
import com.iformall.mapper.KwBoxMeterMapper;
import com.iformall.service.kw.KwBoxMeterService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class KwBoxMeterServiceImpl implements KwBoxMeterService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
KwBoxMeterMapper kwBoxMeterMapper;

@Override
public PageInfo<KwBoxMeter> listAsPage(KwBoxMeter record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwBoxMeterMapper.findList(record));
}

@Override
public KwBoxMeter getById(Long id) {
return kwBoxMeterMapper.selectByPrimaryKey(id);
}


@Override
public ResultData saveOrUpdate(KwBoxMeter record) {
if (record.getId() == null) {
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
kwBoxMeterMapper.insertSelective(record);
} else {
kwBoxMeterMapper.updateByPrimaryKeySelective(record);
}
return new ResultData();
}


@Override
public void deleteById(Long id) {
kwBoxMeterMapper.deleteByPrimaryKey(id);
}

@Override
public List<KwBoxMeter> findList(KwBoxMeter record) {
return kwBoxMeterMapper.findList(record);
}


}

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

@@ -1,19 +1,15 @@
package com.iformall.service.kw.impl;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker;
import com.iformall.common.ResultData;

import com.iformall.domain.po.KwBox;
import com.iformall.domain.po.KwBoxMeter;
import com.iformall.domain.po.KwMeter;
import com.iformall.domain.po.KwMeterData;
import com.iformall.enums.EnumBoxMeterStatus;
import com.iformall.enums.EnumMeterStatus;
import com.iformall.mapper.KwBoxMapper;
import com.iformall.service.kw.KwBoxMeterService;
import com.iformall.service.kw.KwBoxService;
import com.iformall.service.kw.KwMeterDataService;
import com.iformall.service.kw.KwMeterService;
@@ -38,9 +34,6 @@ public class KwBoxServiceImpl implements KwBoxService {
@Autowired
KwMeterDataService kwMeterDataService;

@Autowired
KwBoxMeterService kwBoxMeterService;

@Autowired
KwMeterService kwMeterService;

@@ -60,8 +53,11 @@ public class KwBoxServiceImpl implements KwBoxService {
if (record.getId() == null) {
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
kwBoxMapper.insertSelective(record);
} else {
record.setUpdateTime(new Date());
kwBoxMapper.updateByPrimaryKeySelective(record);
}
return new ResultData();
@@ -109,55 +105,38 @@ public class KwBoxServiceImpl implements KwBoxService {
}

@Override
public List<String> findMeters(KwBox record) {

KwBoxMeter kwBoxMeter = new KwBoxMeter();
kwBoxMeter.setBoxId(record.getId());
kwBoxMeter.setStatus(EnumBoxMeterStatus.VALID.getCode());
public List<String> findMetersAddress(KwBox record) {

List<KwBoxMeter> kwBoxMeters = kwBoxMeterService.findList(kwBoxMeter);

if (kwBoxMeters.isEmpty()) {
logger.info("没找到盒子表关联项: boxId="+kwBoxMeter.getBoxId());
return new ArrayList<>();
}
KwMeter kwMeter = new KwMeter();
kwMeter.setIds(kwBoxMeters.stream().map(KwBoxMeter::getMeterId).collect(Collectors.toList()));
List<KwMeter> kwMeters = findMeters(record);

if (kwMeter.getIds().isEmpty()) {
logger.info("没找到盒子关联的表: boxId="+kwBoxMeter.getBoxId());
return new ArrayList<>();
}
List<KwMeter> kwMeters = kwMeterService.findList(kwMeter);

if (kwMeter.getIds().isEmpty()) {
logger.info("没找到盒子关联的表: ids=" + kwBoxMeter.getIds());
if (kwMeters.isEmpty()) {
logger.info("没找到盒子关联的表: boxId=" + record.getId());
return new ArrayList<>();
}
return kwMeters.stream().map(KwMeter::getAddress).collect(Collectors.toList());
}

@Override
public KwMeter findMeter(KwBox record, String addr) {
public List<KwMeter> findMeters(KwBox record) {

KwBoxMeter kwBoxMeter = new KwBoxMeter();
kwBoxMeter.setBoxId(record.getId());
kwBoxMeter.setStatus(EnumBoxMeterStatus.VALID.getCode());
KwMeter kwMeter = new KwMeter();
kwMeter.setBoxId(record.getId());
kwMeter.setStatus(EnumMeterStatus.VALID.getCode());

List<KwBoxMeter> kwBoxMeters = kwBoxMeterService.findList(kwBoxMeter);
return kwMeterService.findList(kwMeter);
}

if (kwBoxMeters.isEmpty()) {
logger.info("没找到盒子表关联项: boxId="+kwBoxMeter.getBoxId());
return null;
}
@Override
public KwMeter findMeter(KwBox record, String addr) {

KwMeter kwMeter = new KwMeter();
kwMeter.setBoxId(record.getId());
kwMeter.setStatus(EnumMeterStatus.VALID.getCode());
kwMeter.setAddress(addr);
kwMeter.setIds(kwBoxMeters.stream().map(KwBoxMeter::getMeterId).collect(Collectors.toList()));

List<KwMeter> kwMeters = kwMeterService.findList(kwMeter);
if (kwMeters.isEmpty()) {
logger.info("没找到盒子关联的表: ids="+kwBoxMeter.getIds() +",addr=",kwMeter.getAddress());
logger.info("没找到盒子关联的电表: id="+record.getId() +",addr=",kwMeter.getAddress());
return null;
}



+ 7
- 1
mallinkService/src/main/resources/mapper/KwBoxMapper.xml Просмотреть файл

@@ -17,11 +17,13 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="com_key" jdbcType="VARCHAR" property="comKey"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="max_tag_num" jdbcType="INTEGER" property="maxTagNum"/>
</resultMap>
<sql id="allColumns">
`id`,`tenant_id`,`imei`,`iccid`,`place`,`fw_version`,`hd_version`,`register_status`,`online_status`,`register_time`,
`last_online_time`,`config`,`create_time`,`update_time`,`com_key`
`last_online_time`,`config`,`create_time`,`update_time`,`com_key`,`status`,`max_tag_num`
</sql>
<sql id="dynamicWhereConditions">
@@ -54,6 +56,10 @@
<if test=" null != onlineStatus ">
and `online_status` = #{onlineStatus}
</if>

<if test=" null != status ">
and `status` = #{status}
</if>
<if test=" null != ids ">
and id in


+ 0
- 50
mallinkService/src/main/resources/mapper/KwBoxMeterMapper.xml Просмотреть файл

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iformall.mapper.KwBoxMeterMapper">
<resultMap id="BaseResultMap" type="com.iformall.domain.po.KwBoxMeter">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="meter_id" jdbcType="BIGINT" property="meterId"/>
<result column="box_id" jdbcType="BIGINT" property="boxId"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="allColumns">
`id`,`tenant_id`,`meter_id`,`box_id`,`status`,`create_time`,`update_time`
</sql>
<sql id="dynamicWhereConditions">
where 1 = 1
<if test=" null != id ">
and `id` = #{id}
</if>
<if test=" null != tenantId ">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != status ">
and `status` = #{status}
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns">order by ${sortColumns}</if>
</sql>
<select id="findList" parameterType="com.iformall.domain.po.KwMeter" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from kw_box_meter
<include refid="dynamicWhereConditions"/>
</select>


</mapper>

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

@@ -15,10 +15,13 @@
<result column="config" jdbcType="VARCHAR" property="config"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="box_id" jdbcType="BIGINT" property="boxId"/>
<result column="status" jdbcType="INTEGER" property="status"/>

</resultMap>
<sql id="allColumns">
`id`,`tenant_id`,`address`,`brand`,`model`,`place`,`protocol`,`bandrate`,`last_online_time`,`online_status`,`config`,`create_time`,`update_time`
`id`,`tenant_id`,`address`,`brand`,`model`,`place`,`protocol`,`bandrate`,`last_online_time`,`online_status`,`config`,`create_time`,`update_time`,`box_id`,`status`
</sql>
<sql id="dynamicWhereConditions">
@@ -51,7 +54,15 @@
<if test=" null != onlineStatus ">
and `online_status` = #{onlineStatus}
</if>

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

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

<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">


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