交付出件箱

← 返回出件箱

「待提交资料」→「资料待补充」影响面核查

2026-08-18 云机 dev2 · 全仓 47 处命中 / 22 个文件,逐处打开代码确认,无一处推测
云机环境 · 非验收证据


结论先说

  1. 这个词被两种东西共用:门店状态(org_signup_profiles.status)和渠道自己的资料状态
    (channels.profile_status)。改错后者会炸渠道签约线 —— 这是本次最大的坑
  2. 门店那边这个词是死的:全后端没有任何一行把门店状态设成「待提交资料」
    (对照组能查出一堆 profile.status = "已开通"/"待线下付款"/"资料已驳回",证明查法有效)
  3. 还有 3 处根本不是状态词,是「待提交(的)资料文件」的报错,替换了就出 bug

一、要动的(门店侧)

后端 9 处

文件:行 内容 说明
api/settlement/stores.py:192 _display_status() 🔑 显示名统一出口,现在只有一行「已停用→已关闭」
api/settlement/store_service.py:100 注释「不放行待提交资料」 本次要推翻的旧口径,必须一起改
api/settlement/store_service.py:102 PAYABLE_REVIEW_STATUSES 加进白名单
api/settlement/stores.py:1555 CLOSABLE_STORE_STATUSES 已含该词
api/settlement/stores.py:1654 注释「除待提交资料外全状态可编辑」 随代填锁一起改
services/settlement/channels.py:240 _progress_steps 进度步骤条「资料提交」 门店签约五步条
services/settlement/channels.py:1918 渠道看门店的 profile_status 映射 profile 来自 select(OrgSignupProfile…)(1852 行),是门店不是渠道
services/settlement/channels.py:2011 渠道看门店档案 → 409「机构尚未提交资料」 🔴 付了钱没补资料的店,渠道点进去会看不到
services/settlement/store_signup.py:1238 PLATFORM_PROFILE_EDIT_BLOCKED_STATUSES 🔑 长官要开的代填锁就是这一行

前端 4 个文件

端 文件:行 要做什么
🖥️ PC 平台后台 admin/minicup/stores/page.tsx:17 筛选项文字
🖥️ PC 平台后台 admin/minicup/stores/[orgId]/page.tsx:285/645/1184/1185 详情页判断 + 代填入口的显示条件
📱 渠道手机端 channel/minicup/store-progress/page.tsx:61 筛选项文字(挂 channel-h5-shell,确认是手机端)
📱 平台手机端 platform/minicup/stores/page.tsx:17 🔴 它的筛选条里压根没有这一项 —— 不补的话,付了钱没补资料的店在平台手机端筛不出来,只能在"全部"里翻

✅ 好消息:PC 平台后台与平台手机端共用同一个后端拼装函数 _serialize_store
(platform_mobile_paging.py:18 直接 import),所以卡片上的状态文字改后端一行、两端同时变,
前端只需要补筛选项。

测试 6 处

test_channel_store_profile_view.py:8/175/177 · test_store_profile_platform_update.py:9/199/219/439/455 ·
test_database_models.py:380(校的是 OrgSignupProfile 的约束)· test_store_pay_session.py:140
—— 其中「待提交资料 → 不给付款 / 不给代填」两类断言是本次刻意反转,改了不是测试坏了。


二、绝对不能动的(渠道自己的资料状态)

文件:行 证据
models/settlement.py:109 渠道 CheckConstraint,含「草稿未提交/资料完整」——门店没有这两个词
models/settlement.py:158 Channel.profile_status 默认值就是它
services/settlement/channels.py:651 建渠道时写入 profile_status="待提交资料"
services/settlement/platform_mobile_paging.py:140 明写 Channel.profile_status
web/admin/minicup/channels/page.tsx:26 PROFILE_STATUS_OPTIONS 含「草稿未提交/资料完整」= 渠道枚举
web/channel/minicup/page.tsx:143 文案是「待上传企业资料 / 营业执照和对公付款信息」= 渠道自己的
web/channel/minicup/profile/page.tsx:59 渠道自己的档案页
web/platform/minicup/channels/page.tsx:175 渠道列表的「待补资料」筛选

三、🔴 陷阱:不是状态词,替换即出 bug

services/settlement/store_signup.py:306 / 326 / 330
detail="待提交资料文件不存在" —— 这是「待提交(的)资料文件」,文件暂存的报错,跟状态无关。

四、历史迁移不改

migrations/versions/phase60_000_settlement_baseline.py:132 —— 历史迁移文件一律不回改。


五、两种改法,代价不一样

方案甲:显示层改名(推荐) 方案乙:真改库里的值
库里存什么 仍是「待提交资料」 改成「资料待补充」
界面显示 「资料待补充」 「资料待补充」
migration 不需要 要改 CheckConstraint + 刷存量,碰业务关键表
前置条件 无 必须先确认存量条数(云机查不了库)
现网有先例吗 ✅ 有:库里「已停用」界面显示「已关闭」,就在 _display_status 同一个函数里 —
缺点 库里的词与界面的词不一致,查数据要记住这个映射 动了业务关键表约束

建议走甲:一行后端 + 4 处前端文字,零数据库风险;将来真要统一,等库权限开了确认存量为 0 再做乙也不迟。


六、连带要定的一件

channels.py:2011:渠道点进「待提交资料」的门店会 409 看不到档案。
本次这些店钱都付了,渠道大概率要看。建议一起放开 —— 请长官确认。