From 368f388748f044eac8fb166fca3b6466758bf70c Mon Sep 17 00:00:00 2001 From: yangzongjia Date: Fri, 9 Jun 2023 17:24:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=AD=90=E5=9B=B4=E6=A0=8F=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E6=95=B0=E6=8D=AE=E5=BA=93=20=E5=B8=83=E9=98=B2?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=20=E5=AE=9A=E6=97=B6=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E8=AE=BE=E5=A4=87=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervise/monitor/api/entity/Device.java | 6 +++ .../monitor/biz/callpolice/CallRest.java | 13 ++++- .../monitor/biz/device/YDeviceRest.java | 37 ++++++++++++++ .../biz/deviceImage/YDeviceImageService.java | 2 - .../biz/messageInfo/YMessageInfoService.java | 50 ++++++++++++++++-- .../monitor/biz/scheduled/SyncDetection.java | 8 +-- .../monitor/biz/scheduled/SyncService.java | 51 ++++++++++--------- .../src/main/resources/application-test.yml | 2 +- 8 files changed, 131 insertions(+), 38 deletions(-) diff --git a/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java b/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java index ef35a7e..d696193 100644 --- a/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java +++ b/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java @@ -80,6 +80,12 @@ public class Device extends EntityWithId { @ApiModelProperty("仓库ID") private Integer ckId; + @ApiModelProperty("子系统ID 电子围栏") + private Integer sysId; + + @ApiModelProperty("报警主机ID") + private Integer bjzjId; + @ApiModelProperty("维修状态") private String maintenance; diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java index d6473fc..8b0ad5e 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java @@ -44,6 +44,9 @@ public class CallRest { public String getCallSonList() throws NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException { // deviceSerial 设备序列号 String String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystems?deviceSerial=Q16362484"; + + // 布撤防状态 +// String url = "https://api2.hik-cloud.com/api/v1/ezviz/devices/queryDeviceDefenceStatus?deviceSerial=Q16362484"; String result = HttpUtils.sendGet(url, "35ad3e80-1de4-4477-827e-0473320cf644"); return result; } @@ -52,13 +55,18 @@ public class CallRest { @GetMapping("/getCallArm") public String getCallArm() { ResultBean rb = ResultBean.fireFail(); +// String url = "https://api2.hik-cloud.com/api/v1/ezviz/devices/actions/setDefence/deviceSerial?deviceSerial=Q16362484&isDefence=1"; String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/arm"; Map param = new HashMap<>(); +// param.put("deviceSerial", "Q16362484"); //设备序列号 string +// param.put("isDefence", 1); //子系统id int + param.put("deviceSerial", "Q16362484"); //设备序列号 string - param.put("sysId", 2); //子系统id int + param.put("sysId", 1); //子系统id int param.put("armType", "stay"); //布防类型,stay:在家布防;away:外出布防 string String paramJson = JSONObject.toJSONString(param); String result = HttpUtils.sendPostJson(url, paramJson, "35ad3e80-1de4-4477-827e-0473320cf644"); +// String result = HttpUtils.sendPostMap(url, param, "35ad3e80-1de4-4477-827e-0473320cf644"); return result; } @@ -128,7 +136,8 @@ public class CallRest { @ApiOperation("获取所有防区状态") @GetMapping("/getCallZoneStatusList") public String getCallZoneStatusList(String consumerId) throws NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException { - String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/zoneStatus/list?deviceSerial=Q16362484"; +// String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/zoneStatus/list?deviceSerial=Q16362484"; + String url = "https://api2.hik-cloud.com/api/v1/ezviz/devices/queryDeviceStatus?deviceSerial=Q16362484"; String result = HttpUtils.sendGet(url, "35ad3e80-1de4-4477-827e-0473320cf644"); return result; } diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java index 27dc223..c1d9dfb 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java @@ -1,13 +1,18 @@ package com.yxt.supervise.monitor.biz.device; +import com.alibaba.fastjson.JSONObject; import com.yxt.common.core.result.ResultBean; import com.yxt.supervise.monitor.api.entity.Device; import com.yxt.supervise.monitor.api.vo.PageVo; +import com.yxt.supervise.monitor.biz.scheduled.SyncService; +import com.yxt.supervise.monitor.biz.scheduled.SyncUpdater; +import com.yxt.supervise.monitor.biz.util.HttpUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.Map; @Api(tags = "设备控制器") @@ -86,6 +91,38 @@ public class YDeviceRest { return rb; } + + @ApiOperation("子系统布防") + @GetMapping("/sysArm") + public ResultBean sysArm(String id) { + Device device = yDeviceService.getById(id); + Device bjzj = yDeviceService.getById(device.getBjzjId()); + ResultBean rb = ResultBean.fireSuccess(); + String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/arm"; + Map param = new HashMap<>(); + param.put("deviceSerial", bjzj.getSerialNumber()); //设备序列号 string + param.put("sysId", device.getSysId()); //子系统id int + param.put("armType", "stay"); //布防类型,stay:在家布防;away:外出布防 string + String paramJson = JSONObject.toJSONString(param); + String result = HttpUtils.sendPostJson(url, paramJson, SyncService.haiKangToken); + return rb.setData(result); + } + + @ApiOperation("子系统撤防") + @GetMapping("/sysDisArm") + public ResultBean sysDisArm(String id) { + Device device = yDeviceService.getById(id); + Device bjzj = yDeviceService.getById(device.getBjzjId()); + ResultBean rb = ResultBean.fireSuccess(); + String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/disarm"; + Map param = new HashMap<>(); + param.put("deviceSerial", bjzj.getSerialNumber()); // 设备序列号 string + param.put("sysId", device.getSysId()); // 子系统id int + String paramJson = JSONObject.toJSONString(param); + String result = HttpUtils.sendPostJson(url, paramJson, SyncService.haiKangToken); + return rb.setData(result); + } + @ApiOperation("删除设备") @GetMapping("/removeDeviceByIds") public ResultBean removeDeviceByIds(String ids) { diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java index 7259d55..539ba37 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java @@ -109,8 +109,6 @@ public class YDeviceImageService extends ServiceImpl 0) { diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java index b07d7ac..e2151a5 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yxt.supervise.monitor.api.entity.CallPolice; import com.yxt.supervise.monitor.api.entity.Device; @@ -12,6 +13,7 @@ import com.yxt.supervise.monitor.api.entity.DeviceLog; import com.yxt.supervise.monitor.api.entity.MessageInfo; import com.yxt.supervise.monitor.api.vo.MessageVo; import com.yxt.supervise.monitor.api.vo.PageVo; +import com.yxt.supervise.monitor.biz.callpolice.CallRest; import com.yxt.supervise.monitor.biz.callpolice.YCallPoliceMapper; import com.yxt.supervise.monitor.biz.device.YDeviceMapper; import com.yxt.supervise.monitor.biz.device.YDeviceService; @@ -22,14 +24,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Service public class YMessageInfoService extends ServiceImpl { + @Resource + YDeviceService yDeviceService; + @Resource YCallPoliceMapper yCallPoliceMapper; @@ -147,4 +149,44 @@ public class YMessageInfoService extends ServiceImpl iPage = new Page<>(); + List list = new ArrayList<>(); + for (Object obj : jsonArray) { + JSONObject objJson = (JSONObject) obj; + deviceSerial = objJson.get("deviceSerial").toString(); + deviceStatus = objJson.get("deviceStatus").toString(); + if ("0".equals(deviceStatus)) { // 报警 + CallPolice callPolice = new CallPolice(); + callPolice.setCreateTime(new Date()); + callPolice.setMsgType("handAdd"); + callPolice.setContent("设备离线报警"); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("serialNumber", deviceSerial); + List listSmall = yDeviceService.list(wrapper); + if (listSmall.size() > 0) { + callPolice.setDeviceId(listSmall.get(0).getId().toString()); + list.add(callPolice); + } + } + } + + for (CallPolice cl : list) { + yCallPoliceMapper.insert(cl); + } + } } diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncDetection.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncDetection.java index 6efa9a8..016ff28 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncDetection.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncDetection.java @@ -43,10 +43,10 @@ public class SyncDetection implements SchedulingConfigurer { new Runnable() { @Override public void run() { -// yDeviceImageService.getImage("1"); -// yDeviceImageService.getImage("2"); -// yDeviceImageService.getImage("3"); -// yDeviceImageService.getImage("4"); + yDeviceImageService.getImage("1"); + yDeviceImageService.getImage("2"); + yDeviceImageService.getImage("3"); + yDeviceImageService.getImage("4"); } }, new Trigger() { diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java index 44c2d9a..d7f81d8 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java @@ -39,7 +39,7 @@ public class SyncService { YTaskService yTaskService; public static String haiKangToken = ""; -// public static final String imagePath = "/root/supervise/images/"; + // public static final String imagePath = "/root/supervise/images/"; // public static final String imagePath = "D:\\resources\\download\\"; public static String haiKangMessageConsumer = ""; @@ -56,33 +56,34 @@ public class SyncService { SyncService.haiKangToken = tokenObject.get("access_token").toString(); -// // 获取消息消费者 -// String consumerUrl = "https://api2.hik-cloud.com/api/v1/mq/consumer/group1"; -// Map consumerParam = new HashMap<>(); -// String consumerResult = HttpUtils.sendPostMap(consumerUrl, consumerParam, SyncService.haiKangToken); -// JSONObject consumerObject = JSONObject.parseObject(consumerResult); -// if ("200".equals(consumerObject.get("code").toString())) { -// JSONObject dataObject = (JSONObject) consumerObject.get("data"); -// SyncService.haiKangMessageConsumer = dataObject.get("consumerId").toString(); -// System.out.println("Get MessageConsumer Success"); -// log.info("Get MessageConsumer Success"); -// } else { -// System.out.println("Get MessageConsumer Error"); -// log.error("Get MessageConsumer Error"); -// } + // 获取消息消费者 + String consumerUrl = "https://api2.hik-cloud.com/api/v1/mq/consumer/group1"; + Map consumerParam = new HashMap<>(); + String consumerResult = HttpUtils.sendPostMap(consumerUrl, consumerParam, SyncService.haiKangToken); + JSONObject consumerObject = JSONObject.parseObject(consumerResult); + if ("200".equals(consumerObject.get("code").toString())) { + JSONObject dataObject = (JSONObject) consumerObject.get("data"); + SyncService.haiKangMessageConsumer = dataObject.get("consumerId").toString(); + System.out.println("Get MessageConsumer Success"); + log.info("Get MessageConsumer Success"); + } else { + System.out.println("Get MessageConsumer Error"); + log.error("Get MessageConsumer Error"); + } } -// -// @Async -// @Scheduled(fixedDelay = 1000 * 20 * 1) //20秒拉取一次报警信息 -// public void pushEmail() { -// try { -// yMessageInfoService.saveMessageInfo(); -// } catch (Exception ex) { -// ex.printStackTrace(); -// } -// } + + @Async + @Scheduled(fixedDelay = 1000 * 20 * 1) //20秒拉取一次报警信息 + public void pushEmail() { + try { + yMessageInfoService.saveMessageInfo(); + yMessageInfoService.getCallMessage(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } } diff --git a/yxt-supervise-monitor-biz/src/main/resources/application-test.yml b/yxt-supervise-monitor-biz/src/main/resources/application-test.yml index 785375a..fbbff61 100644 --- a/yxt-supervise-monitor-biz/src/main/resources/application-test.yml +++ b/yxt-supervise-monitor-biz/src/main/resources/application-test.yml @@ -29,7 +29,7 @@ image: prefix: http://122.14.222.186:7003/upload/ scheduleTime: - cron: 0/59 0/2 * * * ? + cron: 0 0 2 * * ? # folder: D:\resources\download folder: /root/huirong/monitor-java/imagesDownload