Selaa lähdekoodia

更新思迪相关代码

yangjingjing 5 vuotta sitten
vanhempi
commit
0e9ece36f9

+ 12 - 1
febs-server/gbd-demp-data-exchange/src/main/java/com/gbd/demp/data/exchange/controller/LiveDataController.java

@@ -97,6 +97,12 @@ public class LiveDataController {
         }
     }
 
+    /**
+     * 数据来源:安监平台
+     * @param liveData
+     * @return
+     * @throws FebsException
+     */
     @PostMapping("acceptLiveData")
     public FebsResponse acceptLiveData(String liveData) throws FebsException {
         try {
@@ -124,8 +130,13 @@ public class LiveDataController {
         return new FebsResponse().data(this.liveDataService.getLiveData(deviceId));
     }
 
+    /**
+     * 数据来源:思迪
+     * @param liveData
+     * @return
+     */
     @RequestMapping(value = "uploadLiveData", produces = "application/json;charset=UTF-8")
-    public FebsResponse uploadLiveData(@RequestBody Map<String, Object> liveData) {
+    public FebsResponse uploadLiveData(String liveData) {
         try {
             liveDataTask.liveTask(liveData);
 //            log.info("liveData:" + liveData);

+ 91 - 13
febs-server/gbd-demp-data-exchange/src/main/java/com/gbd/demp/data/exchange/task/LiveDataTask.java

@@ -50,6 +50,7 @@ public class LiveDataTask {
 
 
     //获取异步结果
+    //处理案件平台数据
     @Transactional(rollbackFor = Exception.class)
     public Future<String> alarmTask(String liveData) {
         try {
@@ -236,12 +237,88 @@ public class LiveDataTask {
         return new AsyncResult<String>("完成");
     }
 
-
-    public Future<String> liveTask(Map<String, Object> liveData) {
+    /**
+     * 处理思迪数据
+     * 数据格式:
+     * {
+     * "dataTime": "2020-12-02 15:43:57",
+     * "dataModel": "DataRTU_2011090C07G2_1",
+     * "data": {
+     * "m6": "0",
+     * "m7": "0",
+     * "s16": "0",
+     * "k2": "0",
+     * "k15": "0",
+     * "deviceId": "2011090C07G2",
+     * "s3": "0",
+     * "k3": "0",
+     * "m9": "0",
+     * "s1": "0",
+     * "k8": "0",
+     * "k9": "0",
+     * "m15": "0",
+     * "s4": "1",
+     * "s6": "1",
+     * "s23": "0",
+     * "s24": "0",
+     * "m4": "0",
+     * "s2": "0",
+     * "s14": "0",
+     * "s19": "0",
+     * "m11": "0",
+     * "m16": "0",
+     * "k1": "0",
+     * "m12": "0",
+     * "s13": "0",
+     * "s15": "0",
+     * "s17": "0",
+     * "s18": "0",
+     * "s20": "0",
+     * "s22": "0",
+     * "m2": "0",
+     * "m3": "0",
+     * "s8": "1",
+     * "k4": "0",
+     * "m1": "1398",
+     * "m5": "0",
+     * "s5": "1",
+     * "k6": "0",
+     * "k10": "0",
+     * "m10": "0",
+     * "m13": "0",
+     * "k16": "0",
+     * "s11": "0",
+     * "s21": "0",
+     * "s7": "1",
+     * "m8": "0",
+     * "s9": "0",
+     * "m14": "0",
+     * "k5": "0",
+     * "k12": "0",
+     * "k13": "0",
+     * "k14": "0",
+     * "RtuNo": "1",
+     * "模拟量": "0576000000000000000000000000000000000000000000000000000000000000",
+     * "s10": "0",
+     * "k11": "0",
+     * "DeviceNo": "2011090C07G2",
+     * "开关量": "0000",
+     * "k7": "0",
+     * "数字量": "1f0000",
+     * "s12": "0"
+     * }
+     * }
+     *
+     * @param liveData
+     * @return
+     */
+    public Future<String> liveTask(String liveData) {
         try {
             String token = "8a81e3166b379ce3016b37bab1bc000d";
-            String reportTime = (String) liveData.get("CreateDataTime");
-            String deviceId = String.valueOf(liveData.get("deviceId"));//获取设备编号
+            JSONObject jo = JSON.parseObject(liveData);
+            String reportTime = jo.getString("dataTime");//获取上报时间
+            JSONObject jsonData = JSON.parseObject(jo.getString("data"));//获取设备信息
+            String deviceId = String.valueOf(jsonData.get("deviceId"));//获取设备编号
             DeviceInfo deviceInfo = deviceInfoService.getDeviceInfoById(deviceId);
             if (deviceInfo != null) {
                 String startTime = deviceInfo.getWorkTimeFrom();
@@ -251,11 +328,12 @@ public class LiveDataTask {
                 Date nowDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(reportTime);
                 //如果未设置时间或者当前时间在工作范围内
                 if (CommonUtils.isEffectiveDate(sf.parse(now), sf.parse(startTime), sf.parse(endTime))) {
-                    int count = sensorInfoService.getSensorCount(deviceId);//获取该设备下的传感器数量
-                    if (count > 0) {
-                        for (int i = 0; i < count; i++) {//循环插入数据库
-                            String seq = "m" + (i + 1);//传感器编号
-                            double val = Double.valueOf(liveData.get(seq) + "");
+//                    int count = sensorInfoService.getSensorCount(deviceId);//获取该设备下的传感器数量
+//                    if (count > 0) {
+//                        for (int i = 0; i < count; i++) {//循环插入数据库
+//                            String seq = "m" + (i + 1);//传感器编号
+                            String seq = "m1";//传感器编号
+                            double val = Double.valueOf(jsonData.get(seq) + "");
                             LiveData data = new LiveData();
                             data.setDeviceId(deviceId);
                             data.setReportTime(reportTime);
@@ -397,10 +475,10 @@ public class LiveDataTask {
                             liveDataService.acceptLiveData(data);
                             historyDataService.save(data1);
                         }
-
-                    }
-
-                }
+//
+//                    }
+//
+//                }
             }
         } catch (Exception e) {
             e.printStackTrace();