From 4d3b6cdaed9175caf48e3a2e375bd618bb042c93 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com>
Date: Fri, 16 Oct 2026 19:47:01 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=93=E7=AE=97=E8=B0=83=E6=95=B4?=
=?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=85=A5=E9=87=91=E8=9D=B6=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=B8=8E=E5=86=B2=E9=94=80=E9=A2=84=E6=A3=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/settlement/settlementAdjustment.js | 4 ++
.../settlement/settlementAdjustmentTable.js | 2 +
.../settlement-adjustment-editor.vue | 15 +++++++
.../settlement/settlement-adjustment.vue | 42 +++++++++++++++----
4 files changed, 54 insertions(+), 9 deletions(-)
diff --git a/src/api/settlement/settlementAdjustment.js b/src/api/settlement/settlementAdjustment.js
index d809bf6..4c7b460 100644
--- a/src/api/settlement/settlementAdjustment.js
+++ b/src/api/settlement/settlementAdjustment.js
@@ -17,6 +17,10 @@ export const approve = id => request({ url: `${baseUrl}/approve`, method: 'post'
export const returnBill = (id, reason) =>
request({ url: `${baseUrl}/return`, method: 'post', data: { id, reason } });
export const repush = id => request({ url: `${baseUrl}/repush`, method: 'post', params: { id } });
+export const syncKingdee = id =>
+ request({ url: `${baseUrl}/sync-kingdee`, method: 'post', timeout: 30000, params: { id } });
+export const kingdeeWriteOffPrecheck = formalSettlementId =>
+ request({ url: `${baseUrl}/kingdee-writeoff-precheck`, method: 'get', params: { formalSettlementId } });
export const approvalStatusOptions = [
{ label: '草稿', value: 'draft' },
diff --git a/src/option/settlement/settlementAdjustmentTable.js b/src/option/settlement/settlementAdjustmentTable.js
index aaaa9fc..ad8b2fb 100644
--- a/src/option/settlement/settlementAdjustmentTable.js
+++ b/src/option/settlement/settlementAdjustmentTable.js
@@ -9,6 +9,8 @@ export const settlementAdjustmentTableColumns = [
{ label: '合同名称', prop: 'contractName', minWidth: 170 },
{ label: '调整金额', prop: 'adjustmentAmount', minWidth: 130, money: true },
{ label: '审核状态', prop: 'approvalStatusName', minWidth: 110, status: true },
+ { label: '金蝶单据状态', prop: 'kingdeeSyncStatus', minWidth: 130, kingdee: true },
+ { label: '金蝶单据号', prop: 'kingdeeBillNo', minWidth: 150 },
{ label: '当前节点', prop: 'currentNode', minWidth: 120 },
{ label: '当前处理人', prop: 'currentProcessor', minWidth: 130 },
{ label: '创建人', prop: 'createUserName', minWidth: 110 },
diff --git a/src/views/settlement/components/settlement-adjustment-editor.vue b/src/views/settlement/components/settlement-adjustment-editor.vue
index 0c646d3..0ee9530 100644
--- a/src/views/settlement/components/settlement-adjustment-editor.vue
+++ b/src/views/settlement/components/settlement-adjustment-editor.vue
@@ -414,6 +414,8 @@ export default {
});
this.details = [];
this.recalculate();
+ // 金蝶冲销预检:软提示,不阻断建单(金蝶不可用时静默降级)
+ this.precheckWriteOff(formalSettlementId);
this.loading = true;
try {
const { data } = await api.getFormalDetails(formalSettlementId);
@@ -431,6 +433,19 @@ export default {
this.loading = false;
}
},
+ async precheckWriteOff(formalSettlementId) {
+ try {
+ const { data } = await api.kingdeeWriteOffPrecheck(formalSettlementId);
+ if (String(this.form.formalSettlementId) !== String(formalSettlementId)) return;
+ const result = data?.data || data || {};
+ if (!result.message) return;
+ if (result.syncStatus === 'synced' && result.writtenOff === false)
+ this.$message.warning(result.message);
+ else this.$message.info(result.message);
+ } catch (error) {
+ // 预检软提示:金蝶查询失败静默降级,不阻断建单
+ }
+ },
addFeeRow() {
this.details.push({
formalSettlementDetailId: null,
diff --git a/src/views/settlement/settlement-adjustment.vue b/src/views/settlement/settlement-adjustment.vue
index c4bacd4..9a43c11 100644
--- a/src/views/settlement/settlement-adjustment.vue
+++ b/src/views/settlement/settlement-adjustment.vue
@@ -93,11 +93,16 @@
>{{
row[column.prop] || '-'
}}{{ kingdeeSyncName(row.kingdeeSyncStatus) }}{{ formatMoney(row[column.prop]) }}{{ displayValue(row[column.prop]) }}
-
驳回推送金蝶