Browse Source

大华红外测温接入

master
王寅 4 months ago
parent
commit
84f29a8b0c
7 changed files with 59 additions and 18 deletions
  1. +3
    -2
      src/main/java/com/inspect/simulator/controller/InfraredController.java
  2. +2
    -0
      src/main/java/com/inspect/simulator/domain/basedata/BasedataEqpBookChannel.java
  3. +3
    -0
      src/main/java/com/inspect/simulator/mapper/BasedataEqpBookChannelMapper.java
  4. +3
    -2
      src/main/java/com/inspect/simulator/service/HikVisionService.java
  5. +1
    -1
      src/main/java/com/inspect/simulator/service/impl/AlgorithmServiceImpl.java
  6. +38
    -13
      src/main/java/com/inspect/simulator/service/impl/HikVisionServiceImpl.java
  7. +9
    -0
      src/main/resources/mapper/metadata/BasedataEqpBookChannelMapper.xml

+ 3
- 2
src/main/java/com/inspect/simulator/controller/InfraredController.java View File

@ -5,6 +5,7 @@ import com.inspect.simulator.domain.Infrared.InfraPictureInfo;
import com.inspect.simulator.domain.Infrared.InfraredBox;
import com.inspect.simulator.domain.Infrared.TemperatureData;
import com.inspect.simulator.domain.assistant.Session;
import com.inspect.simulator.domain.result.BasedataPatrolPoint;
import com.inspect.simulator.hikVision.utils.AjaxResult;
import com.inspect.simulator.hikVision.utils.StringUtils;
import com.inspect.simulator.service.HikVisionService;
@ -67,8 +68,8 @@ public class InfraredController {
// }
@PostMapping("/hw/cameraHong")
@ResponseBody
public TemperatureData cameraHongWaiHk() {
return hikVisionService.TemperatureMeasurement();
public TemperatureData cameraHongWaiHk(@RequestBody BasedataPatrolPoint basedataPatrolPoint) {
return hikVisionService.TemperatureMeasurement(basedataPatrolPoint);
}
//图谱解析


+ 2
- 0
src/main/java/com/inspect/simulator/domain/basedata/BasedataEqpBookChannel.java View File

@ -41,6 +41,7 @@ public class BasedataEqpBookChannel extends BaseEntity {
private String password;
private String deviceSource;
private String presetPosCode;
@Override
public String toString() {
@ -63,6 +64,7 @@ public class BasedataEqpBookChannel extends BaseEntity {
", username='" + username + '\'' +
", password='" + password + '\'' +
", deviceSource='" + deviceSource + '\'' +
", presetPosCode='" + presetPosCode + '\'' +
'}';
}
}

+ 3
- 0
src/main/java/com/inspect/simulator/mapper/BasedataEqpBookChannelMapper.java View File

@ -3,6 +3,7 @@ package com.inspect.simulator.mapper;
import com.inspect.simulator.domain.basedata.BasedataEqpBook;
import com.inspect.simulator.domain.basedata.BasedataEqpBookChannel;
import com.inspect.simulator.domain.result.BasedataPatrolPoint;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -23,4 +24,6 @@ public interface BasedataEqpBookChannelMapper {
List<BasedataEqpBookChannel> getChannelByEqpBookCode(BasedataEqpBook eqpBook);
BasedataEqpBookChannel getChannelByPatrolPointId(BasedataPatrolPoint basedataPatrolPoint);
}

+ 3
- 2
src/main/java/com/inspect/simulator/service/HikVisionService.java View File

@ -1,6 +1,7 @@
package com.inspect.simulator.service;
import com.inspect.simulator.domain.Infrared.*;
import com.inspect.simulator.domain.result.BasedataPatrolPoint;
import com.inspect.simulator.hikVision.utils.AjaxResult;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
@ -25,7 +26,7 @@ public interface HikVisionService {
//图谱解析
ResponseEntity<String> irPicAnalyse(String analyseRequest);
InfraredInfo calculatePicture(InfraPictureInfo infraPictureInfo,String picData);
InfraredInfo calculatePicture(InfraPictureInfo infraPictureInfo,String picData,BasedataPatrolPoint basedataPatrolPoint);
InputStream downloadCsv(String filePath);
@ -35,5 +36,5 @@ public interface HikVisionService {
List<InfraredBox> selectInfraredBoxListByImgName(String imgName);
public TemperatureData TemperatureMeasurement();
public TemperatureData TemperatureMeasurement(BasedataPatrolPoint basedataPatrolPoint);
}

+ 1
- 1
src/main/java/com/inspect/simulator/service/impl/AlgorithmServiceImpl.java View File

@ -258,7 +258,7 @@ public class AlgorithmServiceImpl implements AlgorithmService {
InfraPictureInfo infraPictureInfo = new InfraPictureInfo();
infraPictureInfo.setImgType(typeListImg[0]);
infraPictureInfo.setFilePath(imageUrlList[0]);
InfraredInfo infraredInfo = hikVisionService.calculatePicture(infraPictureInfo, infraFrameContent);
InfraredInfo infraredInfo = hikVisionService.calculatePicture(infraPictureInfo, infraFrameContent,basedataPatrolPoint2);
final String feedBackHostIp = analyseRequest.getRequestHostIp();
final String feedBackPort = analyseRequest.getRequestHostPort();


+ 38
- 13
src/main/java/com/inspect/simulator/service/impl/HikVisionServiceImpl.java View File

@ -3,6 +3,7 @@ package com.inspect.simulator.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
@ -50,9 +51,7 @@ import java.nio.ByteOrder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.*;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -116,6 +115,7 @@ public class HikVisionServiceImpl implements HikVisionService {
@Autowired
private BasedataPatrolPointMapper basedataPatrolPointMapper;
// @Override
// public AjaxResult login(NvrInfo nvrInfo) {
// return login_V40(nvrInfo);
@ -1349,7 +1349,7 @@ public class HikVisionServiceImpl implements HikVisionService {
// infraPictureInfo.setChannelId();
infraPictureInfo.setImgType(typeListImg[0]);
infraPictureInfo.setFilePath(imageUrlList[0]);
InfraredInfo infraredInfo = calculatePicture(infraPictureInfo, "1,1,639,511,640,512");
InfraredInfo infraredInfo = calculatePicture(infraPictureInfo, "1,1,639,511,640,512",new BasedataPatrolPoint());
AnalyseResult analyseResult = new AnalyseResult();
@ -1389,7 +1389,7 @@ public class HikVisionServiceImpl implements HikVisionService {
return ResponseEntity.ok().body("{\"code\":\"200\"}");
}
public InfraredInfo calculatePicture(InfraPictureInfo infraPictureInfo, String picData) {
public InfraredInfo calculatePicture(InfraPictureInfo infraPictureInfo, String picData,BasedataPatrolPoint basedataPatrolPoint) {
log.info("进入红外图片接口!");
@ -1451,7 +1451,7 @@ public class HikVisionServiceImpl implements HikVisionService {
//调取实时测温温度
//传值相机 ip
TemperatureData temperatureData = TemperatureMeasurement();
TemperatureData temperatureData = TemperatureMeasurement(basedataPatrolPoint);
String minTemperature = temperatureData.getMinTemperature();
String maxTemperature = temperatureData.getMaxTemperature();
@ -1565,10 +1565,7 @@ public class HikVisionServiceImpl implements HikVisionService {
return infraredInfo;
}
public TemperatureData TemperatureMeasurement() {
public TemperatureData TemperatureMeasurement(BasedataPatrolPoint basedataPatrolPoint) {
TemperatureData temperatureData = new TemperatureData();
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(5, TimeUnit.SECONDS) // 连接超时5秒
@ -1576,12 +1573,38 @@ public class HikVisionServiceImpl implements HikVisionService {
.writeTimeout(5, TimeUnit.SECONDS) // 写入超时5秒
.retryOnConnectionFailure(false) // 禁用自动重试
.build();
//获取通道信息用于后续获取测温数据时使用
BasedataEqpBookChannel eqpchannel = basedataEqpBookChannelMapper.getChannelByPatrolPointId(basedataPatrolPoint);
// 构造 JSON 请求体
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
String jsonBody = "{\"ip\":\"192.168.12.11\",\"port\":\"8000\",\"userName\":\"admin\",\"password\":\"sshw1234\"}";
log.info("JSON 请求体: " +jsonBody);
log.info("eqpchannel{}",eqpchannel);
log.info("eqpchannel-address{}",eqpchannel.getAddress());
String[] eqpAddress = eqpchannel.getAddress().split(":");
ObjectMapper req_mapper = new ObjectMapper();
Map<String, String> requestBody = new HashMap<>();
requestBody.put("ip", eqpAddress[7]);
requestBody.put("port", eqpAddress[8]);
requestBody.put("channel", eqpAddress[9]);
requestBody.put("presetId", eqpchannel.getPresetPosCode());
requestBody.put("cameraType", eqpAddress[4]);
requestBody.put("userName", eqpAddress[5]);
requestBody.put("password", eqpAddress[6]);
log.info("requestBody 请求体: " +requestBody.toString());
String jsonBody = null;
try {
jsonBody = req_mapper.writeValueAsString(requestBody);
log.info("JSON 请求体: " +jsonBody);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
RequestBody body = RequestBody.create(JSON, jsonBody);
// String jsonBody = "{\"ip\":\"192.168.12.11\",\"port\":\"8000\",\"userName\":\"admin\",\"password\":\"sshw1234\",\"cameraType\":\"0\"}";
// log.info("JSON 请求体: " +jsonBody);
// RequestBody body = RequestBody.create(JSON, requestBody.toString());
try {
// 构建 multipart 请求体
// RequestBody requestBody = new MultipartBody.Builder()
@ -1594,7 +1617,7 @@ public class HikVisionServiceImpl implements HikVisionService {
// 构建请求
Request request = new Request.Builder()
.url("http://172.21.101.111:8080/hw/cameraHong")
.url("http://172.21.101.79:8080/hw/cameraHong")
.post(body)
.addHeader("Content-Type", "application/json")
.build();
@ -1631,6 +1654,8 @@ public class HikVisionServiceImpl implements HikVisionService {
return temperatureData;
}
@Override
public InputStream downloadCsv(String filePath) {
log.info("解析csv图片地址" + filePath);


+ 9
- 0
src/main/resources/mapper/metadata/BasedataEqpBookChannelMapper.xml View File

@ -26,6 +26,7 @@
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="deviceSource" column="device_source" />
<result property="presetPosCode" column="preset_pos_code" />
</resultMap>
<sql id="selectBasedataEqpBookChannelVo">
@ -189,4 +190,12 @@
a.eqp_book_id = b.eqp_book_id
<if test="patrolDeviceCode != null">AND a.patrol_device_code = #{patrolDeviceCode}</if>
</select>
<select id="getChannelByPatrolPointId" parameterType="com.inspect.simulator.domain.result.BasedataPatrolPoint"
resultMap="BasedataEqpBookChannelResult">
select ppp.preset_pos_code,bec.address,bec.host,bec.port from basedata_eqpbook_channel bec
left join basedata_patrolpoint_preset bpp on bec.channel_code = bpp.channel_code
left join patrol_preset_pos ppp on ppp.patrol_point_id = bpp.patrol_point_id
where bpp.patrol_point_id = #{patrolPointId}
</select>
</mapper>

Loading…
Cancel
Save