== Part 0 预检(账号部门映射 / 回填残留 / 部门专用规则现场) == 账号 罗伟健 uid=739564171091247104 dept_id=None 账号 曾偲青 uid=744842318024015872 dept_id=744841292483133440 账号 赖永利 uid=744842565802524672 dept_id=744841308564094976 账号 肖琴 uid=744842566742048768 dept_id=744841308677341184 [❌] 预检·四账号部门映射齐备 —— map={'739564171091247104': None, '744842318024015872': '744841292483133440', '744842565802524672': '744841308564094976', '744842566742048768': '744841308677341184'} [✅] 预检·存量回填残留(应为 0) —— 残留 NULL 行=0 [✅] 预检·无 t03- 残留发布中规则 —— 无 == Part B D-13 四路径 owner_dept_id(创建 / assign / handover / claim) == [✅] B1 创建→owner_dept_id=A 部门 —— DB=(744842565802524672,744841308564094976) 期望=(744842565802524672,744841308564094976) detail.ownerDeptId=744841308564094976 [ERR] assign B: code=66003 msg=当前状态不允许此操作 [❌] B2 assign→B:快照跟人走 —— DB=(744842565802524672,744841308564094976) 期望=(744842566742048768,744841308677341184) [ERR] handover B→C: code=66004 msg=移交失败:商机可能已被他人移交或抛公海,请刷新后重试 [❌] B3 handover→C:部门完整过户 —— DB=(744842565802524672,744841308564094976) 期望=(744842318024015872,744841292483133440) [✅] B4 release-pool→claim→快照=B 部门 —— DB=(744842566742048768,744841308677341184) 期望=(744842566742048768,744841308677341184) == Part A D-10/11/12 三族「编辑发布中→新草稿」实测(不再 50001) == -- PR 公海规则 -- [✅] PR 编辑发布中→新草稿(不 50001,V1.1 顺延) —— newId=749017925414813696 ≠ srcId=749017922306834432;ruleCode=POOL_RULE_20(不变);versionNo=V1.1(V1.0→顺延);status=1(1=草稿) -- ST 阶段模板 -- [✅] ST 编辑发布中→新草稿(不 50001,V1.1 顺延) —— newId=749017935619555328 ≠ srcId=749017931865653248;templateCode=OPP_STAGE_TPL_09(不变);versionNo=V1.1(V1.0→顺延);status=1(1=草稿) -- SC 方案卡模板 -- [✅] SC 编辑发布中→新草稿(不 50001,V1.1 顺延) —— newId=749017944603754496 ≠ srcId=749017941005041664;templateCode=OPP_SCHEME_TPL_12(不变);versionNo=V1.1(V1.0→顺延);status=1(1=草稿) == Part U U03 生效层:部门专用 allowManualPool=0 真拦截(修复前恒放行) == [✅] U03 部门专用规则发布(deptIds 绑定) —— deptIds=744841292483133440 allowManualPool=0 Traceback (most recent call last): File "e:\code\crm-backend-matt\.scratch\opportunity-bugfix\t03-verify.py", line 415, in part_u() ~~~~~~^^ File "e:\code\crm-backend-matt\.scratch\opportunity-bugfix\t03-verify.py", line 349, in part_u cur.execute("SELECT id, owner_dept_id FROM opportunity WHERE opportunity_name LIKE %s ORDER BY create_time DESC", ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (f'{TAG}%',)) ^^^^^^^^^^^^^ File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\cursors.py", line 159, in execute result = self._query(query) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\cursors.py", line 330, in _query conn.query(q) ~~~~~~~~~~^^^ File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\connections.py", line 582, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\connections.py", line 847, in _read_query_result result.read() ~~~~~~~~~~~^^ File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\connections.py", line 1245, in read first_packet = self.connection._read_packet() File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\connections.py", line 803, in _read_packet packet.raise_for_error() ~~~~~~~~~~~~~~~~~~~~~~^^ File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pymysql\err.py", line 154, in raise_mysql_exception raise errorclass(errno, errval, sqlstate=sqlstate) pymysql.err.OperationalError: (1054, "Unknown column 'opportunity_name' in 'where clause'")