|
@@ -1,5 +1,7 @@
|
|
package com.ruoyi.web.job;
|
|
package com.ruoyi.web.job;
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.bean.copier.CopyOptions;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
@@ -19,10 +21,13 @@ import com.ruoyi.common.constant.CacheConstants;
|
|
import com.ruoyi.common.constant.ElasticConstants;
|
|
import com.ruoyi.common.constant.ElasticConstants;
|
|
import com.ruoyi.common.core.redis.RedisCache;
|
|
import com.ruoyi.common.core.redis.RedisCache;
|
|
import com.ruoyi.common.utils.JdbcTypeUtil;
|
|
import com.ruoyi.common.utils.JdbcTypeUtil;
|
|
|
|
+import com.ruoyi.common.utils.uuid.IdUtils;
|
|
import com.ruoyi.framework.config.ElasticSearchClient;
|
|
import com.ruoyi.framework.config.ElasticSearchClient;
|
|
|
|
+import com.ruoyi.system.domain.IllegalShipData;
|
|
import com.ruoyi.system.domain.vo.AisShipInfo;
|
|
import com.ruoyi.system.domain.vo.AisShipInfo;
|
|
import com.ruoyi.system.domain.vo.ShipEepReportRecInfo;
|
|
import com.ruoyi.system.domain.vo.ShipEepReportRecInfo;
|
|
import com.ruoyi.system.service.IAisInfoService;
|
|
import com.ruoyi.system.service.IAisInfoService;
|
|
|
|
+import com.ruoyi.system.service.IIllegalShipDataService;
|
|
import com.ruoyi.system.service.ISysConfigService;
|
|
import com.ruoyi.system.service.ISysConfigService;
|
|
import com.ruoyi.web.core.config.CanalConfig;
|
|
import com.ruoyi.web.core.config.CanalConfig;
|
|
import lombok.SneakyThrows;
|
|
import lombok.SneakyThrows;
|
|
@@ -65,6 +70,8 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
// private CanalConnector canalConnector;
|
|
// private CanalConnector canalConnector;
|
|
@Value("${black.snapImgUrl}")
|
|
@Value("${black.snapImgUrl}")
|
|
private String blackImgUrl;
|
|
private String blackImgUrl;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IIllegalShipDataService illegalShipDataService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private CanalConfig canalConfig;
|
|
private CanalConfig canalConfig;
|
|
@@ -80,6 +87,12 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
put("江阴大桥", "江阴海事局");
|
|
put("江阴大桥", "江阴海事局");
|
|
put("苏通大桥", "常熟海事局");
|
|
put("苏通大桥", "常熟海事局");
|
|
}};
|
|
}};
|
|
|
|
+ public final static Map<String, String> heiyanDeviceMap = new HashMap<String, String>() {{
|
|
|
|
+ put("南京三桥", "65");
|
|
|
|
+ put("润扬大桥", "66");
|
|
|
|
+ put("江阴大桥", "67");
|
|
|
|
+ put("苏通大桥", "68");
|
|
|
|
+ }};
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Scheduled(fixedDelay = 100) //每隔100秒执行
|
|
@Scheduled(fixedDelay = 100) //每隔100秒执行
|
|
@@ -193,14 +206,12 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
case INSERT:
|
|
case INSERT:
|
|
// 黑烟船舶数据入库
|
|
// 黑烟船舶数据入库
|
|
if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_recognition")) {
|
|
if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_recognition")) {
|
|
- if (ObjectUtil.isEmpty(afterDataMap.get("aisMmsi")) || Convert.toStr(afterDataMap.get("aisMmsi")).length() != 9) {
|
|
|
|
- log.info("==1");
|
|
|
|
|
|
+ if (ObjectUtil.isEmpty(afterDataMap.get("aisMmsi")) /*|| Convert.toStr(afterDataMap.get("aisMmsi")).length() != 9*/) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
// 判断数据状态
|
|
// 判断数据状态
|
|
if (ObjectUtil.isNotEmpty(afterDataMap.get("rcgSoot")) && NumberUtil.isGreaterOrEqual(Convert.toBigDecimal(afterDataMap.get("rcgSoot")),
|
|
if (ObjectUtil.isNotEmpty(afterDataMap.get("rcgSoot")) && NumberUtil.isGreaterOrEqual(Convert.toBigDecimal(afterDataMap.get("rcgSoot")),
|
|
Convert.toBigDecimal(blackThresholdVal))) {
|
|
Convert.toBigDecimal(blackThresholdVal))) {
|
|
- log.info("==2");
|
|
|
|
// 查询黑烟图片
|
|
// 查询黑烟图片
|
|
if ("prod".equals(env)) {
|
|
if ("prod".equals(env)) {
|
|
String imgUrl = HttpUtil.get(blackImgUrl + Convert.toStr(afterDataMap.get("id")));
|
|
String imgUrl = HttpUtil.get(blackImgUrl + Convert.toStr(afterDataMap.get("id")));
|
|
@@ -222,14 +233,14 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
}
|
|
}
|
|
// 超过阈值后直接判定为违规船舶
|
|
// 超过阈值后直接判定为违规船舶
|
|
afterDataMap.put("illegalStatus", 3);
|
|
afterDataMap.put("illegalStatus", 3);
|
|
- afterDataMap.put("uploadFlag", 1);
|
|
|
|
|
|
+ afterDataMap.put("uploadFlag", 0);
|
|
// TODO 上报行政检查系统
|
|
// TODO 上报行政检查系统
|
|
|
|
|
|
} else {
|
|
} else {
|
|
afterDataMap.put("uploadFlag", 0);
|
|
afterDataMap.put("uploadFlag", 0);
|
|
afterDataMap.put("illegalStatus", 1);
|
|
afterDataMap.put("illegalStatus", 1);
|
|
}
|
|
}
|
|
- if ("prod".equals(env) && ObjectUtil.isNotEmpty(afterDataMap.get("aisMmsi"))) {
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(afterDataMap.get("aisMmsi")) && Convert.toStr(afterDataMap.get("aisMmsi")).length() == 9) {
|
|
aisInfoService.getDynamicShipInfo(Convert.toStr(afterDataMap.get("aisMmsi")));
|
|
aisInfoService.getDynamicShipInfo(Convert.toStr(afterDataMap.get("aisMmsi")));
|
|
}
|
|
}
|
|
afterDataMap.put("mmsi", afterDataMap.get("aisMmsi"));
|
|
afterDataMap.put("mmsi", afterDataMap.get("aisMmsi"));
|
|
@@ -244,15 +255,19 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
}
|
|
}
|
|
if (ObjectUtil.isNotEmpty(afterDataMap.get("snapPos"))) {
|
|
if (ObjectUtil.isNotEmpty(afterDataMap.get("snapPos"))) {
|
|
afterDataMap.put("orgName", orgMap.get(Convert.toStr(afterDataMap.get("snapPos"))));
|
|
afterDataMap.put("orgName", orgMap.get(Convert.toStr(afterDataMap.get("snapPos"))));
|
|
|
|
+ afterDataMap.put("deviceId", heiyanDeviceMap.get(Convert.toStr(afterDataMap.get("snapPos"))));
|
|
}
|
|
}
|
|
afterDataMap.put("createTime", afterDataMap.get("snapTimeFmt"));
|
|
afterDataMap.put("createTime", afterDataMap.get("snapTimeFmt"));
|
|
afterDataMap.put("monitorPointName", afterDataMap.get("snapPos"));
|
|
afterDataMap.put("monitorPointName", afterDataMap.get("snapPos"));
|
|
|
|
+ // 保存数据
|
|
|
|
+ saveIllegalData(afterDataMap, ElasticConstants.HEIYAN_SHIP_RECOGNITION);
|
|
client.createDocument(ElasticConstants.HEIYAN_SHIP_RECOGNITION, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.createDocument(ElasticConstants.HEIYAN_SHIP_RECOGNITION, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
} else if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_snap_address")) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_snap_address")) {
|
|
// 删除设备和类型的统计缓存
|
|
// 删除设备和类型的统计缓存
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "monitor_point")) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "monitor_point")) {
|
|
// 检测点信息
|
|
// 检测点信息
|
|
client.createDocument(ElasticConstants.SO2_MONITOR_POINT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.createDocument(ElasticConstants.SO2_MONITOR_POINT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
@@ -261,7 +276,8 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
// 设备信息
|
|
// 设备信息
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "alert")) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "alert")) {
|
|
// 船舶记录
|
|
// 船舶记录
|
|
if ("prod".equals(env)) {
|
|
if ("prod".equals(env)) {
|
|
@@ -292,7 +308,7 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
|
|
|
|
// 嫌疑船舶
|
|
// 嫌疑船舶
|
|
afterDataMap.put("illegalStatus", 2);
|
|
afterDataMap.put("illegalStatus", 2);
|
|
- afterDataMap.put("uploadFlag", 1);
|
|
|
|
|
|
+ afterDataMap.put("uploadFlag", 0);
|
|
// TODO 上报行政检查系统
|
|
// TODO 上报行政检查系统
|
|
|
|
|
|
} else {
|
|
} else {
|
|
@@ -303,19 +319,22 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
aisInfoService.getDynamicShipInfo(Convert.toStr(afterDataMap.get("mmsi")));
|
|
aisInfoService.getDynamicShipInfo(Convert.toStr(afterDataMap.get("mmsi")));
|
|
}
|
|
}
|
|
afterDataMap.put("illegalType", "guangpu");
|
|
afterDataMap.put("illegalType", "guangpu");
|
|
|
|
+ // 保存数据
|
|
|
|
+ saveIllegalData(afterDataMap, ElasticConstants.SO2_ALERT);
|
|
client.createDocument(ElasticConstants.SO2_ALERT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.createDocument(ElasticConstants.SO2_ALERT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && (StrUtil.equalsIgnoreCase(table, "sem_instrument"))) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && (StrUtil.equalsIgnoreCase(table, "sem_instrument"))) {
|
|
// 嗅探系统-站点信息
|
|
// 嗅探系统-站点信息
|
|
client.createDocument(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.createDocument(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && StrUtil.equalsIgnoreCase(table, "illegal_ship")) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && StrUtil.equalsIgnoreCase(table, "illegal_ship")) {
|
|
// 嗅探系统-违规船舶
|
|
// 嗅探系统-违规船舶
|
|
if ("prod".equals(env)) {
|
|
if ("prod".equals(env)) {
|
|
// 查询检测点和船舶信息、船舶进出港记录
|
|
// 查询检测点和船舶信息、船舶进出港记录
|
|
- if (ObjectUtil.isNotEmpty(afterDataMap.get("mmsi"))) {
|
|
|
|
- AisShipInfo shipInfo = aisInfoService.getShipInfo("", Convert.toStr(afterDataMap.get("mmsi")), "", "");
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(afterDataMap.get("shipMmsi"))) {
|
|
|
|
+ AisShipInfo shipInfo = aisInfoService.getShipInfo("", Convert.toStr(afterDataMap.get("shipMmsi")), "", "");
|
|
if (shipInfo != null) {
|
|
if (shipInfo != null) {
|
|
afterDataMap.put("shipName", shipInfo.getShipName());
|
|
afterDataMap.put("shipName", shipInfo.getShipName());
|
|
afterDataMap.put("shipRegionType", shipInfo.getShipRegionType());
|
|
afterDataMap.put("shipRegionType", shipInfo.getShipRegionType());
|
|
@@ -334,18 +353,19 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
afterDataMap.put("berthName", eepReportRecInfo.getBerthName());
|
|
afterDataMap.put("berthName", eepReportRecInfo.getBerthName());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ afterDataMap.put("deviceId", afterDataMap.get("semId"));
|
|
// 查询站点信息
|
|
// 查询站点信息
|
|
Map<String, Object> sem = client.getDocById(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("semId")), "name,category");
|
|
Map<String, Object> sem = client.getDocById(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("semId")), "name,category");
|
|
if (sem != null && ObjectUtil.equal(sem.get("code"), 200)) {
|
|
if (sem != null && ObjectUtil.equal(sem.get("code"), 200)) {
|
|
Map<String, String> data = Convert.toMap(String.class, String.class, sem.get("data"));
|
|
Map<String, String> data = Convert.toMap(String.class, String.class, sem.get("data"));
|
|
afterDataMap.put("semName", data.get("name"));
|
|
afterDataMap.put("semName", data.get("name"));
|
|
afterDataMap.put("monitorPointName", data.get("category"));
|
|
afterDataMap.put("monitorPointName", data.get("category"));
|
|
- afterDataMap.put("orgName", orgMap.get(data.get("name")));
|
|
|
|
|
|
+ afterDataMap.put("orgName", orgMap.get(data.get("category")));
|
|
}
|
|
}
|
|
|
|
|
|
// 嫌疑船舶
|
|
// 嫌疑船舶
|
|
afterDataMap.put("illegalStatus", 2);
|
|
afterDataMap.put("illegalStatus", 2);
|
|
- afterDataMap.put("uploadFlag", 1);
|
|
|
|
|
|
+ afterDataMap.put("uploadFlag", 0);
|
|
// TODO 上报行政检查系统
|
|
// TODO 上报行政检查系统
|
|
|
|
|
|
} else {
|
|
} else {
|
|
@@ -356,6 +376,8 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
aisInfoService.getDynamicShipInfo(Convert.toStr(afterDataMap.get("mmsi")));
|
|
aisInfoService.getDynamicShipInfo(Convert.toStr(afterDataMap.get("mmsi")));
|
|
}
|
|
}
|
|
afterDataMap.put("illegalType", "xiutan");
|
|
afterDataMap.put("illegalType", "xiutan");
|
|
|
|
+ // 保存数据
|
|
|
|
+ saveIllegalData(afterDataMap, ElasticConstants.AIS_ILLEGAL_SHIP);
|
|
client.createDocument(ElasticConstants.AIS_ILLEGAL_SHIP, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.createDocument(ElasticConstants.AIS_ILLEGAL_SHIP, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -363,7 +385,8 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_snap_address")) {
|
|
if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_snap_address")) {
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "monitor_point")) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "monitor_point")) {
|
|
// 检测点信息
|
|
// 检测点信息
|
|
client.updateDocument(ElasticConstants.SO2_MONITOR_POINT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.updateDocument(ElasticConstants.SO2_MONITOR_POINT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
@@ -372,20 +395,23 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
// 设备信息
|
|
// 设备信息
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && (StrUtil.equalsIgnoreCase(table, "sem_instrument"))) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && (StrUtil.equalsIgnoreCase(table, "sem_instrument"))) {
|
|
// 嗅探系统-站点信息
|
|
// 嗅探系统-站点信息
|
|
client.updateDocument(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
client.updateDocument(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("id")), afterDataMap);
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case DELETE:
|
|
case DELETE:
|
|
if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_snap_address")) {
|
|
if (StrUtil.equalsIgnoreCase(database, "smoke_api") && StrUtil.equalsIgnoreCase(table, "ship_snap_address")) {
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "monitor_point")) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ship") && StrUtil.equalsIgnoreCase(table, "monitor_point")) {
|
|
// 检测点信息
|
|
// 检测点信息
|
|
client.deleteDocument(ElasticConstants.SO2_MONITOR_POINT, Convert.toStr(afterDataMap.get("id")));
|
|
client.deleteDocument(ElasticConstants.SO2_MONITOR_POINT, Convert.toStr(afterDataMap.get("id")));
|
|
@@ -394,13 +420,15 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
// 设备信息
|
|
// 设备信息
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && (StrUtil.equalsIgnoreCase(table, "sem_instrument"))) {
|
|
} else if (StrUtil.equalsIgnoreCase(database, "ais_database") && (StrUtil.equalsIgnoreCase(table, "sem_instrument"))) {
|
|
// 嗅探系统-站点信息
|
|
// 嗅探系统-站点信息
|
|
client.deleteDocument(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("id")));
|
|
client.deleteDocument(ElasticConstants.AIS_SEM_INSTRUMENT, Convert.toStr(afterDataMap.get("id")));
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
redisCache.deleteObject(CollUtil.set(false,
|
|
CacheConstants.DEVICE_STATIC,
|
|
CacheConstants.DEVICE_STATIC,
|
|
- CacheConstants.DEVICE_TYPE_STATIC));
|
|
|
|
|
|
+ CacheConstants.DEVICE_TYPE_STATIC,
|
|
|
|
+ CacheConstants.DEVICE_LIST_STATIC));
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
@@ -408,6 +436,22 @@ public class CanalScheduling implements Runnable, ApplicationContextAware {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void saveIllegalData(Map<String, Object> afterDataMap, String indexName) {
|
|
|
|
+ if (Convert.toInt(afterDataMap.get("illegalStatus")) != 1) {
|
|
|
|
+ IllegalShipData illegalShipData = new IllegalShipData();
|
|
|
|
+ BeanUtil.fillBeanWithMap(afterDataMap, illegalShipData, CopyOptions.create().setIgnoreProperties("id"));
|
|
|
|
+ illegalShipData.setId(IdUtils.fastSimpleUUID());
|
|
|
|
+ illegalShipData.setSystemId(Convert.toStr(afterDataMap.get("id")));
|
|
|
|
+ illegalShipData.setSystemEsIndex(indexName);
|
|
|
|
+ try {
|
|
|
|
+ illegalShipDataService.insertIllegalShipData(illegalShipData);
|
|
|
|
+ } catch (Exception ignored) {
|
|
|
|
+ ignored.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 或缺数据库字段的大小写
|
|
* 或缺数据库字段的大小写
|
|
*
|
|
*
|