HEL-202: 基于 b27016d 返工起算日/期初/断档并补齐公司端

以 deploy/hel178 为基线整合 HEL-200 内核:迁移改为 0008 复用
system_settings;修复确认批次 list>int、截止日当天漏算与持久化断言;
公司端余额完整/降级口径与断档说明、管理端审核界面接线。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总工
2026-08-27 16:38:36 +00:00
co-authored by Cursor multica-agent
parent b27016d71d
commit 27f2b0b69a
10 changed files with 2721 additions and 55 deletions
+62
View File
@@ -98,6 +98,17 @@
<div class="grid grid-3-2" style="margin-top: 14px;">
<div class="stack">
<div class="notice danger" id="companyCoverageNotice" style="display: none; margin-bottom: 14px;">
<div>
<div class="n-title" id="companyCoverageTitle">流水断档提醒</div>
<div class="n-body" id="companyCoverageBody"></div>
</div>
<div class="row" style="margin-top: 10px; gap: 8px; flex-wrap: wrap;">
<button type="button" class="btn btn-sm btn-primary" data-view-link="upload">去上传</button>
<button type="button" class="btn btn-sm" id="openAttestationFromWorkspace">提交无业务说明</button>
</div>
</div>
<div class="card" id="workspaceTodos">
<div class="card-head">
<span class="card-title">本月待办<span class="sub" id="workspaceTodoSub">按权威待确认单边流水同步</span></span>
@@ -357,6 +368,16 @@
</section>
<section class="app-view" data-page="flows">
<div class="notice danger" id="flowsCoverageNotice" style="display: none; margin-bottom: 14px;">
<div>
<div class="n-title">流水断档提醒</div>
<div class="n-body" id="flowsCoverageBody"></div>
</div>
<div class="row" style="margin-top: 10px; gap: 8px;">
<button type="button" class="btn btn-sm btn-primary" data-view-link="upload">去上传</button>
<button type="button" class="btn btn-sm" id="openAttestationFromFlows">提交无业务说明</button>
</div>
</div>
<div class="page-head">
<div>
<h1>流水管理</h1>
@@ -472,6 +493,11 @@
<div id="transfersData" hidden>
<div class="grid grid-4" id="transfersStatGrid">
<div class="card stat-card" id="tfStatOpeningCard" hidden>
<div class="stat-label"><span class="stat-dot muted"></span>期初余额</div>
<div class="stat-value" id="tfStatOpening"></div>
<div class="stat-foot">起算日前一日结转</div>
</div>
<div class="card stat-card">
<div class="stat-label"><span class="stat-dot info"></span>往来公司数</div>
<div class="stat-value" id="tfStatCompanies"><span class="unit"></span></div>
@@ -492,6 +518,11 @@
<div class="stat-value" id="tfStatNet"></div>
<div class="stat-foot" id="tfStatNetFoot">正数=应收方向 · 负数=应付方向</div>
</div>
<div class="card stat-card" id="tfStatEndingCard" hidden>
<div class="stat-label"><span class="stat-dot success"></span>期末余额</div>
<div class="stat-value" id="tfStatEnding"></div>
<div class="stat-foot">期初 + 本期变动</div>
</div>
</div>
<div class="xfer-split" id="transfersSplit" style="margin-top: 14px;">
@@ -870,6 +901,37 @@
</div>
<!-- 导入批次详情弹窗 -->
<div class="modal-backdrop" id="attestationDialog">
<div class="modal">
<div class="modal-head">
<span class="modal-title">提交无业务说明</span>
<button type="button" class="modal-close" data-close-attestation aria-label="关闭">×</button>
</div>
<p class="modal-sub">说明经管理员审核通过后仅关闭断档提醒,不会生成银行流水。</p>
<form id="attestationForm" novalidate>
<input type="hidden" id="att-gap-start" name="gap_start" />
<input type="hidden" id="att-gap-end" name="gap_end" />
<input type="hidden" id="att-account-id" name="bank_account_id" />
<div class="field">
<label>断档区间</label>
<div class="meta num" id="att-gap-label"></div>
</div>
<div class="field">
<label for="att-reason">说明(至少 5 个字)</label>
<textarea class="input" id="att-reason" name="reason" rows="3" required></textarea>
</div>
<div class="field">
<label for="att-evidence">佐证(可选)</label>
<input class="input" id="att-evidence" name="evidence" placeholder="如:节假日无业务、账户停用说明编号" />
</div>
<div class="modal-actions">
<button type="button" class="btn" data-close-attestation>取消</button>
<button type="submit" class="btn btn-primary">提交审核</button>
</div>
</form>
</div>
</div>
<div class="modal-backdrop" id="modal-batch">
<div class="modal">
<div class="modal-head">