|
|
@@ -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);
|
|
|
+ }
|
|
|
}
|