From ec80639d739aa73f583c8fdd48d56663e88f8c81 Mon Sep 17 00:00:00 2001 From: weicw Date: Sat, 31 Oct 2026 06:57:52 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B8=85=E7=90=86=E5=A4=B9=E5=85=B7?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E4=BA=8C=E6=9C=9F=E5=8D=95=E6=8D=AE=E8=A1=A8?= =?UTF-8?q?=EF=BC=9B=E5=BA=94=E7=94=A8=E5=9C=BA=E5=9C=B0=E5=8D=95=20DDL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gxwebsoft/support/ApprovalTestData.java | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/gxwebsoft/support/ApprovalTestData.java b/src/test/java/com/gxwebsoft/support/ApprovalTestData.java index 884bca9..d93527c 100644 --- a/src/test/java/com/gxwebsoft/support/ApprovalTestData.java +++ b/src/test/java/com/gxwebsoft/support/ApprovalTestData.java @@ -170,14 +170,41 @@ public class ApprovalTestData { } private void deleteInstance(Long instanceId) { - master.update("DELETE FROM approval_attachment WHERE instance_id = ?", instanceId); - master.update("DELETE FROM approval_record WHERE instance_id = ?", instanceId); - master.update("DELETE FROM approval_task WHERE instance_id = ?", instanceId); - master.update("DELETE FROM approval_completion_form WHERE instance_id = ?", instanceId); - master.update("DELETE FROM approval_coordination_form WHERE instance_id = ?", instanceId); + for (String table : INSTANCE_CHILD_TABLES) { + try { + master.update("DELETE FROM " + table + " WHERE instance_id = ?", instanceId); + } catch (Exception ignored) { + // 该单据的表尚未在当前环境创建:跳过,不阻断清理 + } + } master.update("DELETE FROM approval_instance WHERE id = ?", instanceId); } + /** + * 按实例外键清理的子表清单:新增单据表时在此追加,否则用例数据会残留在共享库。 + * + *

明细子表也带 {@code instance_id},与业务主表一样按实例删除。

+ */ + private static final String[] INSTANCE_CHILD_TABLES = { + "approval_attachment", + "approval_field_change", + "approval_record", + "approval_task", + "approval_completion_form", + "approval_coordination_form", + // 二期单据(表不存在时下面会跳过) + "approval_settlement_item", + "approval_settlement_form", + "approval_receipt_form", + "approval_vehicle_item", + "approval_vehicle_form", + "approval_venue_form", + "approval_coupon_item", + "approval_coupon_form", + "approval_facility_item", + "approval_facility_form" + }; + private Integer insert(JdbcTemplate jdbcTemplate, String sql, Object... args) { KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(connection -> {