From ac5c0ea75ed3606ff675c70c4456241495c2c8a9 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 17 Apr 2018 13:20:26 +0800
Subject: [PATCH] 组织报警间隔时间

---
 src/main/java/com/moral/entity/alarm/AlarmMode.java              |    1 
 src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java |   10 
 src/main/java/com/moral/common/util/StringUtils.java             |   51 ++++++
 src/main/resources/system/alarmLevels.json                       |  374 ++++++++++++++++++++++++----------------------
 4 files changed, 256 insertions(+), 180 deletions(-)

diff --git a/src/main/java/com/moral/common/util/StringUtils.java b/src/main/java/com/moral/common/util/StringUtils.java
index 670a2c2..b6925d9 100644
--- a/src/main/java/com/moral/common/util/StringUtils.java
+++ b/src/main/java/com/moral/common/util/StringUtils.java
@@ -81,4 +81,55 @@
 		return result;
 	}
 
+	/**
+	 *  ���������������������������
+	 * @param str
+	 * @param maxLength
+	 * @return
+	 */
+	public static String subStringCN(final String str, final int maxLength) {
+		if (str == null) {
+			return str;
+		}
+		String suffix = "...";
+		int suffixLen = suffix.length();
+
+		final StringBuffer sbuffer = new StringBuffer();
+		final char[] chr = str.trim().toCharArray();
+		int len = 0;
+		for (int i = 0; i < chr.length; i++) {
+
+			if (chr[i] >= 0xa1) {
+				len += 2;
+			} else {
+				len++;
+			}
+		}
+
+		if(len<=maxLength){
+			return str;
+		}
+
+		len = 0;
+		for (int i = 0; i < chr.length; i++) {
+
+			if (chr[i] >= 0xa1) {
+				len += 2;
+				if (len + suffixLen > maxLength) {
+					break;
+				}else {
+					sbuffer.append(chr[i]);
+				}
+			} else {
+				len++;
+				if (len + suffixLen > maxLength) {
+					break;
+				}else {
+					sbuffer.append(chr[i]);
+				}
+			}
+		}
+		sbuffer.append(suffix);
+		return sbuffer.toString();
+	}
 }
