fengxiang
2018-05-10 f9abb9474b09cf37ac4bbd6a65ea6229ebc06214
src/main/java/com/moral/controller/ScreenController.java
@@ -7,9 +7,6 @@
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -20,6 +17,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.moral.entity.alarm.AlarmConfig;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;
@@ -58,7 +56,7 @@
import com.moral.entity.alarm.AlarmSensorLevel;
import com.moral.service.AccountService;
import com.moral.service.AlarmConfigService;
import com.moral.service.AlarmService;
import com.moral.service.AlarmDailyService;
import com.moral.service.AreaService;
import com.moral.service.DeviceService;
import com.moral.service.HistoryMinutelyService;
@@ -116,7 +114,7 @@
   private String levelKey = "alarm_";
   @Resource
   private AlarmService alarmService;
   private AlarmDailyService alarmDailyService;
   /**
    * Screen login. 大屏登录
    * 
@@ -271,49 +269,46 @@
   private int port = 21;
   private String path = "/";
   private String urlStr = "http://www.7drlb.com/apps/Version.xml";
   @RequestMapping(value = "/upgrade", method = RequestMethod.GET)
   public Version index() {
      Version version = new Version();
//      FTPClient ftpClient = new FTPClient();
      FTPClient ftpClient = new FTPClient();
      try {
//         ftpClient.connect(ip, port);
//         ftpClient.login(userName, userPwd);
//         ftpClient.changeWorkingDirectory(path);
//         //ftpClient.enterRemotePassiveMode();
//         //ftpClient.enterLocalPassiveMode();
//         ftpClient.enterLocalActiveMode();
//         //ftpClient.enterRemoteActiveMode(InetAddress.getByName(ip), port);
//
//         InputStream ins = ftpClient.retrieveFileStream(fileName);
//         BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"utf-8"));
//         String line;
//         StringBuilder builder = new StringBuilder();
//         while ((line = reader.readLine()) != null) {
//            builder.append(line);
//         }
//         reader.close();
//         if (ins != null) {
//            ins.close();
//         }
//         ftpClient.getReply();
//         String content = builder.toString();
//         if(ftpClient.isConnected()) {
//            ftpClient.logout();
//            ftpClient.disconnect();
//         }
         ftpClient.connect(ip, port);
         ftpClient.login(userName, userPwd);
         ftpClient.changeWorkingDirectory(path);
         ftpClient.enterLocalPassiveMode();
         //ftpClient.enterLocalActiveMode();
         URL realUrl = new URL(urlStr);
         URLConnection connection = realUrl.openConnection();
         connection.connect();
         StringBuffer result = new StringBuffer();
         BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
         InputStream ins = ftpClient.retrieveFileStream(fileName);
         BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"utf-8"));
         String line;
         while ((line = in.readLine()) != null) {
            result.append(line);
         StringBuilder builder = new StringBuilder();
         while ((line = reader.readLine()) != null) {
            builder.append(line);
         }
         String content = result.toString();
         reader.close();
         if (ins != null) {
            ins.close();
         }
         ftpClient.getReply();
         String content = builder.toString();
         if(ftpClient.isConnected()) {
            ftpClient.logout();
            ftpClient.disconnect();
         }
//         String urlStr = "http://www.7drlb.com/apps/Version.xml";
//         URL realUrl = new URL(urlStr);
//         URLConnection connection = realUrl.openConnection();
//         connection.connect();
//         StringBuffer result = new StringBuffer();
//         BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
//         String line;
//         while ((line = in.readLine()) != null) {
//            result.append(line);
//         }
//         String content = result.toString();
         SAXReader saxReader = new SAXReader();
         Document document = saxReader.read(new InputSource(new ByteArrayInputStream(content.getBytes("utf-8"))));
@@ -496,8 +491,44 @@
            parameters.remove("organizationId");
         }
      }
      Map pieData = alarmService.getPieData(parameters);
      Map pieData = alarmDailyService.getPieData(parameters);
      List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
      return new ResultBean<List<Map<String, Object>>>(list);
   }
   /**
    * 获取报警阀值
    * @param mpid
    * @return
    */
   @GetMapping("getalevels")
   public ResultBean<Map<String,AlarmSensorLevel>> getAlarmLevelByMonitorPointId(int mpid){
      AlarmConfig alarmConfig = alarmConfigService.queryByMonitorPointId(mpid).get();
        Map<String,AlarmSensorLevel> alarmSensorLevelMap = alarmConfig.getValue().getAlarmLevels();
        // 当前非取默认值,未设值将用默认值覆盖
        if(alarmConfig.getId()!=null){
            AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue();
            Map<String,AlarmSensorLevel> defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels();
            Map<String,AlarmSensorLevel> alarmSensorLevelMapNotZO = alarmSensorLevelMap.entrySet().stream().collect(
                    HashMap::new,
                    (map,entry) -> {
                        AlarmSensorLevel alarmSensorLevel = entry.getValue();
                        if(alarmSensorLevel.isEnable()||alarmSensorLevel.isDegressEnable()){
                            map.put(entry.getKey(),entry.getValue());
                        }
                    },
                    (oMap,nMap) -> {
                        oMap.putAll(nMap);
                    }
            );
            // 已设置的选项覆盖默认选项
            defaultSensorLevelMap.putAll(alarmSensorLevelMapNotZO);
            alarmSensorLevelMap = defaultSensorLevelMap;
        }
      ResultBean<Map<String,AlarmSensorLevel>> resultBean = new ResultBean();
      resultBean.setCode(ResultBean.SUCCESS);
      resultBean.setData(alarmSensorLevelMap);
      return resultBean;
   }
}