|
@@ -1,53 +1,34 @@
|
|
|
package com.ozs.controller.upload;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
-import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.ozs.common.annotation.SdkLog;
|
|
|
-import com.ozs.common.constant.Constants;
|
|
|
-import com.ozs.common.core.redis.RedisCache;
|
|
|
import com.ozs.common.enums.BusinessTypeSdk;
|
|
|
import com.ozs.common.utils.ApiTokenUtils;
|
|
|
-import com.ozs.common.utils.HttpClientUtil;
|
|
|
import com.ozs.common.utils.StringUtils;
|
|
|
-import com.ozs.common.utils.http.HttpUtils;
|
|
|
import com.ozs.common.utils.stateSecrets.SM4Utils;
|
|
|
-import com.ozs.service.entity.BaseCameraManagement;
|
|
|
-import com.ozs.service.entity.BaseDeviceDynamicManagement;
|
|
|
-import com.ozs.service.entity.BaseUser;
|
|
|
-import com.ozs.service.entity.MsgAlarm;
|
|
|
-import com.ozs.service.entity.MsgAlarmFrequency;
|
|
|
-import com.ozs.service.entity.SvcAddress;
|
|
|
-import com.ozs.service.entity.vo.BaseCameraVO;
|
|
|
+import com.ozs.config.AjaxResults;
|
|
|
+import com.ozs.service.entity.*;
|
|
|
+import com.ozs.service.entity.vo.Files;
|
|
|
+import com.ozs.service.entity.vo.ParameterVo;
|
|
|
+import com.ozs.service.entity.vo.ReleaseAlarmVo;
|
|
|
+import com.ozs.service.entity.vo.ReqMsgAlarmMatterVo;
|
|
|
import com.ozs.service.service.*;
|
|
|
-import com.ozs.vo.ReqDeviceVo;
|
|
|
-import com.ozs.vo.ReqMsgAlarmVo;
|
|
|
import com.ozs.vo.RespGeoHazardMonitorVo;
|
|
|
-import com.ozs.vo.RespMsgAlarmVo;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.data.redis.core.SetOperations;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
-import java.text.ParseException;
|
|
|
+
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.time.Instant;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.OffsetDateTime;
|
|
|
-import java.time.ZoneOffset;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
-import java.util.concurrent.CompletableFuture;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 1. 获取身份认证控制层
|
|
@@ -57,42 +38,31 @@ import java.util.stream.Collectors;
|
|
|
@RestController
|
|
|
@Slf4j
|
|
|
public class GeoHazardMonitorTokenController {
|
|
|
- public static final String PATTERN = "^([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)$";
|
|
|
+ public static final String PATTERNS = "^[0-9]*$";
|
|
|
@Resource
|
|
|
private ApiTokenUtils apiTokenUtils;
|
|
|
- @Resource
|
|
|
- BaseDeviceDynamicManagementService baseDeviceDynamicManagementService;
|
|
|
@Autowired
|
|
|
- MsgAlarmService msgAlarmService;
|
|
|
+ MsgAlarmMatterService msgAlarmMatterService;
|
|
|
@Autowired
|
|
|
- MsgAlarmFrequencyService msgAlarmFrequencyService;
|
|
|
+ MsgAlarmFrequencyMatterService msgAlarmFrequencyMatterService;
|
|
|
@Autowired
|
|
|
SvcAddressService svcAddressService;
|
|
|
@Autowired
|
|
|
BaseCameraManagementService baseCameraManagementService;
|
|
|
- @Value("${sdk.publish}")
|
|
|
- private String sdkUrl;
|
|
|
@Autowired
|
|
|
- private BaseUserService baseUserService;
|
|
|
+ private MsgAlarmExtService msgAlarmExtService;
|
|
|
@Autowired
|
|
|
- private RedisCache redisCache;
|
|
|
+ private BaseRailwayManagementService baseRailwayManagementService;
|
|
|
@Autowired
|
|
|
- private RedisService redisService;
|
|
|
- @Value("${base.webUrl}")
|
|
|
- private String webUrl;
|
|
|
- @Value("${base.bakUrl}")
|
|
|
- private String bakUrl;
|
|
|
- @Value("${base.wsUrl}")
|
|
|
- private String wsUrl;
|
|
|
- @Value("${base.recordUrl}")
|
|
|
- private String recordUrl;
|
|
|
+ private BaseUserService baseUserService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
- * 获取web访问令牌
|
|
|
+ * 异物侵限获取web访问令牌
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- @PostMapping("/token")
|
|
|
+ @PostMapping("/api/token")
|
|
|
@SdkLog(title = "获取web访问令牌", businessType = BusinessTypeSdk.TOKEN)
|
|
|
public String getWebToken(@RequestBody SvcAddress svcAddress) {
|
|
|
// 生成令牌
|
|
@@ -104,7 +74,7 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("resultCode", 0);
|
|
|
jsonObject.put("message", "失败");
|
|
|
jsonObject.put("data", "客户端编号不能为空");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "f5408458becc8c68");
|
|
|
}
|
|
|
SvcAddress serviceOne = svcAddressService.getOne(lw);
|
|
|
if (!ObjectUtils.isEmpty(serviceOne)) {
|
|
@@ -119,426 +89,239 @@ public class GeoHazardMonitorTokenController {
|
|
|
jsonObject.put("resultCode", 1);
|
|
|
jsonObject.put("message", "成功");
|
|
|
jsonObject.put("data", respGeoHazardMonitorVo);
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "f5408458becc8c68");
|
|
|
} else {
|
|
|
jsonObject.put("resultCode", 0);
|
|
|
jsonObject.put("message", "失败");
|
|
|
jsonObject.put("data", "生成token失败");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "f5408458becc8c68");
|
|
|
}
|
|
|
} else {
|
|
|
jsonObject.put("resultCode", 0);
|
|
|
jsonObject.put("message", "失败");
|
|
|
jsonObject.put("data", "客户端密钥错误");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "f5408458becc8c68");
|
|
|
}
|
|
|
} else {
|
|
|
jsonObject.put("resultCode", 0);
|
|
|
jsonObject.put("message", "失败");
|
|
|
jsonObject.put("data", "参数验证失败");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "f5408458becc8c68");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 报警信息数据传输
|
|
|
- *
|
|
|
- * @return // 生成令牌
|
|
|
*/
|
|
|
- @PostMapping("/alarm")
|
|
|
- @Transactional
|
|
|
- @SdkLog(title = "报警信息数据传输", businessType = BusinessTypeSdk.ALARM)
|
|
|
- public String alarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
|
|
|
+ @PostMapping("/api/alarm")
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public synchronized String alarm(@RequestBody ParameterVo parameterVo, HttpServletRequest request) throws Exception {
|
|
|
+ long begin = System.currentTimeMillis();
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
|
|
|
+ log.info("报警信息数据传输开始时间: " + simpleDateFormat.format(new Date(begin)));
|
|
|
String token = apiTokenUtils.getGeoHazardMonitorToken(request);
|
|
|
log.info("token:{}", token);
|
|
|
- log.info("parameter:{}", parameter);
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
+ log.info("parameter:{}", parameterVo);
|
|
|
+ AjaxResults AjaxResults1 = null;
|
|
|
if (StringUtils.isNotEmpty(token)) {
|
|
|
- String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
|
|
|
- ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
|
|
|
- if (!reqMsgAlarmVo.getAlarmAttr().matches(PATTERN)) {
|
|
|
- jsonObject.put("resultCode", 0);
|
|
|
- jsonObject.put("message", "失败");
|
|
|
- jsonObject.put("data", "你填写的报警病害属性不符合规则!!!");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ String[] split = token.split("-");
|
|
|
+ String key = split[split.length - 1];
|
|
|
+ if (ObjectUtils.isEmpty(parameterVo)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "parameterVo参数不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- if (reqMsgAlarmVo.getAlarmTime().toString().length() == 10) {
|
|
|
- reqMsgAlarmVo.setAlarmTime(reqMsgAlarmVo.getAlarmTime() * 1000);
|
|
|
+ String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), key);
|
|
|
+ ReqMsgAlarmMatterVo reqMsgAlarmMatterVo = JSON.parseObject(s, ReqMsgAlarmMatterVo.class);
|
|
|
+ if (!reqMsgAlarmMatterVo.getAlarmMile().toString().matches(PATTERNS)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "报警里程位置填写错误");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- log.info("reqMsgAlarmVo:{}", reqMsgAlarmVo);
|
|
|
-
|
|
|
- RespMsgAlarmVo respMsgAlarmVo = new RespMsgAlarmVo();
|
|
|
- LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<BaseCameraManagement>();
|
|
|
- if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmCamera())) {
|
|
|
- wrapper.eq(BaseCameraManagement::getCameraCode, reqMsgAlarmVo.getAlarmCamera());
|
|
|
+ if (reqMsgAlarmMatterVo.getLineDir() != 1 && reqMsgAlarmMatterVo.getLineDir() != 2) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "行别填写错误");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(wrapper);
|
|
|
- log.info("baseCameraManagement:{}", baseCameraManagement);
|
|
|
- if (ObjectUtils.isEmpty(baseCameraManagement)) {
|
|
|
- jsonObject.put("resultCode", 0);
|
|
|
- jsonObject.put("message", "失败");
|
|
|
- jsonObject.put("data", "你填写的相机编码不存在!!!");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
|
|
|
+ if (!ObjectUtils.isEmpty(reqMsgAlarmMatterVo.getAlarmRailway())) {
|
|
|
+ queryWrapper.eq(BaseRailwayManagement::getRailwayCode, reqMsgAlarmMatterVo.getAlarmRailway());
|
|
|
}
|
|
|
- if (ObjectUtils.isEmpty(reqMsgAlarmVo.getLineDir())) {
|
|
|
- reqMsgAlarmVo.setLineDir(baseCameraManagement.getLineDir());
|
|
|
+ BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
|
|
|
+ if (ObjectUtils.isEmpty(baseRailwayManagement)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "填写的报警线路编码不存在");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
|
|
|
- if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmId())) {
|
|
|
- lw.eq(MsgAlarm::getAlarmId, reqMsgAlarmVo.getAlarmId());
|
|
|
+ if (ObjectUtils.isEmpty(reqMsgAlarmMatterVo.getAlarmId())) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "报警的唯一标识不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- MsgAlarm alarm = msgAlarmService.getOne(lw);
|
|
|
- log.info("alarm:{}", alarm);
|
|
|
+ if (ObjectUtils.isEmpty(reqMsgAlarmMatterVo.getAlarmTime())) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "报警时间不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
+ }
|
|
|
+ if (reqMsgAlarmMatterVo.getAlarmType() < 1 || reqMsgAlarmMatterVo.getAlarmType() > 4) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "报警病害类型填写错误");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
+ }
|
|
|
+ if (!reqMsgAlarmMatterVo.getAlarmLevel().toString().matches(PATTERNS)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "报警级别填写错误");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
+ }
|
|
|
+ if (reqMsgAlarmMatterVo.getAlarmTime().toString().length() == 10) {
|
|
|
+ reqMsgAlarmMatterVo.setAlarmTime(reqMsgAlarmMatterVo.getAlarmTime() * 1000);
|
|
|
+ }
|
|
|
+ log.info("reqMsgAlarmVo:{}", reqMsgAlarmMatterVo);
|
|
|
+
|
|
|
+
|
|
|
+ LambdaQueryWrapper<MsgAlarmMatter> lw = new LambdaQueryWrapper<MsgAlarmMatter>();
|
|
|
+ if (!ObjectUtils.isEmpty(reqMsgAlarmMatterVo.getAlarmId())) {
|
|
|
+ lw.eq(MsgAlarmMatter::getAlarmId, reqMsgAlarmMatterVo.getAlarmId());
|
|
|
+ }
|
|
|
+ MsgAlarmMatter alarm = msgAlarmMatterService.getOne(lw);
|
|
|
BaseUser admin = baseUserService.getUserName("admin");
|
|
|
- MsgAlarmFrequency msgAlarmVice = new MsgAlarmFrequency();
|
|
|
+ MsgAlarmFrequencyMatter msgAlarmFrequencyMatter = new MsgAlarmFrequencyMatter();
|
|
|
if (ObjectUtils.isEmpty(alarm)) {
|
|
|
- MsgAlarm msgAlarm = new MsgAlarm();
|
|
|
- BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarm);
|
|
|
- BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
|
|
|
- msgAlarm.setCameraCode(String.valueOf(reqMsgAlarmVo.getAlarmCamera()));
|
|
|
- String[] imageUrl = reqMsgAlarmVo.getImageUrls();
|
|
|
- StringBuffer buffer = new StringBuffer();
|
|
|
- for (String ss : imageUrl) {
|
|
|
- buffer.append(ss);
|
|
|
- buffer.append(";");
|
|
|
+ List<String> stringList = new ArrayList<>();
|
|
|
+ MsgAlarmMatter msgAlarmMatter = new MsgAlarmMatter();
|
|
|
+ BeanUtils.copyProperties(reqMsgAlarmMatterVo, msgAlarmMatter);
|
|
|
+ BeanUtils.copyProperties(reqMsgAlarmMatterVo, msgAlarmFrequencyMatter);
|
|
|
+ msgAlarmMatter.setCreateBy(admin.getUserId());
|
|
|
+ msgAlarmMatter.setUpdateBy(admin.getUserId());
|
|
|
+ log.info("时间++++ long ---- " + reqMsgAlarmMatterVo.getAlarmTime());
|
|
|
+ log.info("时间++++" + new Date(reqMsgAlarmMatterVo.getAlarmTime()));
|
|
|
+ msgAlarmMatter.setAlarmTime(new Date(reqMsgAlarmMatterVo.getAlarmTime()));
|
|
|
+ log.info("时间++++get" + msgAlarmMatter.getAlarmTime());
|
|
|
+ msgAlarmMatter.setRailwayCode(reqMsgAlarmMatterVo.getAlarmRailway());
|
|
|
+ String source = split[split.length - 2];
|
|
|
+ msgAlarmMatter.setSource(source);
|
|
|
+ if (!ObjectUtils.isEmpty(reqMsgAlarmMatterVo.getFiles())) {
|
|
|
+ Files[] files1 = reqMsgAlarmMatterVo.getFiles();
|
|
|
+ if (files1.length > 0) {
|
|
|
+ for (int i = 0; i < files1.length; i++) {
|
|
|
+ if (ObjectUtils.isEmpty(files1[i].fileUrl)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "上传文件地址不能为空!!!");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
+ }
|
|
|
+ if (files1[i].fileType < 1 || files1[i].fileType > 3) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "文件类型填写错误!!!");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
+ }
|
|
|
+ MsgAlarmExt msgAlarmExt = new MsgAlarmExt();
|
|
|
+ msgAlarmExt.setAlarmId(msgAlarmMatter.getAlarmId());
|
|
|
+ msgAlarmExt.setAlarmAttPath(files1[i].fileUrl);
|
|
|
+ msgAlarmExt.setAlarmAttType(files1[i].fileType);
|
|
|
+ msgAlarmExt.setCreateTime(new Date());
|
|
|
+ stringList.add(files1[i].fileUrl);
|
|
|
+ msgAlarmExtService.save(msgAlarmExt);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- String url = buffer.toString();
|
|
|
- msgAlarm.setImageUrl(url.substring(0, url.length() - 1));
|
|
|
- msgAlarm.setCreateBy(admin.getUserId());
|
|
|
- msgAlarm.setUpdateBy(admin.getUserId());
|
|
|
- msgAlarm.setAlarmMile(baseCameraManagement.getInstallMile());
|
|
|
- log.info("时间++++ long ---- " + reqMsgAlarmVo.getAlarmTime());
|
|
|
- log.info("时间++++" + new Date(reqMsgAlarmVo.getAlarmTime()));
|
|
|
- msgAlarm.setAlarmTime(new Date(reqMsgAlarmVo.getAlarmTime()));
|
|
|
- log.info("时间++++get" + msgAlarm.getAlarmTime());
|
|
|
- BaseCameraManagement bcm = msgAlarmService.getBaseCameraManagementByCamereCode(msgAlarm.getCameraCode());
|
|
|
- BaseCameraVO baseCameraVO = new BaseCameraVO();
|
|
|
- baseCameraVO.setCameraCode(bcm.getCameraCode());
|
|
|
- baseCameraVO.setChannel(bcm.getChannel());
|
|
|
- redisService.addToSet(Constants.ALARM_SET, baseCameraVO);
|
|
|
- msgAlarmService.getNormalBaseCameraManagementsCache(Constants.ALARM_SET);
|
|
|
- msgAlarmService.save(msgAlarm);
|
|
|
- msgAlarmVice.setImageUrl(url.substring(0, url.length() - 1));
|
|
|
- msgAlarmVice.setCreateBy(admin.getUserId());
|
|
|
- msgAlarmVice.setUpdateBy(admin.getUserId());
|
|
|
- msgAlarmFrequencyService.save(msgAlarmVice);
|
|
|
- respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
|
|
|
- respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
|
|
|
- respMsgAlarmVo.setIsCancel(2);
|
|
|
- respMsgAlarmVo.setCancelTime(null);
|
|
|
- // 合成报警视频
|
|
|
- CompletableFuture.runAsync(() -> {
|
|
|
- String alarmUrl = alarmHistoryPlay(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), msgAlarm.getAlarmTime());
|
|
|
- msgAlarm.setReleasedUrl(alarmUrl);
|
|
|
- msgAlarmService.updateById(msgAlarm);
|
|
|
- });
|
|
|
+ msgAlarmMatter.setImageUrls(stringList);
|
|
|
+ msgAlarmMatterService.save(msgAlarmMatter);
|
|
|
+ msgAlarmFrequencyMatter.setCreateBy(admin.getUserId());
|
|
|
+ msgAlarmFrequencyMatter.setUpdateBy(admin.getUserId());
|
|
|
+ msgAlarmFrequencyMatter.setRailwayCode(reqMsgAlarmMatterVo.getAlarmRailway());
|
|
|
+ msgAlarmFrequencyMatter.setAlarmTime(new Date(reqMsgAlarmMatterVo.getAlarmTime()));
|
|
|
+ msgAlarmFrequencyMatterService.save(msgAlarmFrequencyMatter);
|
|
|
+
|
|
|
+// log.info("alarmJSON :{}", JSON.toJSONString(msgAlarmMatter));
|
|
|
+// log.info("->>>>>>>>>>>>>>>>>>>>>>>>>>" + msgAlarmMatter);
|
|
|
+// String result = HttpClientUtil.postJson(sdkUrl, JSON.toJSONString(msgAlarmMatter));
|
|
|
+// log.info("->>>>>>>>>>>>>>>>>>>>>>>>>>>>" + result);
|
|
|
+// log.info("result:{}", result);
|
|
|
} else {
|
|
|
- BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
|
|
|
- String[] imageUrl = reqMsgAlarmVo.getImageUrls();
|
|
|
- StringBuffer buffer = new StringBuffer();
|
|
|
- for (String ss : imageUrl) {
|
|
|
- buffer.append(ss);
|
|
|
- buffer.append(";");
|
|
|
- }
|
|
|
- String url = buffer.toString();
|
|
|
- msgAlarmVice.setImageUrl(url.substring(0, url.length() - 1));
|
|
|
- msgAlarmVice.setCreateBy(admin.getUserId());
|
|
|
- msgAlarmVice.setUpdateBy(admin.getUserId());
|
|
|
- msgAlarmFrequencyService.save(msgAlarmVice);
|
|
|
- respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
|
|
|
- respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
|
|
|
- respMsgAlarmVo.setIsCancel(alarm.getIsLock());
|
|
|
- if (!ObjectUtils.isEmpty(alarm.getReleasedTime())) {
|
|
|
- respMsgAlarmVo.setCancelTime(alarm.getReleasedTime().getTime());
|
|
|
- }
|
|
|
- respMsgAlarmVo.setCancelTime(null);
|
|
|
+ BeanUtils.copyProperties(reqMsgAlarmMatterVo, msgAlarmFrequencyMatter);
|
|
|
+ msgAlarmFrequencyMatter.setCreateBy(admin.getUserId());
|
|
|
+ msgAlarmFrequencyMatter.setUpdateBy(admin.getUserId());
|
|
|
+ msgAlarmFrequencyMatter.setAlarmTime(new Date(reqMsgAlarmMatterVo.getAlarmTime()));
|
|
|
+ msgAlarmFrequencyMatter.setRailwayCode(reqMsgAlarmMatterVo.getAlarmRailway());
|
|
|
+ msgAlarmFrequencyMatterService.save(msgAlarmFrequencyMatter);
|
|
|
}
|
|
|
- try {
|
|
|
- MsgAlarm alarms = msgAlarmService.getOne(lw);
|
|
|
- log.info("sdkUrl:{}", sdkUrl);
|
|
|
- log.info("alarmJSON :{}", JSON.toJSONString(alarms));
|
|
|
- String result = HttpClientUtil.postJson(sdkUrl, JSON.toJSONString(alarms));
|
|
|
- log.info("result:{}", result);
|
|
|
- } catch (Exception e) {
|
|
|
- log.info(e.getMessage());
|
|
|
- e.printStackTrace();
|
|
|
- jsonObject.put("resultCode", 0);
|
|
|
- jsonObject.put("message", "失败");
|
|
|
- jsonObject.put("data", "消息推送失败");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
- }
|
|
|
- jsonObject.put("resultCode", 1);
|
|
|
- jsonObject.put("message", "成功");
|
|
|
- jsonObject.put("data", respMsgAlarmVo);
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ AjaxResults1 = new AjaxResults(1, "ok");
|
|
|
+ long end = System.currentTimeMillis();
|
|
|
+ log.info("报警信息数据传输结束时间: " + simpleDateFormat.format(new Date(end)));
|
|
|
+ log.info("报警信息数据传输请求用时时间:" + (end - begin) + "毫秒");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
} else {
|
|
|
- jsonObject.put("resultCode", 2);
|
|
|
- jsonObject.put("message", "失败");
|
|
|
- jsonObject.put("data", "token验证失败");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ AjaxResults1 = new AjaxResults(2, "token验证失败");
|
|
|
+ return JSONObject.toJSONString(AjaxResults1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @PostMapping("/encryptionAlarm")
|
|
|
- public String encryptionAlarm(@RequestBody ReqMsgAlarmVo vo) {
|
|
|
- String s1 = JSONObject.toJSONString(vo);
|
|
|
- return SM4Utils.encryptData_ECB(s1, "4370780c9a8c43e5");
|
|
|
- }
|
|
|
-
|
|
|
- @GetMapping("/test/{code}")
|
|
|
- public void test(@PathVariable String code) {
|
|
|
- String alarmUrl = alarmHistoryPlay(code, code, new Date());
|
|
|
- log.info(alarmUrl);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
- * 设备状态数据传输
|
|
|
+ * 报警解除接口
|
|
|
*
|
|
|
+ * @param parameterVo
|
|
|
+ * @param request
|
|
|
* @return
|
|
|
*/
|
|
|
- @PostMapping("/device/state")
|
|
|
- public String deviceState(@RequestParam("parameter") String parameter, HttpServletRequest request) throws ParseException {
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
+ @PostMapping("/api/releaseAlarm")
|
|
|
+ public String releaseAlarm(@RequestBody ParameterVo parameterVo, HttpServletRequest request) {
|
|
|
+ AjaxResults AjaxResults1 = null;
|
|
|
String token = apiTokenUtils.getGeoHazardMonitorToken(request);
|
|
|
log.info("token:{}", token);
|
|
|
- log.info("parameter:{}", parameter);
|
|
|
+ log.info("parameter:{}", parameterVo);
|
|
|
if (StringUtils.isNotEmpty(token)) {
|
|
|
- ReqDeviceVo reqDeviceVo = JSON.parseObject(SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5"), ReqDeviceVo.class);
|
|
|
- log.info("reqDeviceVo:{}", reqDeviceVo);
|
|
|
- LambdaQueryWrapper<BaseDeviceDynamicManagement> lw = new LambdaQueryWrapper<BaseDeviceDynamicManagement>();
|
|
|
- if (ObjectUtils.isEmpty(reqDeviceVo.getCameraCode())) {
|
|
|
- jsonObject.put("resultCode", 0);
|
|
|
- jsonObject.put("message", "信息编码为空!");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ String[] split = token.split("-");
|
|
|
+ String key = split[split.length - 1];
|
|
|
+ if (ObjectUtils.isEmpty(parameterVo)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "parameterVo参数不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- BaseUser admin = baseUserService.getUserName("admin");
|
|
|
- lw.eq(BaseDeviceDynamicManagement::getCameraCode, reqDeviceVo.getCameraCode());
|
|
|
- BaseDeviceDynamicManagement baseDynamicManagement = baseDeviceDynamicManagementService.getOne(lw);
|
|
|
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- Date targetDate = dateFormat.parse("2024-10-25 00:00:00");
|
|
|
- log.info("修改时间----" + baseDynamicManagement.getUpdateTime());
|
|
|
- log.info("自己定义的时间----" + targetDate);
|
|
|
- if (!baseDynamicManagement.getUpdateTime().equals(targetDate)) {
|
|
|
- baseDynamicManagement.setElectricity(reqDeviceVo.getElectricity());
|
|
|
- if (reqDeviceVo.getTime().toString().length() == 10) {
|
|
|
- reqDeviceVo.setTime(reqDeviceVo.getTime() * 1000);
|
|
|
- }
|
|
|
- baseDynamicManagement.setUpdateTime(new Date(reqDeviceVo.getTime()));
|
|
|
- baseDynamicManagement.setUpdateBy(admin.getUserId());
|
|
|
- log.info("reqDeviceVo:{}", baseDynamicManagement);
|
|
|
- if (baseDeviceDynamicManagementService.updateById(baseDynamicManagement)) {
|
|
|
- jsonObject.put("resultCode", 1);
|
|
|
- jsonObject.put("message", "成功");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
- } else {
|
|
|
- jsonObject.put("resultCode", 0);
|
|
|
- jsonObject.put("message", "设备状态数据传输失败");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
- }
|
|
|
- } else {
|
|
|
- jsonObject.put("resultCode", 1);
|
|
|
- jsonObject.put("message", "成功");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
+ String s = SM4Utils.decryptData_ECB(parameterVo.getParameter(), key);
|
|
|
+ ReleaseAlarmVo releaseAlarmVo = JSON.parseObject(s, ReleaseAlarmVo.class);
|
|
|
+ if (ObjectUtils.isEmpty(releaseAlarmVo.getAlarmId())) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "报警的唯一标识不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- } else {
|
|
|
- jsonObject.put("resultCode", 2);
|
|
|
- jsonObject.put("message", "token验证失败");
|
|
|
- return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 报警视频回放新
|
|
|
- *
|
|
|
- * @param channel
|
|
|
- * @param cameraCode
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String alarmHistoryPlay(String channel, String cameraCode, Date alarmDate) {
|
|
|
- // 获取当前时间
|
|
|
- // 将Date对象转换为Instant对象
|
|
|
- Instant instant = alarmDate.toInstant();
|
|
|
-
|
|
|
- OffsetDateTime currentTime = instant.atOffset(ZoneOffset.ofHours(8));
|
|
|
- log.info("currentTime------------->" + currentTime);
|
|
|
- // 获取报警前的时间
|
|
|
- OffsetDateTime beforeTenMinutes = currentTime.minusMinutes(Long.parseLong("5"));
|
|
|
- log.info("beforeTenMinutes------------->" + beforeTenMinutes);
|
|
|
- // 获取报警后的时间
|
|
|
- OffsetDateTime afterTenMinutes = currentTime.plusMinutes(Long.parseLong("5"));
|
|
|
- log.info("afterTenMinutes------------->" + afterTenMinutes);
|
|
|
- // 格式化时间
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- // 将字符串解析为LocalDateTime对象(指定时区为东八区)
|
|
|
- LocalDateTime startTime = LocalDateTime.parse(beforeTenMinutes.format(formatter), formatter).atOffset(ZoneOffset.ofHours(8)).toLocalDateTime();
|
|
|
- LocalDateTime endTime = LocalDateTime.parse(afterTenMinutes.format(formatter), formatter).atOffset(ZoneOffset.ofHours(8)).toLocalDateTime();
|
|
|
- // 将LocalDateTime转换为秒数
|
|
|
- long seconds = startTime.toEpochSecond(ZoneOffset.ofHours(8));
|
|
|
- long second = endTime.toEpochSecond(ZoneOffset.ofHours(8));
|
|
|
- try {
|
|
|
- TimeUnit.SECONDS.sleep(65 * 5);
|
|
|
- } catch (InterruptedException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- String result;
|
|
|
- String url = bakUrl + "/gb28181/api/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + seconds + "&endTime=" + second;
|
|
|
- try {
|
|
|
- result = HttpClientUtil.get(url);
|
|
|
- if ("200".equals(result)) {
|
|
|
- String path = apiSummary(cameraCode + "/" + channel + "/" + seconds + "-" + second);
|
|
|
- if (org.apache.commons.lang3.StringUtils.isNotEmpty(path)) {
|
|
|
- String codes = HttpUtils.sendGet(startRecording(cameraCode + "/" + channel + "/" + seconds + "-" + second));
|
|
|
- log.info("codes------>" + codes);
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- // 使用SimpleDateFormat将Date对象格式化为指定样式的字符串
|
|
|
- String formattedDate = sdf.format(alarmDate);
|
|
|
- log.info("-----formattedDate-----------" + formattedDate);
|
|
|
- String records = getQueryRecords(cameraCode + "/" + channel + "/" + seconds + "-" + second, formattedDate, "mp4");
|
|
|
- log.info("-----records-----------" + records);
|
|
|
- return records;
|
|
|
- }
|
|
|
+ if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseTime())) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "解除报警时间不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- log.info(e.getMessage());
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 调用流媒体获取流列表信息
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String apiSummary(String path) {
|
|
|
- int maxRetries = 5;
|
|
|
- int retryCount = 0;
|
|
|
- boolean success = false;
|
|
|
- JSONArray streamArray = null;
|
|
|
- while (!success && retryCount < maxRetries) {
|
|
|
- try {
|
|
|
- String data = HttpClientUtil.gets(bakUrl + "/api/summary");
|
|
|
- log.info("data------------------>" + data);
|
|
|
- if (org.apache.commons.lang3.StringUtils.isNotEmpty(data)) {
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(data);
|
|
|
- streamArray = jsonObject.getJSONArray("Streams");
|
|
|
- success = true;
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.info("Exception caught: " + e.getMessage());
|
|
|
- // 增加重试计数
|
|
|
- retryCount++;
|
|
|
+ if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseContent())) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "解除原因不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- }
|
|
|
- if (!ObjectUtils.isEmpty(streamArray)) {
|
|
|
- for (int i = 0; i < streamArray.size(); i++) {
|
|
|
- JSONObject subObj = streamArray.getJSONObject(i);
|
|
|
- String streamPath = subObj.getString("StreamPath");
|
|
|
- if (streamPath.equals(path)) {
|
|
|
- //取出VideoTracks
|
|
|
- JSONArray videoJson = subObj.getJSONArray("VideoTracks");
|
|
|
- if (videoJson != null && !videoJson.isEmpty()) {
|
|
|
- return wsUrl + "/ws/" + streamPath;
|
|
|
- }
|
|
|
- }
|
|
|
+ if (ObjectUtils.isEmpty(releaseAlarmVo.getOperator())) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "解除人不能为空");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 开启录制功能
|
|
|
- *
|
|
|
- * @param cameraCode 相机编码
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String startRecording(String cameraCode) {
|
|
|
- log.info("-----startRecording------" + bakUrl + "/recordpro/api/start?streamPath=" + cameraCode + "&type=mp4");
|
|
|
- return bakUrl + "/recordpro/api/start?streamPath=" + cameraCode + "&type=mp4";
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 根据设备id和通道ID和日期获取设备录像文件
|
|
|
- */
|
|
|
- public String getQueryRecords(String streamPath, String date, String type) {
|
|
|
-
|
|
|
- log.info("-----getQueryRecords------streamPath-----" + streamPath);
|
|
|
- log.info("-----getQueryRecords-------date----" + date);
|
|
|
- log.info("-----getQueryRecords-------type----" + type);
|
|
|
- try {
|
|
|
- TimeUnit.SECONDS.sleep(90 * 10);
|
|
|
- } catch (InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- String param = "{\n" +
|
|
|
- " \"streamPath\":\"" + streamPath + "\",\n" +
|
|
|
- " \"date\":\"" + date + "\",\n" +
|
|
|
- " \"type\":\"" + type + "\"\n" +
|
|
|
- "}";
|
|
|
-
|
|
|
- String jsonStr = HttpUtils.sendPost(bakUrl + "/recordpro/api/query/records", param);
|
|
|
- log.info("-----getQueryRecords-------jsonStr----" + jsonStr);
|
|
|
- JSONObject jsonObj = JSON.parseObject(jsonStr);
|
|
|
- log.info("-----getQueryRecords-------jsonObj----" + jsonObj);
|
|
|
- JSONArray resultArray = jsonObj.getJSONArray("result");
|
|
|
- log.info("-----getQueryRecords-------resultArray----" + resultArray);
|
|
|
-
|
|
|
- if (!ObjectUtils.isEmpty(resultArray)) {
|
|
|
- ArrayList<String> list = new ArrayList<>();
|
|
|
- for (int i = 0; i < resultArray.size(); i++) {
|
|
|
- JSONObject subObj = resultArray.getJSONObject(i);
|
|
|
- String size = subObj.getString("Size");
|
|
|
- String path = subObj.getString("Path");
|
|
|
- Object created = subObj.get("Created");
|
|
|
- //从缓存取出预拉的流的集合
|
|
|
- log.info("size------------------>" + size);
|
|
|
- log.info("path------------------>" + path);
|
|
|
- log.info("created------------------>" + created);
|
|
|
- if (Integer.valueOf(size) > 11000000) {
|
|
|
- list.add(created + "=" + path);
|
|
|
- }
|
|
|
+ LambdaQueryWrapper<MsgAlarmMatter> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(MsgAlarmMatter::getAlarmId, releaseAlarmVo.getAlarmId());
|
|
|
+ MsgAlarmMatter msgAlarm = msgAlarmMatterService.getOne(wrapper);
|
|
|
+ if (ObjectUtils.isEmpty(msgAlarm)) {
|
|
|
+ AjaxResults1 = new AjaxResults(0, "不存在该报警的唯一标识的数据");
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
}
|
|
|
- String records = records(list);
|
|
|
- log.info("-----getQueryRecords-------records----" + records);
|
|
|
- String[] split = records.split("=");
|
|
|
- return recordUrl + Constants.RESOURCE_PREFIX + split[1];
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- public String records(List<String> objects) {
|
|
|
-
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
|
|
|
- OffsetDateTime maxTime = null;
|
|
|
-
|
|
|
- for (String timeString : objects) {
|
|
|
- String[] split = timeString.split("=");
|
|
|
- OffsetDateTime time = OffsetDateTime.parse(split[0], formatter);
|
|
|
- if (maxTime == null || time.isAfter(maxTime)) {
|
|
|
- maxTime = time;
|
|
|
+ if (releaseAlarmVo.getReleaseTime().toString().length() == 10) {
|
|
|
+ releaseAlarmVo.setReleaseTime(releaseAlarmVo.getReleaseTime() * 1000);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- Iterator<String> iter = objects.iterator();
|
|
|
- while (iter.hasNext()) {
|
|
|
- String timeString = iter.next();
|
|
|
- String[] split = timeString.split("=");
|
|
|
- OffsetDateTime time = OffsetDateTime.parse(split[0], formatter);
|
|
|
- if (!time.isEqual(maxTime)) {
|
|
|
- iter.remove();
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ cal.setTime(new Date(releaseAlarmVo.getReleaseTime()));
|
|
|
+ cal.set(Calendar.MILLISECOND, 0);
|
|
|
+ cal.set(Calendar.MILLISECOND, 0);
|
|
|
+ msgAlarm.setReleasedTime(cal.getTime());
|
|
|
+ msgAlarm.setReleaseContent(releaseAlarmVo.getReleaseContent());
|
|
|
+ msgAlarm.setReleasedBy(releaseAlarmVo.getOperator());
|
|
|
+ msgAlarm.setUpdateBy(releaseAlarmVo.getOperator());
|
|
|
+ msgAlarm.setUpdateTime(new Date());
|
|
|
+ msgAlarm.setIsRelease(1);
|
|
|
+ boolean count = msgAlarmMatterService.updateById(msgAlarm);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("alarmId", msgAlarm.getAlarmId());
|
|
|
+ if (count) {
|
|
|
+ map.put("releaseState", 1);
|
|
|
+ AjaxResults1 = new AjaxResults(1, "ok", map);
|
|
|
+ } else {
|
|
|
+ map.put("releaseState", 2);
|
|
|
+ AjaxResults1 = new AjaxResults(0, "失败", map);
|
|
|
}
|
|
|
+ return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), key);
|
|
|
+ } else {
|
|
|
+ AjaxResults1 = new AjaxResults(2, "token验证失败");
|
|
|
+ return JSONObject.toJSONString(AjaxResults1);
|
|
|
}
|
|
|
- return objects.get(0);
|
|
|
}
|
|
|
|
|
|
|
|
|
- public static void main(String[] args) {
|
|
|
-// String parameter = "rjW9XcaNdY1M2rtUj4rYsW+3nqcJUDBuE6Orqvd4vyMhOh3fQGPNava0aOcUA7h0wuxoQtHE3bUP5imxqbRd/iBT7QDkrqtdPP5QLEhQodT8v0l8YMMtb7yohAJfEThLJOJ8Odl0kuTJXEJBMD8pE//K9KpRGDY4eEKPdS26YywnIl6HwK9EweYxVGtfJOP3/N7lwum2ROv7iqYgefXd/IxGEG8eVqEUutGKpeCcM0dds/N3Uq5ri/k/BrpaKcV96GnlR4pWkBjWOW08eGJ78shuUJkC682294W4RUp3NPPR7OTErtVAh65or8pB+RGDZuZQlUJ/QVpWp2ZdCrN5Wjqsi1TIa00oGQbYmMixOF0=";
|
|
|
-// String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
|
|
|
-// ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
|
|
|
-// System.out.println(reqMsgAlarmVo.toString());
|
|
|
-// System.out.println(new Date().getTime());
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
}
|