diff --git a/src/main/java/com/moral/entity/alarm/AlarmMode.java b/src/main/java/com/moral/entity/alarm/AlarmMode.java
index b3d3f76..41ca5da 100644
--- a/src/main/java/com/moral/entity/alarm/AlarmMode.java
+++ b/src/main/java/com/moral/entity/alarm/AlarmMode.java
@@ -10,6 +10,7 @@
 @Data
 public class AlarmMode {
     private boolean enable;
+    private Long interval;
     private List<AlarmStyle> level1;
     private List<AlarmStyle> level2;
     private List<AlarmStyle> level3;
diff --git a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
index 24ca266..bea09bf 100644
--- a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
@@ -47,7 +47,7 @@
     @Resource
     AlarmConfigMapper alarmConfigMapper;
     @Override
-    public Optional queryValueByOrganizationId(int organizationId) {
+    public Optional<AlarmConfigValue> queryValueByOrganizationId(int organizationId) {
         String key = RedisUtils.getAlarmKey(organizationId);
         AlarmConfigValue alarmConfigValue = redisUtils.get(key,new TypeReference<AlarmConfigValue>(){});
         if(alarmConfigValue==null) {
@@ -58,13 +58,17 @@
                 alarmConfigValue = getDefaultAlarmConfigValue();
             }
         }
-        return Optional.of(alarmConfigValue);
+        return Optional.ofNullable(alarmConfigValue);
     }
 
     @Override
     public Optional<AlarmConfig> queryByOrganizationId(int organizationId) {
         AlarmConfig alarmConfig = alarmConfigMapper.selectByOrganizationId(organizationId);
-        return Optional.of(alarmConfig);
+        if(alarmConfig==null){
+            alarmConfig = new AlarmConfig();
+            alarmConfig.setValue(getDefaultAlarmConfigValue());
+        }
+        return Optional.ofNullable(alarmConfig);
     }
 
     @Override
diff --git a/src/main/resources/system/alarmLevels.json b/src/main/resources/system/alarmLevels.json
index 7b1a534..ef409bf 100644
--- a/src/main/resources/system/alarmLevels.json
+++ b/src/main/resources/system/alarmLevels.json
@@ -1,181 +1,201 @@
 {
-    "alarmMode": {
-        "enable": 0,
-        "level1": [],
-        "level2": [],
-        "level3": []
+  "alarmMode": {
+    "enable": 0,
+    "interval":1440,
+    "level1": [],
+    "level2": [],
+    "level3": []
+  },
+  "alarmLevels": {
+    "e1": {
+      "enable": 1,
+      "increment": [
+        35,
+        115,
+        250
+      ],  
+      "degressEnable": 0,
+      "degression": [0,0,0]
     },
-    "alarmLevels": {
-        "e1": {
-            "enable": 1,
-            "increment": [
-                35,
-                115,
-                250
-            ],
-            "degression": null
-        },
-        "e2": {
-            "enable": 1,
-            "increment": [
-                50,
-                250,
-                420
-            ],
-            "degression": null
-        },
-        "e3": {
-            "enable": 0,
-            "increment": [
-                20000,
-                30000,
-                40000
-            ],
-            "degression": null
-        },
-        "e4": {
-            "enable": 0,
-            "increment": [
-                30,
-                75,
-                100
-            ],
-            "degression": null
-        },
-        "e5": {
-            "enable": 0,
-            "increment": [
-                0.01,
-                0.02,
-                0.05
-            ],
-            "degression": null
-        },
-        "e6": {
-            "enable": 0,
-            "increment": [
-                60,
-                100,
-                160
-            ],
-            "degression": null
-        },
-        "e7": {
-            "enable": 0,
-            "increment": [
-                25,
-                30,
-                40
-            ],
-            "degression": null
-        },
-        "e8": {
-            "enable": 0,
-            "increment": [
-                30,
-                40,
-                50
-            ],
-            "degression": null
-        },
-        "e9": {
-            "enable": 0,
-            "increment": [
-                0.01,
-                0.02,
-                0.03
-            ],
-            "degression": null
-        },
-        "e10": {
-            "enable": 1,
-            "increment": [
-                2,
-                14,
-                36
-            ],
-            "degression": null
-        },
-        "e11": {
-            "enable": 1,
-            "increment": [
-                50,
-                475,
-                1600
-            ],
-            "degression": null
-        },
-        "e12": {
-            "enable": 0,
-            "increment": [
-                10000,
-                15000,
-                20000
-            ],
-            "degression": null
-        },
-        "e13": {
-            "enable": 0,
-            "increment": [
-                60,
-                90,
-                120
-            ],
-            "degression": null
-        },
-        "e14": {
-            "enable": 0,
-            "increment": [
-                100,
-                200,
-                300
-            ],
-            "degression": null
-        },
-        "e15": {
-            "enable": 1,
-            "increment": [
-                160,
-                300,
-                800
-            ],
-            "degression": null
-        },
-        "e16": {
-            "enable": 1,
-            "increment": [
-                40,
-                180,
-                565
-            ],
-            "degression": null
-        },
-        "e17": {
-            "enable": 0,
-            "increment": [
-                1.5,
-                3,
-                5
-            ],
-            "degression": null
-        },
-        "e18": {
-            "enable": 0,
-            "increment": [
-                5,
-                6,
-                8
-            ],
-            "degression": null
-        },
-        "e19": {
-            "enable": 0,
-            "increment": [
-                3000,
-                4000,
-                5000
-            ],
-            "degression": null
-        }
+    "e2": {
+      "enable": 1,
+      "increment": [
+        50,
+        250,
+        420
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e3": {
+      "enable": 0,
+      "increment": [
+        20000,
+        30000,
+        40000
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e4": {
+      "enable": 0,
+      "increment": [
+        30,
+        75,
+        100
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e5": {
+      "enable": 0,
+      "increment": [
+        0.01,
+        0.02,
+        0.05
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e6": {
+      "enable": 0,
+      "increment": [
+        60,
+        100,
+        160
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e7": {
+      "enable": 0,
+      "increment": [
+        25,
+        30,
+        40
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e8": {
+      "enable": 0,
+      "increment": [
+        30,
+        40,
+        50
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e9": {
+      "enable": 0,
+      "increment": [
+        0.01,
+        0.02,
+        0.03
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e10": {
+      "enable": 1,
+      "increment": [
+        2,
+        14,
+        36
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e11": {
+      "enable": 1,
+      "increment": [
+        50,
+        475,
+        1600
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e12": {
+      "enable": 0,
+      "increment": [
+        10000,
+        15000,
+        20000
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e13": {
+      "enable": 0,
+      "increment": [
+        60,
+        90,
+        120
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e14": {
+      "enable": 0,
+      "increment": [
+        100,
+        200,
+        300
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e15": {
+      "enable": 1,
+      "increment": [
+        160,
+        300,
+        800
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e16": {
+      "enable": 1,
+      "increment": [
+        40,
+        180,
+        565
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e17": {
+      "enable": 0,
+      "increment": [
+        1.5,
+        3,
+        5
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e18": {
+      "enable": 0,
+      "increment": [
+        5,
+        6,
+        8
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
+    },
+    "e19": {
+      "enable": 0,
+      "increment": [
+        3000,
+        4000,
+        5000
+      ],
+      "degressEnable": 0,
+      "degression": [0,0,0]
     }
+  }
 }
\ No newline at end of file

--
Gitblit v1.8.0