浏览代码

更新程序

luoguangyi 3 年之前
父节点
当前提交
bd6c6be67d

+ 13 - 4
src/main/java/com/persagy/simulator_gaopin/Constant.java

@@ -2,7 +2,9 @@ package com.persagy.simulator_gaopin;
 
 import cn.hutool.core.io.resource.ResourceUtil;
 import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.persagy.simulator.MeterSimulatorWalker;
@@ -23,7 +25,7 @@ import java.util.*;
 @Slf4j
 public class Constant {
     static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-
+    public static final List<String> types = Arrays.asList("double","integer","boolean","enum","acc");
     public static String socket_or_mqtt = "socket";
 
     public static MqttConnectOptions mqtt_options;
@@ -354,9 +356,16 @@ public class Constant {
                         group.funcid = NumberUtil.parseInt(contentList.get(1));
                         group.data_type = contentList.get(2).toLowerCase();
                         group.period_second = NumberUtil.parseInt(contentList.get(3));
-                        if (group.data_type.equals("double")) {
-                        } else if (group.data_type.equals("integer") || group.data_type.equals("boolean") || group.data_type.equals("enum")|| group.data_type.equals("acc")) {
-                        } else {
+                        if(!types.contains(group.data_type)){
+                            log.warn("丢弃一行不合法参数:{}", JSON.toJSONString(group));
+                            continue;
+                        }
+                        if(group.period_second<=0){
+                            log.warn("丢弃一行不合法参数:{}", JSON.toJSONString(group));
+                            continue;
+                        }
+                        if(!ObjectUtil.isAllNotEmpty(group.meter,group.funcid)){
+                            log.warn("丢弃一行不合法参数:{}", JSON.toJSONString(group));
                             continue;
                         }
                         if (contentList.get(4) != null && contentList.get(4).trim().length() > 0

+ 3 - 3
src/main/java/com/persagy/simulator_gaopin/EntityBuilding.java

@@ -7,7 +7,7 @@ import java.util.Map;
 
 public class EntityBuilding {
 	public String id;
-	public List<EntityGroup> reportGroupList = new ArrayList<EntityGroup>();
-	public List<EntityGroup> setGroupList = new ArrayList<EntityGroup>();
-	public Map<String, EntityGroup> groupMap = new HashMap<String, EntityGroup>();
+	public final List<EntityGroup> reportGroupList = new ArrayList<EntityGroup>();
+	public final List<EntityGroup> setGroupList = new ArrayList<EntityGroup>();
+	public final Map<String, EntityGroup> groupMap = new HashMap<String, EntityGroup>();
 }

+ 8 - 10
src/main/java/com/persagy/simulator_gaopin/SimulatorUtil.java

@@ -9,6 +9,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.logging.Handler;
 
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.RandomUtil;
 import org.antlr.runtime.ANTLRInputStream;
 import org.antlr.runtime.CommonTokenStream;
@@ -47,20 +48,17 @@ public class SimulatorUtil {
 				dataString = (int) SimulatorUtil.getData(curr_time, walker, params).data;
 			}
 		}else if (data_type.equalsIgnoreCase("ACC")) {
+			double value = 0;
 			if (group.lower_limit != null && group.upper_limit != null) {
-				double value = accMap.getOrDefault(key, group.lower_limit.doubleValue()) + RandomUtil.randomDouble(group.upper_limit.doubleValue(), 2, RoundingMode.HALF_UP);
-				accMap.put(key,value);
-				dataString =value;
+				value = accMap.getOrDefault(key, group.lower_limit.doubleValue()) + RandomUtil.randomDouble(group.upper_limit.doubleValue());
 			}if (group.lower_limit != null) {
-				double value = accMap.getOrDefault(key, group.lower_limit.doubleValue()) + RandomUtil.randomDouble(3.0, 2, RoundingMode.HALF_UP);
-				accMap.put(key,value);
-				dataString =value;
+				value = accMap.getOrDefault(key, group.lower_limit.doubleValue()) + RandomUtil.randomDouble(3.0);
 			} else {
-				double value = accMap.getOrDefault(key, 0.0)+ RandomUtil.randomDouble(3.0,2, RoundingMode.HALF_UP);
-				accMap.put(key,value);
-				dataString =value;
-
+				value = accMap.getOrDefault(key, 0.0)+ RandomUtil.randomDouble(3.0);
 			}
+			value = NumberUtil.round(value,2,RoundingMode.FLOOR).doubleValue();
+			accMap.put(key,value);
+			dataString =value;
 		}else {
 			JSONArray formula_param = Constant.formula_paramMap.get(data_type);
 			int tmp_index = hash % formula_param.size();

+ 1 - 1
src/main/java/com/persagy/simulator_gaopin/Thread_report.java

@@ -102,7 +102,7 @@ public class Thread_report extends Thread {
 		if (group.rel_set_sign != null && Constant.setDataMap.containsKey(key)) {
 			dataString = "" + Constant.setDataMap.get(key).data;
 		} else {
-			dataString = SimulatorUtil.getValue(group, meter, funcid, data_type, curr_time,key);
+			dataString = SimulatorUtil.getValue(group, meter, funcid, data_type, curr_time,building.id + "-" + meter + "-" + funcid);
 			Constant.reportDataMap.get(building.id + "-" + meter + "-" + funcid).data = Double.parseDouble(dataString.toString());
 		}
 		ParserEntity packet = new ParserEntity();

+ 2 - 2
src/main/resources/config.xml

@@ -5,8 +5,8 @@
 	<mqtt url="tcp://127.0.0.1:61613" clientId="simulator-collector-4403070003" username="admin" password="password" topic_prefix="project" />
 	
 	<PROTOCOL>TCP</PROTOCOL>
-	<ServerIP>192.168.100.102</ServerIP>
-	<ServerPort>30853</ServerPort>
+	<ServerIP>127.0.0.1</ServerIP>
+	<ServerPort>8853</ServerPort>
 	<Mode>mina</Mode>
 	<Max_size>10000</Max_size>
 	<SleepCount>1000</SleepCount>

+ 11 - 9
src/main/resources/log4j.properties

@@ -1,18 +1,20 @@
-log4j.rootLogger=INFO,ConsoleAppender, RollingLogFileAppender
-
+log4j.rootLogger=INFO,ConsoleAppender,RollingLogFileAppender
+#print file   org.apache.log4j.DailyRollingFileAppender
 log4j.appender.RollingLogFileAppender=org.apache.log4j.RollingFileAppender
 log4j.appender.RollingLogFileAppender.Threshold=INFO
-log4j.appender.RollingLogFileAppender.ImmediateFlush=true
-log4j.appender.RollingLogFileAppender.File=log.log
+log4j.appender.RollingLogFileAppender.ImmediateFlush=false
+log4j.appender.RollingLogFileAppender.File=../logs/simulator-collector/log.log
 log4j.appender.RollingLogFileAppender.Append=true
-log4j.appender.RollingLogFileAppender.MaxFileSize=128MB
-log4j.appender.RollingLogFileAppender.MaxBackupIndex=16
+log4j.appender.RollingLogFileAppender.MaxFileSize=20MB
+log4j.appender.RollingLogFileAppender.Encoding=UTF-8
+log4j.appender.RollingLogFileAppender.MaxBackupIndex=100
 log4j.appender.RollingLogFileAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.RollingLogFileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %t %m%n
-
+log4j.appender.RollingLogFileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%-5p %l - %m%n
+#print Console
 log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender
 log4j.appender.ConsoleAppender.Threshold=INFO
 log4j.appender.ConsoleAppender.ImmediateFlush=true
 log4j.appender.ConsoleAppender.Target=System.out
 log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.ConsoleAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %t %m%n
+log4j.appender.ConsoleAppender.Encoding=UTF-8
+log4j.appender.ConsoleAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %m%n

二进制
src/main/resources/report.xlsx