diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/contract/PlatformContract.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/contract/PlatformContract.java index 7cf40f6..4c58bec 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/contract/PlatformContract.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/contract/PlatformContract.java @@ -35,6 +35,12 @@ public class PlatformContract { @TableField("end_date") private LocalDate endDate; + @TableField("external_order_id") + private String externalOrderId; + + @TableField("internal_order_id") + private String internalOrderId; + @TableField("created_at") private OffsetDateTime createdAt; @@ -113,6 +119,22 @@ public class PlatformContract { this.endDate = endDate; } + public String getExternalOrderId() { + return externalOrderId; + } + + public void setExternalOrderId(String externalOrderId) { + this.externalOrderId = externalOrderId; + } + + public String getInternalOrderId() { + return internalOrderId; + } + + public void setInternalOrderId(String internalOrderId) { + this.internalOrderId = internalOrderId; + } + public OffsetDateTime getCreatedAt() { return createdAt; } diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/ContractService.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/ContractService.java index 88c9f2b..7ddef65 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/ContractService.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/ContractService.java @@ -72,6 +72,8 @@ public class ContractService { if (request.getSigningDate() != null) c.setSigningDate(LocalDate.parse(request.getSigningDate())); if (request.getEffectiveDate() != null) c.setEffectiveDate(LocalDate.parse(request.getEffectiveDate())); if (request.getEndDate() != null) c.setEndDate(LocalDate.parse(request.getEndDate())); + c.setExternalOrderId(request.getExternalOrderId()); + c.setInternalOrderId(request.getInternalOrderId()); c.setStatus(ContractStatus.DRAFT.name()); c.setCreatedAt(now); c.setUpdatedAt(now); @@ -129,6 +131,8 @@ public class ContractService { if (request.getSigningDate() != null) c.setSigningDate(LocalDate.parse(request.getSigningDate())); if (request.getEffectiveDate() != null) c.setEffectiveDate(LocalDate.parse(request.getEffectiveDate())); if (request.getEndDate() != null) c.setEndDate(LocalDate.parse(request.getEndDate())); + if (request.getExternalOrderId() != null) c.setExternalOrderId(request.getExternalOrderId()); + if (request.getInternalOrderId() != null) c.setInternalOrderId(request.getInternalOrderId()); c.setUpdatedAt(OffsetDateTime.now(ZoneOffset.UTC)); contractMapper.updateById(c); auditService.record( @@ -331,6 +335,8 @@ public class ContractService { m.put("signingDate", c.getSigningDate()); m.put("effectiveDate", c.getEffectiveDate()); m.put("endDate", c.getEndDate()); + m.put("externalOrderId", c.getExternalOrderId()); + m.put("internalOrderId", c.getInternalOrderId()); m.put("status", c.getStatus()); return m; } @@ -367,6 +373,8 @@ public class ContractService { r.setSigningDate(c.getSigningDate() != null ? c.getSigningDate().toString() : null); r.setEffectiveDate(c.getEffectiveDate() != null ? c.getEffectiveDate().toString() : null); r.setEndDate(c.getEndDate() != null ? c.getEndDate().toString() : null); + r.setExternalOrderId(c.getExternalOrderId()); + r.setInternalOrderId(c.getInternalOrderId()); r.setCreatedAt(c.getCreatedAt()); r.setUpdatedAt(c.getUpdatedAt()); return r; diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractCreateRequest.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractCreateRequest.java index 2df7e85..6e5c436 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractCreateRequest.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractCreateRequest.java @@ -21,6 +21,10 @@ public class ContractCreateRequest { private String endDate; + private String externalOrderId; + + private String internalOrderId; + public Long getCustomerId() { return customerId; } @@ -76,4 +80,20 @@ public class ContractCreateRequest { public void setEndDate(String endDate) { this.endDate = endDate; } + + public String getExternalOrderId() { + return externalOrderId; + } + + public void setExternalOrderId(String externalOrderId) { + this.externalOrderId = externalOrderId; + } + + public String getInternalOrderId() { + return internalOrderId; + } + + public void setInternalOrderId(String internalOrderId) { + this.internalOrderId = internalOrderId; + } } diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractResponse.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractResponse.java index 59b5c28..a36eab0 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractResponse.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractResponse.java @@ -16,6 +16,8 @@ public class ContractResponse { private String signingDate; private String effectiveDate; private String endDate; + private String externalOrderId; + private String internalOrderId; private OffsetDateTime createdAt; private OffsetDateTime updatedAt; /** 仅详情接口填充;列表分页省略该字段。 */ @@ -94,6 +96,22 @@ public class ContractResponse { this.endDate = endDate; } + public String getExternalOrderId() { + return externalOrderId; + } + + public void setExternalOrderId(String externalOrderId) { + this.externalOrderId = externalOrderId; + } + + public String getInternalOrderId() { + return internalOrderId; + } + + public void setInternalOrderId(String internalOrderId) { + this.internalOrderId = internalOrderId; + } + public OffsetDateTime getCreatedAt() { return createdAt; } diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractUpdateRequest.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractUpdateRequest.java index 0f0e544..b753a4e 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractUpdateRequest.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/ContractUpdateRequest.java @@ -16,6 +16,10 @@ public class ContractUpdateRequest { private String endDate; + private String externalOrderId; + + private String internalOrderId; + public String getTitle() { return title; } @@ -55,4 +59,20 @@ public class ContractUpdateRequest { public void setEndDate(String endDate) { this.endDate = endDate; } + + public String getExternalOrderId() { + return externalOrderId; + } + + public void setExternalOrderId(String externalOrderId) { + this.externalOrderId = externalOrderId; + } + + public String getInternalOrderId() { + return internalOrderId; + } + + public void setInternalOrderId(String internalOrderId) { + this.internalOrderId = internalOrderId; + } } diff --git a/services/delivery-platform-api/src/main/resources/db/migration/V19__contract_order_link.sql b/services/delivery-platform-api/src/main/resources/db/migration/V19__contract_order_link.sql new file mode 100644 index 0000000..f575c28 --- /dev/null +++ b/services/delivery-platform-api/src/main/resources/db/migration/V19__contract_order_link.sql @@ -0,0 +1,3 @@ +ALTER TABLE platform_contract + ADD COLUMN external_order_id VARCHAR(128), + ADD COLUMN internal_order_id VARCHAR(128); diff --git a/web/delivery-platform-ui/src/views/ContractDetailView.vue b/web/delivery-platform-ui/src/views/ContractDetailView.vue index 06ff4d4..4846efa 100644 --- a/web/delivery-platform-ui/src/views/ContractDetailView.vue +++ b/web/delivery-platform-ui/src/views/ContractDetailView.vue @@ -34,6 +34,8 @@ {{ contract.signingDate || '—' }} {{ contract.effectiveDate || '—' }} {{ contract.endDate || '—' }} + {{ contract.externalOrderId || '—' }} + {{ contract.internalOrderId || '—' }}
@@ -158,6 +160,8 @@ const projectMap = ref(new Map()); const form = reactive({ title: "", remarks: "", + externalOrderId: "", + internalOrderId: "", }); const auditLoading = ref(false); @@ -226,6 +230,8 @@ watch( if (!c) return; form.title = c.title ?? ""; form.remarks = c.remarks ?? ""; + form.externalOrderId = c.externalOrderId ?? ""; + form.internalOrderId = c.internalOrderId ?? ""; }, { immediate: true } ); @@ -389,6 +395,8 @@ async function saveHeader() { await updateContract(id, { title: form.title?.trim(), remarks: form.remarks?.trim() ?? "", + externalOrderId: form.externalOrderId?.trim() || undefined, + internalOrderId: form.internalOrderId?.trim() || undefined, }); ElMessage.success("已保存"); await loadContract(); diff --git a/web/delivery-platform-ui/src/views/ContractWizardView.vue b/web/delivery-platform-ui/src/views/ContractWizardView.vue index 096c8df..9efc519 100644 --- a/web/delivery-platform-ui/src/views/ContractWizardView.vue +++ b/web/delivery-platform-ui/src/views/ContractWizardView.vue @@ -69,6 +69,12 @@ + + + + + +
@@ -142,6 +148,8 @@ const header = reactive({ signingDate: null, effectiveDate: null, endDate: null, + externalOrderId: "", + internalOrderId: "", }); const headerRules = { @@ -253,6 +261,8 @@ async function submit() { signingDate: header.signingDate || undefined, effectiveDate: header.effectiveDate || undefined, endDate: header.endDate || undefined, + externalOrderId: header.externalOrderId?.trim() || undefined, + internalOrderId: header.internalOrderId?.trim() || undefined, }); const id = data?.id; if (id == null) {