diff --git a/alarm/src/main/java/com/yingji/entity/Alarm.java b/alarm/src/main/java/com/yingji/entity/Alarm.java
index c190e5b..c742ede 100644
--- a/alarm/src/main/java/com/yingji/entity/Alarm.java
+++ b/alarm/src/main/java/com/yingji/entity/Alarm.java
@@ -2,6 +2,7 @@ package com.yingji.entity;
 
 import cn.hutool.core.annotation.Alias;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -192,5 +193,12 @@ public class Alarm implements Serializable {
      */
     @ApiModelProperty(value = "紧急系数")
     private Double aiNum;
+
+    /**
+     * 120的event_id
+     */
+    @ApiModelProperty(value = "120的event_id")
+    @TableField(value = "ai_120_id")
+    private String ai120Id;
 }
 
diff --git a/alarm/src/main/java/com/yingji/quartz/AlarmQuartz.java b/alarm/src/main/java/com/yingji/quartz/AlarmQuartz.java
index fffca04..c5c959f 100644
--- a/alarm/src/main/java/com/yingji/quartz/AlarmQuartz.java
+++ b/alarm/src/main/java/com/yingji/quartz/AlarmQuartz.java
@@ -1,5 +1,6 @@
 package com.yingji.quartz;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
@@ -49,13 +50,17 @@ public class AlarmQuartz {
     public void savaData() {
         // 获取token
         String token = alarmService.getToken();
-        // 查询所有id
-        List<String> idList = findId(token);
-        // 根据id查询数据保存
-        addList(idList, token);
-        // 110算法接口
-        if (CollectionUtil.isNotEmpty(idList)) {
-            emergencyAlgorithm();
+        if (StrUtil.isNotEmpty(token)) {
+            // 查询所有id
+            List<String> idList = findId(token);
+            // 根据id查询数据保存
+            addList(idList, token);
+            // 110算法接口
+            if (CollectionUtil.isNotEmpty(idList)) {
+                emergencyAlgorithm();
+            }
+        } else {
+            log.error("============110算法接口获取token失败=============");
         }
     }
 
@@ -101,7 +106,7 @@ public class AlarmQuartz {
                     alarmRequest.setValue(x);
                     // 查询数据
                     Alarm alarm = alarmService.findDataList(alarmRequest, token);
-                    if (alarm != null) {
+                    if (BeanUtil.isNotEmpty(alarm)) {
                         alarm.setSourceId(x);
                         list.add(alarm);
                         successNum++;
@@ -110,14 +115,20 @@ public class AlarmQuartz {
                         int randomNumber = random.nextInt(101) + 100;
                         Thread.sleep(randomNumber);
                     } else {
+                        if (CollectionUtil.isNotEmpty(list)) {
+                            alarmService.saveAll(list);
+                        }
                         return;
                     }
                 }
             } catch (Exception e) {
                 log.info("==========================" + e.getMessage());
+                e.printStackTrace();
             }
         }
-        alarmService.saveAll(list);
+        if (CollectionUtil.isNotEmpty(list)) {
+            alarmService.saveAll(list);
+        }
         log.info("成功条数==========================" + successNum);
     }
 
@@ -156,7 +167,8 @@ public class AlarmQuartz {
             if (data == null) {
                 return idList;
             }
-            sourceService.addList(data);
+            // todo 注释保存id
+//            sourceService.addList(data);
             idList.addAll(data);
             size += data.size();
             if (data.size() == pageSize) {
diff --git a/alarm/src/main/java/com/yingji/service/impl/AlarmServiceImpl.java b/alarm/src/main/java/com/yingji/service/impl/AlarmServiceImpl.java
index fe429e7..e38e2b1 100644
--- a/alarm/src/main/java/com/yingji/service/impl/AlarmServiceImpl.java
+++ b/alarm/src/main/java/com/yingji/service/impl/AlarmServiceImpl.java
@@ -68,6 +68,8 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
         List<String> records = null;
         // 获取id
         String body = HttpRequest.post(specificWarn).header("Authorization", "Basic " + token).body(bodyJson).execute().body();
+        log.info("===========================================");
+        log.info("++++++++++++++++" + body + "++++++++++++++");
         JSONObject json = JSONObject.parse(body);
         Object response = json.get("response");
         if (BeanUtil.isNotEmpty(response)) {
@@ -101,19 +103,30 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
             Object response = json.get("response");
             if (BeanUtil.isNotEmpty(response)) {
                 String recordsStr = JSONUtil.toJsonStr(response);
+                if (StrUtil.isEmpty(recordsStr)) {
+                    return null;
+                }
                 records = JSONUtil.toBean(recordsStr, Alarm.class);
+                if (records == null) {
+                    return null;
+                }
                 JSONObject recordsJson = JSONObject.parse(recordsStr);
+                if (BeanUtil.isEmpty(recordsJson)) {
+                    return null;
+                }
                 Object bjdhsj = recordsJson.get("bjdhsj");
-                String bjdhsjStr = JSONUtil.toJsonStr(bjdhsj);
-                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss").withZone(ZoneId.systemDefault());
-                LocalDateTime emergencyEventTime = LocalDateTime.parse(bjdhsjStr, formatter);
-                records.setEmergencyEventTime(emergencyEventTime);
-                records.setCreateTime(LocalDateTime.now());
-                records.setUpdateTime(LocalDateTime.now());
-                records.setDelFlag(0);
+                if (BeanUtil.isNotEmpty(bjdhsj)) {
+                    String bjdhsjStr = JSONUtil.toJsonStr(bjdhsj);
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss").withZone(ZoneId.systemDefault());
+                    LocalDateTime emergencyEventTime = LocalDateTime.parse(bjdhsjStr, formatter);
+                    records.setEmergencyEventTime(emergencyEventTime);
+                    records.setCreateTime(LocalDateTime.now());
+                    records.setUpdateTime(LocalDateTime.now());
+                    records.setDelFlag(0);
+                }
             }
         } catch (Exception e) {
-            throw new RuntimeException(e);
+            log.info("系统内部异常,请联系管理员");
         }
         return records;
     }
diff --git a/alarm/src/main/resources/application-dev.yml b/alarm/src/main/resources/application-dev.yml
index 287eb22..668eef7 100644
--- a/alarm/src/main/resources/application-dev.yml
+++ b/alarm/src/main/resources/application-dev.yml
@@ -40,11 +40,3 @@ clientId: BNjP9S8p2EJZyt1UF+D6kCsK6ZVapyKqiGzarEdsZ3QmIWoVdB7YkrX2GBAmCDO16tQ/ak
 # 110clientSecret
 clientSecret: AM4oMOsJj0ULAUOOXlz5xHjIF4kp9W63ajZrXxTGLHEn
 
-# 120获取token授权码
-getAuthorizeValidateUrl: http://192.180.22.214:7015/api/Authorize/validate/v1
-
-# 120获取token
-getAuthorizeTokenUrl: http://192.180.22.214:7015/api/Authorize/token/get/v1
-
-# 120获取数据
-getAccidentUrl: http://192.180.22.214:7015/api/Event/accident/list/get/v2
diff --git a/page/src/main/java/com/yingji/entity/AcceptEvents.java b/page/src/main/java/com/yingji/entity/AcceptEvents.java
index 57ba52f..15ac252 100644
--- a/page/src/main/java/com/yingji/entity/AcceptEvents.java
+++ b/page/src/main/java/com/yingji/entity/AcceptEvents.java
@@ -1,6 +1,7 @@
 package com.yingji.entity;
 
 import cn.hutool.core.annotation.Alias;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -136,5 +137,12 @@ public class AcceptEvents implements Serializable {
     @ApiModelProperty(value = "受理序号")
     @Alias("AcceptOrder")
     private String acceptOrder;
+
+    /**
+     * 110的emergency_event_id
+     */
+    @ApiModelProperty(value = "110的emergency_event_id")
+    @TableField(value = "ai_110_id")
+    private Long ai110Id;
 }
 
diff --git a/page/src/main/java/com/yingji/entity/Alarm.java b/page/src/main/java/com/yingji/entity/Alarm.java
index bfb6379..c742ede 100644
--- a/page/src/main/java/com/yingji/entity/Alarm.java
+++ b/page/src/main/java/com/yingji/entity/Alarm.java
@@ -2,6 +2,7 @@ package com.yingji.entity;
 
 import cn.hutool.core.annotation.Alias;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -173,13 +174,13 @@ public class Alarm implements Serializable {
      * 预警大类
      */
     @ApiModelProperty(value = "预警大类")
-    private String aiCategories;
+    private String aiClass;
 
     /**
      * 预警小类
      */
     @ApiModelProperty(value = "预警小类")
-    private String aiSubCategories;
+    private String aiClass2;
 
     /**
      * 紧急程度
@@ -192,5 +193,12 @@ public class Alarm implements Serializable {
      */
     @ApiModelProperty(value = "紧急系数")
     private Double aiNum;
+
+    /**
+     * 120的event_id
+     */
+    @ApiModelProperty(value = "120的event_id")
+    @TableField(value = "ai_120_id")
+    private String ai120Id;
 }
 
diff --git a/rescue/src/main/java/com/yingji/entity/AcceptEvents.java b/rescue/src/main/java/com/yingji/entity/AcceptEvents.java
index 57ba52f..15ac252 100644
--- a/rescue/src/main/java/com/yingji/entity/AcceptEvents.java
+++ b/rescue/src/main/java/com/yingji/entity/AcceptEvents.java
@@ -1,6 +1,7 @@
 package com.yingji.entity;
 
 import cn.hutool.core.annotation.Alias;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -136,5 +137,12 @@ public class AcceptEvents implements Serializable {
     @ApiModelProperty(value = "受理序号")
     @Alias("AcceptOrder")
     private String acceptOrder;
+
+    /**
+     * 110的emergency_event_id
+     */
+    @ApiModelProperty(value = "110的emergency_event_id")
+    @TableField(value = "ai_110_id")
+    private Long ai110Id;
 }
 
diff --git a/rescue/src/main/java/com/yingji/quartz/AccidentQuartz.java b/rescue/src/main/java/com/yingji/quartz/AccidentQuartz.java
index aee717a..5cf3d3d 100644
--- a/rescue/src/main/java/com/yingji/quartz/AccidentQuartz.java
+++ b/rescue/src/main/java/com/yingji/quartz/AccidentQuartz.java
@@ -1,5 +1,6 @@
 package com.yingji.quartz;
 
+import cn.hutool.core.util.StrUtil;
 import com.yingji.service.AccidentService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -29,7 +30,11 @@ public class AccidentQuartz {
     @Scheduled(cron = "*/10 * * * * ? ")
     public void savaData() {
         String accessToken = accidentService.getAuthorizeToken();
-        accidentService.getAccidentUrl(accessToken);
-        log.info("=================120定时任务结束===============");
+        if (StrUtil.isNotEmpty(accessToken)) {
+            accidentService.getAccidentUrl(accessToken);
+            log.info("=================120定时任务结束===============");
+        } else {
+            log.info("=================120定时任务获取token失败===============");
+        }
     }
 }
diff --git a/rescue/src/main/java/com/yingji/service/impl/AccidentServiceImpl.java b/rescue/src/main/java/com/yingji/service/impl/AccidentServiceImpl.java
index 13644d9..9fae1e7 100644
--- a/rescue/src/main/java/com/yingji/service/impl/AccidentServiceImpl.java
+++ b/rescue/src/main/java/com/yingji/service/impl/AccidentServiceImpl.java
@@ -188,6 +188,8 @@ public class AccidentServiceImpl implements AccidentService {
                     Event one = eventService.getOne(wrapper);
                     if (BeanUtil.isEmpty(one)) {
                         eventService.save(event);
+                        // 调用120和110事件对比接口
+                        linkAlgorithm(event.getEventId());
                     } else {
                         eventService.updateById(event);
                     }
@@ -230,6 +232,19 @@ public class AccidentServiceImpl implements AccidentService {
         }
     }
 
+    /**
+     * 120算法接口
+     */
+    public void linkAlgorithm(String eventId) {
+        log.info("============120和110对比算法接口开始" + LocalDateTime.now() + "=============");
+        Map<String, String> map = new HashMap<>();
+        map.put("event_id", eventId);
+        String body = JSONUtil.toJsonStr(map);
+        String response = HttpRequest.post("http://localhost:9002/link_algorithm").body(body).execute().body();
+        log.info("++++++120和110对比算法响应数据++++++" + response);
+        log.info("============120和110对比算法接口结束" + LocalDateTime.now() + "=============");
+    }
+
     @Override
     public void text() {
         String s = "{\n" +
diff --git a/rescue/src/main/resources/application-dev.yml b/rescue/src/main/resources/application-dev.yml
index 287eb22..647069b 100644
--- a/rescue/src/main/resources/application-dev.yml
+++ b/rescue/src/main/resources/application-dev.yml
@@ -28,18 +28,6 @@ knife4j:
 #      test1:
 #        group-name: 应急算法
 
-# 110获取token
-getToken: http://2.46.4.198:8008/token
-
-# 110获取数据
-specificWarn: http://2.46.4.198:8008/rs/k4r3h/DataAnalysisService/sz/share/specificWarn
-
-# 110clientId
-clientId: BNjP9S8p2EJZyt1UF+D6kCsK6ZVapyKqiGzarEdsZ3QmIWoVdB7YkrX2GBAmCDO16tQ/ak86pZgP5ZS3s4EGdco=
-
-# 110clientSecret
-clientSecret: AM4oMOsJj0ULAUOOXlz5xHjIF4kp9W63ajZrXxTGLHEn
-
 # 120获取token授权码
 getAuthorizeValidateUrl: http://192.180.22.214:7015/api/Authorize/validate/v1