Browse Source

分页

master
lijunjie 3 years ago
parent
commit
924591c76e
  1. 19
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/device/OnenetEquipController.java
  2. 21
      ruoyi-admin/src/main/java/com/ruoyi/web/domain/dto/OnenetEquipDto.java
  3. 15
      ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/OnenetEquipVo.java
  4. 9
      ruoyi-admin/src/main/java/com/ruoyi/web/service/IOnenetEquipService.java
  5. 65
      ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/OnenetEquipServiceImpl.java
  6. 10
      ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
  7. 167
      ruoyi-ui/src/views/device/equips/index.vue

19
ruoyi-admin/src/main/java/com/ruoyi/web/controller/device/OnenetEquipController.java

@ -1,10 +1,12 @@
package com.ruoyi.web.controller.device;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.web.domain.dto.OnenetEquipDto;
import com.ruoyi.web.domain.po.OnenetConfig;
@ -41,12 +43,11 @@ public class OnenetEquipController extends BaseController
*/
@PreAuthorize("@ss.hasPermi('device:equip:list')")
@GetMapping("/list")
public TableDataInfo list(OnenetEquip onenetConfig)
public TableDataInfo list(OnenetEquipDto.QureyEquipParam qureyEquipParam)
{
startPage();
List<OnenetEquipVo.EquipList> list = onenetEquipService.selectOnenetEquipList(onenetConfig);
return getDataTable(list);
OnenetEquipVo.EquipListTotal equipListTotal = onenetEquipService.selectOnenetEquipList(qureyEquipParam);
return getDataTable(equipListTotal.getEquipLists(), equipListTotal.getTotal());
}
/**
@ -68,11 +69,11 @@ public class OnenetEquipController extends BaseController
@PreAuthorize("@ss.hasPermi('device:equip:export')")
@Log(title = "onenet参数", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, OnenetEquip onenetConfig)
public void export(HttpServletResponse response, OnenetEquipDto.QureyEquipParam qureyEquipParam)
{
List<OnenetEquipVo.EquipList> list = onenetEquipService.selectOnenetEquipList(onenetConfig);
OnenetEquipVo.EquipListTotal equipListTotal = onenetEquipService.selectOnenetEquipList(qureyEquipParam);
ExcelUtil<OnenetEquipVo.EquipList> util = new ExcelUtil<OnenetEquipVo.EquipList>(OnenetEquipVo.EquipList.class);
util.exportExcel(response, list, "onenet参数数据");
util.exportExcel(response, equipListTotal.getEquipLists(), "onenet参数数据");
}
/**
@ -102,9 +103,9 @@ public class OnenetEquipController extends BaseController
public TableDataInfo equipData(OnenetEquipDto.EquipDataParam equipDataParam)
{
startPage();
List<OnenetEquipVo.EquipData> equipDatas = onenetEquipService.selectEquipDatas(equipDataParam);
OnenetEquipVo.EquipDataTotal equipDataTotal = onenetEquipService.selectEquipDatas(equipDataParam);
return getDataTable(equipDatas);
return getDataTable(equipDataTotal.getEquipDataList(), equipDataTotal.getTotal());
}
}

21
ruoyi-admin/src/main/java/com/ruoyi/web/domain/dto/OnenetEquipDto.java

@ -36,14 +36,27 @@ public class OnenetEquipDto {
private String command;
}
@ApiModel("OnenetEquipDto - QureyEquipParam")
@Data
public static class QureyEquipParam{
@ApiModelProperty("页码")
private String pageNum = "1";
@ApiModelProperty("每页多少条")
private String pageSize = "10";
@ApiModelProperty("关键字")
private String key_words;
}
@ApiModel("OnenetEquipDto - EquipDataParam")
@Data
public static class EquipDataParam{
@ApiModelProperty("页码")
private String pageNum = "1";
@ApiModelProperty("每页多少条")
private String pageSize = "10";
@ApiModelProperty("设备id")
private String obj_id;
@ApiModelProperty("开始时间")
private String start;
@ApiModelProperty("结束时间")
private String end;
@ApiModelProperty("时间")
private String[] equipDataTime;
}
}

15
ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/OnenetEquipVo.java

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author: lijunjie
@ -12,6 +13,13 @@ import java.util.Date;
* @Version: 1.0
*/
public class OnenetEquipVo {
@Data
@ApiModel("DcsDeviceValVo-二氧化硫温度")
public static class EquipListTotal {
private Integer total;
private List<OnenetEquipVo.EquipList> equipLists;
}
@Data
@ApiModel("DcsDeviceValVo-二氧化硫温度")
public static class EquipList {
@ -40,6 +48,13 @@ public class OnenetEquipVo {
private Date updateTime;
}
@Data
@ApiModel("DcsDeviceValVo-二氧化硫温度")
public static class EquipDataTotal {
private Integer total = 0;
private List<OnenetEquipVo.EquipData> equipDataList;
}
@Data
@ApiModel("DcsDeviceValVo-二氧化硫温度")
public static class EquipData {

9
ruoyi-admin/src/main/java/com/ruoyi/web/service/IOnenetEquipService.java

@ -24,11 +24,10 @@ public interface IOnenetEquipService
/**
* 查询设备列表
*
* @param onenetEquip 设备
* @return 设备集合
* @param qureyEquipParam
* @return
*/
public List<OnenetEquipVo.EquipList> selectOnenetEquipList(OnenetEquip onenetEquip);
public OnenetEquipVo.EquipListTotal selectOnenetEquipList(OnenetEquipDto.QureyEquipParam qureyEquipParam);
/**
* 写缓存命令
@ -42,5 +41,5 @@ public interface IOnenetEquipService
* @param equipDataParam
* @return
*/
public List<OnenetEquipVo.EquipData> selectEquipDatas(OnenetEquipDto.EquipDataParam equipDataParam);
public OnenetEquipVo.EquipDataTotal selectEquipDatas(OnenetEquipDto.EquipDataParam equipDataParam);
}

65
ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/OnenetEquipServiceImpl.java

@ -2,6 +2,7 @@ package com.ruoyi.web.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
@ -44,12 +45,13 @@ public class OnenetEquipServiceImpl implements IOnenetEquipService {
}
@Override
public List<OnenetEquipVo.EquipList> selectOnenetEquipList(OnenetEquip onenetEquip) {
public OnenetEquipVo.EquipListTotal selectOnenetEquipList(OnenetEquipDto.QureyEquipParam qureyEquipParam) {
OnenetConfig onenetConfigExample = new OnenetConfig();
onenetConfigExample.setConfigKey("onenet_api_key");
List<OnenetConfig> onenetConfigs = onenetConfigMapper.selectOnenetConfigList(onenetConfigExample);
List<OnenetEquipVo.EquipList> list = new ArrayList<>();
OnenetEquipVo.EquipListTotal equipListTotal = new OnenetEquipVo.EquipListTotal();
if (onenetConfigs.size() > 0){
OnenetConfig onenetConfig = onenetConfigs.get(0);
@ -60,19 +62,24 @@ public class OnenetEquipServiceImpl implements IOnenetEquipService {
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(null,headers);
HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("page", "1");
paramMap.put("per_page", "10");
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("page", qureyEquipParam.getPageNum());
paramMap.put("per_page", qureyEquipParam.getPageSize());
if (!StrUtil.hasEmpty(qureyEquipParam.getKey_words())){
paramMap.put("key_words", qureyEquipParam.getKey_words());
}
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class, paramMap);
String response = HttpRequest.get(url).header("api-key", onenetConfig.getConfigValue()).form(paramMap).execute().body();
String body = response.getBody();
JSONObject json1 = JSON.parseObject(body);
JSONObject json1 = JSON.parseObject(response);
JSONObject json2 = json1.getJSONObject("data");
JSONArray devices = json2.getJSONArray("devices");
int total = json2.getInteger("total_count");
equipListTotal.setTotal(total);
if (devices.size() > 0){
List<OnenetEquipVo.EquipList> list = new ArrayList<>();
for (int i = 0; i < devices.size(); i++) {
JSONObject device = devices.getJSONObject(i);
@ -89,12 +96,12 @@ public class OnenetEquipServiceImpl implements IOnenetEquipService {
list.add(onenetEquipData);
}
// list = JSON.parseArray(devices.toJSONString(),OnenetEquip.class);
return list;
equipListTotal.setEquipLists(list);
return equipListTotal;
}
}
return list;
return equipListTotal;
}
/**
@ -163,30 +170,34 @@ public class OnenetEquipServiceImpl implements IOnenetEquipService {
* @return
*/
@Override
public List<OnenetEquipVo.EquipData> selectEquipDatas(OnenetEquipDto.EquipDataParam equipDataParam) {
public OnenetEquipVo.EquipDataTotal selectEquipDatas(OnenetEquipDto.EquipDataParam equipDataParam) {
OnenetConfig onenetConfigExample = new OnenetConfig();
onenetConfigExample.setConfigKey("onenet_api_key");
List<OnenetConfig> onenetConfigs = onenetConfigMapper.selectOnenetConfigList(onenetConfigExample);
List<OnenetEquipVo.EquipData> onenetEquipVoList = new ArrayList<>();
OnenetEquipVo.EquipDataTotal equipDataTotal = new OnenetEquipVo.EquipDataTotal();
if (onenetConfigs.size() > 0) {
HashMap<String, String> uriParams = new HashMap<>();
if (!StrUtil.hasEmpty(equipDataParam.getStart())){
uriParams.put("start", equipDataParam.getStart());
}
if (!StrUtil.hasEmpty(equipDataParam.getEnd())){
uriParams.put("end", equipDataParam.getEnd());
}
HashMap<String, Object> paramMap = new HashMap<>();
String uriParam = HttpUtil.toParams(uriParams);
if (!StrUtil.hasEmpty(equipDataParam.getEquipDataTime())){
String url = "http://api.heclouds.com/devices/" + equipDataParam.getObj_id() +"/datapoints?" + uriParam;
paramMap.put("start", equipDataParam.getEquipDataTime()[0]);
paramMap.put("end", equipDataParam.getEquipDataTime()[1]);
}
String url = "http://api.heclouds.com/devices/" + equipDataParam.getObj_id() +"/datapoints";
OnenetConfig onenetConfig = onenetConfigs.get(0);
// String response = HttpRequest.get(url).header("api-key", onenetConfig.getConfigValue()).execute().body();
String response = "{\"errno\":0,\"data\":{\"count\":1,\"datastreams\":[{\"datapoints\":[{\"at\":\"2023-01-09 17:47:15.969\",\"value\":\"68C00866472059908495852F015100FFFE0A6464220901002310010014731641646400000065014E000000000000182301091747150503000002015116\"}, {\"at\":\"2023-01-09 17:47:15.969\",\"value\":\"68C00866472059908495852F015100FFFE0A6464220901002310010014731641646400000065014E000000000000182301091747150503000002015116\"}],\"id\":\"3200_0_5750\"}]},\"error\":\"succ\"}";
// String response = HttpRequest.get(url).header("api-key", onenetConfig.getConfigValue()).form(paramMap).execute().body();
String response = "{\"errno\":0,\"data\":{\"count\":1,\"datastreams\":[{\"datapoints\":[" +
"{\"at\":\"2023-01-09 17:47:15.969\",\"value\":\"68C00866472059908495852F015100FFFE0A6464220901002310010014731641646400000065014E000000000000182301091747150503000002015116\"}, " +
"{\"at\":\"2023-01-09 17:47:15.969\",\"value\":\"68C00866472059908495852F015100FFFE0A6464220901002310010014731641646400000065014E000000000000182301091747150503000002015116\"}, " +
"{\"at\":\"2023-01-09 17:47:15.969\",\"value\":\"68C00866472059908495852F015100FFFE0A6464220901002310010014731641646400000065014E000000000000182301091747150503000002015116\"}" +
"],\"id\":\"3200_0_5750\"}]},\"error\":\"succ\"}";
JSONObject responseJson = JSON.parseObject(response);
@ -196,6 +207,7 @@ public class OnenetEquipServiceImpl implements IOnenetEquipService {
JSONArray dataArray = dataJson.getJSONArray("datastreams");
JSONArray datapoints = dataArray.getJSONObject(0).getJSONArray("datapoints");
List<OnenetEquipVo.EquipData> onenetEquipVoList = new ArrayList<>();
for (int i = 0; i < datapoints.size(); i++) {
JSONObject datapoint = datapoints.getJSONObject(i);
@ -270,10 +282,11 @@ public class OnenetEquipServiceImpl implements IOnenetEquipService {
onenetEquipVoList.add(equipDataVo);
}
equipDataTotal.setEquipDataList(onenetEquipVoList);
}
}
return onenetEquipVoList;
return equipDataTotal;
}
public String hexToBin(String hexS){

10
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@ -90,6 +90,16 @@ public class BaseController
return rspData;
}
protected TableDataInfo getDataTable(List<?> list, long total)
{
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(total);
return rspData;
}
/**
* 返回成功
*/

167
ruoyi-ui/src/views/device/equips/index.vue

@ -8,58 +8,10 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="设备名称" prop="title">
<el-form-item label="关键字" prop="key_words">
<el-input
v-model="queryParams.title"
placeholder="请输入设备名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否在线" prop="online">
<el-input
v-model="queryParams.online"
placeholder="请输入是否在线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备标签" prop="tags">
<el-input
v-model="queryParams.tags"
placeholder="请输入设备标签"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="接入协议 " prop="protocol">
<el-input
v-model="queryParams.protocol"
placeholder="请输入接入协议 "
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="位置" prop="location">
<el-input
v-model="queryParams.location"
placeholder="请输入位置"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="NBIOT设备" prop="authInfo">
<el-input
v-model="queryParams.authInfo"
placeholder="请输入NBIOT设备"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="其他信息" prop="otherInfo">
<el-input
v-model="queryParams.otherInfo"
placeholder="请输入其他信息"
v-model="queryParams.key_words"
placeholder="请输入关键字"
clearable
@keyup.enter.native="handleQuery"
/>
@ -70,52 +22,6 @@
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['device:equips:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:equips:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['device:equips:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['device:equips:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="equipsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
@ -149,25 +55,6 @@
>设备数据点</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:equips:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:equips:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
@ -264,6 +151,23 @@
<!-- 设备数据点-->
<el-dialog title="设备数据点" :visible.sync="equipDataOpen" width="80%">
<el-form :model="equipDataParam" ref="queryFormEquipData" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="时间" prop="otherInfo">
<el-date-picker
v-model="equipDataParam.equipDataTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期" @click="">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getEquipDatas(null)">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetEquipData">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="equipDataList">
<el-table-column label="阀开关" align="center" prop="valveStatus1" fixed />
<el-table-column label="阀门状态" align="center">
@ -295,6 +199,7 @@
<el-table-column label="原始数据" align="center" prop="deviceData" width="1000" />
<el-table-column label="时间" align="center" prop="dataTime" fixed="right" />
</el-table>
</el-dialog>
</div>
</template>
@ -333,23 +238,25 @@ export default {
//
equipsList: [],
equipDataList: [],
equipDataTotal: 0,
apiKey:null,
//
title: "",
//
open: false,
equipDataOpen:false,
//
equipDataParam: {
pageNum: 1,
pageSize: 10,
obj_id:0,
equipDataTime:"",
},
//
queryParams: {
pageNum: 1,
pageSize: 10,
title: null,
online: null,
tags: null,
protocol: null,
location: null,
authInfo: null,
otherInfo: null,
key_words: null,
imei:null,
obj_id:null,
@ -422,15 +329,21 @@ export default {
this.equipDataOpen = true;
this.title = "查询设备数据点";
this.loading = true;
let param = {
obj_id:row.id
if (row != null){
this.equipDataParam.obj_id = row.id
}
listEquipDatas(param).then(response => {
listEquipDatas(this.equipDataParam).then(response => {
this.equipDataList = response.rows;
// this.total = response.total;
this.equipDataTotal = response.total;
this.loading = false;
});
},
resetEquipData() {
this.equipDataParam.equipDataTime = "";
this.getEquipDatas();
},
//
cancel() {
this.open = false;

Loading…
Cancel
Save