Prechádzať zdrojové kódy

优化事件回查图片接口。

bihuisong 1 rok pred
rodič
commit
f230c74388

+ 12 - 3
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/AlarmEventController.java

@@ -22,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 @Api(tags = "海康")
@@ -226,15 +228,22 @@ public class AlarmEventController {
     }
 
     /**
-     * 更新火险事件图片
+     * 事件回查图片
      */
     @PostMapping("/updateFireEventImage")
     public AjaxResult updateFireEventImage(@RequestBody DaHuaEventBO eventBO) throws ClientException {
+        //通过eventCode获取报文信息
+        CentereventTReportmessage centereventTReportmessage = centereventTReportmessageService.selectCentereventTReportmessageById(eventBO.getEventCode());
+        //解析保温
+        JSONObject context = JSONObject.parseObject(centereventTReportmessage.getContext()).getJSONObject("info");
+        eventBO.setAlarmCode(context.getString("alarmCode"));
+        eventBO.setAlarmDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(context.getLong("alarmDate"))));
+        eventBO.setDbType("0");
         int i = alarmEventService.updateFireEventImage(eventBO);
         if(i<0){
-            return AjaxResult.error("Sooka -> daHua -> Invoking the remote interface fails.");
+            return AjaxResult.error("Sooka -> daHua -> 请求远端数据错误!");
         }else if(i==0){
-            return AjaxResult.error("Sooka -> event -> The requested event type or event status is incorrect.");
+            return AjaxResult.error("Sooka -> event -> 请求数据错误!");
         }else{
             return AjaxResult.success();
         }

+ 0 - 1
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/domain/DaHuaEventBO.java

@@ -9,5 +9,4 @@ public class DaHuaEventBO {
     private String alarmCode;
     private String alarmDate;
     private String dbType;
-    private String token;
 }

+ 22 - 9
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/AlarmEventServiceImpl.java

@@ -63,12 +63,18 @@ public class AlarmEventServiceImpl implements AlarmEventService {
     @Autowired
     private ICentereventTEventtypeService centereventTEventtypeService;
 
-    @Value("${sooka.event.detail.url:}")
+    @Value("${sooka.dahuaservice.detail:}")
     private String detailUrl;
 
+    @Value("${sooka.clientKey:}")
+    private String clientKey;
+
+    @Value("${sooka.clientValue:}")
+    private String clientValue;
+
     private static final String HEADER_KEY = "Authorization";
 
-    private static final String HEADER_VALUE = "Bearer ";
+    private static final String HEADER_VALUE = "bearer ";
 
     static final String ERROR_MSG_CHANNEL = "无法匹配相关设备!通道编号为:{}";
 
@@ -377,16 +383,22 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         if("1".equals(centereventTEventcatalogue.getEventType()) && "forest_event_status_1".equals(centereventTEventcatalogue.getEventStatusValue())){
             //按照指定格式拼接路径
             String url = "alarmCode=" + RemoteApiUtil.encodeUrl(eventBO.getAlarmCode()) + "&dbType=" + RemoteApiUtil.encodeUrl(eventBO.getDbType()) + "&alarmDate=" + RemoteApiUtil.encodeUrl(eventBO.getAlarmDate());
-            //如果请求参数中携带了大华token则使用;如果没有携带,则请求监控中心获取并拼接token
-            String token = (null == eventBO.getToken() || "".equals(eventBO.getToken())) ? HEADER_VALUE + RemoteApiUtil.getInstance().getToken() : eventBO.getToken();//3c001989-3ba8-48ff-96f4-c2963455aa6e
             //创建请求实体 并 发送请求
-            String prBody = new IccHttpHttpRequest(detailUrl + url).header(HEADER_KEY, token).execute();
-            //打印响应结果
+            String prBody = new IccHttpHttpRequest(detailUrl + url)
+                    //设置token
+                    .header(HEADER_KEY, HEADER_VALUE + RemoteApiUtil.getInstance().getToken())
+                    //客户端模式,设置请求头
+                    .header(clientKey, clientValue)
+                    //发送请求
+                    .execute();
+            //打印响应结果cd
             JSONObject responseData = JSON.parseObject(prBody);
             if(responseData.getBoolean("success")){
                 ArrayList<String> pictures = responseData.getJSONObject("data").getObject("pictures", ArrayList.class);
-                //删除旧附件
-                remoteDataService.deleteAttchByBusId(eventBO.getLogId());
+                if(pictures.isEmpty()){
+                    logger.error("获取的图片集合为空-----请求结果:{}", prBody);
+                    return -1;
+                }
                 //添加新附件
                 List<CenterdataTAttach> attachList = new ArrayList<>();
                 for (String picture : pictures) {
@@ -400,9 +412,10 @@ public class AlarmEventServiceImpl implements AlarmEventService {
                 }
                 JSONObject requestObj = new JSONObject();
                 requestObj.put("attachList", attachList);
+                requestObj.put("busId", eventBO.getLogId());
                 return remoteDataService.insertAttachToArray(requestObj.toJSONString());
             }else{
-                logger.error("请求结果:{}", prBody);
+                logger.error("请求远端异常-----请求结果:{}", prBody);
                 return -1;
             }
         }else{

+ 1 - 4
src/main/java/com/sooka/sponest/event/remoteapi/RemoteDataService.java

@@ -63,9 +63,6 @@ public interface RemoteDataService {
     @GetMapping("/emergency/inspectionitem/getItemInfo/{id}")
     R<CenterdataTEmergencyInspectionitem> getItemInfo(@PathVariable("id") String id);
 
-    @GetMapping("/attach/deleteAttchByBusId")
-    int deleteAttchByBusId(@RequestParam("busId") String busId);
-
     @GetMapping("/attach/insertAttachToArray")
-    int insertAttachToArray(@RequestParam("jsonString") String jsonString);
+    int insertAttachToArray(@RequestParam("jsonStr") String jsonStr);
 }

+ 1 - 6
src/main/java/com/sooka/sponest/event/remoteapi/factory/RemoteDataServiceFallbackFactory.java

@@ -78,12 +78,7 @@ public class RemoteDataServiceFallbackFactory implements FallbackFactory<RemoteD
             }
 
             @Override
-            public int deleteAttchByBusId(String busId) {
-                return 0;
-            }
-
-            @Override
-            public int insertAttachToArray(String jsonString) {
+            public int insertAttachToArray(String jsonStr) {
                 return 0;
             }
         };