|
|
@@ -2,29 +2,55 @@ package com.yunfeiyun.agmp.iotm.device.pest.controller;
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
+import com.yunfeiyun.agmp.common.annotation.Excel;
|
|
|
+import com.yunfeiyun.agmp.common.annotation.Log;
|
|
|
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.common.core.page.TableSupport;
|
|
|
+import com.yunfeiyun.agmp.common.enums.BusinessType;
|
|
|
+import com.yunfeiyun.agmp.common.enums.CommonEnums;
|
|
|
import com.yunfeiyun.agmp.common.log.LogCore;
|
|
|
+import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
+import com.yunfeiyun.agmp.common.utils.poi.ExcelUtil;
|
|
|
+import com.yunfeiyun.agmp.common.utils.poi.SensdataExcelUtil;
|
|
|
import com.yunfeiyun.agmp.common.utils.uuid.IdUtils;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.IotCbddata;
|
|
|
+import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
|
|
|
+import com.yunfeiyun.agmp.iot.common.constant.device.xmzn.XmznUtil;
|
|
|
+import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
|
|
|
+import com.yunfeiyun.agmp.iot.common.domain.*;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdConfigEditReqVo;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbddataReqVo;
|
|
|
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotDeviceResVo;
|
|
|
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotSensdataResVo;
|
|
|
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotXmzninstaggregdataResVo;
|
|
|
+import com.yunfeiyun.agmp.iot.common.enums.DevType;
|
|
|
+import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
|
|
|
import com.yunfeiyun.agmp.iot.common.model.cmd.CmdGroupModel;
|
|
|
import com.yunfeiyun.agmp.iot.common.model.cmd.CmdModel;
|
|
|
import com.yunfeiyun.agmp.iot.common.service.MongoService;
|
|
|
+import com.yunfeiyun.agmp.iot.common.service.TypeCacheService;
|
|
|
import com.yunfeiyun.agmp.iotm.common.controller.BaseController;
|
|
|
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
|
|
|
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListResVo;
|
|
|
import com.yunfeiyun.agmp.iotm.device.pest.service.IotCbdService;
|
|
|
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
|
|
|
+import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
|
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotCmdtaskService;
|
|
|
+import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.http.util.TextUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.LinkedList;
|
|
|
-import java.util.Map;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 测报灯相关接口
|
|
|
@@ -45,6 +71,11 @@ public class IotDeviceCbdController extends BaseController {
|
|
|
@Autowired
|
|
|
private IotCbdService iotCbdService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IIotDeviceService iIotDeviceService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TypeCacheService typeCacheService;
|
|
|
|
|
|
/**
|
|
|
* 下发测报灯配置指令
|
|
|
@@ -78,76 +109,68 @@ public class IotDeviceCbdController extends BaseController {
|
|
|
Map<String, Object> cases = BeanUtil.beanToMap(reqVo);
|
|
|
return getDataTable(mongoService.findListPage(IotCbddata.class, cases, TableSupport.buildPageRequest()));
|
|
|
}
|
|
|
+ @Log(title = "设备数据", businessType = BusinessType.EXPORT)
|
|
|
+ @PostMapping("/data/export")
|
|
|
+ public void dataExport(HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
|
|
|
+ String devBid = reqVo.getDevBid();
|
|
|
+ String startTime = reqVo.getStartTime();
|
|
|
+ String endTime = reqVo.getEndTime();
|
|
|
+ String[] params = {devBid, startTime, endTime};
|
|
|
+ for (String k : params) {
|
|
|
+ if (StringUtils.isEmpty(k)) {
|
|
|
+ throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "参数不能为空");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<IotDeviceDataListResVo> list = new ArrayList<>();
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("devBid", devBid);
|
|
|
+ if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isEmpty(reqVo.getEndTime())) {
|
|
|
+ map.put("gte_cbddataCreatedDate", reqVo.getStartTime());
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
|
|
|
+ map.put("lte_cbddataCreatedDate", reqVo.getEndTime());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
|
|
|
+ map.put("time_cbddataCreatedDate", reqVo.getStartTime() + "," + reqVo.getEndTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<IotCbddata> all = mongoService.findAll(IotCbddata.class, map);
|
|
|
+
|
|
|
+
|
|
|
+ for (IotCbddata iotCbddata : all) {
|
|
|
+ IotDeviceDataListResVo resVo = JSONObject.parseObject(iotCbddata.getCdbdataContent().toJSONString(), IotDeviceDataListResVo.class);
|
|
|
+ String stamp = resVo.getStamp();
|
|
|
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode());
|
|
|
+ DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
|
|
+ resVo.setStamp(LocalDateTime.parse(stamp, dtf2).format(dtf));
|
|
|
+ list.add(resVo);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ ExcelUtil<IotDeviceDataListResVo> util = new ExcelUtil<>(IotDeviceDataListResVo.class);
|
|
|
+ util.exportExcel(response, list, "设备数据");
|
|
|
|
|
|
- @GetMapping("/cmdTest")
|
|
|
- public AjaxResult cmdTest() {
|
|
|
- CmdGroupModel cmdGroupModel = new CmdGroupModel();
|
|
|
- cmdGroupModel.setCId("1");
|
|
|
- cmdGroupModel.setCmdModels(new LinkedList<>());
|
|
|
- cmdGroupModel.setRequestId(IdUtils.fastUUID());
|
|
|
-
|
|
|
-
|
|
|
- CmdModel cmdModel = new CmdModel();
|
|
|
- cmdModel.setDeviceId("bidzhaiyifei123456");
|
|
|
-
|
|
|
- CmdModel.Cmd cmd = new CmdModel.Cmd();
|
|
|
- cmd.setFunc("takephoto");
|
|
|
- cmd.setRetry(5L);
|
|
|
- cmdModel.setFinalStatus(false);
|
|
|
- cmdModel.setTimeout(10);
|
|
|
- cmdModel.setNeedcheckStatus(true);
|
|
|
- cmdModel.setCmdDistribution(cmd);
|
|
|
-
|
|
|
- CmdModel err = new CmdModel();
|
|
|
- err.setDeviceId("bidzhaiyifei123456");
|
|
|
- err.setFinalStatus(false);
|
|
|
- err.setTimeout(10);
|
|
|
- err.setNeedcheckStatus(false);
|
|
|
- err.setCmdDistribution(cmd);
|
|
|
- CmdModel.Cmd errCmd = new CmdModel.Cmd();
|
|
|
- errCmd.setFunc("err");
|
|
|
- err.setCmdDistribution(errCmd);
|
|
|
-
|
|
|
-
|
|
|
- //cmdGroupModel.getCmdModels().add(Collections.singletonList(err));
|
|
|
-
|
|
|
-/* for(int i = 0;i<3;i++){
|
|
|
- List<CmdModel> cmdModelList = new ArrayList<>(Collections.singleton(cmdModel));
|
|
|
- cmdGroupModel.getCmdModels().add(cmdModelList);
|
|
|
- }*/
|
|
|
-
|
|
|
-
|
|
|
- cmdGroupModel.getCmdModels().add(Collections.singletonList(cmdModel));
|
|
|
-
|
|
|
-
|
|
|
- CmdModel cmdModel2 = new CmdModel();
|
|
|
- cmdModel2.setDeviceId("bidzhaiyifei123456");
|
|
|
- CmdModel.Cmd cmd2 = new CmdModel.Cmd();
|
|
|
- cmd2.setFunc("takephoto");
|
|
|
- cmd2.setRetry(5L);
|
|
|
- cmdModel2.setFinalStatus(false);
|
|
|
- cmdModel2.setTimeout(10);
|
|
|
- cmdModel2.setNeedcheckStatus(true);
|
|
|
- cmdModel2.setCmdDistribution(cmd2);
|
|
|
-
|
|
|
-
|
|
|
- cmdGroupModel.getCmdModels().add(Collections.singletonList(cmdModel2));
|
|
|
-
|
|
|
-
|
|
|
- CmdModel cmdModel3 = new CmdModel();
|
|
|
- cmdModel3.setDeviceId("bidzhaiyifei123456");
|
|
|
- CmdModel.Cmd cmd3 = new CmdModel.Cmd();
|
|
|
- cmd3.setFunc("takephoto");
|
|
|
- cmd3.setRetry(5L);
|
|
|
- cmdModel3.setFinalStatus(true);
|
|
|
- cmdModel3.setTimeout(10);
|
|
|
- cmdModel3.setNeedcheckStatus(false);
|
|
|
- cmdModel3.setCmdDistribution(cmd3);
|
|
|
-
|
|
|
- cmdGroupModel.getCmdModels().add(Collections.singletonList(cmdModel3));
|
|
|
+ }
|
|
|
|
|
|
+ @GetMapping("/refresh/{devBid}")
|
|
|
+ public AjaxResult refresh(@PathVariable("devBid") String devBid) {
|
|
|
+ iotCbdService.sendDeviceRefresh(devBid);
|
|
|
+ return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", null);
|
|
|
+ }
|
|
|
|
|
|
- iIotCmdtaskService.handInternalCmd(cmdGroupModel);
|
|
|
- return AjaxResult.success();
|
|
|
+ /**
|
|
|
+ * 测报灯列表
|
|
|
+ * @param reqVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("/list")
|
|
|
+ public TableDataInfo list(IotDeviceListReqVo reqVo) {
|
|
|
+ startPage();
|
|
|
+ TosDevicetype tosDevicetype= typeCacheService.getCacheObjectByDevTypeCode(IotDeviceDictConst.TYPE_YF_CBD);
|
|
|
+ reqVo.setDevtypeBid(tosDevicetype.getDevtypeBid());
|
|
|
+ List<IotDeviceListResVo> list = iIotDeviceService.selectIotDeviceListByType(reqVo);
|
|
|
+ return getDataTable(list);
|
|
|
}
|
|
|
}
|