| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- /**
- *
- */
- package com.xcgl.dataview.controller;
- import java.text.DecimalFormat;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Random;
- import javax.servlet.http.HttpServletRequest;
- import org.jeecgframework.core.common.controller.BaseController;
- import org.jeecgframework.core.common.model.json.AjaxJson;
- import org.jeecgframework.core.util.LogUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.ModelAndView;
- import com.github.abel533.echarts.Legend;
- import com.github.abel533.echarts.Option;
- import com.github.abel533.echarts.Title;
- import com.github.abel533.echarts.axis.Axis;
- import com.github.abel533.echarts.axis.CategoryAxis;
- import com.github.abel533.echarts.series.Bar;
- import com.github.abel533.echarts.series.Line;
- import com.github.abel533.echarts.series.Pie;
- import com.xcgl.dataview.entity.DeviceStatusSumDto;
- import com.xcgl.dataview.entity.GonglvDto;
- import com.xcgl.dataview.entity.NenghaoDto;
- import com.xcgl.dataview.entity.SensorLiveTextDto;
- import com.xcgl.dataview.entity.WarningSumDto;
- import com.xcgl.dataview.service.DataviewServiceI;
- /**
- * @Title: Controller
- * @Description: 大数据展现
- * @author onlineGenerator
- * @date 2018-07-13 11:06:44
- * @version V1.0
- *
- */
- @Controller
- @RequestMapping("/dataviewController")
- public class DataviewController extends BaseController {
- @Autowired
- private DataviewServiceI dvservice;
- /**
- * 大数据展现 主 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "main")
- public ModelAndView main(HttpServletRequest request) {
- return new ModelAndView("com/xcgl/dataview/tongji");
- }
-
- /**
- * 大数据展现 压力
- *
- * @return
- */
- @RequestMapping(params = "sensor_yali")
- public ModelAndView getSensor_yali(HttpServletRequest request) {
- return new ModelAndView("com/xcgl/dataview/sensor_yali");
- }
-
- /**
- * 大数据展现 电压
- *
- * @return
- */
- @RequestMapping(params = "sensor_dianya")
- public ModelAndView getSensor_dianya(HttpServletRequest request) {
- return new ModelAndView("com/xcgl/dataview/sensor_dianya");
- }
-
-
- /**
- * 大数据展现 液位
- *
- * @return
- */
- @RequestMapping(params = "sensor_height")
- public ModelAndView getSensor_height(HttpServletRequest request) {
- return new ModelAndView("com/xcgl/dataview/sensor_height");
- }
-
- /**
- * 大数据展现 温湿度
- *
- * @return
- */
- @RequestMapping(params = "sensor_wenshidu")
- public ModelAndView getSensor_wenshidu(HttpServletRequest request) {
- return new ModelAndView("com/xcgl/dataview/sensor_wenshidu");
- }
-
- /**
- * 设备档案列表 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "getRiNenghao")
- @ResponseBody
- public AjaxJson getRiNenghao(HttpServletRequest request) {
- AjaxJson json = new AjaxJson();
- Map map = new HashMap<String, String>();
- map = dvservice.getNenghaoSumData(true);
- // Random rand = new Random();
- // String rinenghao = rand.nextInt(90)+10 + "/kwh";
- // map.put("rinenghao", rinenghao);
- //
- // String yuenenghao = rand.nextInt(900)+10 + "/kwh";
- // map.put("yuenenghao", yuenenghao);
- //
- // String jinenghao = rand.nextInt(9000)+10 + "/kwh";
- // map.put("jinenghao", jinenghao);
- json.setAttributes(map);
- return json;
- }
-
- /**
- * 获取预警柱形图Option
- *
- * @return
- */
- @RequestMapping(params = "getWarningSumBar")
- @ResponseBody
- public Option getWarningSumBar(HttpServletRequest request) {
-
- List<WarningSumDto> list = null;
- try {
- SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd");
- String date =dateformat.format(new Date());
- list = dvservice.getWarningSumData(date);
- } catch (Exception e) {
- org.jeecgframework.core.util.LogUtil.error(e.getMessage());
- }
- if(list == null || list.isEmpty()) {
- return null;
- }
-
- Option option = new Option();
-
- List<Object> seriesdata = new ArrayList<Object>();
- List<Axis> xaxisList = new ArrayList<Axis>();
- List<Object> xaxisdata = new ArrayList<Object>();
-
- CategoryAxis axis = new CategoryAxis();
-
- xaxisList.add(axis);
- for(WarningSumDto dto : list) {
- seriesdata.add(dto.getSum());
- xaxisdata.add(dto.getDeviceType().getValue());
- }
- axis.setData(xaxisdata);
- Bar bar = new Bar();
- bar.setData(seriesdata);
- option.xAxis(xaxisList);
- option.series(bar);
-
- return option;
- }
-
- /**
- * 获取功率条形图Option
- *
- * @return
- */
- @RequestMapping(params = "getGonglvBar")
- @ResponseBody
- public Option getGonglvBar(HttpServletRequest request) {
-
- List<GonglvDto> list = null;
- try {
- list = dvservice.getGonglvData(null);
- } catch (Exception e) {
- org.jeecgframework.core.util.LogUtil.error(e.getMessage());
- }
- if(list == null || list.isEmpty()) {
- return null;
- }
-
- Option option = new Option();
-
- List<Object> seriesdata = new ArrayList<Object>();
- List<Axis> yaxisList = new ArrayList<Axis>();
- List<Object> yaxisdata = new ArrayList<Object>();
-
- CategoryAxis axis = new CategoryAxis();
-
- yaxisList.add(axis);
- for(GonglvDto dto : list) {
- seriesdata.add(dto.getValue());
- yaxisdata.add(dto.getName());
- }
- axis.setData(yaxisdata);
- Bar bar = new Bar();
- bar.setData(seriesdata);
- option.yAxis(yaxisList);
- option.series(bar);
-
- return option;
- }
-
- /**
- * 获取实时数据
- *
- * @return
- */
- @RequestMapping(params = "getLiveDataText")
- @ResponseBody
- public AjaxJson getLiveDataText(HttpServletRequest request) {
- AjaxJson json = new AjaxJson();
- List<SensorLiveTextDto> list = dvservice.getSensorLiveTextDto();
- if(list == null || list.isEmpty()) {
- json.setSuccess(false);
- json.setMsg("传感器数据维护中,请稍后...");
- }else {
- HashMap<String,Object> map = new HashMap<String, Object>();
- for(int i=0 ; i<list.size() ;i++) {
- StringBuffer sb = new StringBuffer();
- SensorLiveTextDto dto = list.get(i);
- // sb.append(dto.getValueTime()).append(" : ");
- sb.append(dto.getSensor_name()).append("[");
- sb.append(dto.getValue()).append("][");
- sb.append(dto.getStatus().getText()).append("]");
- map.put(i+"", sb.toString());
- }
- json.setAttributes(map);
- }
-
- return json;
- }
-
- /**
- * 获取实时数据
- *
- * @return
- */
- @RequestMapping(params = "getLiveData")
- @ResponseBody
- public AjaxJson getLiveData(HttpServletRequest request) {
- AjaxJson json = new AjaxJson();
- Map<String, Object> map = dvservice.getDeviceCode2ValueMap();
- if(map == null || map.isEmpty()) {
- json.setSuccess(false);
- json.setMsg("传感器数据维护中,请稍后...");
- }else {
- json.setAttributes(map);
- }
-
- return json;
- }
-
- /**
- * 获取RiLiJson
- *
- * @return
- */
- @RequestMapping(params = "getRiLi")
- @ResponseBody
- public AjaxJson getRiLi(HttpServletRequest request, String startDate, String endDate) {
- AjaxJson json = new AjaxJson();
- List<DeviceStatusSumDto> list = dvservice.getDeviceStatusSumData(startDate, endDate);
- Map<String, Object> map = new HashMap<>();
- if(list != null && !list.isEmpty()) {
- for(DeviceStatusSumDto dto : list) {
- map.put(dto.getSumDate(), dto);
- }
- }
- json.setAttributes(map);
- return json;
- }
-
- /**
- * 获取能耗折线图Option
- *
- * @return
- */
- @RequestMapping(params = "getNenghaoLine")
- @ResponseBody
- public Option getNneghaoLine(HttpServletRequest request) {
- Option option = new Option();
- List<NenghaoDto> list=null;
- try {
- list = dvservice.getLastContinuousNenghaoData(6);
- } catch (Exception e) {
- org.jeecgframework.core.util.LogUtil.error(e.getMessage());
- }
- if(list == null || list.isEmpty()) {
- return null;
- }
- CategoryAxis axis = new CategoryAxis();
- List<Object> xaxisdata = new ArrayList<Object>();
- List<Object> seriesdata = new ArrayList<Object>();
- for(NenghaoDto dto : list) {
- xaxisdata.add(dto.getYear() + "-" +dto.getMonth());
- seriesdata.add(dto.getValue());
- }
- axis.setData(xaxisdata);
- Line line = new Line();
- line.setData(seriesdata);
-
- option.series(line);
- option.xAxis(axis);
- return option;
- }
-
-
- /**
- * 获取功率饼图Option
- *
- * @return
- */
- @RequestMapping(params = "getGonglvPie")
- @ResponseBody
- public Option getGonglvPie(HttpServletRequest request) {
-
- List<GonglvDto> list = null;
- try {
- list = dvservice.getGonglvData(null);
- } catch (Exception e) {
- LogUtil.error(e.getMessage());
- }
- if(list == null || list.isEmpty()) {
- return null;
- }
- Option option = new Option();
- Legend legend = new Legend();
- Pie pie = new Pie();
- List<String> legendData = new ArrayList<String>();
- List<Map> maplist= new ArrayList<Map>();
- Double sum = 0.0;
- for(GonglvDto dto : list) {
- legendData.add(dto.getName());
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("name",dto.getName());
- map.put("value", dto.getValue());
- maplist.add(map);
- sum += dto.getValue();
- }
- //设置饼图数据
- pie.setData(maplist);
-
- Title title = new Title();
- DecimalFormat df = new DecimalFormat("#.00");
- title.setText(df.format(sum));
- // 设置标题
- legend.data(legendData);
- option.setTitle(title);
- option.setLegend(legend);
- option.series(pie);
- return option;
- }
- }
|