| @@ -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); | |||||
| } | |||||
| } | |||||
| @@ -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); | |||||
| } | |||||
| } | |||||
| @@ -87,7 +87,7 @@ public class KwBoxV1Controller extends BaseController { | |||||
| data.put("comKey",kwBox.getComKey()); | data.put("comKey",kwBox.getComKey()); | ||||
| if (kwBox.getConfig() != null) | if (kwBox.getConfig() != null) | ||||
| data.put("config",kwBox.getConfig()); | data.put("config",kwBox.getConfig()); | ||||
| List<String> meters = kwBoxService.findMeters(kwBox); | |||||
| List<String> meters = kwBoxService.findMetersAddress(kwBox); | |||||
| if (!meters.isEmpty()) | if (!meters.isEmpty()) | ||||
| data.put("meters",meters); | data.put("meters",meters); | ||||
| return new ResultData(data); | 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 updateMeters = false; | ||||
| boolean updateConfig = false; | boolean updateConfig = false; | ||||
| @@ -403,6 +403,7 @@ public enum ErrorCode{ | |||||
| DEVICE_NOT_FOUND(26000, "设备未注册到系统"), | DEVICE_NOT_FOUND(26000, "设备未注册到系统"), | ||||
| DEVICE_ALREADY_EXIST(26001, "设备已经存在"), | DEVICE_ALREADY_EXIST(26001, "设备已经存在"), | ||||
| DEVICE_QRCODE_GET_FAILED(26002, "微信二维码生成失败,请重试"), | DEVICE_QRCODE_GET_FAILED(26002, "微信二维码生成失败,请重试"), | ||||
| DEVICE_REACHED_MAX_NUMBER(26003, "设备已经达到最大数量"), | |||||
| /** | /** | ||||
| * 消息组件 | * 消息组件 | ||||
| */ | */ | ||||
| @@ -74,6 +74,15 @@ public class KwBox extends BaseEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "通信密钥", name = "comKey") | @io.swagger.annotations.ApiModelProperty(value = "通信密钥", name = "comKey") | ||||
| private String 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 { | public static enum Field { | ||||
| Id_ASC("`id` ASC"), | Id_ASC("`id` ASC"), | ||||
| Id_DESC("`id` DESC"), | Id_DESC("`id` DESC"), | ||||
| @@ -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)); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -68,6 +68,13 @@ public class KwMeter extends BaseEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "修改时间", name = "updateTime") | @io.swagger.annotations.ApiModelProperty(value = "修改时间", name = "updateTime") | ||||
| private Date 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 { | public static enum Field { | ||||
| Id_ASC("`id` ASC"), | Id_ASC("`id` ASC"), | ||||
| Id_DESC("`id` DESC"), | Id_DESC("`id` DESC"), | ||||
| @@ -3,12 +3,12 @@ package com.iformall.enums; | |||||
| /** | /** | ||||
| * Created by Stormeye on 2018/08/09. | * Created by Stormeye on 2018/08/09. | ||||
| */ | */ | ||||
| public enum EnumBoxMeterStatus { | |||||
| public enum EnumBoxStatus { | |||||
| VALID(0, "有效"), | VALID(0, "有效"), | ||||
| INVALID(1, "无效"); | 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)) { | if (value.getCode().equals(code)) { | ||||
| return value; | return value; | ||||
| } | } | ||||
| @@ -19,7 +19,7 @@ public enum EnumBoxMeterStatus { | |||||
| private Integer code; | private Integer code; | ||||
| private String message; | private String message; | ||||
| EnumBoxMeterStatus(Integer code, String message) { | |||||
| EnumBoxStatus(Integer code, String message) { | |||||
| this.code = code; | this.code = code; | ||||
| this.message = message; | this.message = message; | ||||
| } | } | ||||
| @@ -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; | |||||
| } | |||||
| } | |||||
| @@ -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); | |||||
| } | |||||
| @@ -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); | |||||
| } | |||||
| @@ -58,8 +58,8 @@ public interface KwBoxService { | |||||
| */ | */ | ||||
| List<KwBox> findList(KwBox record); | 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); | KwMeter findMeter(KwBox record, String addr); | ||||
| KwBox findByImei(String imei); | KwBox findByImei(String imei); | ||||
| @@ -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); | |||||
| } | |||||
| } | |||||
| @@ -1,19 +1,15 @@ | |||||
| package com.iformall.service.kw.impl; | package com.iformall.service.kw.impl; | ||||
| import com.alibaba.fastjson.JSONObject; | |||||
| 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.po.KwBox; | import com.iformall.domain.po.KwBox; | ||||
| import com.iformall.domain.po.KwBoxMeter; | |||||
| import com.iformall.domain.po.KwMeter; | import com.iformall.domain.po.KwMeter; | ||||
| import com.iformall.domain.po.KwMeterData; | import com.iformall.domain.po.KwMeterData; | ||||
| import com.iformall.enums.EnumBoxMeterStatus; | |||||
| import com.iformall.enums.EnumMeterStatus; | |||||
| import com.iformall.mapper.KwBoxMapper; | import com.iformall.mapper.KwBoxMapper; | ||||
| import com.iformall.service.kw.KwBoxMeterService; | |||||
| import com.iformall.service.kw.KwBoxService; | import com.iformall.service.kw.KwBoxService; | ||||
| import com.iformall.service.kw.KwMeterDataService; | import com.iformall.service.kw.KwMeterDataService; | ||||
| import com.iformall.service.kw.KwMeterService; | import com.iformall.service.kw.KwMeterService; | ||||
| @@ -38,9 +34,6 @@ public class KwBoxServiceImpl implements KwBoxService { | |||||
| @Autowired | @Autowired | ||||
| KwMeterDataService kwMeterDataService; | KwMeterDataService kwMeterDataService; | ||||
| @Autowired | |||||
| KwBoxMeterService kwBoxMeterService; | |||||
| @Autowired | @Autowired | ||||
| KwMeterService kwMeterService; | KwMeterService kwMeterService; | ||||
| @@ -60,8 +53,11 @@ public class KwBoxServiceImpl implements KwBoxService { | |||||
| if (record.getId() == null) { | if (record.getId() == null) { | ||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| record.setId(idWorker.nextId()); | record.setId(idWorker.nextId()); | ||||
| record.setCreateTime(new Date()); | |||||
| record.setUpdateTime(new Date()); | |||||
| kwBoxMapper.insertSelective(record); | kwBoxMapper.insertSelective(record); | ||||
| } else { | } else { | ||||
| record.setUpdateTime(new Date()); | |||||
| kwBoxMapper.updateByPrimaryKeySelective(record); | kwBoxMapper.updateByPrimaryKeySelective(record); | ||||
| } | } | ||||
| return new ResultData(); | return new ResultData(); | ||||
| @@ -109,55 +105,38 @@ public class KwBoxServiceImpl implements KwBoxService { | |||||
| } | } | ||||
| @Override | @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 new ArrayList<>(); | ||||
| } | } | ||||
| return kwMeters.stream().map(KwMeter::getAddress).collect(Collectors.toList()); | return kwMeters.stream().map(KwMeter::getAddress).collect(Collectors.toList()); | ||||
| } | } | ||||
| @Override | @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 kwMeter = new KwMeter(); | ||||
| kwMeter.setBoxId(record.getId()); | |||||
| kwMeter.setStatus(EnumMeterStatus.VALID.getCode()); | |||||
| kwMeter.setAddress(addr); | kwMeter.setAddress(addr); | ||||
| kwMeter.setIds(kwBoxMeters.stream().map(KwBoxMeter::getMeterId).collect(Collectors.toList())); | |||||
| List<KwMeter> kwMeters = kwMeterService.findList(kwMeter); | List<KwMeter> kwMeters = kwMeterService.findList(kwMeter); | ||||
| if (kwMeters.isEmpty()) { | if (kwMeters.isEmpty()) { | ||||
| logger.info("没找到盒子关联的表: ids="+kwBoxMeter.getIds() +",addr=",kwMeter.getAddress()); | |||||
| logger.info("没找到盒子关联的电表: id="+record.getId() +",addr=",kwMeter.getAddress()); | |||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -17,11 +17,13 @@ | |||||
| <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> | <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> | ||||
| <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/> | <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/> | ||||
| <result column="com_key" jdbcType="VARCHAR" property="comKey"/> | <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> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `id`,`tenant_id`,`imei`,`iccid`,`place`,`fw_version`,`hd_version`,`register_status`,`online_status`,`register_time`, | `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> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -54,6 +56,10 @@ | |||||
| <if test=" null != onlineStatus "> | <if test=" null != onlineStatus "> | ||||
| and `online_status` = #{onlineStatus} | and `online_status` = #{onlineStatus} | ||||
| </if> | </if> | ||||
| <if test=" null != status "> | |||||
| and `status` = #{status} | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| @@ -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> | |||||
| @@ -15,10 +15,13 @@ | |||||
| <result column="config" jdbcType="VARCHAR" property="config"/> | <result column="config" jdbcType="VARCHAR" property="config"/> | ||||
| <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> | <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> | ||||
| <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/> | <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/> | ||||
| <result column="box_id" jdbcType="BIGINT" property="boxId"/> | |||||
| <result column="status" jdbcType="INTEGER" property="status"/> | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <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> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -51,7 +54,15 @@ | |||||
| <if test=" null != onlineStatus "> | <if test=" null != onlineStatus "> | ||||
| and `online_status` = #{onlineStatus} | and `online_status` = #{onlineStatus} | ||||
| </if> | </if> | ||||
| <if test=" null != boxId "> | |||||
| and `box_id` = #{boxId} | |||||
| </if> | |||||
| <if test=" null != status "> | |||||
| and `status` = #{status} | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||