fengxiang
2018-06-23 19cfd37456d6bf42fcb90207b481637f56aedb6d
src/main/java/com/moral/controller/ScreenController.java
@@ -3,17 +3,18 @@
import static com.moral.common.util.ResourceUtil.getValue;
import static com.moral.common.util.WebUtils.getParametersStartingWith;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.*;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.alibaba.fastjson.JSONReader;
import com.alibaba.fastjson.TypeReference;
import com.moral.entity.*;
import com.moral.entity.alarm.AlarmConfig;
import com.moral.entity.alarm.AlarmConfigValue;
import com.moral.entity.charts.DataSortCondition;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;
@@ -35,7 +36,6 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import org.xml.sax.InputSource;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.moral.common.bean.Constants;
@@ -44,11 +44,6 @@
import com.moral.common.bean.ResultBean;
import com.moral.common.util.ValidateUtil;
import com.moral.common.xml.Version;
import com.moral.entity.Account;
import com.moral.entity.Device;
import com.moral.entity.MapBounds;
import com.moral.entity.MonitorPoint;
import com.moral.entity.alarm.AlarmConfigValue;
import com.moral.entity.alarm.AlarmSensorLevel;
import com.moral.service.AccountService;
import com.moral.service.AlarmConfigService;
@@ -61,6 +56,11 @@
import com.moral.service.MonitorPointService;
import com.moral.service.SensorService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
/**
 * The Class ScreenController.大屏接口
 */
@@ -68,6 +68,7 @@
@RequestMapping("/screen")
//@CrossOrigin(origins = "*", maxAge = 3600)
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
@Api(tags = "Screen", description = "大屏相关")
public class ScreenController {
   public  static Logger log = Logger.getLogger(ScreenController.class);
    @Resource
@@ -99,8 +100,8 @@
   private MachineActivateService machineActivateService;
   /** The resource. */
   @Value(value = "classpath:system/alarmLevels.json")
   private org.springframework.core.io.Resource resource;
//   @Value(value = "classpath:system/alarmLevels.json")
//   private org.springframework.core.io.Resource resource;
   /** The redis template. */
   @Resource
@@ -224,6 +225,29 @@
      return result;
   }
   /**
    *
    * @param dataSortCondition 数据排名查询条件
    * @return
    */
   public ResultBean<Map<String,Object>> getOrderData(DataSortCondition dataSortCondition) {
      ResultBean resultBean = new ResultBean();
      if(dataSortCondition.getCode()==null){
         resultBean.setCode(ResultBean.FAIL);
         resultBean.setMessage("code can't be null");
      } else if(dataSortCondition.getStyle()==null){
         resultBean.setCode(ResultBean.FAIL);
         resultBean.setMessage("style can't be null");
      }
      String code = dataSortCondition.getCode().toString();
      Region region = Region.create(code);
      if(region == null) {
         resultBean.setCode(ResultBean.FAIL);
         resultBean.setMessage("code is not in the correct format");
      }
      // todo
      return  null;
   }
   /**
    * Gets the day AQI by sensor.设备昨日的AQI指标
    *
@@ -534,4 +558,39 @@
   public ResultBean<List<Integer>> getVersions(Integer mptid){
      return  new ResultBean<>(monitorPointService.queryVersionsById(mptid));
   }
   @GetMapping("region_ranking_data")
   @ApiOperation(value = "获取排名数据", notes = "获取排名数据")
   @ApiImplicitParams(value = {
         @ApiImplicitParam(name = "regionCode", value = "区域码", required = true, paramType = "query", dataType = "String"),
         @ApiImplicitParam(name = "dimension", value = "维度(profession、region、monitorPoint选一)", required = true, paramType = "query", dataType = "String"),
         @ApiImplicitParam(name = "sensorKey", value = "传感器key", required = true, paramType = "query", dataType = "String"),
         @ApiImplicitParam(name = "accountId", value = "账户id", required = true, paramType = "query", dataType = "int"),
   })
   public ResultBean<List<Map<String, Object>>> getRegionRankingData(HttpServletRequest request){
      Map<String, Object> parameters = getParametersStartingWith(request, null);
      List<Map<String, Object>> list = historyService.getRegionRankingData(parameters);
      return new ResultBean<List<Map<String, Object>>>(list);
   }
   // todo
   @Value(value = "classpath:system/realTimeMonitorLayout.json")
   private org.springframework.core.io.Resource resource;
   @ApiOperation(value = "获取实时监控页面布局", notes = "")
   @ApiImplicitParams(value = {
         @ApiImplicitParam(name = "primaryKey",defaultValue = "898607b0101730391967", value = "值为:设备mac或监控站id", required = true, paramType = "query", dataType = "String"),
         @ApiImplicitParam(name = "type", defaultValue = "device",value = "值为:'monitorPoint'或'device'", required = true, paramType = "query", dataType = "String"),
   })
   @GetMapping("rtm-layout")
   public ResultBean realTimeMonitorLayout(String primaryKey,String type){
      InputStreamReader reader = null;
      Map<String,Object> map = null;
      try {
         reader = new InputStreamReader(resource.getInputStream(),"UTF-8");
         map = new JSONReader(reader).readObject(new TypeReference<Map<String,Object>>() {});
      } catch (IOException e) {
         e.printStackTrace();
      }
      return new ResultBean(map);
   }
}