diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java index 1ace54ff86..ddb0fa2a5e 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java @@ -76,6 +76,13 @@ public class V2XSQLiteUtils { return getScenarioHistoryDao().query(new V2XHistoryScenarioData(), "triggerTime", true); } + /** + * 查询当天的指定的V2X数据 + */ + public static List getTargetScenarioHistoryData(V2XHistoryScenarioData scenarioData) { + return getScenarioHistoryDao().query(scenarioData, "triggerTime", true); + } + /** * 查询当天的未评价V2X数据 */ @@ -99,7 +106,7 @@ public class V2XSQLiteUtils { } /** - * 存储本地数据 + * 存储本地数据,每个数据只能存在一次,所以存储之前先查询数据库如果已经存在则修改触碰时间 * * @param markerExploreWay 要存储的场景 */ @@ -108,10 +115,20 @@ public class V2XSQLiteUtils { // 进行数据库存储 V2XHistoryScenarioData v2XHistoryScenarioData = new V2XHistoryScenarioData(); v2XHistoryScenarioData.setScenarioType(scenarioType); - v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills()); v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(markerExploreWay)); + + List historyScenarioData = getTargetScenarioHistoryData(v2XHistoryScenarioData); + + v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills()); v2XHistoryScenarioData.setDispose(false); - V2XSQLiteUtils.getScenarioHistoryDao().insert(v2XHistoryScenarioData); + + if (historyScenarioData != null && historyScenarioData.size() > 0) { + // 更新数据 + V2XSQLiteUtils.getScenarioHistoryDao().update(historyScenarioData.get(0), v2XHistoryScenarioData); + } else { + // 存储新数据 + V2XSQLiteUtils.getScenarioHistoryDao().insert(v2XHistoryScenarioData); + } V2XEventPanelFragment.Companion.getInstance().changeEventCount(); } catch (Exception e) { e.printStackTrace(); diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json index aa04f0d43c..651a0e65b0 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_road_event_data.json @@ -16,7 +16,7 @@ "distance":670, "fileType":1, "generateTime":1593587904096, - "infoId":"727905963169587200", + "infoId":"72790596316958720000", "items":[ { "illegalCount":0,