Browse Source

更新仓库表结构,新增仓库查询的筛选条件

对所有的摄像头都进行拍照抓图
master
yangzongjia 2 years ago
parent
commit
1a4a5293b5
  1. 3
      yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/DeviceImage.java
  2. 22
      yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/WareHouse.java
  3. 1
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/YxtSuperviseMonitorApplication.java
  4. 11
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java
  5. 2
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceMapper.xml
  6. 4
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java
  7. 10
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceService.java
  8. 22
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java
  9. 19
      yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncDetection.java
  10. 4
      yxt-supervise-monitor-biz/src/main/resources/application-test.yml

3
yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/DeviceImage.java

@ -73,4 +73,7 @@ public class DeviceImage extends EntityWithId {
@ApiModelProperty("相似度")
private String similarity;
@ApiModelProperty("仓库ID")
private Integer ckId;
}

22
yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/WareHouse.java

@ -20,16 +20,16 @@ public class WareHouse {
@ApiModelProperty("仓库名称")
private String name; // 名称
@ApiModelProperty("位置")
private String position;
@ApiModelProperty("货架号")
private String code;
@ApiModelProperty("联系人")
private String lxr;
@ApiModelProperty("手机号")
private String lxdh;
// @ApiModelProperty("位置")
// private String position;
//
// @ApiModelProperty("货架号")
// private String code;
//
// @ApiModelProperty("联系人")
// private String lxr;
//
// @ApiModelProperty("手机号")
// private String lxdh;
}

1
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/YxtSuperviseMonitorApplication.java

