diff --git a/build/classes/app.properties b/build/classes/app.properties index 24d07e2..4cffb90 100644 --- a/build/classes/app.properties +++ b/build/classes/app.properties @@ -2,4 +2,5 @@ AppDebug=true AppParamHelper=cn.tsy.idsse.dsds.helper.DSDSParamHelper AppDatabaseStdout=Active AppListener=cn.tsy.idsse.dsds.control.DSDSInitializeLisener -AppName=DSDS2024Server \ No newline at end of file +AppName=DSDS2024Server +DatabaseWarnDelayTimes=10000 \ No newline at end of file diff --git a/src/main/java/app.properties b/src/main/java/app.properties index 24d07e2..4cffb90 100644 --- a/src/main/java/app.properties +++ b/src/main/java/app.properties @@ -2,4 +2,5 @@ AppDebug=true AppParamHelper=cn.tsy.idsse.dsds.helper.DSDSParamHelper AppDatabaseStdout=Active AppListener=cn.tsy.idsse.dsds.control.DSDSInitializeLisener -AppName=DSDS2024Server \ No newline at end of file +AppName=DSDS2024Server +DatabaseWarnDelayTimes=10000 \ No newline at end of file diff --git a/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleDatasetTrackService.java b/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleDatasetTrackService.java index e2cb3eb..e13b1a5 100644 --- a/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleDatasetTrackService.java +++ b/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleDatasetTrackService.java @@ -27,9 +27,13 @@ public class SampleDatasetTrackService { public List uploadTrack(int dataset_id, List array, String file_name, FrameOptr optr) { FrameAssertHelper.hasValue(array, "潜次轨迹文件为空,请检查!"); List navArray = new ArrayList<>(); - SampleDataset dataset = this.mDataset.find(dataset_id); - FrameAssertHelper.isNotNull(dataset, "未找到指定数据集,请检查!"); - this.mTrack.deleteByColumn("dataset_id", dataset_id); + String dv_sn = file_name.replace(".txt", ""); + List sdArray = this.mDataset.selectListByColumn("diving_sn", dv_sn); + if (sdArray.size() == 0) + throw new BusinessException("未找到潜次[" + dv_sn + "]对应的数据集!"); +// SampleDataset dataset = this.mDataset.find(dataset_id); +// FrameAssertHelper.isNotNull(dataset, "未找到指定数据集,请检查!"); +// this.mTrack.deleteByColumn("dataset_id", dataset_id); for (int i = 0; i < array.size(); i++) { if (array.get(i).trim().length() == 0) break; @@ -73,19 +77,22 @@ public class SampleDatasetTrackService { nav.setTrack_lat(lat); nav.setTrack_lon(lon); nav.setTrack_time(curTime); - nav.setDataset_id(dataset_id); - // 判断时间是否重复了 -// List vArray = this.mTrack.selectList(SqlBuilder.create().addSqlCondition(SqlCondition.of("dataset_id", dataset_id)).addSqlCondition(SqlCondition.of("track_time", curTime))); -// if (vArray.size() == 0) { - this.mTrack.insert(nav); navArray.add(nav); -// } + } if (navArray.size() > 0) { - SampleDataset ds = new SampleDataset(); - ds.setTsy_id(dataset_id); - ds.setDiving_track_file(file_name); - this.mDataset.update(ds); + for(SampleDataset ds :sdArray) { + this.mTrack.deleteByColumn("dataset_id", ds.getTsy_id()); + for(SampleDatasetTrack nav :navArray) { + nav.setTsy_id(null); + nav.setDataset_id(ds.getTsy_id()); + this.mTrack.insert(nav); + } + SampleDataset d = new SampleDataset(); + d.setTsy_id(dataset_id); + d.setDiving_track_file(file_name); + this.mDataset.update(ds); + } } return navArray; diff --git a/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleLineTrackService.java b/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleLineTrackService.java index 7bab064..fc75e5d 100644 --- a/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleLineTrackService.java +++ b/src/main/java/cn/tsy/idsse/dsds/service/sample/SampleLineTrackService.java @@ -31,73 +31,81 @@ public class SampleLineTrackService { public List uploadTrack(int dataset_id, List array, String file_name) { FrameAssertHelper.hasValue(array, "测线轨迹文件为空,请检查!"); - SampleDataset ds = this.mDataset.find(dataset_id); - FrameAssertHelper.isNotNull(ds, "未找到指定数据集,请检查!"); - this.mTrack.deleteByColumn("dataset_id", dataset_id); - int index = 1; +// SampleDataset ds = this.mDataset.find(dataset_id); +// FrameAssertHelper.isNotNull(ds, "未找到指定数据集,请检查!"); - List navArray = new ArrayList<>(); - for (int i = 0; i < array.size(); i++) { - if (array.get(i).trim().length() == 0) { - this.update(file_name,ds, index, navArray); - break; - } - String[] values = StringHelper.splitWithSpace(array.get(i)); - if (values[0].equals(">>")) { - this.update(file_name, ds, index, navArray); - navArray = new ArrayList<>(); - index++; - continue; - } - if (values.length < 3) { - throwError(i, "列不足,至少需要3列"); - } +// this.mTrack.deleteByColumn("dataset_id", dataset_id); + // 找出所有航线 + String dv_sn = file_name.replace(".txt", "").replace("_Clean", ""); + List sdArray = this.mDataset.selectListByColumn("diving_sn", dv_sn); + if (sdArray.size() == 0) + throw new BusinessException("未找到潜次[" + dv_sn + "]对应的数据集!"); + for (SampleDataset ds : sdArray) { + int index = 1; - // 110.565232 17.370000 2023-05-20-13:55:27 - String lon = values[0]; - String lat = values[1]; - String time = values[2]; - // 经纬度的范围包括经度范围0°-180°和纬度范围0°-90° - try { - double d = Double.parseDouble(lon); - if (d > 180) - throwError(i, "经度[" + lon + "]不能大于 180°"); - if (d < 0) - throwError(i, "经度[" + lon + "]不能小于 0°"); - } catch (Exception e) { - throwError(i, "经度[" + lon + "]格式错误"); - } + List navArray = new ArrayList<>(); + for (int i = 0; i < array.size(); i++) { + if (array.get(i).trim().length() == 0) { + this.update(file_name, ds, index, navArray); + break; + } + String[] values = StringHelper.splitWithSpace(array.get(i)); + if (values[0].equals(">>")) { + this.update(file_name, ds, index, navArray); + navArray = new ArrayList<>(); + index++; + continue; + } + if (values.length < 3) { + throwError(i, "列不足,至少需要3列"); + } - try { - double d = Double.parseDouble(lat); - if (d > 90) - throwError(i, "纬度[" + lat + "]不能大于 90°"); - if (d < 0) - throwError(i, "纬度[" + lat + "]不能小于 0°"); - } catch (Exception e) { - throwError(i, "纬度[" + lat + "]格式错误"); - } - // 109.49100 18.23400 2023-09-18-21:58:35 - String[] vs = time.split("-"); - if (vs.length != 4) - throwError(i, "时间[" + time + "]格式错误,样例 2023-09-18-21:58:35"); - LocalDateTime curTime = LocalDateHelper.parseDateTime(vs[0] + "-" + vs[1] + "-" + vs[2] + " " + vs[3]); - if (curTime == null) - throwError(i, "时间[" + time + "]格式错误,样例 2023-09-18-21:58:35"); - // 判断通过 + // 110.565232 17.370000 2023-05-20-13:55:27 + String lon = values[0]; + String lat = values[1]; + String time = values[2]; + // 经纬度的范围包括经度范围0°-180°和纬度范围0°-90° + try { + double d = Double.parseDouble(lon); + if (d > 180) + throwError(i, "经度[" + lon + "]不能大于 180°"); + if (d < 0) + throwError(i, "经度[" + lon + "]不能小于 0°"); + } catch (Exception e) { + throwError(i, "经度[" + lon + "]格式错误"); + } - // 判断时间是否重复了 + try { + double d = Double.parseDouble(lat); + if (d > 90) + throwError(i, "纬度[" + lat + "]不能大于 90°"); + if (d < 0) + throwError(i, "纬度[" + lat + "]不能小于 0°"); + } catch (Exception e) { + throwError(i, "纬度[" + lat + "]格式错误"); + } + // 109.49100 18.23400 2023-09-18-21:58:35 + String[] vs = time.split("-"); + if (vs.length != 4) + throwError(i, "时间[" + time + "]格式错误,样例 2023-09-18-21:58:35"); + LocalDateTime curTime = LocalDateHelper.parseDateTime(vs[0] + "-" + vs[1] + "-" + vs[2] + " " + vs[3]); + if (curTime == null) + throwError(i, "时间[" + time + "]格式错误,样例 2023-09-18-21:58:35"); + // 判断通过 + + // 判断时间是否重复了 // List vArray = this.mTrack.selectList(SqlBuilder.create().addSqlCondition(SqlCondition.of("line_id", line_id)).addSqlCondition(SqlCondition.of("track_time", curTime))); // if (vArray.size() == 0) { - SampleLineTrack nav = new SampleLineTrack(); - nav.setTrack_lat(lat); - nav.setTrack_lon(lon); - nav.setTrack_time(curTime); - navArray.add(nav); + SampleLineTrack nav = new SampleLineTrack(); + nav.setTrack_lat(lat); + nav.setTrack_lon(lon); + nav.setTrack_time(curTime); + navArray.add(nav); // } + } } - - return navArray; + + return new ArrayList<>(); } public void update(String file_name, SampleDataset ds, int index, List navArray) {