CaiWuXiTong/docs/company-plan-data-cleanup-20261107.html
DoDo 692d590509 feat: 公司盘点页面与未完结店铺关联
新增经营报表 › 公司盘点,支持导入预览、筛选、备注关键词搜索、编辑、导出及未完结店铺关联。

验证:公司盘点与导航相关测试 15 项通过(161 断言),目录表头测试 99 断言通过。
边界:原始 Excel 与本地 SQLite 数据不进入 Git;本次无数据库迁移。
2026-11-09 15:43:43 +08:00

236 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>公司盘点 · 信用代码治理对账报告</title>
<style>
:root {
--ink: #1D1D1F;
--ink-2: #4A4A4F;
--ink-3: #7A7A80;
--paper: #F8F6F1;
--card: #FFFFFF;
--line: #E6E1D8;
--gold: #B08A4A;
--gold-soft: #F3ECDD;
--danger: #B23B2E;
--danger-soft: #FBEDEB;
--ok: #2F6B4F;
--ok-soft: #EAF3EE;
}
* { box-sizing: border-box; }
body {
margin: 0;
padding: 40px 24px 64px;
background: var(--paper);
color: var(--ink);
font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
font-size: 14px;
line-height: 1.65;
-webkit-font-smoothing: antialiased;
}
.wrap { max-width: 1080px; margin: 0 auto; }
header { border-bottom: 2px solid var(--ink); padding-bottom: 20px; margin-bottom: 28px; }
.eyebrow {
display: inline-block;
font-size: 11px;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--gold);
border: 1px solid var(--gold);
padding: 2px 8px;
margin-bottom: 14px;
}
h1 { font-size: 26px; margin: 0 0 8px; letter-spacing: -.01em; }
.sub { color: var(--ink-3); font-size: 13px; margin: 0; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 32px; }
.kpi { background: var(--card); border: 1px solid var(--line); padding: 16px 18px; }
.kpi .label { font-size: 12px; color: var(--ink-3); margin-bottom: 6px; }
.kpi .value { font-size: 24px; font-weight: 600; letter-spacing: -.02em; }
.kpi .value small { font-size: 13px; font-weight: 400; color: var(--ink-3); margin-left: 4px; }
.kpi.is-gold { border-left: 3px solid var(--gold); }
.kpi.is-danger { border-left: 3px solid var(--danger); }
.kpi.is-ok { border-left: 3px solid var(--ok); }
section { margin-bottom: 34px; }
h2 {
font-size: 15px;
margin: 0 0 4px;
display: flex;
align-items: baseline;
gap: 10px;
}
h2 .idx {
font-size: 11px;
color: var(--gold);
font-variant-numeric: tabular-nums;
letter-spacing: .08em;
}
.hint { color: var(--ink-3); font-size: 12.5px; margin: 0 0 12px; }
table { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--line); }
th, td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: #FCFAF6; font-size: 12px; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
td { font-size: 13px; }
tbody tr:last-child td { border-bottom: none; }
tbody tr:hover { background: #FCFAF6; }
code, .mono {
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
font-size: 12px;
letter-spacing: .01em;
}
.tag {
display: inline-block; font-size: 11px; padding: 1px 7px;
border-radius: 2px; white-space: nowrap;
}
.tag.bad { background: var(--danger-soft); color: var(--danger); }
.tag.good { background: var(--ok-soft); color: var(--ok); }
.tag.gold { background: var(--gold-soft); color: var(--gold); }
.strike { text-decoration: line-through; color: var(--ink-3); }
.callout {
background: var(--card); border: 1px solid var(--line); border-left: 3px solid var(--gold);
padding: 14px 18px; margin: 14px 0 0;
}
.callout strong { display: block; margin-bottom: 4px; font-size: 13px; }
.callout p { margin: 0; font-size: 13px; color: var(--ink-2); }
ul.plain { margin: 8px 0 0; padding-left: 18px; color: var(--ink-2); }
ul.plain li { margin-bottom: 4px; }
footer { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: 12px; }
@media (max-width: 720px) {
.kpis { grid-template-columns: repeat(2, 1fr); }
body { padding: 24px 14px 48px; }
}
</style>
</head>
<body>
<div class="wrap">
<header>
<span class="eyebrow">Data Reconciliation</span>
<h1>公司盘点 · 统一社会信用代码治理对账报告</h1>
<p class="sub">数据源:主体盘点工作表(本地原型库 company-plan.sqlite) · 核对基准:公司基础信息(rpt.fys_companyInfo) · 2026-11-07</p>
</header>
<div class="kpis">
<div class="kpi is-danger">
<div class="label">治理前记录数</div>
<div class="value">814 <small>行</small></div>
</div>
<div class="kpi is-ok">
<div class="label">治理后记录数</div>
<div class="value">805 <small>行</small></div>
</div>
<div class="kpi is-ok">
<div class="label">信用代码唯一数</div>
<div class="value">805 <small>个 · 零重复</small></div>
</div>
<div class="kpi is-gold">
<div class="label">与公司基础信息一致</div>
<div class="value">804 <small>/ 805</small></div>
</div>
</div>
<section>
<h2><span class="idx">01</span>问题根因</h2>
<p class="hint">源表「统一社会信用代码」列在批量录入时发生整列错位复制,导致一个代码被 26 个互不相关的公司共用。</p>
<div class="callout">
<strong>异常代码 91220100MAKPDEPA6U 实际归属唯一主体</strong>
<p>该代码真实对应「吉林省锐远商贸行(个人独资)」,成立日期 2026-09-29。其余 24 家(常州拉贝尼、常州佳尔汇、武进区横林环客…)均为错位填入,各自真实代码已从公司基础信息取回并回写。</p>
</div>
</section>
<section>
<h2><span class="idx">02</span>信用代码回填 · 21 条</h2>
<p class="hint">按公司名称到公司基础信息精确匹配后写入,全部为工商登记真实代码。</p>
<table>
<thead><tr><th style="width:64px">原 id</th><th>公司名称</th><th style="width:200px">回填信用代码</th></tr></thead>
<tbody>
<tr><td class="mono">441</td><td>常州拉贝尼电子商务有限公司</td><td class="mono">91320412MA218F7785</td></tr>
<tr><td class="mono">442</td><td>常州佳尔汇家居有限公司</td><td class="mono">91320402MAD69E9355</td></tr>
<tr><td class="mono">443</td><td>武进区横林环客家居用品经营部</td><td class="mono">92320412MA1NUYCTXJ</td></tr>
<tr><td class="mono">444</td><td>武进区横林宇恒图文设计工作室</td><td class="mono">92320412MA1NYXLK25</td></tr>
<tr><td class="mono">445</td><td>武进区横林星君玩具厂</td><td class="mono">92320412MA1P0JG642</td></tr>
<tr><td class="mono">446</td><td>武进区横林松桑办公家具厂</td><td class="mono">92320412MA1P0JJ715</td></tr>
<tr><td class="mono">447</td><td>常州卓合品牌管理有限公司</td><td class="mono">91320412MAEXPRB539</td></tr>
<tr><td class="mono">448</td><td>常州尔酉信家居有限公司</td><td class="mono">91320402MAD4A2QR0D</td></tr>
<tr><td class="mono">449</td><td>常州玺之娜家居有限公司</td><td class="mono">91320411MAKAPWM49Q</td></tr>
<tr><td class="mono">450</td><td>常州源之素家居有限公司</td><td class="mono">91320411MAKA8LBB3N</td></tr>
<tr><td class="mono">451</td><td>常州伴之月家居有限公司</td><td class="mono">91320411MAK6T84F7R</td></tr>
<tr><td class="mono">452</td><td>常州顾嘉家居有限公司</td><td class="mono">91320412MADHTLDW6K</td></tr>
<tr><td class="mono">453</td><td>常州本的的电子商务有限公司</td><td class="mono">91320485MA27A0Y83K</td></tr>
<tr><td class="mono">454</td><td>常州辉茂家具有限公司</td><td class="mono">91320411MAC0BNFC55</td></tr>
<tr><td class="mono">455</td><td>常州淘之丰家居有限公司</td><td class="mono">91320485MAK1TCHJ93</td></tr>
<tr><td class="mono">456</td><td>常州艾之淘家具销售有限公司</td><td class="mono">91320485MAC4MDU41H</td></tr>
<tr><td class="mono">457</td><td>常州欢而君商贸有限公司</td><td class="mono">91320485MA27RWDH3T</td></tr>
<tr><td class="mono">458</td><td>常州沃务庆电子商务有限公司</td><td class="mono">91320485MA279MC29R</td></tr>
<tr><td class="mono">462</td><td>常州工满贸易有限公司</td><td class="mono">91320485MAC47DGK16</td></tr>
<tr><td class="mono">463</td><td>武进区横林乐辛办公家具经营部</td><td class="mono">92320412MA1NXYNY7T</td></tr>
<tr><td class="mono">464</td><td>武进区横林蜗牛办公家具经营部</td><td class="mono">92320412MA1NXYQ40M</td></tr>
</tbody>
</table>
</section>
<section>
<h2><span class="idx">03</span>重复主体合并 · 9 组</h2>
<p class="hint">同一信用代码或同一公司名被录入两次。保留名称与工商登记一致、且注册时间为真实成立日期的一条,删除重复行。名称括号统一为工商登记的全角「()」。</p>
<p class="hint" style="margin-top:-6px;color:var(--ok)">状态与备注已二次确认:川之和 / 末之影 / 飞之翼 三家实际已注销完成,备注修订为「税务、工商、银行均已注销」。</p>
<table>
<thead><tr><th>保留主体</th><th style="width:180px">信用代码</th><th style="width:130px">删除行</th><th style="width:96px">类型</th></tr></thead>
<tbody>
<tr><td>徐州市瑞崇商贸中心(个人独资)</td><td class="mono">91320381MAKPE8R14F</td><td class="mono strike">id 433</td><td><span class="tag gold">括号变体</span></td></tr>
<tr><td>徐州市瀚联商贸中心(个人独资)</td><td class="mono">91320381MAKQ80GP7N</td><td class="mono strike">id 434</td><td><span class="tag gold">括号变体</span></td></tr>
<tr><td>长沙宁乡市锦尚亿商贸商行(个人独资)</td><td class="mono">91430182MAKPUWF376</td><td class="mono strike">id 439</td><td><span class="tag gold">括号变体</span></td></tr>
<tr><td>吉林省锐远商贸行(个人独资)</td><td class="mono">91220100MAKPDEPA6U</td><td class="mono strike">id 440</td><td><span class="tag gold">括号变体</span></td></tr>
<tr><td>吉林省智策商贸行(个人独资)</td><td class="mono">91220100MAKN9RLB07</td><td class="mono strike">id 436</td><td><span class="tag gold">括号变体</span></td></tr>
<tr><td>吉林省锐锦商贸行(个人独资)</td><td class="mono">91220105MAKN919R4E</td><td class="mono strike">id 437</td><td><span class="tag gold">括号变体</span></td></tr>
<tr><td>常州市新北区新桥川之和家居经营部(个体工商户)</td><td class="mono">92320411MAK8FUFC8E</td><td class="mono strike">id 459</td><td><span class="tag bad">错码重复</span></td></tr>
<tr><td>常州市新北区新桥末之影家居经营部(个体工商户)</td><td class="mono">92320411MAK8CFCN14</td><td class="mono strike">id 460</td><td><span class="tag bad">错码重复</span></td></tr>
<tr><td>常州经开区横林飞之翼家居经营部(个体工商户)</td><td class="mono">92320485MAK8852278</td><td class="mono strike">id 461</td><td><span class="tag bad">错码重复</span></td></tr>
</tbody>
</table>
<div class="callout">
<strong>合并后的状态与备注已对齐</strong>
<p>后三组(川之和 / 末之影 / 飞之翼)原有一条记录备注「税务工商已注销,银行待注销」,与保留行「注销-银行 ✅、状态 注销」不一致。经业务确认实际已注销完成,备注统一修订为「税务、工商、银行均已注销」,状态保持「注销」。</p>
</div>
</section>
<section>
<h2><span class="idx">04</span>名称对齐 · 1 条</h2>
<p class="hint">以公司基础信息登记名称为准,统一字形。</p>
<table>
<thead><tr><th style="width:200px">信用代码</th><th>原名</th><th>现名</th></tr></thead>
<tbody>
<tr><td class="mono">91320381MAKPE90A9H</td><td class="strike">徐州市彰崚商贸中心(个人独资)</td><td>徐州市彰峻商贸中心(个人独资)</td></tr>
</tbody>
</table>
</section>
<section>
<h2><span class="idx">05</span>全量对账结果</h2>
<table>
<thead><tr><th style="width:260px">核对项</th><th style="width:110px">结果</th><th>说明</th></tr></thead>
<tbody>
<tr><td>名称与代码均与公司基础信息一致</td><td><span class="tag good">804 / 805</span></td><td>字段级逐条比对</td></tr>
<tr><td>同一信用代码出现多次</td><td><span class="tag good">0 组</span></td><td>治理前为 4 组、最多 26 条共用</td></tr>
<tr><td>同一公司名出现多次</td><td><span class="tag good">0 组</span></td><td>治理前为 5 组</td></tr>
<tr><td>信用代码为空</td><td><span class="tag good">0 条</span></td><td>—</td></tr>
<tr><td>上游未收录</td><td><span class="tag gold">1 条</span></td><td>上海尚达启悦科技有限公司 91310117MAKN9A5K6P,官方可查(2026-09-30 松江区成立),公司基础信息待补录</td></tr>
<tr><td>非 18 位代码</td><td><span class="tag gold">1 条</span></td><td>香港万兴家具有限公司 3078766,为香港公司注册编号,境外主体无统一社会信用代码,属正常</td></tr>
</tbody>
</table>
</section>
<section>
<h2><span class="idx">06</span>数据分布</h2>
<ul class="plain">
<li>规划:注销 730 · 保留 74 · 待定 1</li>
<li>公司状态:正常 369 · 注销 322 · 注销中 114</li>
<li>备份:<code>storage/app/company-plan/company-plan-backup-20261107-084230.sqlite</code>(治理前 814 行快照,可整表回滚)</li>
</ul>
</section>
<footer>
本报告由数据治理脚本自动生成,所有写入均在单事务内完成并已校验提交结果。页面刷新后即可看到 805 条明细。
</footer>
</div>
</body>
</html>