@ -3,6 +3,7 @@ package com.yxt.supervise.monitor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
/**

11
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java

@ -8,6 +8,7 @@ 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.messaging.simp.SimpMessagingTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -27,6 +28,9 @@ public class CallRest {
@Autowired
private DemoBaseentityService demoBaseentityService;
// @Autowired
// private SimpMessagingTemplate messagingTemplate;
@ApiOperation("获取token")
@GetMapping("/getCallToken")
public String getCallToken() throws Exception {
@ -168,10 +172,9 @@ public class CallRest {
@ApiOperation("临时测试")
@GetMapping("/callTempFunc")
public void callTempFunc() throws NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException {
// String url = "https://api2.hik-cloud.com/api/v1/open/basic/devices/list?groupNo=A1181&pageNo=1&pageSize=50";
String url = "https://api2.hik-cloud.com/api/v1/ezviz/devices/queryDeviceStatus?deviceSerial=Q16362484";
String result = HttpUtils.sendGet(url, SyncService.haiKangToken);
System.out.println(result);
// String errorMessage = "这是一条新的报警消息。";
// messagingTemplate.convertAndSendToUser("ee533a0427b74da79d307a77c989c2d1", "/queue/subscribe", errorMessage);
// messagingTemplate.convertAndSend("/topic/subscribe", "您收到了新的系统消息");
}
}

2
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.supervise.monitor.biz.device.YDeviceMapper">
<select id="getWareHouseList" resultType="com.yxt.supervise.monitor.api.entity.WareHouse">
select id,name, code, position, lxr, lxdh
select id,name
from y_warehouse
</select>
</mapper>

4
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java

@ -45,9 +45,9 @@ public class YDeviceRest {
@ApiOperation("获取指定设备列表")
@GetMapping("/getOtherList")
public ResultBean getOtherList(String type) {
public ResultBean getOtherList(String type,String ckId) {
ResultBean rb = ResultBean.fireSuccess();
rb.setData(yDeviceService.getOtherList(type));
rb.setData(yDeviceService.getOtherList(type,ckId));
return rb;
}

10
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceService.java

@ -63,10 +63,13 @@ public class YDeviceService extends ServiceImpl<YDeviceMapper, Device> {
}
public List<Device> getOtherList(String type) {
public List<Device> getOtherList(String type,String ckId) {
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", type); //1 摄像头
if(ckId != null){
queryWrapper.eq("ckId", ckId);
}
queryWrapper.eq("isDelete", 0);
List<Device> athleteBOIPage = null;
@ -157,6 +160,11 @@ public class YDeviceService extends ServiceImpl<YDeviceMapper, Device> {
Device nvrDevice = this.getById(device.getNvrId());
device.setNvrCode(nvrDevice.getVCode());
device.setNvrSerial(nvrDevice.getSerialNumber());
device.setCkId(nvrDevice.getCkId());
}
if ("2".equals(device.getType())) { //电子围栏
Device nvrDevice = this.getById(device.getBjzjId());
device.setCkId(nvrDevice.getCkId());
}
return rb.setData(this.save(device));
// // 先给海康接口添加设备 如果失败直接返回失败

22
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java

@ -45,6 +45,9 @@ public class YDeviceImageService extends ServiceImpl<YDeviceImageMapper, DeviceI
if (StrUtil.isNotBlank(searchVo.get("type"))) {
queryWrapper.eq("type", searchVo.get("type"));
}
if (StrUtil.isNotBlank(searchVo.get("ckId"))) {
queryWrapper.eq("ckId", searchVo.get("ckId"));
}
queryWrapper.eq("isDelete", 0);
queryWrapper.eq("isShow", 1);
queryWrapper.orderByAsc("channelNo");
@ -69,13 +72,13 @@ public class YDeviceImageService extends ServiceImpl<YDeviceImageMapper, DeviceI
}
public void getImage(String channelNo) {
public void getImage(Device device) {
// 访问接口 把图片保存到本地
String url = "https://api2.hik-cloud.com/api/v1/open/basic/channels/actions/capture";
String picName = "";
Map<String, Object> param = new HashMap<>();
param.put("deviceSerial", "L20560109"); // 设备序列号 string
param.put("channelNo", channelNo); // 组编号 string
param.put("deviceSerial", device.getNvrSerial()); // 设备序列号 string
param.put("channelNo", device.getChannelNo()); // 组编号 string
String paramJson = JSONObject.toJSONString(param);
String result = HttpUtils.sendPostJson(url, paramJson, SyncService.haiKangToken);
JSONObject jsonObject = JSONObject.parseObject(result);
@ -83,7 +86,7 @@ public class YDeviceImageService extends ServiceImpl<YDeviceImageMapper, DeviceI
String picUrl = dataJson.get("picUrl").toString();
String day = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss");
picName = day + channelNo + ".png";
picName = day + device.getChannelNo() + ".png";
try {
ImageDownloadUtil.download(picUrl, filePath, picName);
} catch (IOException e) {
@ -94,19 +97,22 @@ public class YDeviceImageService extends ServiceImpl<YDeviceImageMapper, DeviceI
// 入库操作
QueryWrapper<DeviceImage> wrapper = new QueryWrapper<>();
wrapper.eq("isShow", "1");
wrapper.eq("channelNo", channelNo);
wrapper.eq("channelNo", device.getChannelNo());
wrapper.orderByDesc("createTime");
List<DeviceImage> deviceImageList = this.list(wrapper);
DeviceImage deviceImage = new DeviceImage();
deviceImage.setDeviceSerial("L20560109");
deviceImage.setDeviceSerial(device.getNvrSerial());
deviceImage.setCreateTime(new Date());
deviceImage.setChannelNo(channelNo);
deviceImage.setChannelNo(device.getChannelNo());
deviceImage.setIsShow("1");
deviceImage.setCkId(device.getCkId());
if (deviceImageList.size() > 0) {
DeviceImage deviceImageExit = deviceImageList.get(0);
String convertImage = deviceImageExit.getImgAfter();
Date time = deviceImageExit.getModifyTime();
deviceImage.setCreateTime(time);
deviceImage.setImgBefore(convertImage);
deviceImage.setImgAfter(picName);
String similar = String.valueOf(ImageCompareUtil.compareImage(filePath + "/" + convertImage, filePath + "/" + picName));
@ -119,7 +125,7 @@ public class YDeviceImageService extends ServiceImpl<YDeviceImageMapper, DeviceI
deviceImage.setModifyTime(new Date());
// 添加之前先把历史数据isShow改成不展示
this.flushDeviceImageIsShow(channelNo);
this.flushDeviceImageIsShow(device.getChannelNo());
this.save(deviceImage);
} else {
deviceImage.setImgBefore(picName);

19
yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncDetection.java

@ -2,6 +2,9 @@ package com.yxt.supervise.monitor.biz.scheduled;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yxt.supervise.monitor.api.entity.Device;
import com.yxt.supervise.monitor.biz.device.YDeviceService;
import com.yxt.supervise.monitor.biz.deviceImage.YDeviceImageService;
import com.yxt.supervise.monitor.biz.util.HttpUtils;
import com.yxt.supervise.monitor.biz.util.ImageDownloadUtil;
@ -10,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
@ -21,6 +25,7 @@ import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
@ -36,6 +41,9 @@ public class SyncDetection implements SchedulingConfigurer {
@Autowired
YDeviceImageService yDeviceImageService;
@Autowired
YDeviceService yDeviceService;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
// 动态使用cron表达式设置循环间隔
@ -43,10 +51,13 @@ public class SyncDetection implements SchedulingConfigurer {
new Runnable() {
@Override
public void run() {
yDeviceImageService.getImage("1");
yDeviceImageService.getImage("2");
yDeviceImageService.getImage("3");
yDeviceImageService.getImage("4");
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", "1"); //1 摄像头
queryWrapper.eq("isDelete", 0);
List<Device> list = yDeviceService.list(queryWrapper);
for(Device device : list){
yDeviceImageService.getImage(device);
}
}
},
new Trigger() {

4
yxt-supervise-monitor-biz/src/main/resources/application-test.yml

@ -30,6 +30,6 @@ image:
scheduleTime:
cron: 0 59 * * * ?
# folder: D:\resources\download
folder: /root/huirong/monitor-java/imagesDownload
folder: D:\resources\download
# folder: /root/huirong/monitor-java/imagesDownload

Loading…
Cancel
Save