|
@@ -1,41 +1,32 @@
|
|
|
package com.yunfeiyun.agmp.iotm.device.pest.controller;
|
|
package com.yunfeiyun.agmp.iotm.device.pest.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
-import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.yunfeiyun.agmp.common.annotation.Log;
|
|
import com.yunfeiyun.agmp.common.annotation.Log;
|
|
|
import com.yunfeiyun.agmp.common.constant.ErrorCode;
|
|
import com.yunfeiyun.agmp.common.constant.ErrorCode;
|
|
|
import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
|
|
import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
|
|
|
-import com.yunfeiyun.agmp.common.core.page.PageDomain;
|
|
|
|
|
import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
|
|
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.BusinessType;
|
|
|
import com.yunfeiyun.agmp.common.log.LogCore;
|
|
import com.yunfeiyun.agmp.common.log.LogCore;
|
|
|
-import com.yunfeiyun.agmp.common.utils.JSONUtils;
|
|
|
|
|
-import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
|
|
-import com.yunfeiyun.agmp.common.utils.poi.ExcelUtil;
|
|
|
|
|
|
|
+import com.yunfeiyun.agmp.common.utils.DateUtils;
|
|
|
import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
|
|
import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
|
|
|
import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
|
|
import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.IotCbddata;
|
|
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotCbdimg;
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotCbdimg;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
|
|
import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
|
|
|
-import com.yunfeiyun.agmp.iot.common.domain.IotXctdata;
|
|
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdConfigEditReqVo;
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdConfigEditReqVo;
|
|
|
|
|
+import com.yunfeiyun.agmp.iot.common.enums.IotDeviceStatusTypeEnum;
|
|
|
import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
|
|
import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
|
|
|
import com.yunfeiyun.agmp.iot.common.service.MongoService;
|
|
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.common.controller.BaseController;
|
|
|
|
|
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceBaseFunReqVo;
|
|
|
import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
|
|
import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
|
|
|
-import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListResVo;
|
|
|
|
|
-import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceXctDataListResVo;
|
|
|
|
|
|
|
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceExportReqVo;
|
|
|
|
|
+import com.yunfeiyun.agmp.iotm.device.common.service.IotDeviceCommonService;
|
|
|
import com.yunfeiyun.agmp.iotm.device.common.service.IotDeviceRefreshService;
|
|
import com.yunfeiyun.agmp.iotm.device.common.service.IotDeviceRefreshService;
|
|
|
import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdModifyDevRecogTypeReqVo;
|
|
import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdModifyDevRecogTypeReqVo;
|
|
|
import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdimgCountResVo;
|
|
import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdimgCountResVo;
|
|
|
-import com.yunfeiyun.agmp.iotm.device.pest.service.IotCbdService;
|
|
|
|
|
import com.yunfeiyun.agmp.iotm.util.ValidateUtil;
|
|
import com.yunfeiyun.agmp.iotm.util.ValidateUtil;
|
|
|
import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
|
|
import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
|
|
|
import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
|
|
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 com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -63,22 +54,16 @@ import java.util.*;
|
|
|
public class IotDeviceCbdController extends BaseController {
|
|
public class IotDeviceCbdController extends BaseController {
|
|
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
|
- private IIotCmdtaskService iIotCmdtaskService;
|
|
|
|
|
-
|
|
|
|
|
- @Resource
|
|
|
|
|
private MongoService mongoService;
|
|
private MongoService mongoService;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private IotCbdService iotCbdService;
|
|
|
|
|
-
|
|
|
|
|
- @Autowired
|
|
|
|
|
private IIotDeviceService iIotDeviceService;
|
|
private IIotDeviceService iIotDeviceService;
|
|
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
|
- private TypeCacheService typeCacheService;
|
|
|
|
|
|
|
+ private IotDeviceRefreshService iotDeviceRefreshService;
|
|
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
|
- private IotDeviceRefreshService iotDeviceRefreshService;
|
|
|
|
|
|
|
+ private IotDeviceCommonService iotDeviceCommonService;
|
|
|
|
|
|
|
|
private Map<String, Long> getImgCountMap(List<String> devBidList) {
|
|
private Map<String, Long> getImgCountMap(List<String> devBidList) {
|
|
|
Criteria criteria = new Criteria()
|
|
Criteria criteria = new Criteria()
|
|
@@ -202,9 +187,32 @@ public class IotDeviceCbdController extends BaseController {
|
|
|
* @throws Exception
|
|
* @throws Exception
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/config/edit")
|
|
@PostMapping("/config/edit")
|
|
|
- public AjaxResult sendConfigCmd(@RequestBody IotCbdConfigEditReqVo iotCbdConfigEditReqVo) {
|
|
|
|
|
|
|
+ public AjaxResult sendConfigCmd(@RequestBody IotCbdConfigEditReqVo reqVo) {
|
|
|
log.info("【{}】【测报灯】【下发指令配置】客户id {}", LogCore.getSeq(), getCustomerId());
|
|
log.info("【{}】【测报灯】【下发指令配置】客户id {}", LogCore.getSeq(), getCustomerId());
|
|
|
- String taskId=iotCbdService.editConfig(iotCbdConfigEditReqVo);
|
|
|
|
|
|
|
+ String devBid = reqVo.getDevBid();
|
|
|
|
|
+ IotDevice iotDevice = iIotDeviceService.selectIotDeviceByDevBid(devBid);
|
|
|
|
|
+ if(iotDevice == null){
|
|
|
|
|
+ throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String devStatus = iotDevice.getDevStatus();
|
|
|
|
|
+ String devCreateddate = iotDevice.getDevCreateddate();
|
|
|
|
|
+ Date createdDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, devCreateddate);
|
|
|
|
|
+ Date nowDate = DateUtils.getNowDate();
|
|
|
|
|
+ long diffTime = nowDate.getTime() - createdDate.getTime();
|
|
|
|
|
+ if(diffTime > 10 * 1000){
|
|
|
|
|
+ if (!Objects.equals(devStatus, IotDeviceStatusTypeEnum.ONLINE.getCode()) && !Objects.equals(devStatus, IotDeviceStatusTypeEnum.WAIT_ACTIVATE.getCode())) {
|
|
|
|
|
+ throw new IotBizException(IotErrorCode.FAILURE.getCode(), "设备离线无法操作");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ reqVo.setIotDevice(iotDevice);
|
|
|
|
|
+
|
|
|
|
|
+ IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setMethodName("sendConfigCmd");
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setParam(reqVo);
|
|
|
|
|
+ String taskId = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
|
|
|
|
|
|
|
|
return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", taskId);
|
|
return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", taskId);
|
|
|
}
|
|
}
|
|
@@ -218,103 +226,37 @@ public class IotDeviceCbdController extends BaseController {
|
|
|
@GetMapping("/takephoto/{devBid}")
|
|
@GetMapping("/takephoto/{devBid}")
|
|
|
public AjaxResult takePhoto(@PathVariable("devBid") String devBid) {
|
|
public AjaxResult takePhoto(@PathVariable("devBid") String devBid) {
|
|
|
log.info("【{}】【测报灯】【拍照】客户id {}", LogCore.getSeq(), getCustomerId());
|
|
log.info("【{}】【测报灯】【拍照】客户id {}", LogCore.getSeq(), getCustomerId());
|
|
|
- String taskId=iotCbdService.takePhoto(devBid);
|
|
|
|
|
|
|
+ IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setDevBid(devBid);
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setMethodName("takePhoto");
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setParam(devBid);
|
|
|
|
|
+ String taskId = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
|
|
|
return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", taskId);
|
|
return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", taskId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@GetMapping({"/data/list", "/xct/data/list"})
|
|
@GetMapping({"/data/list", "/xct/data/list"})
|
|
|
- public TableDataInfo getList(HttpServletRequest request, IotDeviceDataListReqVo reqVo) {
|
|
|
|
|
- String devBid = reqVo.getDevBid();
|
|
|
|
|
- ValidateUtil.validateDevBid(devBid);
|
|
|
|
|
- String reqUri = request.getRequestURI();
|
|
|
|
|
- Class tableClass = IotCbddata.class;
|
|
|
|
|
- if(reqUri.endsWith("/xct/data/list")) {
|
|
|
|
|
- tableClass = IotXctdata.class;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
|
- map.put("devBid", reqVo.getDevBid());
|
|
|
|
|
- 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());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- PageDomain pageDomain = TableSupport.buildPageRequest();
|
|
|
|
|
- String orderByColumn = pageDomain.getOrderByColumn();
|
|
|
|
|
- if (Objects.equals(orderByColumn, "cdbdataContent.stamp")){
|
|
|
|
|
- pageDomain.setOrderByColumn("cbddataCreatedDate");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- IPage page = mongoService.findListPage(tableClass, map, pageDomain);
|
|
|
|
|
- List<?> data = page.getRecords();
|
|
|
|
|
- List<JSONObject> list = new ArrayList<>();
|
|
|
|
|
- for (Object datum : data) {
|
|
|
|
|
- JSONObject jsonObject = JSONObject.from(datum);
|
|
|
|
|
- JSONObject cdbdataContent = jsonObject.getJSONObject("cdbdataContent");
|
|
|
|
|
- jsonObject.putAll(cdbdataContent);
|
|
|
|
|
- jsonObject.remove("cdbdataContent");
|
|
|
|
|
- list.add(jsonObject);
|
|
|
|
|
- }
|
|
|
|
|
- page.setRecords(list);
|
|
|
|
|
-
|
|
|
|
|
- return getDataTable(page);
|
|
|
|
|
|
|
+ public TableDataInfo dataList(IotDeviceDataListReqVo reqVo) {
|
|
|
|
|
+ ValidateUtil.validateDevBid(reqVo.getDevBid());
|
|
|
|
|
+ IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setMethodName("dataList");
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setParam(reqVo);
|
|
|
|
|
+ return iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
@Log(title = "设备数据", businessType = BusinessType.EXPORT)
|
|
@Log(title = "设备数据", businessType = BusinessType.EXPORT)
|
|
|
@PostMapping("/data/export")
|
|
@PostMapping("/data/export")
|
|
|
public void dataExport(HttpServletRequest request, HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
|
|
public void dataExport(HttpServletRequest request, HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
|
|
|
ValidateUtil.validateDevBid(reqVo.getDevBid());
|
|
ValidateUtil.validateDevBid(reqVo.getDevBid());
|
|
|
- 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(), "参数不能为空");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- IotDevice iotDevice = iIotDeviceService.selectIotDeviceByDevBid(devBid);
|
|
|
|
|
- if (iotDevice == null) {
|
|
|
|
|
- throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "设备不存在");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
|
- map.put("devBid", reqVo.getDevBid());
|
|
|
|
|
- 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());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if(iotDevice.getDevtypeBid().equals(IotDeviceDictConst.TYPE_YF_XCT)) {
|
|
|
|
|
- List<IotXctdata> xctdataList = mongoService.findAll(IotXctdata.class, map, "cbddataCreatedDate desc");
|
|
|
|
|
- List<IotDeviceXctDataListResVo> list = new ArrayList<>();
|
|
|
|
|
- for(IotXctdata iotXctdata: xctdataList){
|
|
|
|
|
- IotDeviceXctDataListResVo resVo = JSONUtils.toObject(iotXctdata.getCdbdataContent().toJSONString(), IotDeviceXctDataListResVo.class);
|
|
|
|
|
- resVo.setCbddataCreatedDate(iotXctdata.getCbddataCreatedDate());
|
|
|
|
|
- list.add(resVo);
|
|
|
|
|
- }
|
|
|
|
|
- ExcelUtil<IotDeviceXctDataListResVo> util = new ExcelUtil<>(IotDeviceXctDataListResVo.class);
|
|
|
|
|
- util.exportExcel(response, list, "设备数据");
|
|
|
|
|
- }else{
|
|
|
|
|
- List<IotCbddata> cbddataList = mongoService.findAll(IotCbddata.class, map, "cbddataCreatedDate desc");
|
|
|
|
|
- List<IotDeviceDataListResVo> list = new ArrayList<>();
|
|
|
|
|
- for(IotCbddata iotCbddata: cbddataList){
|
|
|
|
|
- IotDeviceDataListResVo resVo = JSONUtils.toObject(iotCbddata.getCdbdataContent().toJSONString(), IotDeviceDataListResVo.class);
|
|
|
|
|
- resVo.setCbddataCreatedDate(iotCbddata.getCbddataCreatedDate());
|
|
|
|
|
- list.add(resVo);
|
|
|
|
|
- }
|
|
|
|
|
- ExcelUtil<IotDeviceDataListResVo> util = new ExcelUtil<>(IotDeviceDataListResVo.class);
|
|
|
|
|
- util.exportExcel(response, list, "设备数据");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ IotDeviceExportReqVo iotDeviceExportReqVo = new IotDeviceExportReqVo();
|
|
|
|
|
+ iotDeviceExportReqVo.setResponse(response);
|
|
|
|
|
+ iotDeviceExportReqVo.setReqVo(reqVo);
|
|
|
|
|
+
|
|
|
|
|
+ IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setMethodName("dataExport");
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setParam(iotDeviceExportReqVo);
|
|
|
|
|
+ iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("/refresh/{devBid}")
|
|
@GetMapping("/refresh/{devBid}")
|
|
@@ -326,7 +268,13 @@ public class IotDeviceCbdController extends BaseController {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@PostMapping("/modify/recog")
|
|
@PostMapping("/modify/recog")
|
|
|
public AjaxResult modifyRecog(@RequestBody IotCbdModifyDevRecogTypeReqVo reqVo) {
|
|
public AjaxResult modifyRecog(@RequestBody IotCbdModifyDevRecogTypeReqVo reqVo) {
|
|
|
- int status = iotCbdService.modifyRecog(reqVo);
|
|
|
|
|
|
|
+ ValidateUtil.validateDevBid(reqVo.getDevBid());
|
|
|
|
|
+
|
|
|
|
|
+ IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setMethodName("modifyRecog");
|
|
|
|
|
+ iotDeviceBaseFunReqVo.setParam(reqVo);
|
|
|
|
|
+ int status = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
|
|
|
return toAjax(status);
|
|
return toAjax(status);
|
|
|
}
|
|
}
|
|
|
|
|
|