拒绝与已有扩展测量不同的导入批次
比较工步扩展字段的完整键集合,已有额外非空测量不能误判为同内容重复。补充整批拒绝及修订不写入的回归,受影响测试通过。
| | |
| | | { |
| | | Map<String, Object> expected = JSON.parseObject(String.valueOf(left)); |
| | | Map<String, Object> actual = right == null ? Map.of() : JSON.parseObject(right.toString()); |
| | | for (String field : expected.keySet()) if (!sameValue(expected.get(field), actual.get(field))) return false; |
| | | // 已有额外非空测量也属于内容差异;缺失与空值仍等价。 |
| | | Set<String> fields = new HashSet<>(expected.keySet()); fields.addAll(actual.keySet()); |
| | | for (String field : fields) if (!sameValue(expected.get(field), actual.get(field))) return false; |
| | | } |
| | | else if (!sameValue(left, right)) return false; |
| | | } |
| | |
| | | assertWorkbookEmpty(); |
| | | } |
| | | |
| | | @Test void workbookRejectsExistingExtraStepMeasurementInsteadOfSkippingIt() |
| | | { |
| | | submit("STEP", List.of(row())); |
| | | jdbc.update("update t_test_step_record set extension_measurements_json=?", "{\"stepDuration\":3752,\"auxTemperature\":99}"); |
| | | var sheets = Map.of("REALTIME", List.of(row()), "STEP", List.of(row()), "CYCLE", List.of(row())); |
| | | assertTrue(assertThrows(RuntimeException.class, () -> submitWorkbook(sheets)).getMessage().contains("冲突拒绝")); |
| | | assertTrue(mapper.selectImportDataRecords(1L, "REALTIME").isEmpty()); |
| | | assertTrue(mapper.selectImportDataRecords(1L, "CYCLE").isEmpty()); |
| | | assertEquals(1, service.selectActions(new TTestDataRevisionAction()).size()); |
| | | } |
| | | |
| | | private void assertWorkbookEmpty() |
| | | { |
| | | for (String type : List.of("REALTIME", "STEP", "CYCLE")) assertTrue(mapper.selectImportDataRecords(1L, type).isEmpty()); |