|
|
@@ -31,7 +31,7 @@ import java.util.Date;
|
|
31
|
31
|
@Service
|
|
32
|
32
|
public class AlarmDSServiceImpl implements AlarmDSService {
|
|
33
|
33
|
|
|
34
|
|
- @Override
|
|
|
34
|
+/* @Override
|
|
35
|
35
|
public void pushLCommand(Integer lCommand) {
|
|
36
|
36
|
// 获取spring RestTemple bean
|
|
37
|
37
|
RestTemplate restTemplate = (RestTemplate) GetBeanUtil.getBean("restTemplate");
|
|
|
@@ -52,69 +52,64 @@ public class AlarmDSServiceImpl implements AlarmDSService {
|
|
52
|
52
|
Object object = restTemplate.postForObject(addressModel.getPush(), requestEntity, Object.class);
|
|
53
|
53
|
log.info("AlarmDSServiceImpl push alarm result: {}", object);
|
|
54
|
54
|
}
|
|
55
|
|
-
|
|
|
55
|
+*/
|
|
56
|
56
|
@Override
|
|
57
|
|
- public void pushLCommandEx(Integer lCommand, HCNetSDK.NET_VCA_RULE_ALARM ruleAlarm) {
|
|
58
|
|
- // 获取spring RestTemple bean
|
|
59
|
|
- RestTemplate restTemplate = (RestTemplate) GetBeanUtil.getBean("restTemplate");
|
|
|
57
|
+ public void pushLCommand(Integer lCommand, HCNetSDK.NET_VCA_RULE_ALARM ruleAlarm) {
|
|
|
58
|
+ RestTemplate rest = new RestTemplate();
|
|
|
59
|
+ MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
|
|
|
60
|
+ headers.add("content-type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
|
|
|
61
|
+ // headers.add("Accept", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
|
|
|
62
|
+ // 请求体
|
|
|
63
|
+ MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
|
|
60
|
64
|
// get push class AddressModel bean
|
|
61
|
65
|
AddressModel addressModel = (AddressModel) GetBeanUtil.getBean("addressModel");
|
|
62
|
|
- // MultiValueMap requestEntity
|
|
63
|
|
- MultiValueMap<String, Object> requestEntity = new LinkedMultiValueMap<>();
|
|
64
|
66
|
// 报警类型(异常闯入/入侵) int 4354
|
|
65
|
|
- requestEntity.add("sAlarmType", lCommand);
|
|
|
67
|
+ body.add("sAlarmType", String.valueOf(lCommand));
|
|
66
|
68
|
// 报警时间
|
|
67
|
|
- requestEntity.add("alarmNow", new Date());
|
|
|
69
|
+ body.add("alarmNow",
|
|
|
70
|
+ (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
|
|
|
71
|
+ .format(new Date()));
|
|
68
|
72
|
// 设备ip
|
|
69
|
|
- requestEntity.add("deviceIP", addressModel.getDeviceIP());
|
|
|
73
|
+ body.add("deviceIP", addressModel.getDeviceIP());
|
|
70
|
74
|
// 机构编码
|
|
71
|
|
- requestEntity.add("orgCode", addressModel.getOrgCode());
|
|
|
75
|
+ body.add("orgCode", addressModel.getOrgCode());
|
|
|
76
|
+ byte[] bytes = null;
|
|
|
77
|
+ if(ruleAlarm != null) {
|
|
|
78
|
+ body.add("cameraIP", ruleAlarm.struDevInfo.struDevIP.sIpV4.toString());
|
|
|
79
|
+ //将字节写入文件
|
|
|
80
|
+ SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
81
|
+ String newName = sf.format(new Date());
|
|
|
82
|
+ //FileOutputStream fout;
|
|
|
83
|
+ String filename = ".//pic//" + newName + "_pSnapPicBuffer" + ".jpg";
|
|
|
84
|
+ /*try {
|
|
|
85
|
+ long offset = 0;
|
|
|
86
|
+ fout = new FileOutputStream(filename);
|
|
|
87
|
+ ByteBuffer buffers = ruleAlarm.pImage.getByteBuffer(offset, ruleAlarm.dwPicDataLen);
|
|
|
88
|
+ bytes = new byte[ruleAlarm.dwPicDataLen];
|
|
|
89
|
+ buffers.rewind();
|
|
|
90
|
+ buffers.get(bytes);
|
|
|
91
|
+ fout.write(bytes);
|
|
|
92
|
+ fout.close();
|
|
|
93
|
+ } catch (FileNotFoundException e) {
|
|
|
94
|
+ throw new RuntimeException(e);
|
|
|
95
|
+ } catch (IOException e) {
|
|
|
96
|
+ throw new RuntimeException(e);
|
|
|
97
|
+ }*/
|
|
72
|
98
|
|
|
73
|
|
- requestEntity.add("cameraIP", ruleAlarm.struDevInfo.struDevIP.toString());
|
|
74
|
|
- //将字节写入文件
|
|
75
|
|
- SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
76
|
|
- String newName = sf.format(new Date());
|
|
77
|
|
- FileOutputStream fout;
|
|
78
|
|
- String filename = ".//pic//" + newName + "_pSnapPicBuffer" + ".jpg";
|
|
79
|
|
- try {
|
|
80
|
99
|
long offset = 0;
|
|
81
|
|
- fout = new FileOutputStream(filename);
|
|
82
|
100
|
ByteBuffer buffers = ruleAlarm.pImage.getByteBuffer(offset, ruleAlarm.dwPicDataLen);
|
|
83
|
|
- byte[] bytes = new byte[ruleAlarm.dwPicDataLen];
|
|
|
101
|
+ bytes = new byte[ruleAlarm.dwPicDataLen];
|
|
84
|
102
|
buffers.rewind();
|
|
85
|
103
|
buffers.get(bytes);
|
|
86
|
|
- fout.write(bytes);
|
|
87
|
|
- fout.close();
|
|
88
|
|
- } catch (FileNotFoundException e) {
|
|
89
|
|
- throw new RuntimeException(e);
|
|
90
|
|
- } catch (IOException e) {
|
|
91
|
|
- throw new RuntimeException(e);
|
|
92
|
|
- }
|
|
|
104
|
+ buffers.flip();
|
|
|
105
|
+ body.add("picByte", Base64.encodeBase64String(bytes));
|
|
|
106
|
+ body.add("picSize", String.valueOf(ruleAlarm.dwPicDataLen));
|
|
|
107
|
+ log.info("准备上传数据,报警类型: {}\t超脑IP:{}\t摄像头IP:{}",
|
|
|
108
|
+ body.get("sAlarmType"), body.get("deviceIP"), body.get("cameraIP"));
|
|
93
|
109
|
|
|
94
|
|
- long offset = 0;
|
|
95
|
|
- ByteBuffer buffers = ruleAlarm.pImage.getByteBuffer(offset, ruleAlarm.dwPicDataLen);
|
|
96
|
|
- byte[] bytes = new byte[ruleAlarm.dwPicDataLen];
|
|
97
|
|
- buffers.rewind();
|
|
98
|
|
- buffers.get(bytes);
|
|
99
|
|
- buffers.flip();
|
|
100
|
|
- String picStr = StandardCharsets.UTF_8.decode(buffers).toString();
|
|
101
|
|
- log.info("pic-string length:"+picStr.length());
|
|
102
|
|
- requestEntity.add("pic", picStr);
|
|
103
|
|
- requestEntity.add("picSize", ruleAlarm.dwPicDataLen);
|
|
104
|
|
- log.info("报警类型: %d", requestEntity.get("sAlarmType") + "超脑IP:"+requestEntity.get("deviceIP")+"\t摄像头IP:"+requestEntity.get("cameraIP"));
|
|
105
|
|
- // push of post for object
|
|
106
|
|
- //Object object = restTemplate.postForObject(addressModel.getPush(), requestEntity, Object.class);
|
|
107
|
|
- //log.info("AlarmDSServiceImpl push alarm result: {}", object);
|
|
108
|
|
-
|
|
109
|
|
- RestTemplate rest = new RestTemplate();
|
|
110
|
|
- MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
|
|
111
|
|
- headers.add("content-type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
|
|
112
|
|
- // headers.add("Accept", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
|
|
113
|
|
- // 请求体
|
|
114
|
|
- MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
|
|
115
|
|
- body.add("file", "picture");
|
|
116
|
|
- body.add("base64", Base64.encodeBase64String(bytes));
|
|
117
|
|
- body.add("key", "123456");
|
|
|
110
|
+ }else{
|
|
|
111
|
+ //log.info("报警类型: {}\t超脑IP:{}", body.get("sAlarmType"), body.get("deviceIP"));
|
|
|
112
|
+ }
|
|
118
|
113
|
|
|
119
|
114
|
HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(body, headers);
|
|
120
|
115
|
ResponseEntity<String> response = rest.postForEntity(addressModel.getPush(), httpEntity, String.class);
|