1.简单的redis数据处理

公司项目介绍

目前我所做的项目是一个集几个相互关联系统的系统,简述一下:我们公司的外部设备有制氢,光伏发电,电梯,燃料电池等设备;我们通过光伏发电带动制氢设备,制得的氢气燃烧获得电能,再将上述电能用于电梯,公司电器等设备。在上述过程中涉及到很多数据的采集以及检测,我们通过一些手段(这个是另外一个部门在做,目前没有接触无法描述)采集到采集服务器,然后发给我们的中间层mogen再转到redis,然后我们就可以在java上去处理这些数据。这整个过程是不同部门协调完成的,我目前只能做将redis中的数据处理的工作,那么今天就来讲述将redis中的数据处理完成的过程。
1.前端页面
我们通过分析讨论得到前端各个模块的页面后,将redis数据通过表格展示,图表展示等方式对数据进行处理。这里我们将一个代表页面做为一个示例来描述这个过程:在这里插入图片描述

下面的前端代码代表上面图片的某个原点:

<div style="margin-top: 13%" id="f42">
   			<div class='circle' style="left: 100%;">
				<div id="centerf41" class='center' style="left: 100%;"></div>
				<div class="shuli" style="margin-left: -1px">通过modbus写入参数控制</div>
			</div>
    	</div>

我们将这个页面的js部分代码贴出来:
2. 函数编写:(1)ajax函数:function start(id){function start(id){函数编写:(1)ajax函数:function start(id){function start(id){
var requestData = $.param({“id”:id}, true);
$.ajax({
url : ‘redis/select’,
type : “POST”,
dataType: ‘json’,
data : requestData,
success : function(data) {
var status = data.dataCount;
for(i in status){
if(status[i] == 0){
setCssStyle(id+i,"#66CD00",“redanimations”);//调用设置样式的函数,判断获取的数据为0时显示绿色,其他为红色,既状态的显示
}else{
setCssStyle(id+i,"#CD2626",“redanimations”);
}
}
},
error: function() {
alert(“error”);
}
});
}
(2)样式函数: function setCssStyle(circleName,bkg,anminationName){
var border = “1px solid “+bkg;
anmination = anminationName + " 2s ease infinite”;
$(”#"+anminationName).css({
width:“30px”,height:“30px”,
“border-radius”:“50%”,“background-color”:"#ADADAD",“float”: “left”}); */
$("#"+circleName).css({
“border”:border,
“background”:bkg,
“-moz-animation”:anmination,
“-webkit-animation”:anmination,
“-o-animation”:anmination,
“-ms-animation”:anmination,
“animation”:anmination
});
}

3.函数调用:
$(document).ready(function(){
start(“center”);
$("#button1").click(function(){
start(“center”);
});
})
4.后台处理
(1)controller层:
@Controller
@RequestMapping(value = “/redis”)
public class RedisDataController {
@Resource(name = “cacheRedisTemplate”)
private ListOperations<String, String> listOpsTid2Data;//设置一个String的List

public static final String KEY = “wips.w02_FORWEB”;//通过相关配置(还不了解,这个是获取redis数据的关键)后,这个key放在上面的list中就可以获取到redis的数据,等以后了解到这块内容我会自己配置来进行讲解
@RequestMapping(value = “/select”, method = RequestMethod.POST)
@ResponseBody//自动将发送的数据打包成json格式
public Map<String, Object> select(@RequestParam(value = “id”, required = true) String id) {
//前端发送参数时我们通过@RequestParam(value = “id”, required = true来获取,用来对数据库的操作,逻辑的判断等
List datas = listOpsTid2Data.range(KEY, 0, -1);获取配置好的redis数据
// Student finds = new Student();
// finds.setsName(“aa”);
// userDao.insert(finds);
/*
* HashMap<String, Object> resultMap = new HashMap<String, Object>();
* resultMap.put(“commonMessage”, content);
/
String data = datas.get(0);
String[] dataAll = data.split(",");
Map<String, Object> returnDate = new HashMap<String, Object>();
/
String[] dataCount = new String[100]; */
List dataCount = new ArrayList();
if (id.equals(“center”)) {
dataCount.add(dataAll[25]);
dataCount.add(dataAll[26]);
dataCount.add(dataAll[27]);
dataCount.add(dataAll[75]);
dataCount.add(dataAll[82]);
dataCount.add(dataAll[96]);
dataCount.add(dataAll[97]);
System.out.println(dataCount);
}
return returnDate;//返回一个字符集合
}
5.总结
我们这里没有serivce层和dao层的原因是我们的数据没有通过model来存储,是直接在redis中获取后放在集合中,然后打包成json数据发送到前台,前台通过遍历来对数据进行处理,我们发送的为0,1,2三种状态的数据,通过逻辑判断来对页面上的原点进行样式的改变,0为红色代表不正常,1为黄色代表待机,2为绿色代表正常。

猜你喜欢

转载自blog.csdn.net/qq_38347518/article/details/83036172