feat(m2): add external/internal order ID to contracts

This commit is contained in:
2026-05-25 14:49:40 +08:00
parent 16ab474bee
commit 8d1081b2b9
8 changed files with 109 additions and 0 deletions
@@ -35,6 +35,12 @@ public class PlatformContract {
@TableField("end_date") @TableField("end_date")
private LocalDate endDate; private LocalDate endDate;
@TableField("external_order_id")
private String externalOrderId;
@TableField("internal_order_id")
private String internalOrderId;
@TableField("created_at") @TableField("created_at")
private OffsetDateTime createdAt; private OffsetDateTime createdAt;
@@ -113,6 +119,22 @@ public class PlatformContract {
this.endDate = 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;
}
public OffsetDateTime getCreatedAt() { public OffsetDateTime getCreatedAt() {
return createdAt; return createdAt;
} }
@@ -72,6 +72,8 @@ public class ContractService {
if (request.getSigningDate() != null) c.setSigningDate(LocalDate.parse(request.getSigningDate())); if (request.getSigningDate() != null) c.setSigningDate(LocalDate.parse(request.getSigningDate()));
if (request.getEffectiveDate() != null) c.setEffectiveDate(LocalDate.parse(request.getEffectiveDate())); if (request.getEffectiveDate() != null) c.setEffectiveDate(LocalDate.parse(request.getEffectiveDate()));
if (request.getEndDate() != null) c.setEndDate(LocalDate.parse(request.getEndDate())); if (request.getEndDate() != null) c.setEndDate(LocalDate.parse(request.getEndDate()));
c.setExternalOrderId(request.getExternalOrderId());
c.setInternalOrderId(request.getInternalOrderId());
c.setStatus(ContractStatus.DRAFT.name()); c.setStatus(ContractStatus.DRAFT.name());
c.setCreatedAt(now); c.setCreatedAt(now);
c.setUpdatedAt(now); c.setUpdatedAt(now);
@@ -129,6 +131,8 @@ public class ContractService {
if (request.getSigningDate() != null) c.setSigningDate(LocalDate.parse(request.getSigningDate())); if (request.getSigningDate() != null) c.setSigningDate(LocalDate.parse(request.getSigningDate()));
if (request.getEffectiveDate() != null) c.setEffectiveDate(LocalDate.parse(request.getEffectiveDate())); if (request.getEffectiveDate() != null) c.setEffectiveDate(LocalDate.parse(request.getEffectiveDate()));
if (request.getEndDate() != null) c.setEndDate(LocalDate.parse(request.getEndDate())); 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)); c.setUpdatedAt(OffsetDateTime.now(ZoneOffset.UTC));
contractMapper.updateById(c); contractMapper.updateById(c);
auditService.record( auditService.record(
@@ -331,6 +335,8 @@ public class ContractService {
m.put("signingDate", c.getSigningDate()); m.put("signingDate", c.getSigningDate());
m.put("effectiveDate", c.getEffectiveDate()); m.put("effectiveDate", c.getEffectiveDate());
m.put("endDate", c.getEndDate()); m.put("endDate", c.getEndDate());
m.put("externalOrderId", c.getExternalOrderId());
m.put("internalOrderId", c.getInternalOrderId());
m.put("status", c.getStatus()); m.put("status", c.getStatus());
return m; return m;
} }
@@ -367,6 +373,8 @@ public class ContractService {
r.setSigningDate(c.getSigningDate() != null ? c.getSigningDate().toString() : null); r.setSigningDate(c.getSigningDate() != null ? c.getSigningDate().toString() : null);
r.setEffectiveDate(c.getEffectiveDate() != null ? c.getEffectiveDate().toString() : null); r.setEffectiveDate(c.getEffectiveDate() != null ? c.getEffectiveDate().toString() : null);
r.setEndDate(c.getEndDate() != null ? c.getEndDate().toString() : null); r.setEndDate(c.getEndDate() != null ? c.getEndDate().toString() : null);
r.setExternalOrderId(c.getExternalOrderId());
r.setInternalOrderId(c.getInternalOrderId());
r.setCreatedAt(c.getCreatedAt()); r.setCreatedAt(c.getCreatedAt());
r.setUpdatedAt(c.getUpdatedAt()); r.setUpdatedAt(c.getUpdatedAt());
return r; return r;
@@ -21,6 +21,10 @@ public class ContractCreateRequest {
private String endDate; private String endDate;
private String externalOrderId;
private String internalOrderId;
public Long getCustomerId() { public Long getCustomerId() {
return customerId; return customerId;
} }
@@ -76,4 +80,20 @@ public class ContractCreateRequest {
public void setEndDate(String endDate) { public void setEndDate(String endDate) {
this.endDate = 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;
}
} }
@@ -16,6 +16,8 @@ public class ContractResponse {
private String signingDate; private String signingDate;
private String effectiveDate; private String effectiveDate;
private String endDate; private String endDate;
private String externalOrderId;
private String internalOrderId;
private OffsetDateTime createdAt; private OffsetDateTime createdAt;
private OffsetDateTime updatedAt; private OffsetDateTime updatedAt;
/** 仅详情接口填充;列表分页省略该字段。 */ /** 仅详情接口填充;列表分页省略该字段。 */
@@ -94,6 +96,22 @@ public class ContractResponse {
this.endDate = 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;
}
public OffsetDateTime getCreatedAt() { public OffsetDateTime getCreatedAt() {
return createdAt; return createdAt;
} }
@@ -16,6 +16,10 @@ public class ContractUpdateRequest {
private String endDate; private String endDate;
private String externalOrderId;
private String internalOrderId;
public String getTitle() { public String getTitle() {
return title; return title;
} }
@@ -55,4 +59,20 @@ public class ContractUpdateRequest {
public void setEndDate(String endDate) { public void setEndDate(String endDate) {
this.endDate = 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;
}
} }
@@ -0,0 +1,3 @@
ALTER TABLE platform_contract
ADD COLUMN external_order_id VARCHAR(128),
ADD COLUMN internal_order_id VARCHAR(128);
@@ -34,6 +34,8 @@
<el-descriptions-item label="签订日期">{{ contract.signingDate || '—' }}</el-descriptions-item> <el-descriptions-item label="签订日期">{{ contract.signingDate || '—' }}</el-descriptions-item>
<el-descriptions-item label="生效日期">{{ contract.effectiveDate || '—' }}</el-descriptions-item> <el-descriptions-item label="生效日期">{{ contract.effectiveDate || '—' }}</el-descriptions-item>
<el-descriptions-item label="终止日期" :span="2">{{ contract.endDate || '—' }}</el-descriptions-item> <el-descriptions-item label="终止日期" :span="2">{{ contract.endDate || '—' }}</el-descriptions-item>
<el-descriptions-item label="外部订单号">{{ contract.externalOrderId || '—' }}</el-descriptions-item>
<el-descriptions-item label="内部订单号">{{ contract.internalOrderId || '—' }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<div v-if="transitionButtons.length" class="transition-bar"> <div v-if="transitionButtons.length" class="transition-bar">
@@ -158,6 +160,8 @@ const projectMap = ref(new Map());
const form = reactive({ const form = reactive({
title: "", title: "",
remarks: "", remarks: "",
externalOrderId: "",
internalOrderId: "",
}); });
const auditLoading = ref(false); const auditLoading = ref(false);
@@ -226,6 +230,8 @@ watch(
if (!c) return; if (!c) return;
form.title = c.title ?? ""; form.title = c.title ?? "";
form.remarks = c.remarks ?? ""; form.remarks = c.remarks ?? "";
form.externalOrderId = c.externalOrderId ?? "";
form.internalOrderId = c.internalOrderId ?? "";
}, },
{ immediate: true } { immediate: true }
); );
@@ -389,6 +395,8 @@ async function saveHeader() {
await updateContract(id, { await updateContract(id, {
title: form.title?.trim(), title: form.title?.trim(),
remarks: form.remarks?.trim() ?? "", remarks: form.remarks?.trim() ?? "",
externalOrderId: form.externalOrderId?.trim() || undefined,
internalOrderId: form.internalOrderId?.trim() || undefined,
}); });
ElMessage.success("已保存"); ElMessage.success("已保存");
await loadContract(); await loadContract();
@@ -69,6 +69,12 @@
<el-form-item label="终止日期"> <el-form-item label="终止日期">
<el-date-picker v-model="header.endDate" type="date" value-format="YYYY-MM-DD" placeholder="选填" style="width:100%" /> <el-date-picker v-model="header.endDate" type="date" value-format="YYYY-MM-DD" placeholder="选填" style="width:100%" />
</el-form-item> </el-form-item>
<el-form-item label="外部订单号">
<el-input v-model="header.externalOrderId" maxlength="128" placeholder="选填" />
</el-form-item>
<el-form-item label="内部订单号">
<el-input v-model="header.internalOrderId" maxlength="128" placeholder="选填" />
</el-form-item>
</el-form> </el-form>
</div> </div>
@@ -142,6 +148,8 @@ const header = reactive({
signingDate: null, signingDate: null,
effectiveDate: null, effectiveDate: null,
endDate: null, endDate: null,
externalOrderId: "",
internalOrderId: "",
}); });
const headerRules = { const headerRules = {
@@ -253,6 +261,8 @@ async function submit() {
signingDate: header.signingDate || undefined, signingDate: header.signingDate || undefined,
effectiveDate: header.effectiveDate || undefined, effectiveDate: header.effectiveDate || undefined,
endDate: header.endDate || undefined, endDate: header.endDate || undefined,
externalOrderId: header.externalOrderId?.trim() || undefined,
internalOrderId: header.internalOrderId?.trim() || undefined,
}); });
const id = data?.id; const id = data?.id;
if (id == null) { if (id == null) {