Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

liuyaowen 1 год назад
Родитель
Сommit
8dbb998bec

+ 14 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/qxz/controller/IotDeviceQxzController.java

@@ -1,5 +1,6 @@
 package com.yunfeiyun.agmp.iotm.device.qxz.controller;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
 import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
@@ -113,4 +114,17 @@ public class IotDeviceQxzController extends BaseController {
         iotDeviceBaseFunReqVo.setParam(reqVo);
         return AjaxResult.success(iotDeviceCommonService.func(iotDeviceBaseFunReqVo));
     }
+
+    @GetMapping("/refresh/{devBid}")
+    public AjaxResult refresh(@PathVariable("devBid") String devBid) {
+        IotDeviceQxzDataListReqVo reqVo = new IotDeviceQxzDataListReqVo();
+        reqVo.setDevBid(devBid);
+
+        IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
+        iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
+        iotDeviceBaseFunReqVo.setMethodName("refresh");
+        iotDeviceBaseFunReqVo.setParam(reqVo);
+        iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
+        return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", null);
+    }
 }

+ 52 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/qxz/service/impl/IotYfQxzServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yunfeiyun.agmp.iotm.device.qxz.service.impl;
 
 import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.common.core.page.PageDomain;
@@ -8,19 +9,24 @@ import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 import com.yunfeiyun.agmp.common.core.page.TableSupport;
 import com.yunfeiyun.agmp.common.framework.manager.RedisCacheManager;
 import com.yunfeiyun.agmp.common.utils.DateUtils;
+import com.yunfeiyun.agmp.common.utils.JSONUtils;
 import com.yunfeiyun.agmp.common.utils.StringUtils;
+import com.yunfeiyun.agmp.common.utils.uuid.IdUtils;
 import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
 import com.yunfeiyun.agmp.iot.common.constant.device.ElementFactorUtil;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
 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.iotm.device.common.service.IotDeviceBaseService;
 import com.yunfeiyun.agmp.iotm.device.common.service.impl.IotDeviceBaseServiceImpl;
 import com.yunfeiyun.agmp.iotm.device.qxz.domain.IotDeviceQxzDataListReqVo;
 import com.yunfeiyun.agmp.iotm.device.qxz.domain.QxzDataLast24hDto;
 import com.yunfeiyun.agmp.iotm.util.MongoUtil;
+import com.yunfeiyun.agmp.iotm.web.service.IIotCmdtaskService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
+import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceconfigService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDevicefactorService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -30,6 +36,7 @@ import org.springframework.data.mongodb.core.aggregation.*;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.text.ParseException;
 import java.util.*;
 
@@ -49,6 +56,12 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
     @Autowired
     private RedisCacheManager redisCacheManager;
 
+    @Autowired
+    private IIotCmdtaskService iIotCmdtaskService;
+
+    @Resource
+    private IIotDeviceconfigService iIotDeviceconfigService;
+
     public TableDataInfo dataList(IotDeviceQxzDataListReqVo reqVo) throws ParseException {
         return dataList(reqVo, true, false);
     }
@@ -323,4 +336,43 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
         latestData.setDevldContent(JSONArray.toJSONString(iotQxzDataListRseVoList));
         return latestData;
     }
+
+    /**
+     * 刷新指令集
+     * @param reqVo
+     */
+    public void refresh(IotDeviceQxzDataListReqVo reqVo) {
+        String devBid = reqVo.getDevBid();
+        IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(reqVo.getDevBid());
+        if (findDevice == null) {
+            throw new IotBizException(IotErrorCode.FAILURE.getCode(), "设备不存在" + devBid);
+        }
+        if (Objects.equals(findDevice.getDevStatus(), "0")) {
+            throw new IotBizException(IotErrorCode.FAILURE.getCode(), "设备离线无法操作");
+        }
+
+        log.info("创建【“刷新”指令集任务】,设备类型:YFQXZ");
+        JSONObject ext = new JSONObject();
+        ext.put("type", "data");
+        JSONObject payload = new JSONObject();
+        payload.put("cmd", "read");
+        payload.put("ext", ext);
+        IotDeviceconfig iotDeviceconfig = new IotDeviceconfig();
+        iotDeviceconfig.setTid(findDevice.getTid());
+        iotDeviceconfig.setDevBid(devBid);
+        iotDeviceconfig.setDevcfgContext(JSONUtils.toJSONString(payload));
+
+        CmdGroupModel cmdGroupModel = iIotDeviceconfigService.createRefreshCmd(iotDeviceconfig);
+
+        // 构建日志需要用的内容
+        cmdGroupModel.setRequestId(IdUtils.fastUUID());
+        cmdGroupModel.setDevCode(findDevice.getDevCode());
+        cmdGroupModel.setCtBiztype("3");
+        cmdGroupModel.setCtDevtype(findDevice.getDevtypeBid());
+        cmdGroupModel.setCtBiztitle(findDevice.getDevtypeName() + ":" + findDevice.getDevCode());
+        cmdGroupModel.setCtParam("设备id:"+devBid);
+        iIotCmdtaskService.handInternalCmd(cmdGroupModel);
+        String taskUuid = cmdGroupModel.getTaskUuid();
+        log.info("【“刷新”指令集任务】创建成功,taskUuid:{}", taskUuid);
+    }
 }

+ 14 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/sqz/controller/IotDeviceSqzController.java

@@ -1,5 +1,6 @@
 package com.yunfeiyun.agmp.iotm.device.sqz.controller;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
 import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
@@ -114,4 +115,17 @@ public class IotDeviceSqzController extends BaseController {
         iotDeviceBaseFunReqVo.setParam(reqVo);
         return AjaxResult.success(iotDeviceCommonService.func(iotDeviceBaseFunReqVo));
     }
+
+    @GetMapping("/refresh/{devBid}")
+    public AjaxResult refresh(@PathVariable("devBid") String devBid) {
+        IotDeviceQxzDataListReqVo reqVo = new IotDeviceQxzDataListReqVo();
+        reqVo.setDevBid(devBid);
+
+        IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
+        iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
+        iotDeviceBaseFunReqVo.setMethodName("refresh");
+        iotDeviceBaseFunReqVo.setParam(reqVo);
+        iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
+        return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", null);
+    }
 }