Procházet zdrojové kódy

新增 气象站预警手动触发接口

zhaiyifei před 9 měsíci
rodič
revize
01d6d80140

+ 31 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/controller/TestController.java

@@ -5,12 +5,18 @@ import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
 import com.yunfeiyun.agmp.common.utils.DateUtils;
 import com.yunfeiyun.agmp.common.utils.JSONUtils;
 import com.yunfeiyun.agmp.common.utils.uuid.IdUtils;
+import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
 import com.yunfeiyun.agmp.iot.common.domain.*;
+import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdGroupModel;
 import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iots.core.cmd.core.CmdDispatcherService;
+import com.yunfeiyun.agmp.iots.device.domain.WarnTestReq;
 import com.yunfeiyun.agmp.iots.device.mapper.IotDeviceMapper;
+import com.yunfeiyun.agmp.iots.device.service.IYfQxzDevice;
+import com.yunfeiyun.agmp.iots.device.serviceImp.YfQxzDeviceImpl;
+import com.yunfeiyun.agmp.iots.service.IIotDeviceService;
 import com.yunfeiyun.agmp.iots.service.IIotYfScddataService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,7 +37,7 @@ import java.util.concurrent.CompletableFuture;
  * 测试接口
  */
 @RestController
-@RequestMapping("test")
+@RequestMapping("/test")
 @Slf4j
 public class TestController {
 
@@ -57,6 +63,12 @@ public class TestController {
     @Autowired
     private IotDeviceMapper iotDeviceMapper;
 
+    @Autowired
+    private IIotDeviceService iotDeviceService;
+
+    @Autowired
+    private IYfQxzDevice iYfQxzDevice;
+
     private static final Random random = new Random();
     private static final DateTimeFormatter stampFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
 
@@ -585,5 +597,23 @@ public class TestController {
         return iotCbdimg;
     }
 
+    @PostMapping("/warn/qxz")
+    public AjaxResult warnQxzTest(@RequestBody WarnTestReq req) throws Exception {
+        String devBid = req.getDevBid();
+        JSONObject data = req.getData();
+        if(data == null) {
+            throw new IotBizException(IotErrorCode.FAILURE.getCode(), "数据为空");
+        }
+
+        IotDevice iotDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
+        if (iotDevice == null) {
+            throw new IotBizException(IotErrorCode.FAILURE.getCode(), "设备不存在");
+        }
+
+        YfQxzDeviceImpl yfQxzDevice = (YfQxzDeviceImpl) iYfQxzDevice;
+        String devUpdateddate = DateUtils.dateTimeNow();
+        yfQxzDevice.processData(iotDevice, data, devUpdateddate);
 
+        return AjaxResult.success();
+    }
 }

+ 17 - 0
src/main/java/com/yunfeiyun/agmp/iots/device/domain/WarnTestReq.java

@@ -0,0 +1,17 @@
+package com.yunfeiyun.agmp.iots.device.domain;
+
+import com.alibaba.fastjson2.JSONObject;
+import lombok.Data;
+
+@Data
+public class WarnTestReq {
+    /**
+     * 设备ID
+     */
+    private String devBid;
+
+    /**
+     * 设备数据
+     */
+    private JSONObject data;
+}

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/YfQxzDeviceImpl.java

@@ -281,7 +281,7 @@ public class YfQxzDeviceImpl extends DeviceAbstractImpl implements IYfQxzDevice
         // 更新设备数据信息到数据库 mongodb
         List<IotYfqxzdata> iotYfqxzdataList = new ArrayList<>();
         for (Object item: jarrData) {
-            JSONObject jobj = (JSONObject) item;
+            JSONObject jobj = JSONObject.from(item);
             String eNum = jobj.getString("eNum");
             String eKey = jobj.getString("eKey");
             String eValue = jobj.getString("eValue");

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/warn/service/WarnService.java

@@ -265,6 +265,7 @@ public class WarnService {
                 continue;
             }
             String warnMessage = (String) conditionResult.get("warnMessage");
+            warnResult.setMessage(warnMessage);
             boolean tempSuccess = (boolean) conditionResult.get("tempSuccess");
 
             if ("0".equals(wcCondition)) {
@@ -278,7 +279,7 @@ public class WarnService {
                 if (!tempSuccess) {
                     return warnResult;
                 }
-                messageBuilder.append(warnMessage);
+                messageBuilder.append(warnMessage).append("\n");
             }
         }