From 1b85082c414f25679f8ad70f48f110b3f1d81969 Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Sat, 12 Sep 2026 07:19:15 +0800 Subject: [PATCH] commit --- .../customer-demo-ref/HANDOFF-2026-09-12.md | 61 + .scratch/customer-demo-ref/_quickcheck.py | 22 + .scratch/customer-demo-ref/_quickcheck12.py | 81 + .scratch/customer-demo-ref/_quickcheck12b.py | 33 + .scratch/customer-demo-ref/_quickcheck12c.py | 36 + .scratch/customer-demo-ref/_quickcheck12d.py | 36 + .scratch/customer-demo-ref/_quickcheck13.py | 77 + .scratch/customer-demo-ref/_scan.py | 19 + .scratch/customer-demo-ref/_t12scan.py | 13 + .scratch/customer-demo-ref/assets/_fa-core.md | 529 -- .../assets/acceptance-selfcheck.md | 50 + .../customer-demo-ref/assets/smoke-plan.md | 6 +- .../assets/uncommitted-changes.md | 44 + .../demo/__pycache__/_t14d7.cpython-313.pyc | Bin 0 -> 7569 bytes .../demo/__pycache__/smoke.cpython-313.pyc | Bin 0 -> 107241 bytes .scratch/customer-demo-ref/demo/_jarbuild.log | 335 + .scratch/customer-demo-ref/demo/_run7.log | 58 + .scratch/customer-demo-ref/demo/_run8.log | 56 + .scratch/customer-demo-ref/demo/_server.log | 0 .scratch/customer-demo-ref/demo/_t14api.py | 35 + .scratch/customer-demo-ref/demo/_t14cols.py | 15 + .scratch/customer-demo-ref/demo/_t14d7.py | 79 + .scratch/customer-demo-ref/demo/_t14db.py | 15 + .scratch/customer-demo-ref/demo/_t14diag.py | 32 + .scratch/customer-demo-ref/demo/_t14org.py | 17 + .scratch/customer-demo-ref/demo/_t14org2.py | 21 + .scratch/customer-demo-ref/demo/_t14org3.py | 17 + .scratch/customer-demo-ref/demo/_t14scan.py | 29 + .scratch/customer-demo-ref/demo/index.html | 712 +- .../customer-demo-ref/demo/shots/s01-list.png | Bin 0 -> 145210 bytes .../demo/shots/s02-pool-i06.png | Bin 0 -> 77303 bytes .../demo/shots/s07-board.png | Bin 0 -> 143993 bytes .../customer-demo-ref/demo/shots/s11-head.png | Bin 0 -> 73035 bytes .../demo/shots/s19-oplog.png | Bin 0 -> 62494 bytes .../demo/shots/s20-import.png | Bin 0 -> 129386 bytes .../demo/shots/s24-transfer.png | Bin 0 -> 75723 bytes .../demo/shots/s30-ledger.png | Bin 0 -> 102270 bytes .../demo/shots/s40-final.png | Bin 0 -> 59196 bytes .../demo/shots/t10-quick-pool.png | Bin 0 -> 61363 bytes .../demo/shots/t11-quick-detail.png | Bin 0 -> 119351 bytes .../demo/shots/t12-quick-contacts.png | Bin 0 -> 91646 bytes .../demo/shots/t13-quick-settings.png | Bin 0 -> 148065 bytes .../customer-demo-ref/demo/smoke-report.json | 444 ++ .scratch/customer-demo-ref/demo/smoke.py | 1099 +++ .../customer-demo-ref/demo/tmp_xlsx/cont.xlsx | Bin 0 -> 5161 bytes .../customer-demo-ref/demo/tmp_xlsx/cust.xlsx | Bin 0 -> 5807 bytes .../demo/tmp_xlsx/tpl_cust.xlsx | Bin 0 -> 4300 bytes .../issues/07-field-alignment-checklist.md | 30 +- .../customer-demo-ref/issues/10-core-list.md | 20 +- .../issues/11-core-detail.md | 23 +- .../issues/12-contacts-opp-entry.md | 17 +- .../issues/13-flow-rules-tail.md | 14 +- .../issues/14-smoke-script.md | 22 +- .../issues/15-report-handover.md | 10 +- .scratch/customer-demo-ref/map.md | 32 +- logs/crm-app.log | 6136 +---------------- logs/crm-app.log.2026-09-11.0.gz | Bin 0 -> 102610 bytes 57 files changed, 3526 insertions(+), 6749 deletions(-) create mode 100644 .scratch/customer-demo-ref/HANDOFF-2026-09-12.md create mode 100644 .scratch/customer-demo-ref/_quickcheck.py create mode 100644 .scratch/customer-demo-ref/_quickcheck12.py create mode 100644 .scratch/customer-demo-ref/_quickcheck12b.py create mode 100644 .scratch/customer-demo-ref/_quickcheck12c.py create mode 100644 .scratch/customer-demo-ref/_quickcheck12d.py create mode 100644 .scratch/customer-demo-ref/_quickcheck13.py create mode 100644 .scratch/customer-demo-ref/_scan.py create mode 100644 .scratch/customer-demo-ref/_t12scan.py delete mode 100644 .scratch/customer-demo-ref/assets/_fa-core.md create mode 100644 .scratch/customer-demo-ref/assets/acceptance-selfcheck.md create mode 100644 .scratch/customer-demo-ref/assets/uncommitted-changes.md create mode 100644 .scratch/customer-demo-ref/demo/__pycache__/_t14d7.cpython-313.pyc create mode 100644 .scratch/customer-demo-ref/demo/__pycache__/smoke.cpython-313.pyc create mode 100644 .scratch/customer-demo-ref/demo/_jarbuild.log create mode 100644 .scratch/customer-demo-ref/demo/_run7.log create mode 100644 .scratch/customer-demo-ref/demo/_run8.log create mode 100644 .scratch/customer-demo-ref/demo/_server.log create mode 100644 .scratch/customer-demo-ref/demo/_t14api.py create mode 100644 .scratch/customer-demo-ref/demo/_t14cols.py create mode 100644 .scratch/customer-demo-ref/demo/_t14d7.py create mode 100644 .scratch/customer-demo-ref/demo/_t14db.py create mode 100644 .scratch/customer-demo-ref/demo/_t14diag.py create mode 100644 .scratch/customer-demo-ref/demo/_t14org.py create mode 100644 .scratch/customer-demo-ref/demo/_t14org2.py create mode 100644 .scratch/customer-demo-ref/demo/_t14org3.py create mode 100644 .scratch/customer-demo-ref/demo/_t14scan.py create mode 100644 .scratch/customer-demo-ref/demo/shots/s01-list.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s02-pool-i06.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s07-board.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s11-head.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s19-oplog.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s20-import.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s24-transfer.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s30-ledger.png create mode 100644 .scratch/customer-demo-ref/demo/shots/s40-final.png create mode 100644 .scratch/customer-demo-ref/demo/shots/t10-quick-pool.png create mode 100644 .scratch/customer-demo-ref/demo/shots/t11-quick-detail.png create mode 100644 .scratch/customer-demo-ref/demo/shots/t12-quick-contacts.png create mode 100644 .scratch/customer-demo-ref/demo/shots/t13-quick-settings.png create mode 100644 .scratch/customer-demo-ref/demo/smoke-report.json create mode 100644 .scratch/customer-demo-ref/demo/smoke.py create mode 100644 .scratch/customer-demo-ref/demo/tmp_xlsx/cont.xlsx create mode 100644 .scratch/customer-demo-ref/demo/tmp_xlsx/cust.xlsx create mode 100644 .scratch/customer-demo-ref/demo/tmp_xlsx/tpl_cust.xlsx create mode 100644 logs/crm-app.log.2026-09-11.0.gz diff --git a/.scratch/customer-demo-ref/HANDOFF-2026-09-12.md b/.scratch/customer-demo-ref/HANDOFF-2026-09-12.md new file mode 100644 index 0000000..afb354a --- /dev/null +++ b/.scratch/customer-demo-ref/HANDOFF-2026-09-12.md @@ -0,0 +1,61 @@ +# HANDOFF — customer-demo-ref wayfinder 全图收官(2026-09-12) + +> 写给接续 agent:地图已 **done**,无剩余开发工作。本文档只覆盖「状态快照 + 用户回来后的可能动作 + 复跑速查 + 本会话新踩的坑」。细节一律引用落盘工件,不重复。 + +## 1. 状态快照(一句话) + +`e:\code\crm-backend-matt\.scratch\customer-demo-ref\` 的 15 票全部 resolved,map.md Status=done;票 14 冒烟第八跑 **40/0 ALL_PASS(176.4s)**;票 15 四标准自检与双仓清单已落盘;**唯一待办 = 用户审查双仓未提交变更并自行提交**(agent 纪律不碰 git)。 + +- 权威状态:`map.md`(Decisions 15 行 + Destination 验收对照块) +- 各票结论:`issues/01..15-*.md` 的 `## Answer` 节(全部已写) +- 验收自检:`assets/acceptance-selfcheck.md`(四标准逐条 ✓) +- 未提交清单:`assets/uncommitted-changes.md` + +## 2. 本段会话(收尾段)完成了什么 + +1. **票 14 第七/八轮**:诊断脚本 `demo/_t14d7.py` 实锤三大根因(seed 联系人职务不在字典→batchEdit 被校验拦截;quickAdd 后 _contacts 旧快照;pool+ASSIGNED 视图与公海口径恒互斥)→ 第七轮 39/1;第八轮实锤 **demo onclick 陷阱**并修复 → 40/0 全绿。全程记录在 `issues/14-smoke-script.md` Answer。 +2. **票 15**:`assets/acceptance-selfcheck.md` + `assets/uncommitted-changes.md` 落盘 + map 收口(Status=done、验收对照块、Not yet specified 清空、Decisions 补 09/10/11/14 四行)。 +3. **环境**:重建 fat jar 并重启 8080(旧 jar 落后源码导致 project/page 404);构建通道与 jar 文件锁坑已沉淀到记忆「crm-backend-matt 构建与脚本执行通道」。 + +## 3. 用户回来后最可能的动作(按概率排序) + +| 动作 | 做法 | +|------|------| +| 审查未提交变更 | 打开 `assets/uncommitted-changes.md`:backend 51 行全属 `.scratch/customer-demo-ref`(M10+??37,其中诊断脚本/日志标注可删);文档仓 `E:\code\crm-api-docs` 仅 2 个前序迁移遗留目录。**提交由用户执行** | +| 试跑 Demo | 直接浏览器打开 `demo/index.html?api=http://localhost:8080`(服务若已停,见 §4 起服);登录页 uid 填 `739564171091247104`(admin 罗伟健)debug 直登;验收指北同 `assets/acceptance-selfcheck.md` §4 | +| 复跑冒烟 | 见 §4 速查;脚本幂等(sweep→seed 自举),可重复执行 | +| 处置 8080 服务 | 本会话起的服务仍在后台运行(新 jar);若不需要可 taskkill,不影响任何落盘工件 | + +## 4. 复跑速查(冒烟/起服) + +- 解释器(唯一可用组合):`E:\code\crm-backend-matt\.scratch\customer-e2e\.venv10\Scripts\python.exe -X utf8 .scratch/customer-demo-ref/demo/smoke.py`(playwright+pymysql+openpyxl 齐备;长任务**必须前台跑**,后台进程树会被会话压缩杀死)。 +- 起服:`SPRING_PROFILES_ACTIVE=verify` + MinIO env(AK/SK 凭据已内置 `crm-app/src/main/resources/application.yml` 默认值,无需明文传入)+ `java -jar crm-app\target\crm-app-1.0.0-SNAPSHOT.jar`(corretto-17)。 +- DB=远程共享库(凭据同上内置);seed 幂等自举(sweep 先于 ensure_seeds,e2c-dr\* 用后硬删;2d 把查重模式归位 FUZZY(2));报告落 `demo/smoke-report.json`。 +- **fat jar 重建**:先 taskkill 占 8080 的 java(文件锁→repackage rename 失败),删 target 旧 jar,再走 IDEA bundled mvn(沙箱需越权;通道详见记忆「crm-backend-matt 构建与脚本执行通道」)。 + +## 5. 本会话新踩/复用的坑(未沉淀进记忆的部分) + +- **demo onclick 陷阱**:`dlgOpen` 把 `fn` 直接挂 `btn.onclick` → 浏览器把 PointerEvent 作为首参传入。任何 `async function doX(confirmSimilar)` 形态的按钮回调都会把事件对象序列化进表单(如 `confirmSimilar=[object PointerEvent]` → 后端 400)。修法=首参防御:`(cf === true || cf === 'true') ? true : undefined`(qs 会跳过 undefined)。doEdit/doCreate 已修;**给新对话框按钮回调加参数时必踩,先想这个**。 +- **edit 的 L2 needConfirm 假成功**:后端 edit 相似命中时返回 code=0 + `needConfirm:true` 不落库——demo 侧必须显式处理(doEdit 已补 simbox 分支,同 doCreate 契约),否则「toast 成功但 DB 没变」。 +- **pool 工作台视图互斥**:`fViewType` 默认 ASSIGNED 与公海 owner IS NULL 恒冲突(CustomerMapper L83)——demo pool 页签在默认视图下恒空,冒烟侧先呈现现象再清视图。 +- **seed 自举顺序**:sweep 必须先于 ensure_seeds,否则上轮 seed 被 find 命中不重建、随即被 sweep 清掉,整轮查重基线缺失(冒烟步 9/27 假阴)。 +- **中文 URL**:任何拼接中文查询参数必须 `urllib.parse.quote`(本 effort 已三次踩)。 +- **诊断脚本临时文件**:`demo/_t14d7.py`(DB 职务+pool+edit 三合一取证)保留作证据,其余 `_quickcheck*/_q.py` 类可删。 + +## 6. Suggested skills(按场景) + +| 场景 | skill | +|------|-------| +| 用户要求把本次成果同步成 Bruno 文档/新 .bru | `bruno-sync`(注意 config sourceRoots 需含目标模块目录) | +| 用户要继续下一张 wayfinder 地图/大块工作 | `wayfinder` | +| 用户报 demo/后端行为异常要求诊断 | `diagnosing-bugs`;浏览器层验证用 `webapp-testing` | +| 用户要求 review 本次全部改动 | `code-review`(review_scope=explicit_target,指定 `.scratch/customer-demo-ref`) | +| 需要看图/截图(非多模态会话) | `vision-mcp`(AGENTS.md 有调用规范) | + +## 7. 关键文件索引 + +- 地图/票/资产:`e:\code\crm-backend-matt\.scratch\customer-demo-ref\`(map.md、issues/、assets/、demo/) +- 冒烟报告:`demo/smoke-report.json`(第八跑 40/0 + api_urls 91 路径 + http_fails 空) +- 取证脚本:`demo/_t14d7.py`、`demo/_run7.log`、`demo/_run8.log`、`demo/_jarbuild.log` +- 契约权威:`.scratch/customer-module/API-SUMMARY.md`(85 端点);原型树:`.scratch/api-docs-reorg/lanhu-tree-v29.md` +- 缺陷台账:`.scratch/customer-frontend-handover/gap-report.md` + `customer-defectfix/FIX-REPORT.md` diff --git a/.scratch/customer-demo-ref/_quickcheck.py b/.scratch/customer-demo-ref/_quickcheck.py new file mode 100644 index 0000000..ceb8f0d --- /dev/null +++ b/.scratch/customer-demo-ref/_quickcheck.py @@ -0,0 +1,22 @@ +import json +from playwright.sync_api import sync_playwright + +URL = 'file:///E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/index.html' +errors = [] +with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1720, 'height': 1080}) + pg.on('pageerror', lambda e: errors.append(str(e))) + pg.goto(URL) + pg.wait_for_timeout(800) + n_sub = pg.eval_on_selector_all('#detailPanel .subtabs button', 'els => els.length') + projects_btn = pg.eval_on_selector_all('#detailPanel .subtabs button[data-s="projects"]', 'els => els.length') + g5 = pg.eval_on_selector_all('[data-defect="G5"]', 'els => els.length') + # 打开缺陷面板,统计台账行数 + pg.click('[data-defect-panel]') + pg.wait_for_timeout(300) + panel_rows = pg.eval_on_selector_all('[data-defect-row]', 'els => els.length') + pg.screenshot(path='E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/shots/t11-quick-detail.png') + b.close() +print(json.dumps({'pageerror': errors, 'subtabs': n_sub, 'projects_tab': projects_btn, + 'g5_badge': g5, 'panel_rows': panel_rows}, ensure_ascii=False)) diff --git a/.scratch/customer-demo-ref/_quickcheck12.py b/.scratch/customer-demo-ref/_quickcheck12.py new file mode 100644 index 0000000..f781ccd --- /dev/null +++ b/.scratch/customer-demo-ref/_quickcheck12.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +"""票 12 快验:联系人顶级菜单 + 商机侧三入口(UI 层 + 登录链路尽力)""" +import io, json, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +from playwright.sync_api import sync_playwright + +URL = 'file:///E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/index.html' +errors = [] +out = {} +with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1720, 'height': 1080}) + pg.on('pageerror', lambda e: errors.append(str(e))) + pg.goto(URL) + pg.wait_for_timeout(800) + + # 1) nav tabs = 6,联系人按钮存在 + out['tabs'] = pg.eval_on_selector_all('nav.tabs button', 'els => els.map(e => e.dataset.tab)') + # 2) 切联系人 tab + pg.click('nav.tabs button[data-tab="contacts"]') + pg.wait_for_timeout(300) + out['contacts_section_visible'] = pg.eval_on_selector('#tab-contacts', 'e => e.style.display !== "none"') + out['g5_badge'] = pg.eval_on_selector_all('#tab-contacts [data-defect="G5"]', 'els => els.length') + out['cform_options'] = pg.eval_on_selector('#cForm', 'e => e.options.length') + # 3) 未登录 hint(尽力;登录后此值会被覆盖) + out['ct_hint_before_login'] = pg.eval_on_selector('#ctPageInfo', 'e => e.textContent') + # 4) 登录链路(远程 debug token;失败不阻塞 UI 断言) + try: + pg.fill('#uidInput', '739564171091247104') + pg.evaluate('loginByUid()') + pg.wait_for_timeout(2500) + out['token_set'] = pg.evaluate('!!localStorage.getItem("e2c_token")') + if out['token_set']: + pg.click('nav.tabs button[data-tab="contacts"]') + pg.evaluate('loadContactPage()') + pg.wait_for_timeout(2000) + out['ct_rows'] = pg.eval_on_selector_all('#ctPageBody tr', 'els => els.length') + out['ct_head'] = pg.eval_on_selector('#ctPageHead', 'e => e.textContent.slice(0, 120)') + out['ct_info'] = pg.eval_on_selector('#ctPageInfo', 'e => e.textContent') + out['phone_masked'] = pg.evaluate('''() => { + const tds = [...document.querySelectorAll('#ctPageBody td')]; + const phone = tds.map(t => t.textContent).find(t => /^\\d{3}\\*{4}\\d{4}$/.test(t)); + return phone || null; + }''') + # 行点开详情弹窗(contact/detail 回显 + G6 空态) + has_row = pg.eval_on_selector_all('#ctPageBody tr td.row', 'els => els.length') + if has_row: + pg.click('#ctPageBody tr td.row') + pg.wait_for_timeout(1200) + out['detail_dlg'] = pg.eval_on_selector('dialog#dlg[open]', 'e => !!e') + out['ct_info_kv'] = pg.eval_on_selector_all('#ctPaneInfo .kv', 'els => els.length') + pg.click('#ctTabBtn1') + pg.wait_for_timeout(200) + out['g6_log'] = pg.eval_on_selector_all('#ctPaneLog[data-defect="G6"]', 'els => els.length') + pg.keyboard.press('Escape') + pg.wait_for_timeout(200) + except Exception as e: + out['login_error'] = str(e)[:200] + # 5) 商机侧三入口 UI + pg.click('nav.tabs button[data-tab="list"]') + pg.wait_for_timeout(200) + out['opp_entry_buttons'] = pg.evaluate('''() => ({ + quick: [...document.querySelectorAll('button')].some(b => b.textContent.includes('快建客户')), + search3d: [...document.querySelectorAll('button')].some(b => b.textContent.includes('三维搜索')), + })''') + # 快建弹窗打开(7 必填控件) + pg.evaluate('dlgQuickCreate()') + pg.wait_for_timeout(200) + out['quick_fields'] = pg.evaluate('''() => ['qName','qType','qProv','qCity','qInd','qStar','qRStar'].filter(id => !!document.getElementById(id)).length''') + pg.keyboard.press('Escape') + pg.wait_for_timeout(200) + # 全局搜索弹窗 + pg.click('nav.tabs button[data-tab="contacts"]') + pg.evaluate('dlgContactSearch()') + pg.wait_for_timeout(200) + out['search_dlg'] = pg.eval_on_selector('dialog#dlg[open]', 'e => !!e') + pg.keyboard.press('Escape') + pg.screenshot(path='E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/shots/t12-quick-contacts.png', full_page=False) + b.close() +out['pageerror'] = errors +print(json.dumps(out, ensure_ascii=False, indent=1)) diff --git a/.scratch/customer-demo-ref/_quickcheck12b.py b/.scratch/customer-demo-ref/_quickcheck12b.py new file mode 100644 index 0000000..1bad020 --- /dev/null +++ b/.scratch/customer-demo-ref/_quickcheck12b.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +"""票 12 补验:contact/search + customer/search 真请求(只读端点)""" +import io, json, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +from playwright.sync_api import sync_playwright + +URL = 'file:///E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/index.html' +errors = [] +out = {} +with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1720, 'height': 1080}) + pg.on('pageerror', lambda e: errors.append(str(e))) + pg.goto(URL) + pg.wait_for_timeout(600) + pg.fill('#uidInput', '739564171091247104') + pg.evaluate('loginByUid()') + pg.wait_for_timeout(2500) + # contact/search:keyword=张关键(seed 联系人) + r1 = pg.evaluate('''async () => { + const arr = await api('/api/customer/contact/search?keyword=' + encodeURIComponent('张关键') + '&limit=20'); + return { n: (arr || []).length, first: arr && arr[0] ? { name: arr[0].name, phone: arr[0].phone, customerName: arr[0].customerName, source: arr[0].source } : null }; + }''') + out['contact_search'] = r1 + # customer/search:keyword=e2c 三维模糊 + excludeCustomerIds 重复键 + r2 = pg.evaluate('''async () => { + const d = await api('/api/customer/search', { method: 'POST', body: 'keyword=e2c&archiveStatus=1&excludeCustomerIds=750844487390986240' }); + return { total: d && d.total, row0: d && d.content && d.content[0] ? { customerNo: d.content[0].customerNo, ownerName: d.content[0].ownerName, customerStage: d.content[0].customerStage } : null }; + }''') + out['customer_search'] = r2 + b.close() +out['pageerror'] = errors +print(json.dumps(out, ensure_ascii=False, indent=1)) diff --git a/.scratch/customer-demo-ref/_quickcheck12c.py b/.scratch/customer-demo-ref/_quickcheck12c.py new file mode 100644 index 0000000..3e6f3d6 --- /dev/null +++ b/.scratch/customer-demo-ref/_quickcheck12c.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +"""票 12 补验 r2:取 contact/page 首行真值,回查 contact/search/customer/search""" +import io, json, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +from playwright.sync_api import sync_playwright + +URL = 'file:///E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/index.html' +errors = [] +out = {} +with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1720, 'height': 1080}) + pg.on('pageerror', lambda e: errors.append(str(e))) + pg.goto(URL) + pg.wait_for_timeout(600) + pg.fill('#uidInput', '739564171091247104') + pg.evaluate('loginByUid()') + pg.wait_for_timeout(2500) + out['page0'] = pg.evaluate('''async () => { + const d = await api('/api/customer/contact/page?current=1&size=3'); + return (d && d.content || []).map(r => ({ name: r.name, phone: r.phone, source: r.source, customerName: r.customerName })); + }''') + out['search_by_row_name'] = pg.evaluate('''async () => { + const d = await api('/api/customer/contact/page?current=1&size=1'); + const nm = d && d.content && d.content[0] && d.content[0].name; + if (!nm) return 'no-row'; + const arr = await api('/api/customer/contact/search?keyword=' + encodeURIComponent(nm) + '&limit=20'); + return { kw: nm, n: (arr || []).length, phone0: arr && arr[0] ? arr[0].phone : null }; + }''') + out['ws_page0'] = pg.evaluate('''async () => { + const d = await api('/api/customer/workspace/page', { method: 'POST', body: 'workspace=mine¤t=1&size=3&archiveStatus=1' }); + return { total: d && d.total, rows: (d && d.content || []).map(r => ({ customerName: r.customerName, ownerNameSnapshot: r.ownerNameSnapshot })) }; + }''') + b.close() +out['pageerror'] = errors +print(json.dumps(out, ensure_ascii=False, indent=1)) diff --git a/.scratch/customer-demo-ref/_quickcheck12d.py b/.scratch/customer-demo-ref/_quickcheck12d.py new file mode 100644 index 0000000..6978e29 --- /dev/null +++ b/.scratch/customer-demo-ref/_quickcheck12d.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +"""票 12 补验 r3:customer/search 用库内真名(三维模糊含联系人名)""" +import io, json, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +from playwright.sync_api import sync_playwright + +URL = 'file:///E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/index.html' +errors = [] +out = {} +with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1720, 'height': 1080}) + pg.on('pageerror', lambda e: errors.append(str(e))) + pg.goto(URL) + pg.wait_for_timeout(600) + pg.fill('#uidInput', '739564171091247104') + pg.evaluate('loginByUid()') + pg.wait_for_timeout(2500) + out['by_customer_name'] = pg.evaluate('''async () => { + const d = await api('/api/customer/search', { method: 'POST', body: 'keyword=' + encodeURIComponent('佛山季华铝业') }); + return { total: d && d.total, row0: d && d.content && d.content[0] ? { customerNo: d.content[0].customerNo, customerType: d.content[0].customerType, ownerDeptId: d.content[0].ownerDeptId, archiveStatus: d.content[0].archiveStatus } : null }; + }''') + out['by_contact_name_3d'] = pg.evaluate('''async () => { + // 三维模糊验证:用联系人姓名「梁诗敏」搜——应命中其所属客户 + const d = await api('/api/customer/search', { method: 'POST', body: 'keyword=' + encodeURIComponent('梁诗敏') }); + return { total: d && d.total, name0: d && d.content && d.content[0] ? d.content[0].customerName : null }; + }''') + out['exclude_dup_key'] = pg.evaluate('''async () => { + // excludeCustomerIds 重复键排除后 total 应减少 + const a = await api('/api/customer/search', { method: 'POST', body: 'keyword=' + encodeURIComponent('佛山') }); + const d = await api('/api/customer/search', { method: 'POST', body: 'keyword=' + encodeURIComponent('佛山') + '&excludeCustomerIds=' + (a.content && a.content[0] ? a.content[0].id : '0') }); + return { before: a && a.total, after: d && d.total }; + }''') + b.close() +out['pageerror'] = errors +print(json.dumps(out, ensure_ascii=False, indent=1)) diff --git a/.scratch/customer-demo-ref/_quickcheck13.py b/.scratch/customer-demo-ref/_quickcheck13.py new file mode 100644 index 0000000..33d5ea6 --- /dev/null +++ b/.scratch/customer-demo-ref/_quickcheck13.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +"""票 13 快验:工商联想 NO_HIT / 导入过滤 / POOL-CFG 占位卡 / P3-3 / D-G1 注记""" +import io, json, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +from playwright.sync_api import sync_playwright + +URL = 'file:///E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/index.html' +errors = [] +out = {} +with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1720, 'height': 1080}) + pg.on('pageerror', lambda e: errors.append(str(e))) + pg.goto(URL) + pg.wait_for_timeout(600) + pg.fill('#uidInput', '739564171091247104') + pg.evaluate('loginByUid()') + pg.wait_for_timeout(2500) + out['token'] = pg.evaluate('!!localStorage.getItem("e2c_token")') + + # 1) 工商联想 NO_HIT(#24 真请求:stub 恒空数组) + out['lookup_raw'] = pg.evaluate('''async () => { + const arr = await api('/api/customer/company-lookup?companyName=' + encodeURIComponent('恒信达')); + return Array.isArray(arr) ? arr : ('type=' + typeof arr); + }''') + pg.evaluate('dlgCreate()') + pg.wait_for_timeout(200) + pg.fill('#cLk', '恒信达') + pg.evaluate('doLookup()') + pg.wait_for_timeout(1200) + out['lookup_no_hit'] = pg.eval_on_selector('#cOut', 'e => e.textContent.includes("未查询到匹配企业")') + out['lookup_stub_note'] = pg.eval_on_selector_all('#cOut [data-defect="STUB-LOOKUP"]', 'els => els.length') + pg.keyboard.press('Escape') + pg.wait_for_timeout(200) + + # 2) 导入任务过滤(#63 真请求) + pg.click('nav.tabs button[data-tab="import"]') + pg.evaluate('loadImportPage()') + pg.wait_for_timeout(1200) + out['imp_all'] = pg.eval_on_selector_all('#impBody tr', 'els => els.length') + pg.select_option('#impFStatus', '2') + pg.wait_for_timeout(1200) + out['imp_status2_rows'] = pg.evaluate('''() => { + const trs = [...document.querySelectorAll('#impBody tr')]; + return { n: trs.length, allDone: trs.every(tr => tr.textContent.includes('已完成') || tr.textContent.includes('暂无')) }; + }''') + pg.select_option('#impFStatus', '') + pg.select_option('#impFMode', 'UPSERT') + pg.wait_for_timeout(1200) + out['imp_mode_upsert'] = pg.evaluate('''() => { + const trs = [...document.querySelectorAll('#impBody tr')]; + return { n: trs.length, allUpsert: trs.every(tr => tr.textContent.includes('UPSERT') || tr.textContent.includes('暂无')) }; + }''') + out['p3_3_note'] = pg.eval_on_selector_all('#tab-import [data-defect="P3-3"]', 'els => els.length') + + # 3) POOL-CFG 占位卡(设置页) + pg.click('nav.tabs button[data-tab="settings"]') + pg.wait_for_timeout(200) + out['pool_cfg'] = pg.eval_on_selector_all('#tab-settings [data-defect="POOL-CFG"]', 'els => els.length') + out['pool_disabled'] = pg.evaluate('''() => { + const inputs = [...document.querySelectorAll('#tab-settings [data-defect="POOL-CFG"]')]; + const panel = inputs[0] ? inputs[0].closest('.panel') : null; + return panel ? [...panel.querySelectorAll('input')].every(i => i.disabled && i.readOnly) : false; + }''') + + # 4) D-G1 注记(详情页签联系人工具栏) + pg.click('nav.tabs button[data-tab="detail"]') + pg.wait_for_timeout(200) + out['dg1_note'] = pg.eval_on_selector_all('[data-defect="D-G1"]', 'els => els.length') + # 5) F6 stub 钩子(列表 tab) + pg.click('nav.tabs button[data-tab="list"]') + pg.wait_for_timeout(200) + out['f6_stub_hook'] = pg.eval_on_selector_all('[data-defect="STUB-LOOKUP"]', 'els => els.length') + pg.screenshot(path='E:/code/crm-backend-matt/.scratch/customer-demo-ref/demo/shots/t13-quick-settings.png') + b.close() +out['pageerror'] = errors +print(json.dumps(out, ensure_ascii=False, indent=1)) diff --git a/.scratch/customer-demo-ref/_scan.py b/.scratch/customer-demo-ref/_scan.py new file mode 100644 index 0000000..2162388 --- /dev/null +++ b/.scratch/customer-demo-ref/_scan.py @@ -0,0 +1,19 @@ +import sys, re +sys.stdout.reconfigure(encoding='utf-8') +p = r'e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\index.html' +lines = open(p, encoding='utf-8').read().splitlines() +mode = sys.argv[1] if len(sys.argv) > 1 else 'func' +if mode == 'func': + for i, l in enumerate(lines, 1): + if i <= 705 and ('function ' in l or 'async ' in l): + print(i, l.rstrip()[:130]) +elif mode == 'id': + lo, hi = int(sys.argv[2]), int(sys.argv[3]) + for i, l in enumerate(lines, 1): + if lo <= i <= hi and re.search(r"id=[\"']", l): + print(i, l.strip()[:150]) +elif mode == 'range': + lo, hi = int(sys.argv[2]), int(sys.argv[3]) + for i, l in enumerate(lines, 1): + if lo <= i <= hi: + print(i, l.rstrip()) diff --git a/.scratch/customer-demo-ref/_t12scan.py b/.scratch/customer-demo-ref/_t12scan.py new file mode 100644 index 0000000..a7768c9 --- /dev/null +++ b/.scratch/customer-demo-ref/_t12scan.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +"""票12 前侦察:扫描 demo/index.html 全部 function / section / dialog / 关键 id 行号""" +import io, re, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + +p = r'e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\index.html' +lines = open(p, 'r', encoding='utf-8').read().splitlines() + +pat = re.compile(r'^(async )?function (\w+)|
用途:`.scratch/customer-demo-ref/demo/index.html` 的冒烟断言 + 人工验收双用。入口编号对齐 `assets/coverage-matrix.md`(缺口动作≠豁免)。 -> 契约权威优先级:**Bruno `.bru` 出参示例 > DTO/Param 源码 > API-SUMMARY(下称 AS,`.scratch/customer-module/API-SUMMARY.md`)**。字段名逐字取自源码/`.bru`;「示例」列取 `.bru` E2E 实测真值或任务书 seed。 -> **envelope**:统一 `Result = {code, success, message, data}`(code=0 成功,错误码见 AS §1);本表只写 `data` 内字段。 - -## 通用口径(各入口共用,正文不再重复) - -- **分页请求**(`BaseParam`,crm-base):`current`(默认 1)/ `size`(默认 10,上限 500)/ `keyword` / `orderBy` / `asc`(默认 false=倒序)。 -- **分页出参**(`PageResult`):`content[]` / `total` / `size` / `current` / `pages` / `empty`(=total==0)。 -- **Long 序列化**:雪花 id 与 Long 计数 JSON 序列化为**字符串**(E2E 实测 `"opportunityCount":"0"`、`"total":"5"`);前端勿做 Number 运算,判空按 `=== null` / `!= null`。 -- **时间格式**:LocalDateTime `yyyy-MM-dd HH:mm:ss`;LocalDate `yyyy-MM-dd`;表单提交 LocalDateTime 用 ISO `T` 分隔(空格分隔报 400,见 #40 follow/add)。 -- **空值"--"口径**:demo 渲染 `value || '--'`(grid 兜底,旧 demo L1124-1135 同);契约 null 字段显 `--`,不显 0/空串。 -- **脱敏总述**:核心域唯一脱敏位=查重两 DTO 的 `masked` 布尔标志——无权命中时 `customerId/customerName/ownerName/customerNo` 等**业务字段不透出(null)+ masked=true**,前端只渲染「存在匹配记录」(check-name)/「系统已存在该企业」(check-credit-code)。客户列表/详情 V1 **无字段级脱敏**:`unifiedCreditCode`、`presidentClassPhone` 等明文回显(E2E 实测 `"13800000001"`;敏感信息三档脱敏定稿划出,AS §0/§5.4)。联系人电话脱敏 + `contact/reveal` 明文端点属 contact 域,不在本表。 -- **冒烟 seed**(e2e 种子库):admin `userId=739564171091247104`(罗伟健);客户 `750844477165273088`(e2c-全字段-科技,编号 KH202609030010,负责人=admin);公海客户 `750844487390986240`(e2c-公海-甲,无主);联系人 `750844500171030528`(张关键)。 - ---- - -### #1 workspace 列表分页 — `POST /api/customer/workspace/page`(mine/overview/pool 三 workspace 共用一份契约) - -- 出处:`A4 客户管理\我的客户\workspace 列表分页.bru`(客户总览/客户公海同名 .bru 各一件)+ `crm-customer/.../domain/param/CustomerWorkspacePageParam.java` + `domain/dto/CustomerListRowDTO.java`(出参 SQL 见 `mapper/CustomerMapper.java` pageWorkspace) -- 数据范围:overview=裸表+`@DataScope`(管理员可见全部);mine=负责人**或**协同人(子查询包裹);pool=owner 空且按部门可见范围(子查询包裹)。 - -**请求参数**(form 表单绑定;含 BaseParam 五参): - -| 名 | 类型 | 必填 | 示例 | 口径 | -|---|---|---|---|---| -| workspace | string | 是 | `mine` | `mine`/`overview`/`pool`;未知值 67001「未知 workspace」 | -| viewType | string | 否 | `ASSIGNED` | 内置五视图(硬编码不落库),空=基础集;适配矩阵见下 | -| savedViewId | string | 否 | | 叠加自定义视图(#7)检索条件于数据集之上,不改 @DataScope 边界;**RECENT 视图不接**;视图不存在静默不叠加;**board/cards 不接** | -| archiveStatus | number | 否 | `1` | 1 有效 / 2 已归档;默认 1(D19 归档=删除语义) | -| customerStage | number | 否 | `1` | 1 潜在 / 2 重潜 / 3 已成交 | -| customerType | string | 否 | `customer_type_01` | customer_type 字典 code | -| customerStarLevel | number | 否 | `3` | 1~5 | -| relationStarLevel | number | 否 | `3` | 1~5 | -| industryCode | string | 否 | `gov` | 行业一级 code | -| provinceCode | string | 否 | `440000` | 省国标 code | -| groupColumn | string | 否 | `stage` | 仅看板两端点有意义:白名单 `stage`/`star`/`relation`,越界静默忽略 | -| groupValue | number | 否 | `1` | 仅 board/cards(与 groupColumn 配对) | -| current / size / keyword / orderBy / asc | — | 否 | `1` / `50` / `恒信达` | BaseParam;keyword 按名称/编号等业务列模糊 | - -**viewType 内置五视图 × workspace 适配矩阵**(越界视图不硬拒,SQL 自然空集;F7 口径:ownerOnly 等布尔未做,单 viewType 参数承载五视图): - -| viewType | 文案 | mine | overview | pool | -|---|---|---|---|---| -| ASSIGNED | 我负责的 | ✅ | ✅ | ❌ | -| COLLABORATING | 我协同的 | ✅ | ✅ | ❌ | -| FOLLOW_UP_DUE | 待跟进(next_follow_time 到期未跟) | ✅ | ❌ | ❌ | -| FOCUSED | 我关注的 | ✅ | ✅ | ✅ | -| RECENT | 最近访问(customer_view_log 倒序锚点) | ✅ | ✅ | ✅(不接 saved-view) | - -**出参**(`PageResult`,data 内 24 字段;示例值=E2E 公海行 + mine 行): - -| 字段路径 | 类型 | 口径/文案 | 脱敏 | 示例 | -|---|---|---|---|---| -| content[].id | Long→str | 客户 ID | - | `"750844487390986240"` | -| content[].customerNo | string | 客户编号 KH+yyyyMMdd+4 位 | - | `"KH202609030020"` | -| content[].customerName | string | 客户名称(固定列不可隐藏) | - | `"e2c-公海-甲"` | -| content[].customerType | string | 字典 code(前端字典缓存翻译,**后端不回显名**) | - | `"customer_type_01"` | -| content[].provinceCode / cityCode / districtCode | string | 国标 code(名称前端字典渲染) | - | `"440000"` / `"440100"` / `"440103"` | -| content[].industryCode / industryChildCode | string | 行业一级/二级 code | - | `"gov"` / `"gov_1"` | -| content[].customerStage | number | 1 潜在 2 重潜 3 已成交 | - | `1` | -| content[].customerStarLevel / relationStarLevel | number | 1~5 | - | `3` / `3` | -| content[].strategicAgreementLevel | number | 战略协议等级快照,null=未签 | - | `null` | -| content[].vipCustomerLevel | number | 已成交 VIP 客户等级快照,null=无 | - | `null` | -| content[].opportunityCount | Long→str | **真算**:SQL 标量子查询 `opportunity_customer join opportunity`(oc.delete_key=0 且 o.deleted=0) | - | `"0"` | -| content[].projectCount | Long→str | **恒空**:SQL `SELECT 0 AS project_count`(A5 未接);AS §2.1 写「恒 null 显--」、DTO @Schema 注「恒 0」、E2E 实测 `"0"`——demo 按「恒空显 --」渲染即可,值不具业务含义 | - | `"0"` | -| content[].lastValidFollowTime | string | 最近有效跟进时间(超期锚点) | - | `"2026-09-03 22:55:18"` | -| content[].ownerUserId | Long→str | 销售负责人 ID;**pool 行恒 null** | - | `null`(pool)/ `"739564171091247104"`(mine) | -| content[].ownerUserNameSnapshot | string | 负责人姓名快照 | - | `null` / `"罗伟健"` | -| content[].ownerDeptId | Long→str | 销售部门 ID 快照 | - | `"744841292348915712"` | -| content[].ownerDeptNameSnapshot | string | 部门名快照 | - | `"广东保伦电子股份有限公司"` | -| content[].enterPoolTime | string | 进入公海时间;**pool 固定列可排序**(D29 pool 默认排序=enter_pool_time 倒序;其余 workspace 默认 create_time 倒序) | - | `"2026-09-11 11:45:49"` / `null` | -| content[].archiveStatus | number | 1 有效 2 已归档 | - | `1` | -| content[].lastViewTime | string | 最近访问时间;**仅 RECENT 视图非 null**(同时是 RECENT 排序锚点) | - | `null` | -| content[].focusFlag | number | 是否关注:customer_focus 行存在=1(**按当前登录用户**),0=未关注;三 workspace 通用 | - | `0` | -| total / size / current / pages | Long→str | 分页元信息 | - | `"5"` / `"1"` / `"1"` / `"5"` | -| empty | boolean | total==0 | - | `false` | - -- 备注:原型差异列=mine/overview 加负责人+部门四件,pool 加 enterPoolTime 且无负责人列;demo 现 11 列,类型/行业/战略协议等级/VIP 等级/进入公海时间列未渲染(矩阵 #11 字段级挂 07 票)。字典列后端一律回 code 不回名(CustomerListRowDTO 类注释明示)。 - ---- - -### #9 看板分组汇总 — `POST /api/customer/workspace/board/summary` - -- 出处:`A4 客户管理\我的客户\看板列表\看板分组汇总.bru`(客户总览同名一件;**公海无看板 .bru**)+ `domain/dto/CustomerBoardSummaryDTO.java` + `service/impl/CustomerWorkspaceServiceImpl.java` -- 请求参数:复用 `CustomerWorkspacePageParam`(同 #1),**groupColumn 必填**(stage/star/relation),**无需 groupValue**;分页/keyword 意义有限(同 WHERE 口径)。示例载荷:`workspace=mine&groupColumn=stage¤t=1&size=1&keyword=恒信达` -- 出参(`List`,数组元素两字段): - -| 字段路径 | 类型 | 口径/文案 | 示例 | -|---|---|---|---| -| [].groupValue | number | 分组取值(stage 1~3 / star 1~5) | `1` | -| [].cnt | Long→str | 该分组客户数(**仅返回有数据分组**,空列骨架前端补全;本期重潜/已成交恒空=D20 预期) | `"28"` | - -- 备注(**demo 旧代码字段名漂移**):旧 demo `loadSummary`(L590-592)读 `it.count` / `it.name`——**契约字段是 `cnt` / `groupValue`,旧读法必显 "--"**,改造时按 `groupValue`→文案、`cnt`→数字渲染。E2E 实测:`[{"groupValue":1,"cnt":"28"},{"groupValue":2,"cnt":"6"},{"groupValue":3,"cnt":"3"}]`。 - -### #9 看板单列卡片 — `POST /api/customer/workspace/board/cards` - -- 出处:`A4 客户管理\我的客户\看板列表\看板单列卡片.bru`(总览同名)+ 同上源码 -- 请求参数:同 #1 + `groupColumn`(stage/star/relation)+ **`groupValue` 必填**(缺省 67001「看板取卡必须指定分组值」)。示例载荷:`groupColumn=stage&groupValue=2&workspace=mine¤t=1&size=20&keyword=恒信达` -- 出参:`PageResult`——**与列表 #1 逐字段同构**(24 字段,E2E 卡片样例:customerStage=2、customerStarLevel=4、ownerUserId=`"739564171091247104"`、total=`"6"`)。 -- 备注:仅 mine/overview 可用;**pool 调看板两端口一律 67001「公海无卡片视图,看板仅支持客户总览/我的客户」**(源码 `assertBoardAllowed` 守卫在,AS §2.1 文档口径一致;GR §六.1 记 jar 实测 code=0 漂移待 04 票核实);board/cards 不接 saved-view;summary 与 page/cards 同一 WHERE 口径,数字自洽。 - ---- - -### #7 preference 自定义视图四端点(saved-view) — `GET|POST /api/preference/view/list|save|delete|set-default` - -- 出处:**A4 无 saved-view `.bru` 文档**(契约源=AS §2.14 + crm-preference 源码 `controller/SavedViewController.java`、`domain/dto/SavedView.java`、`SavedViewCondition.java`);示例形态借 `A3 商机管理\销售机会\自定义视图\*.bru` 四件(字段结构同源,商机域 scopeKey 实测 `opportunity`) -- **scopeKey**(客户域,`CustomerConstants` L67-69):`customer.mine` / `customer.overview` / `customer.pool`;userId 取登录态,不接受前端传入。 -- 端点逐个: - -| 端点 | 请求参数 | 出参 data | -|---|---|---| -| `GET /api/preference/view/list?scopeKey=` | scopeKey | `List`,按 seqNo 排序;出参不回显 scopeKey | -| `POST /api/preference/view/save?scopeKey=` | scopeKey(query 表单参)+ **`@RequestBody SavedView` JSON**——全平台唯一 JSON 例外(ADR-0017 范围外) | `String` viewId(新建/覆盖后服务端生成) | -| `POST /api/preference/view/delete?scopeKey=&viewId=` | scopeKey、viewId | `null` | -| `POST /api/preference/view/set-default?scopeKey=&viewId=` | scopeKey、viewId(单值互斥,设默认自动取消原默认) | `null` | - -- **SavedView 字段**(JSON body): - -| 字段 | 类型 | 必填 | 口径 | -|---|---|---|---| -| viewId | string | 新建可空;编辑/删除/设默认须回传 | 服务端生成 32 位 hex(样例 `"e7b9595f7ea54641b093e9d6bfb096f9"`) | -| name | string | 是 | 检索名称(用户填) | -| conditions | array | 否 | 本期前端只提交 1 组(契约按列表预留复合扩展) | -| conditions[].field | string | - | 业务方字段池稳定 code(如 `industryCode`) | -| conditions[].operator | string | - | 业务方自定义:等于/不等于/包含/不包含/为空/不为空(demo 用 eq/like 等) | -| conditions[].value | string | - | 为空/不为空操作符时可为 null | -| sortField / sortDirection | string | 否 | 排序字段 key / `asc`|`desc` | -| isDefault | boolean | 否 | 默认视图图钉,单值互斥 | -| seqNo | number | 否 | 列表排序序号 | - -- 备注:内置五视图(viewType)不走本接口;workspace/page 的 `savedViewId` 消费本接口存的 viewId(#1);视图为用户私有。 - -### #8 preference 视图形态两件 — `GET|POST /api/preference/view-form/get|save` - -- 出处:`A4 客户管理\我的客户\读取视图形态.bru` + `保存视图形态.bru`(总览/公海同名共 6 件)+ `ViewFormController.java`、`ViewFormServiceImpl.java` -- `GET /api/preference/view-form/get?scopeKey=` → `String`:`list`/`split`/`board`;**null=未设置,前端默认 list**(E2E:`"data": "list"`) -- `POST /api/preference/view-form/save`(form:`scopeKey` + `viewForm`)→ `null`;白名单 {list,split,board},非法 68001(平台段位,不在 67xxx) -- 备注:scopeKey 同 #7 三码位(`customer.mine/overview/pool`)。文档口径「pool 仅 list/split,board 被拒 680xx」**实现侧无 pool 特判——pool 保存 board 实回 code=0**(AS §2.14 ⚠ I-06 r2 漂移),前端不得依赖拒绝行为。 - - ---- - -### #13-19 归属/关注/重点 动作族(合并表,每端点一行;全 POST,id/ids 走查询参数) - -- 出处:`crm-customer/.../controller/CustomerOwnershipController.java`、`CustomerFocusController.java`;.bru 逐件:`客户公海\领取客户.bru`、`批量领取.bru`、`分配客户.bru`、`批量分配.bru`、`抛公海.bru`、`批量抛公海.bru`、`归档客户.bru`、`批量归档.bru`、`恢复客户.bru`、`关注客户.bru`、`取消关注客户.bru`、`批量关注客户.bru`、`客户详情\标记重点客户.bru`、`取消重点标记.bru` -- 示例值:单条 `id=750844487390986240`;批量 `ids=750844487390986240`(重复键 `ids=..&ids=..`);分配目标 `userId=744842318024015872`。 - -| 端点 | 参数 | 返回 data | 主要错误码 | 口径 | -|---|---|---|---|---| -| `POST /api/customer/focus?id=` | id | `null`(Result) | 67002 | 幂等;行存在性=关注态;不写 oplog | -| `POST /api/customer/unfocus?id=` | id | `null` | — | 幂等;物理删行,连带清重点标记 | -| `POST /api/customer/focus-batch?ids=` | ids[] | **`null`(注意:非 BatchResult**——controller 循环逐个 focus 后恒 success) | 67002 | 逐个幂等关注,对称商机 | -| `POST /api/customer/star?id=` | id | `null` | 67002 | 幂等;未关注自动建行 starred=1;不写 oplog | -| `POST /api/customer/unstar?id=` | id | `null` | — | 幂等;保留行仅置 starred=0 | -| `POST /api/customer/assign?id=&userId=` | id、userId | `null` | 67002/67012 | 目标人员启用在职+非原负责人;不校验进行中商机 | -| `POST /api/customer/assign-batch?ids=&userId=` | ids[]、userId | `BatchResult` | 67002/67012 | 目标人员统一校验一次(无效**整批拒绝**);其余逐条独立事务 | -| `POST /api/customer/claim?id=` | id | `null` | 67002/67004 | 校验仍在公海;D25 领取即赋 last_valid_follow_time 锚点(为空时赋当下) | -| `POST /api/customer/claim-batch?ids=` | ids[] | `BatchResult` | 67002/67004 | 逐条独立事务,部分成功 | -| `POST /api/customer/release-pool?id=` | id | `null` | 67002/67007 | 清 owner+协同人(部门锚点保留),软删 team_member;进行中商机 67007 阻断 | -| `POST /api/customer/release-pool-batch?ids=` | ids[] | `BatchResult` | 67002/67007 | 逐条独立事务,部分成功 | -| `POST /api/customer/archive?id=` | id | `null` | 67002/67004/67006 | 仅销售负责人;归档=删除语义(D19);进行中商机 67006 阻断 | -| `POST /api/customer/archive-batch?ids=` | ids[] | `BatchResult` | 67002/67004/67006 | **整批预检:任一失败整批不执行**(预检失败=顶层非 0,E2E 实测顶层 `code:67006`);预检过后逐条独立事务 | -| `POST /api/customer/restore?id=` | id | `null` | 67002/67004 | 仅销售负责人(已归档→有效) | - -- **BatchResult 结构**(`crm-base/.../result/BatchResult.java`):`{total:int, successCount:int, failCount:int, failures:[{id:Long→str, reason:string, message:string}]}`。`reason` 语义枚举(`CustomerBatchFailReason`):`NOT_FOUND / STATUS_NOT_ALLOWED / CONCURRENT_MODIFIED / ARCHIVE_BLOCKED / POOL_BLOCKED / ASSIGN_INVALID / UNKNOWN`。E2E 失败行样例:`{"id":"753612204858671104","reason":"STATUS_NOT_ALLOWED","message":"客户已被领取,不在公海"}`。 -- **错误码含义**(AS §1):67004 当前状态不允许(归档/恢复/抛公海守卫);67006 归档被阻断:存在进行中商机;67007 抛公海被阻断:存在进行中商机;67012 分配非法(明细已分配/对象越权/为发起人本人/为当前负责人)。 -- 单条动作 CAS 乐观锁 + 写 oplog(TRANSFER/CLAIM/POOL/ARCHIVE/RESTORE 均入 #45 oplog 值域);关注/重点族不写 oplog。 - ---- - -### #21 新建客户 — `POST /api/customer/create`(form 绑定 `CustomerCreateDTO`,禁 @RequestBody) - -- 出处:`A4 客户管理\我的客户\新增客户.bru` + `domain/dto/CustomerCreateDTO.java`;出参 `CustomerSaveResultDTO.java` + `CustomerSimilarHitDTO.java` -- 三层查重内建:L1 停输防抖(check-name,只提示)→ L2 名称相似 needConfirm 弹窗(未落库)→ L3 信用代码硬拦(67003)。`ownerUserId` 空=直接进公海并记 `enter_pool_time`(D25,锚点 NULL);有值=直接指派(快照服务端补齐,不信任前端传部门)。 -- 请求参数(DTO 全字段,按区块分组;「必填」以 .bru 参数表+DTO @Schema 为准): - -| 名 | 类型 | 必填 | 示例 | 值域/口径 | -|---|---|---|---|---| -| customerName | string | 是 | `e2c-查重-撞码-003045` | 停输防抖触发相似查重 | -| customerType | string | 是 | `customer_type_01` | customer_type 字典(6 值,见字典节) | -| provinceCode / cityCode | string | 是 | `440000` / `440100` | 国标 code | -| districtCode | string | 否 | `440103` | 国标 code | -| industryCode | string | 是 | `gov` | 行业一级 code | -| industryChildCode | string | 否 | `gov_1` | 行业二级 code | -| customerStarLevel / relationStarLevel | number | 是 | `3` | 1~5 | -| networkUnits | string | 否 | | 人脉关系单位 JSON 数组(标签名) | -| ownerUserId | string(Long) | 否 | `739564171091247104` | 空=进公海;无效/停用 67012 | -| companyDecisionMaker | string | 否 | `王总` | 公司决策人 | -| isBizNegotiated | number | 是 | `0` | 1 是 / 0 否 | -| directorVisitTime | string | 否 | | 总监近期拜访时间 yyyy-MM-dd HH:mm:ss | -| isChild | number | 是 | `0` | 1 是 / 0 否(默认 0) | -| parentCustomerId | string(Long) | 否 | | isChild=1 时必填,服务端防环校验 | -| cooperationSystem | string | 否 | `OA对接` | 合作系统 | -| nonCoopReason | string | 否 | | 不合作原因 | -| joinedPresidentClass | number | 否 | `1` | 1/0/null(未选) | -| presidentClassPerson / presidentClassPhone | string | 条件 | `王总` / `13800000001` | joinedPresidentClass=1 时 Person 必填 | -| joinedProductClass | number | 否 | | 1/0/null | -| productClassPerson / productClassPhone | string | 条件 | | joinedProductClass=1 时 Person 必填 | -| unifiedCreditCode | string | 否 | `91440101E2CHXDA001` | 18 位数字或大写字母;撞码 L3 硬拦 67003 | -| legalRepresentative | string | 否 | `王测试` | | -| establishedDate | string | 否 | `2018-05-20` | yyyy-MM-dd,不得晚于当前日期 | -| registeredCapital / businessScope / staffSize / annualRevenue / businessAddress | string | 否 | `1000万元人民币` 等 | 工商信息区文本 | -| bizNameFromLookup | string | 否 | | 企查查确认的工商名称(只存不覆盖客户名称) | -| remark | string | 否 | `e2e 实测备注` | ≤500 字 | -| confirmSimilar | boolean | 否 | `true` | L2 弹窗后「仍要创建」重发置 true | - -- 出参(`CustomerSaveResultDTO`,data 内 5 字段):`id`(Long→str,落库成功时)、`needConfirm`(Boolean,true=名称相似需确认**未落库**)、`similarHits[]`(见 #22)、`customerNo`(落库成功时,`"KH202609110010"`)、`customerName`。 -- 错误码:67001 入参非法 / 67003 信用代码撞码 / 67012 销售负责人无效 / 67015 查重设置单例缺失。 -- E2E 落库成功样例:`{"id":"753584451841163264","needConfirm":null,"similarHits":null,"customerNo":"KH202609110010","customerName":"e2c-cg-A-098932"}`。 - -### #22 名称相似查重 — `GET /api/customer/check-name?name=&excludeId=` - -- 出处:`A4 客户管理\客户查重\名称相似提示.bru` + `CustomerSimilarHitDTO.java`(L1 停输防抖 / L2 弹窗共用载荷;create/quick-create 内建查重同款) -- 请求参数:`name`(string,必填,待查客户名称);`excludeId`(string,可选,编辑页传自身排除)。 -- 出参(`List`,data 内 6 字段/行): - -| 字段路径 | 类型 | 口径 | 脱敏 | 示例 | -|---|---|---|---|---| -| [].customerId | Long→str | 命中客户 ID | **无权命中=null** | `"750844478243209216"` | -| [].customerName | string | 命中客户名称 | 无权命中=null | `"e2c-恒信达科技有限公司"` | -| [].ownerName | string | 命中客户负责人 | 无权命中=null | `"罗伟健"` | -| [].customerStage | number | 1 潜在 2 重潜 3 已成交 | 无权命中=null | `1` | -| [].archiveStatus | number | 1 有效 2 已归档 | 无权命中=null | `1` | -| [].masked | boolean | 无权命中=true | **true 时以上五字段全 null,前端只渲染「存在匹配记录」** | `false` | - -- 备注:**masked 脱敏形态(契约=DTO 注释,E2E 无 masked=true 样例)**:不是打星号字符串,而是「字段置 null + masked=true + 固定文案」。匹配方式/阈值走查重设置(AS §2.13:nameMatchMode 1 精确 / 2 模糊,similarityThreshold 0~100 出厂 80;.bru docs 提 ngram 阈值 70/80/90 为旧口径,以查重设置单例为准)。错误码 67015(单例未落地时走出厂默认不报)。 - -### #23 信用代码查重 — `GET /api/customer/check-credit-code?creditCode=` - -- 出处:`A4 客户管理\客户查重\信用代码查重.bru` + `CreditCodeCheckDTO.java` -- 请求参数:`creditCode`(string,必填,18 位)。示例 `91440101MA9ABC1234`。 -- 出参(`CreditCodeCheckDTO`,data 内 6 字段): - -| 字段路径 | 类型 | 口径 | 脱敏 | 示例 | -|---|---|---|---|---| -| exists | boolean | 是否已存在同码客户 | - | `true` | -| masked | boolean | 无权命中=true | **true 时只提示「系统已存在该企业」** | `false` | -| customerId | Long→str | 命中客户 ID | 有权可见时给 | `"750844478243209216"` | -| customerName | string | 命中客户名称 | 有权可见时给 | `"e2c-恒信达科技有限公司"` | -| customerNo | string | 命中客户编号 | 有权可见时给 | `"KH202609030011"` | -| ownerName | string | 命中客户负责人 | 有权可见时给 | `"罗伟健"` | - -- 备注:L1 即时校验(失焦/企查查回填后调用);L3 保存时硬拦 67003;系统强制无开关(AS §2.13)。 - -### #24 工商联想 — `GET /api/customer/company-lookup?companyName=`(**参数名是 companyName 不是 name**) - -- 出处:`A4 客户管理\我的客户\工商信息查询.bru` + `port/CompanyLookupPort.java` -- 请求参数:`companyName`(string,必填,公司名称关键字)。示例 `恒信达`。 -- 出参(`List`,9 字段/候选):`bizName` / `unifiedCreditCode` / `legalRepresentative` / `establishedDate`(LocalDate)/ `registeredCapital` / `businessScope` / `staffSize` / `annualRevenue` / `address`。 -- 备注:**一期 stub 恒返回空数组**(E2E:`"data": []`),前端按「未查询到匹配企业」渲染,可手工录入;真实企查查接入后自动激活。前端职责:只回填当前为空的字段,已填字段再选须弹「受影响字段确认」;回填后立即调 check-credit-code;无结果/失败/超时均不阻断手工提交。 - -### #25 编辑客户 — `POST /api/customer/edit?id=`(form 绑定 `CustomerUpdateDTO` + CAS) - -- 出处:`A4 客户管理\客户详情\编辑客户.bru` + `CustomerUpdateDTO.java` -- 请求参数:查询参数 `id` + 表单(与 #21 create 的差异): - - **多**:`version`(number,**必传**,乐观锁 CAS,不匹配报 **67005**「乐观锁冲突」;编辑回显取 `GET /detail` 的 `version` 带回)。 - - **少**:无 `ownerUserId`(**归属字段不可改**——负责人/部门「✅(新增时)」;服务端忽略任何归属入参,归属变更走 assign/transfer)。 - - 其余 33 字段与 create 同名同义(customerName…remark + confirmSimilar),必填区相同(isBizNegotiated/isChild 必填)。 -- 出参:同 `CustomerSaveResultDTO`(needConfirm 相似确认流同样适用,`confirmSimilar=true` 重发)。 -- 错误码:67001 / 67002 / 67003 / 67005。 -- 备注(AS §2.3 edit 行注):冒烟实测需一并提交 `version`+`isBizNegotiated`+`isChild`,缺省因 DB NOT NULL 无默认而失败(关联 AS §5 D-05 已修,冒烟口径保守保留)。E2E 反例样例:`{"code":67005,"success":false,"message":"缺少乐观锁版本号","data":null}`。 - -### #47 快速创建客户 — `POST /api/customer/quick-create`(`CustomerQuickCreateDTO` 最小集) - -- 出处:`A4 客户管理\我的客户\快速创建客户.bru` + `CustomerQuickCreateDTO.java` -- 请求参数(7+1 字段,DTO `requiredMode=REQUIRED` 全 7 必填): - -| 名 | 类型 | 必填 | 示例 | -|---|---|---|---| -| customerName | string | 是 | `e2c-快创-448049` | -| customerType | string | 是 | `customer_type_01` | -| provinceCode / cityCode | string | 是 | `440000` / `440100` | -| industryCode | string | 是 | `gov` | -| customerStarLevel / relationStarLevel | number | 是 | `2` | -| confirmSimilar | boolean | 否(默认 false) | 命中相似确认后重发置 true(返工票 04 补齐) | - -- 出参:`CustomerSaveResultDTO`(同 #21)。E2E needConfirm 样例:`{"needConfirm":true,"similarHits":[{"customerId":"753620871771324416","customerName":"e2c-t05qc-相似源甲科技有限公司","ownerName":"罗伟健","customerStage":1,"archiveStatus":1,"masked":false}],"customerNo":null,"customerName":null}`。 -- 错误码:67001 / 67003。 -- 备注(**两处 .bru 漂移,以源码/AS 为准**):① .bru 参数表把 industryCode/两星级标「否」且**漏 `confirmSimilar`**——DTO 源码有该字段(返工票 04 已补);② .bru docs 文本「QuickCreateDTO 无 confirmSimilar 字段」为陈旧描述。服务端默认:owner=当前用户、is_child=否、isBizNegotiated=否;查重三层与编号生成复用主表 create。 - -### #48 商机侧客户搜索 — `POST /api/customer/search`(form 绑定 `CustomerSearchParam`) - -- 出处:**无 A4 `.bru`**(契约源=源码 `CustomerSearchParam.java` + `CustomerSearchItemDTO.java` + AS §2.4);A3 侧演示形态待 03 票 -- 请求参数:BaseParam 五参(keyword=**名称/联系人/电话三维模糊**)+ `customerType`(string,字典 code 精确,可空)+ `archiveStatus`(number,1/2,可空=全部)+ `excludeCustomerIds`(Long 数组,重复键;商机候选池排除已关联客户,可空)。 -- 出参(`PageResult`,行 9 字段): - -| 字段路径 | 类型 | 口径 | 示例 | -|---|---|---|---| -| content[].id | Long→str | 客户 id | — | -| content[].customerNo | string | 客户编号 | — | -| content[].customerName | string | 客户名称 | — | -| content[].customerType | string | 字典 code | — | -| content[].ownerUserId | Long→str | 销售负责人 id | — | -| content[].ownerName | string | 负责人姓名(快照) | — | -| content[].ownerDeptId | Long→str | 负责人部门 id | — | -| content[].customerStage | number | 1 潜在/2 重潜/3 已成交 | — | -| content[].archiveStatus | number | 1 有效/2 已归档 | — | - -- 备注:轻量出参;选中后走 `GET /api/customer/detail?id=` 带出全量;DataScope 注入可见范围。 - ---- - -### #29 详情公共头部 — `GET /api/customer/detail-head?id=` - -- 出处:`A4 客户管理\客户详情\详情公共头部.bru` + `domain/dto/CustomerDetailHeadDTO.java` -- 请求参数:`id`(string,必填,查询参数)。示例 `750844477165273088`。 -- **副作用**:upsert `customer_view_log` 刷新「最近访问」锚点(F7 viewTouch 收口;UNIQUE(user_id,customer_id) 去重;高频行为不落 oplog)——冒烟断言 RECENT 视图排序前先打一次详情头。 -- 出参(`CustomerDetailHeadDTO`,data 内 24 字段;示例=E2E 客户甲): - -| 字段路径 | 类型 | 口径/文案 | 示例 | -|---|---|---|---| -| id | Long→str | 客户 ID | `"750844477165273088"` | -| customerNo | string | 客户编号 | `"KH202609030010"` | -| customerName | string | 客户名称 | `"e2c-全字段-科技"` | -| customerStage | number | 1 潜在 2 重潜 3 已成交(只读条,不可手动改) | `1` | -| customerStageName | string | 阶段名回显(CustomerStageEnum) | `"潜在客户"` | -| customerStarLevel / relationStarLevel | number | 1~5 | `3` / `3` | -| strategicAgreementLevel | number | 快照,null=未签 | `null` | -| vipCustomerLevel | number | 已成交 VIP 等级快照,null=无 | `null` | -| archiveStatus | number | 1 有效 2 已归档(已归档态 badge 数据源) | `1` | -| ownerUserId | Long→str | 销售负责人 ID(公海 null) | `"739564171091247104"` | -| ownerUserNameSnapshot | string | 负责人姓名快照 | `"罗伟健"` | -| ownerDeptNameSnapshot | string | 部门名快照 | `"广东保伦电子股份有限公司"` | -| lastFollowSummary | string | 最近跟进摘要(最新一条跟进内容) | `"e2c-F08 跟进实测:电话沟通年度合作意向"` | -| lastFollowTime | string | 最近跟进时间 | `"2026-09-11 11:45:33"` | -| nextFollowTime | string | 待跟进提醒(未来最近一条下次跟进时间,null=无待跟进) | `"2026-09-12 22:34:06"` | -| opportunityCount | Long→str | 关联商机数(外部反查,失败前端显 "--") | `"0"` | -| projectCount | Long→str | DTO @Schema=「恒 null 显 --」;E2E 实测 `"0"`——按恒空渲染 | `"0"` | -| wonProjectAmount | BigDecimal | 汇总卡①已中标项目总额——**恒 null 显 "--"**(A5/投标 seam 未接入) | `null` | -| planEstimateAmount | BigDecimal | 汇总卡②跟进中方案预估总额——恒 null 显 "--"(方案卡 seam) | `null` | -| ongoingOpportunityAmount | BigDecimal | 汇总卡③进行中商机总额——恒 null 显 "--"(可经 port 扩展后切真值) | `null` | -| contractAmount | BigDecimal | 汇总卡④合同总额——恒 null 显 "--"(合同模块未建) | `null` | -| paidAmount | BigDecimal | 汇总卡④累计回款——恒 null 显 "--"(与合同总额同卡) | `null` | - -- 备注:**金额 5 字段恒 null 显 "--" 是 grill Q18 契约:前端渲染 4 张汇总卡、显 "--" 不显 0**(矩阵 #29=P3-6 改造点:demo 未渲染卡)。错误码 67002。 - -### #30 客户详情(页签1 客户信息 / 编辑页回显同源) — `GET /api/customer/detail?id=` - -- 出处:`A4 客户管理\客户详情\客户详情.bru` + `domain/dto/CustomerDetailDTO.java`(extends BaseDTO) -- 请求参数:`id`(string,必填,查询参数)。错误码 67002。 -- 出参(`CustomerDetailDTO`,data 内 48 字段=BaseDTO 3 + 本类 45;示例=E2E 客户甲): - -| 字段路径 | 类型 | 口径/文案 | 脱敏 | -|---|---|---|---| -| id | Long→str | 主键 | - | -| createTime / updateTime | string | **经 BaseDTO 带出,E2E 实测有值** `"2026-09-03 22:27:53"`(见下方 G4 备注) | - | -| customerNo | string | KH+yyyyMMdd+4 位序,只读 | - | -| customerStage | number | 1 潜在 2 重潜 3 已成交(只读条) | - | -| archiveStatus | number | 1 有效 2 已归档 | - | -| version | number | 乐观锁版本号(**编辑回传**,E2E `3`) | - | -| customerName | string | 客户名称 | - | -| customerType / customerTypeName | string | code + **字典名回显**(`customer_type_01`/`总包`) | - | -| provinceCode / cityCode / districtCode | string | 国标 code(名称前端字典渲染,后端不回名) | - | -| industryCode / industryName | string | `gov`/`政府机关`(一级字典名回显) | - | -| industryChildCode / industryChildName | string | `gov_1`/`人大政协`(二级字典名回显) | - | -| customerStarLevel / relationStarLevel | number | 1~5 | - | -| networkUnits | string | 人脉关系单位 JSON 数组 | - | -| ownerUserId | Long→str | 销售负责人 ID(公海 null) | - | -| ownerUserNameSnapshot / ownerDeptId / ownerDeptNameSnapshot | — | 负责人姓名/部门 ID/部门名快照 | - | -| enterPoolTime | string | 进入公海时间(公海客户才有值) | - | -| lastValidFollowTime | string | 最近有效跟进时间(超期锚点) | - | -| strategicAgreementLevel / vipCustomerLevel | number | 快照(null=未签/无) | - | -| companyDecisionMaker | string | 公司决策人 | - | -| isBizNegotiated | number | 是否商机勾兑 1/0 | - | -| directorVisitTime | string | 总监近期拜访时间 | - | -| isChild / parentCustomerId / parentCustomerNameSnapshot | — | 子客户标志/父客户 ID/父客户名快照 | - | -| cooperationSystem / nonCoopReason | string | 合作系统/不合作原因 | - | -| joinedPresidentClass / presidentClassPerson / presidentClassPhone | — | 总裁班三件(**电话明文**,E2E `"13800000001"`) | **无脱敏** | -| joinedProductClass / productClassPerson / productClassPhone | — | 产品班三件(电话明文) | **无脱敏** | -| unifiedCreditCode | string | 统一社会信用代码(E2E `91440101E2CTEST001` 明文) | **无脱敏(V1 三档脱敏划出)** | -| legalRepresentative / establishedDate / registeredCapital / businessScope / staffSize / annualRevenue / businessAddress / bizNameFromLookup | — | 工商信息区(establishedDate=LocalDate) | - | -| remark | string | 备注 | - | - -- 备注(**G4 校准**):矩阵 #30 记档「系统信息四件套 creatorId/createTime/updaterId/updateTime 不在 DTO 恒"–"」——**逐字核对源码后应修正为:`creatorId`/`updaterId` 确实不在 CustomerDetailDTO(无字段);但 `createTime`/`updateTime` 由 BaseDTO 继承带出且 E2E 实测有值**。demo 现渲染四件套恒 "--" 是保守可行口径;若要显示创建/更新时间可直接取值,只有操作人两件必须 "--"。 - -### #40 跟进记录分页 — `GET /api/customer/follow/page?id=` + 新增跟进 — `POST /api/customer/follow/add?id=` - -- 出处:`A4 客户管理\客户详情\跟进记录\跟进记录分页.bru` + `新增跟进.bru` + `domain/param/FollowPageParam.java`、`domain/dto/FollowCreateDTO.java`、`domain/entity/CustomerFollow.java`(出参=实体直出) -- **page 请求参数**(GET query):`id`(必填)+ `followWay`(string,follow_way 字典 code 精确,例 `follow_way_01`)+ `startTime`/`endTime`(string,yyyy-MM-dd HH:mm:ss 含端)+ BaseParam 五参。 - - **G1 标注**:原型有「操作人」筛选,`FollowPageParam` **无 operatorUserId 参数**——后端无此过滤能力,demo 侧豁免该筛选(P2-G1 记档)。 -- **page 出参**(`PageResult`,行 13 字段,实体直出含审计四件套): - -| 字段路径 | 类型 | 口径 | 示例 | -|---|---|---|---| -| content[].id / creatorId / createTime / updaterId / updateTime / deleted | — | BaseEntity 审计字段(E2E 实测序列化;`"deleted":false`) | `"750854396027338752"` | -| content[].customerId | Long→str | 所属客户 ID | `"750844477165273088"` | -| content[].followWay | string | follow_way 字典 code(5 值见字典节;**后端不回名**) | `"follow_way_01"` | -| content[].followContent | string | 跟进内容(长文本) | `"e2c-F08 跟进实测:电话沟通年度合作意向"` | -| content[].nextFollowTime | string | 下次跟进时间(有值进「待跟进」筛选) | `"2026-09-10 23:07:18"` | -| content[].followBy | Long→str | 跟进人用户 ID | `"739564171091247104"` | -| content[].followByName | string | 跟进人姓名(服务端快照,前端不传) | `"罗伟健"` | -| content[].followDeptName | string | 跟进人部门名 | `"广东保伦电子股份有限公司"` | - -- **add 请求参数**(form):`followWay`(必填,5 值域)、`followContent`(必填,空→67009)、`nextFollowTime`(选填,**ISO `T` 分隔** `2026-09-10T10:00:00`;空格分隔报 400;有值进待跟进)。 -- **add 出参**:`Result` 跟进 id(E2E `"753583108837605376"`)。 -- 备注:append-only 提交后不可改删(纠错=新增补充);同客户同内容 30 秒窗口防重复提交;写库刷新 `last_valid_follow_time` 超期锚点(旧未发提醒自动置已失效)。错误码 67002/67009。已知缺陷 D-02(P2):nextFollowTime 早于当前未拦截(.bru docs 记档)。 - -### #45 操作日志分页 — `GET /api/customer/oplog/page?id=` - -- 出处:`A4 客户管理\客户详情\操作日志\操作日志分页.bru` + `domain/param/OplogPageParam.java`、`domain/entity/CustomerOplog.java`(出参=实体直出) -- **请求参数**(GET query):`id`(必填)+ `startTime`/`endTime`(yyyy-MM-dd HH:mm:ss 含端)+ `action`(string,操作类型精确)+ BaseParam 五参(keyword 匹配 `detail` 叙事)。 -- **action 值域**:权威=`CustomerConstants` 全部 ACTION_* 常量,**18 种**:`CREATE / UPDATE / FOLLOW / ARCHIVE / RESTORE / TRANSFER / CLAIM / POOL / STAGE_CHANGE / MEMBER_ADD / MEMBER_REMOVE / CONTACT_ADD / CONTACT_EDIT / CONTACT_DELETE / AGREEMENT_ADD / AGREEMENT_EDIT / AGREEMENT_DELETE / GRAPH_EDIT`。(漂移标注:AS §3 写「17 种」未含 GRAPH_EDIT,未同步;demo 筛选下拉按 18 种渲染。) -- **出参**(`PageResult`,行 12 字段): - -| 字段路径 | 类型 | 口径 | 示例 | -|---|---|---|---| -| content[].id / creatorId / createTime / updaterId / updateTime / deleted | — | BaseEntity 审计字段 | `"750854380575522816"` | -| content[].customerId | Long→str | 所属客户 ID | `"750844477165273088"` | -| content[].action | string | 18 种值域(见上) | `"UPDATE"` | -| content[].detail | string | 叙事形态 `把 {字段} 从 {旧} 修改为 {新}`(D13;多字段变更串联一条) | `"把人脉关系单位从[...]修改为空;把公司决策人从王总修改为空;…"` | -| content[].operatorId | Long→str | 操作人用户 ID(**系统动作为 null**,如阶段自动流转/导入) | `"739564171091247104"` | -| content[].operatorName | string | 操作人姓名(系统动作记「系统」) | `"罗伟健"` | -| content[].operatorDeptName | string | 操作人部门名快照 | `"广东保伦电子股份有限公司"` | - -- 备注:append-only 审计、无限期保留;时间倒序;日期分组由前端渲染。错误码 67002。导出按钮无端点=豁免(P3-4)。 - -### #41 关联商机页签 — `GET /api/customer/opportunity/page?id=`(port 反查 crm-opportunity) - -- 出处:`A4 客户管理\客户详情\关联商机\关联商机页签.bru` + `port/CustomerOpportunityQueryPort.java`(record OpportunityItem,7 字段真名逐字如下) -- 请求参数:`id`(必填)+ BaseParam 五参。 -- 出参(`PageResult`,**契约 7 字段**;G2:原型 13 列 vs 契约 7 字段,demo 现 5 列): - -| 字段路径 | 类型 | 口径 | 示例 | -|---|---|---|---| -| content[].id | Long→str | 商机 ID | `"750844498195513344"` | -| content[].oppName | string | 商机名称 | `"e2c-联动-交割"` | -| content[].stageName | string | 商机阶段名(已回显名) | `"客户圈定"` | -| content[].estimateAmount | BigDecimal | 预计金额 | `null` | -| content[].ownerUserId | Long→str | 销售负责人 ID | `"739564171091247104"` | -| content[].ownerNameSnapshot | string | 负责人姓名快照(可 null→"--") | `null` | -| content[].updateTime | string | 最近更新时间 | `"2026-09-03 22:27:58"` | - -- 备注:port 失败前端显 "--" 不显 0(issues-07 §A);列清单以 03 票实现实返为准收口 G2。错误码 67002。 - -### #43 战略协议五端点 — `CustomerAgreementController /api/customer/agreement/*` - -- 出处:`A4 客户管理\战略协议\*.bru` 五件 + `domain/dto/AgreementDTO.java`(ADR-0017 Route A:写入参/出参双向同类) -- **AgreementDTO 字段**(双向): - -| 字段 | 类型 | 必填(写) | 口径 | -|---|---|---|---| -| customerId | Long→str | 新增必填;**编辑传入忽略**(归属不可换客户,以库内为准) | 所属客户 | -| agreementLevel | number | 是 | 1~3=一级/二级/三级;越界 67017 | -| amount | string | 否 | 签订金额**文本**(数字/区间/含单位,E2E `"500万"`、`"128000"`) | -| remark | string | 否 | 备注 | -| fileFileId | string | 否 | 附件 fileId(crm-file 引用字符串,单文件可空);**demo 以纯文本框呈现**(附件上传位豁免 D2),下载由前端走 crm-file 通用端点 | -| customerName | string | 仅出参 | 所属客户名称(卡片带出) | -| id / createTime / updateTime | — | 仅出参 | BaseDTO(E2E detail 实测有值) | - -| 端点 | 参数 | 出参 data | 错误码 | -|---|---|---|---| -| `GET /api/customer/agreement/list?customerId=` | customerId | `List`(页签卡片,时间倒序**非分页**;E2E 空列表 `[]`) | 67002 | -| `GET /api/customer/agreement/detail?id=` | id | `AgreementDTO` 全量 | 67017/67002 | -| `POST /api/customer/agreement/create`(form) | AgreementDTO | `Long` 协议 id | 67001/67017/67002 | -| `POST /api/customer/agreement/edit?id=`(form) | id + AgreementDTO | `null` | 67001/67017/67002 | -| `POST /api/customer/agreement/delete?id=` | id | `null`(软删) | 67002/67017 | - -- 备注(**快照联动**):新增/编辑/删除协议同步刷新客户主表 `strategic_agreement_level`(删除=删空后快照回 NULL=未签);oplog 记 `AGREEMENT_ADD/EDIT/DELETE`;67017 语义=等级缺失或越界/协议不存在或无权访问。权限继承所属客户(无独立 ACL,无权 67002/67017)。 - -### #44 团队成员三端点 — `GET member/list?id=` + `POST member/add?id=` + `POST member/remove?id=&memberUserId=` - -- 出处:`A4 客户管理\客户详情\团队成员\*.bru` 三件 + `domain/dto/CustomerMemberDTO.java`、`MemberAddDTO.java` -- `GET /api/customer/member/list?id=` 出参(`List`,**data 内仅 4 字段**;负责人 ROLE_OWNER 在前): - -| 字段路径 | 类型 | 口径 | 示例 | -|---|---|---|---| -| [].userId | Long→str | 成员用户 ID | `"739564171091247104"` | -| [].userName | string | 姓名(负责人=主表快照,协同人=团队成员快照) | `"罗伟健"` | -| [].deptName | string | 部门名(负责人=主表快照,协同人=**实时回显**) | `"广东保伦电子股份有限公司"` | -| [].role | string | 角色枚举:`OWNER` 负责人 / `COLLABORATOR` 协同人(**字段名是 role,不是 memberRole**) | `"OWNER"` | - - - **G3 标注**:原型另有职务/加入时间两列——`memberRole`、`createTime` **均不在此 DTO**(不暴露),demo 恒 "--" 渲染=记档口径(P2-G3,字段级挂 07 票)。 -- `POST /api/customer/member/add?id=`:form 绑定 `MemberAddDTO{memberUserIds: List}`(**重复键** `memberUserIds=..&memberUserIds=..`,示例 `744842318024015872`)→ `null`。两阶段校验**整批拒绝**:名单空/含销售负责人/重复加入/用户停用→67016;批内幂等去重;姓名快照;oplog `MEMBER_ADD`。E2E 反例:`{"code":67016,"message":"成员名单不能为空"}`。 -- `POST /api/customer/member/remove?id=&memberUserId=`:查询参数两件 → `null`。软删保留历史(delete_key 复用键,可重复加入);oplog `MEMBER_REMOVE`;错误码 67002/67016。 - -### #42 关联项目页签 — 占位(demo 无端点调用,内容恒 "--") - -- 矩阵 #42 口径:**demo 侧无入口调用、页签占位显 "--"**(「新增占位页签」动作)。漂移提示:契约面实际已存在 `GET /api/customer/project/page?id=`(`CustomerDetailController.pageProjects`,`CustomerProjectQueryPort.ProjectItem` 9 字段),且 `A4 客户管理\客户详情\关联项目\关联项目页签.bru` 已有 E2E 真值(projectName=e2c-r3d-n3-项目甲、stageName=冲突处理、statusName=进行中、filingStatusName=报备审核中)——AS §5.3「A5 未建恒 --」记档已过时;demo 维持占位,切真值属后续票,本表不展开。 - ---- - -## 字典与枚举(值域 + 文案 + 出处) - -| 字典/枚举 | 值域与文案 | 出处 | -|---|---|---| -| customer_stage | 1 潜在客户 / 2 重潜客户 / 3 已成交客户(三态只前进,CAS;**本期两个跃迁均不触发,实际只有「潜在」**,D20 seam) | `domain/enums/CustomerStageEnum.java`;detail-head `customerStageName` 回显「潜在客户」;AS §3 | -| customer_star_level | 1~5 整数,无文案字典(星级组件渲染) | DTO @Schema;AS §2.1 | -| relation_star_level | 1~5 整数(导入 INSERT 缺省补 0=未评估占位,D-05 修复口径);看板 groupColumn=`relation` 分组 1~5 | AS §5.7/§2.1 | -| customer_type | `customer_type_01` 总包 / `_02` 工程商 / `_03` 投资方 / `_04` 设计院 / `_05` 集成商 / `_06` 投标公司 | `crm-dict/.../config/DictDataInitializer.java` L325-332 | -| industryCode | 运行时字典接口/字典树核对(industry 分组两级行业树,客户用二级/商机用一级);E2E 样例 `gov`=政府机关、`gov_1`=人大政协 | DictDataInitializer L95;E2E detail 实测 | -| follow_way | `follow_way_01` 电话沟通 / `_02` 上门拜访 / `_03` 微信对接 / `_04` 线上会议 / `_05` 展会沟通 | DictDataInitializer L293-299;FollowCreateDTO @Schema | -| viewType(内置五视图) | `ASSIGNED` 我负责的 / `COLLABORATING` 我协同的 / `FOLLOW_UP_DUE` 待跟进 / `FOCUSED` 我关注的 / `RECENT` 最近访问;适配矩阵见 #1 | AS §2.1/§3 | -| archiveStatus | 1 有效 / 2 已归档(无合并态,D19 归档=删除语义) | AS §3 | -| view-form | `list` / `split` / `board`(白名单外 68001;pool 拒 board 文档口径未实现=I-06 漂移) | ViewFormController/Impl;.bru 保存视图形态.bru;AS §2.14 | -| oplog action | 18 种(含 `GRAPH_EDIT`),逐值见 #45;AS §3「17 种」为未同步漂移 | `CustomerConstants` L97-114 | -| BatchFailReason | `NOT_FOUND / STATUS_NOT_ALLOWED / CONCURRENT_MODIFIED / ARCHIVE_BLOCKED / POOL_BLOCKED / ASSIGN_INVALID / UNKNOWN` | `domain/enums/CustomerBatchFailReason.java` | -| member role | `OWNER` / `COLLABORATOR` | CustomerMemberDTO 常量 | -| transferReason(交割,本表外引用) | `resign` 离职 / `transfer_post` 岗位调动 / `region_adjust` 区域调整 | AS §3 | -| job_title | 运行时两级字典树(demo 动态拉取),无静态值域,不落本表 | AS §2.7(jobTitleId/Name/Category/Level 联动 D1/D2) | - ---- - -## 来源文件清单 - -**Bruno 仓 `D:\code\crm-api-docs\`**(相对根): -- `A4 客户管理\我的客户\workspace 列表分页.bru`、`新增客户.bru`、`快速创建客户.bru`、`编辑客户.bru`(客户详情\)、`工商信息查询.bru` -- `A4 客户管理\客户总览\workspace 列表分页.bru`、`看板列表\看板分组汇总.bru`、`看板单列卡片.bru`(我的客户同名) -- `A4 客户管理\客户查重\名称相似提示.bru`、`信用代码查重.bru` -- `A4 客户管理\客户详情\详情公共头部.bru`、`客户详情.bru`、`标记重点客户.bru`、`取消重点标记.bru`、`跟进记录\跟进记录分页.bru`、`跟进记录\新增跟进.bru`、`操作日志\操作日志分页.bru`、`关联商机\关联商机页签.bru`、`关联项目\关联项目页签.bru`、`团队成员\团队成员页签.bru`、`团队成员\添加团队成员.bru`、`团队成员\移除团队成员.bru` -- `A4 客户管理\客户公海\关注客户.bru`、`取消关注客户.bru`、`批量关注客户.bru`、`领取客户.bru`、`批量领取.bru`、`分配客户.bru`、`批量分配.bru`、`抛公海.bru`、`批量抛公海.bru`、`归档客户.bru`、`批量归档.bru`、`恢复客户.bru`、`读取视图形态.bru`、`保存视图形态.bru`(我的客户/客户总览同名) -- `A4 客户管理\战略协议\战略协议页签列表.bru`、`战略协议详情.bru`、`新增战略协议.bru`、`编辑战略协议.bru`、`删除战略协议.bru` -- `A3 商机管理\销售机会\自定义视图\自定义视图列表.bru`、`保存自定义视图.bru`(saved-view 形态佐证,A4 无同名 .bru) - -**后端源码 `D:\code\crm-backend-matt\`**(绝对路径根同上): -- `crm-customer\src\main\java\com\crm\customer\domain\dto\`:CustomerListRowDTO、CustomerBoardSummaryDTO、CustomerCreateDTO、CustomerUpdateDTO、CustomerQuickCreateDTO、CustomerSaveResultDTO、CustomerSimilarHitDTO、CreditCodeCheckDTO、CustomerSearchItemDTO、CustomerDetailHeadDTO、CustomerDetailDTO、FollowCreateDTO、AgreementDTO、CustomerMemberDTO、MemberAddDTO、CustomerBatchFailItem -- `crm-customer\...\domain\param\`:CustomerWorkspacePageParam、CustomerSearchParam、FollowPageParam、OplogPageParam -- `crm-customer\...\domain\enums\`:CustomerStageEnum、CustomerBatchFailReason;`constant\CustomerConstants.java` -- `crm-customer\...\port\`:CustomerOpportunityQueryPort、CompanyLookupPort;`mapper\CustomerMapper.java`(pageWorkspace SQL:opportunityCount 真算/projectCount 恒 0/focusFlag/lastViewTime);`service\impl\CustomerWorkspaceServiceImpl.java`(board 守卫/排序/viewType);`controller\`:CustomerWorkspaceController、CustomerOwnershipController、CustomerFocusController、CustomerController、CustomerDetailController、CustomerAgreementController -- `crm-preference\src\main\java\com\crm\preference\`:controller\SavedViewController、controller\ViewFormController、domain\dto\SavedView、domain\dto\SavedViewCondition -- `crm-base\src\main\java\com\crm\base\domain\`:param\BaseParam、dto\BaseDTO、result\PageResult、result\BatchResult、result\Result -- `crm-dict\src\main\java\com\crm\dict\config\DictDataInitializer.java`(customer_type/follow_way 种子) - -**仓内文档**: -- `.scratch\customer-module\API-SUMMARY.md`(§0/§1/§2.1-2.6/§2.9/§2.14/§3/§5) -- `.scratch\customer-demo-ref\assets\coverage-matrix.md`(入口编号/G1-G6/P3-x 依据) -- `.scratch\customer-frontend-handover\mapping-a4-pages.md`(原型列文案) -- `.scratch\customer-e2e\demo\index.html`(fork 基线渲染口径:`|| '--'`、maskPhone/reveal、旧 loadSummary 读 count/name 的漂移证据) diff --git a/.scratch/customer-demo-ref/assets/acceptance-selfcheck.md b/.scratch/customer-demo-ref/assets/acceptance-selfcheck.md new file mode 100644 index 0000000..59e366e --- /dev/null +++ b/.scratch/customer-demo-ref/assets/acceptance-selfcheck.md @@ -0,0 +1,50 @@ +# 交付四标准自检表(票 15) + +> 对照 map.md Destination 四标准逐条自检;证据均落盘可复查。2026-09-12,票 14 第八跑(40/0 全绿)为验收时点。 + +## 结论速览 + +| # | 标准 | 结论 | 核心证据 | +|---|------|------|----------| +| 1 | 功能覆盖 | **达标** | 69 入口对账零缺口(33 免改+9 新增+16 改造全落地)+ 冒烟唯一路径 91 | +| 2 | 字段对齐 | **达标** | field-alignment.md #1-#69 三表 + K1-K11 校准全落 demo | +| 3 | 流程闭环 | **达标** | 冒烟步 9-25 全链 PASS(create→edit CAS→archive/restore→release→claim→assign→交割→oplog) | +| 4 | 交付物齐备 | **达标** | demo/index.html + smoke.py + smoke-report.json + 4 assets + shots 9 张 + 双仓清单 | + +## 1. 功能覆盖(原型可见入口全部可点且触发对应端点) + +- 对账基线:蓝湖 v29 原型 A4 页族 × API-SUMMARY 85 端点 → [assets/coverage-matrix.md](coverage-matrix.md) 69 入口逐行:无缺口 33 / 新增 9 / 改造 16 / 豁免 14(均有台账依据:01 号票 Answer + gap-report/defectfix/F-15)。 +- 实施对账:16 改造+9 新增入口全部出票落地(09 基建 → 10 列表层 → 11 详情层 → 12 联系人菜单+商机侧 → 13 重流程收尾),无遗留半成品;豁免 14 项在 demo「已知缺陷」面板 C 区静态明示。 +- 端点触达实证:第八跑冒烟 api_urls **唯一路径 91 条**(GET 147 + POST 79),含 workspace/page、pool/board、交割三段、导入三段式、规则族读写、saved-view、focus/star 等全部动作族。 +- 缺陷呈现:14 开放现象(G1-G6/P3-*/D-G1/I-06/POOL-CFG/STUB-LOOKUP)三档呈现(渲染即现象+data-defect 角标+面板),冒烟步 30/31/35 断言角标 11 类目 87 处。 + +## 2. 字段对齐(与 Bruno 出参一致,含脱敏与 "--" 口径) + +- 权威对齐表:[assets/field-alignment.md](field-alignment.md)(1091 行,核心域 #1-#49 / 联系人族+重流程+规则族 #31-#69),逐入口请求参数/出参字段/空值"--"与枚举字典口径三表,每表附 .bru+DTO 出处。 +- K1-K11 校准注记(07 号票收口回写):G4 收窄、关联项目真端点 Noop、看板 summary=cnt/groupValue、oplog action 18 种、contact_source 字典真值、focus-batch Void、quick-create 七必填、电话脱敏 138\*\*\*\*1234、transfer assign_status 契约——demo 冒烟全部按 K 口径断言通过(步 11 金额卡 4 卡恒 "--"、步 16 列头无「负责人」+明文/脱敏切换、步 22/24 交割明细 assignStatus)。 +- 冒烟侧 40 步的 note 全部携带字段级实证值(qaRet successCount/failedRows、import result 计数、pool total、dedup mode/threshold),报告落盘可追溯。 + +## 3. 流程闭环(新增→归档/抛公海全链路 + 操作日志留痕) + +- 主链(冒烟步 8-25 连续 PASS):登录→新建(L2 相似 needConfirm→confirmSimilar 重发)→编辑 CAS(version 0→1 名字-改落库)→详情 8 页签→归档/恢复(archive_status 2→1→2 + oplog≥2)→导入三段式(预检 1 失败行→确认执行→失败明细)→联系人 quickAdd/batchEdit/check-phone/delete→抛公海 release→pool 勾选→claim→archive→restore→再 archive→assign(successCount=1)。 +- 商机联动链(步 23-24):从客户发起建商机→抛公海被进行中商机 67007 阻断→关闭商机→放行→交割 preview→initiate→detail assignStatus 变化(assign 目标动态取 assignable[0],排除发起人与总监本人)。 +- oplog 留痕:ARCHIVE/RESTORE/CREATE action 断言(步 19 action=CREATE 筛选、步 25 oplog=3)。 +- 规则族回写还原(步 26-28):dedup 阈值 80→90→80 还原+匹配方式不被污染(mode==2)、reminder 非法 0→64023→还原 30/7——共享库无污染退出。 + +## 4. 交付物齐备 + +| 交付物 | 路径 | 状态 | +|--------|------|------| +| 单文件 Demo | `.scratch/customer-demo-ref/demo/index.html`(2925+ 行) | OK | +| 冒烟脚本 | `demo/smoke.py`(40 步,py_compile 通过,无 BOM) | OK | +| PASS/FAIL 报告 | `demo/smoke-report.json`(ALL_PASS=true,40/0,176.4s) | OK | +| 冒烟截图 | `demo/shots/`(9 张关键现场) | OK | +| 对账矩阵 | `assets/coverage-matrix.md` | OK | +| 字段对齐清单 | `assets/field-alignment.md` | OK | +| 冒烟步骤表 | `assets/smoke-plan.md` | OK | +| 商机依赖清单 | `assets/opp-deps.md` | OK | +| 四标准自检 | `assets/acceptance-selfcheck.md`(本文件) | OK | +| 双仓未提交变更清单 | `assets/uncommitted-changes.md` | OK | + +- 纪律自证:零 PUT/DELETE(方法分布 GET 147+POST 79)、console error=0、http_fails=0、4xx 走业务弹窗通道(67003/64023/67007 三处实证)。 +- 环境观察(非缺陷,面板 D 区):共享库存量 source 旧 code 未迁移;e2c seed 需冒烟重建(票 14 ensure_seeds 幂等自举解决)。 diff --git a/.scratch/customer-demo-ref/assets/smoke-plan.md b/.scratch/customer-demo-ref/assets/smoke-plan.md index aa1b652..02ec0da 100644 --- a/.scratch/customer-demo-ref/assets/smoke-plan.md +++ b/.scratch/customer-demo-ref/assets/smoke-plan.md @@ -47,8 +47,8 @@ py -X utf8 .scratch/customer-demo-ref/demo/smoke.py # 系统 Python 3.13 + | 10 | 编辑客户:回显(version CAS)→改备注→保存 | edit?id= 成功;列表刷新生效 | UI+NET | | 11 | 详情头部:detail-head 渲染 + 金额卡 | 4 张金额卡恒"--"(P3-6 data-defect)〔D〕;计数/负责人/跟进摘要有值 | UI | | 12 | 8 页签全遍历可切换 | 信息/联系人/跟进/关联商机/关联项目/战略协议/团队成员/操作日志 8 页签 | UI | -| 13 | 页签1 信息:16 字段栅格 | 系统信息四件套恒"--"(G4 data-defect)〔D〕;creditCode 脱敏形态断言 | UI | -| 14 | 页签4/5:关联商机 7 列真名 + 关联项目恒"--" | 商机列头数=7(G2 data-defect)〔D〕;项目页签"--"(#42 占位) | UI | +| 13 | 页签1 信息:16 字段栅格 | 创建人/更新人恒"--"、创建/更新时间实测有值(G4 data-defect)〔D〕;creditCode 明文回显断言(K10 核心域无字段级脱敏) | UI | +| 14 | 页签4/5:关联商机 7 列真名 + 关联项目恒"--" | 商机列头数=7(G2 data-defect)〔D〕;项目页签"--"(K2 真端点 CustomerProjectQueryPort·Noop 空态) | UI+NET | | 15 | 页签7 团队成员:添加 BUDDY→渲染→移除 | member/add·remove 成功;**无职务/加入时间列**(G3 data-defect)〔D〕 | UI+DB | | 16 | 页签2 联系人:quickAdd 2 行→列表 8 列→编辑→reveal | 列表**无负责人列**(G5)〔D〕;reveal 明文+DB reveal_log;电话脱敏形态 | UI+NET+DB | | 17 | 联系人 batchEdit(含 D-G1 注记)+ check-phone + 删除 | batchEdit 空串提交=不改(D-G1 注记可见)〔D〕;check-phone 命中王重复;删除双刷 | UI+DB | @@ -83,7 +83,7 @@ py -X utf8 .scratch/customer-demo-ref/demo/smoke.py # 系统 Python 3.13 + | 31 | 角标钩子扫描 | `[data-defect]` 计数≥12(G1-G6/P3-3/P3-4/P3-5/P3-6/D-G1/I-06/POOL-CFG/STUB-LOOKUP) | UI | | 32 | I-06 双现象注记(pool workspace) | pool 汇总条注记文本含「67001」+「记忆成功」;pool 形态下拉无 board 选项 | UI | | 33 | 豁免入口不出现 | 换负责人按钮/操作日志导出/完整金额开关/导入触发校验复选框 count=0 | UI | -| 34 | G 系列现象复核(合并断言) | 跟进筛选无操作人项(G1)、商机 7 列(G2)、成员 2 列缺(G3)、四件套"--"(G4)、联系人无负责人列(G5)、联系人日志空态(G6) | UI | +| 34 | G 系列现象复核(合并断言) | 跟进筛选无操作人项(G1)、商机 7 列(G2)、成员 2 列缺(G3)、创建人/更新人"--"(G4)、联系人无负责人列(G5)、联系人日志空态(G6) | UI | | 35 | 金额卡与页签5 "--" 口径 | P3-6 四卡"--";关联项目页签"--" | UI | | 36 | company-lookup NO_HIT 现象 | 表单联想无命中提示+F6 批量更新按钮 stub 文案 | UI | diff --git a/.scratch/customer-demo-ref/assets/uncommitted-changes.md b/.scratch/customer-demo-ref/assets/uncommitted-changes.md new file mode 100644 index 0000000..45746d4 --- /dev/null +++ b/.scratch/customer-demo-ref/assets/uncommitted-changes.md @@ -0,0 +1,44 @@ +# 双仓未提交变更清单(票 15) + +> 实测时点:2026-09-12(票 14 第八跑全绿后)。**agent 不提交 git**——本清单仅供用户审查后自行处置。 +> 勘误:Bruno 文档仓实际路径 = **`E:\code\crm-api-docs`**(map.md Notes 与票 15 Scope 中的 `D:\code\crm-api-docs` 为换机前旧路径,已实测不存在)。 + +## 一、backend 仓(e:\code\crm-backend-matt) + +`git status --porcelain` 共 51 行,**全部属于本 effort(.scratch/customer-demo-ref)与运行时日志;前序 effort 的 java/.bru 变更已不在工作区(用户已提交)**。 + +### 本 effort 修改(M/D,10 项) + +| 状态 | 文件 | 说明 | +|------|------|------| +| D | `.scratch/customer-demo-ref/assets/_fa-core.md` | 票 07 收口:中间分片已并入 field-alignment.md 后删除 | +| M | `.scratch/customer-demo-ref/assets/smoke-plan.md` | 票 08/14 迭代:40 步表随冒烟实跑校准 | +| M | `.scratch/customer-demo-ref/demo/index.html` | 票 09-13 改造 + 票 14 doEdit/doCreate needConfirm 与 onclick 修复 | +| M | `.scratch/customer-demo-ref/issues/07-field-alignment-checklist.md` | K1-K11 校准注记回写 | +| M | `.scratch/customer-demo-ref/issues/10-core-list.md` | Answer + resolved | +| M | `.scratch/customer-demo-ref/issues/11-core-detail.md` | Answer + resolved | +| M | `.scratch/customer-demo-ref/issues/12-contacts-opp-entry.md` | Answer + resolved | +| M | `.scratch/customer-demo-ref/issues/13-flow-rules-tail.md` | Answer + resolved | +| M | `.scratch/customer-demo-ref/issues/14-smoke-script.md` | Answer + resolved | +| M | `.scratch/customer-demo-ref/map.md` | Decisions 09/10/11/14 回填 + 收口 | + +### 本 effort 新增(??,交付物与取证) + +- **核心交付**:`demo/smoke.py`、`demo/smoke-report.json`、`demo/shots/`(15 张:s01-s40 现场图 + t10-t13 快验图)、`assets/acceptance-selfcheck.md`、`assets/uncommitted-changes.md`(本文件) +- **诊断/扫描临时脚本**(可删):`demo/_t14*.py`(diag/db/org/org2/org3/api/cols/scan)、`_quickcheck*.py`×6、`_scan.py`、`_t12scan.py`、`demo/_q.py` +- **运行日志/临时**(可删):`demo/_jarbuild.log`、`_run7.log`、`_run8.log`、`_server.log`、`demo/tmp_xlsx/`、`demo/__pycache__/` + +### 前序遗留 / 运行时 + +- `logs/crm-app.log`(M)与 `logs/crm-app.log.2026-09-11.0.gz`(??):本地起服运行日志,非源码变更。 + +## 二、Bruno 文档仓(E:\code\crm-api-docs) + +`git status --porcelain` 共 2 行,**均为前序 effort(customer-frontend-handover 收官时 A4 目录迁移)遗留,非本 effort 产物**;本 effort 未改动文档仓任何文件。 + +| 状态 | 路径(八进制转义已还原) | 说明 | +|------|------|------| +| ?? | `A4 客户管理/客户详情/战略协议/` | frontend-handover 票 05 迁移产物:战略协议 .bru 自客户详情根部迁入独立目录(未 git add) | +| ?? | `A4 客户管理/联系人/联系人导入/` | 同上:联系人导入 .bru 迁入「联系人」子目录(未 git add) | + +> 前序记忆(frontend-handover 收官时)为 M3+D11+??11——当前仅余上述 2 个 untracked 目录,其余变更用户已在收官后提交。 diff --git a/.scratch/customer-demo-ref/demo/__pycache__/_t14d7.cpython-313.pyc b/.scratch/customer-demo-ref/demo/__pycache__/_t14d7.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6cff004299d8e7c2f378923719a260e8f24199eb GIT binary patch literal 7569 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 duplicate declaration of version (?) @ line 49, column 21 +[WARNING] +[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. +[WARNING] +[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. +[WARNING] +[INFO] ------------------------------------------------------------------------ +[INFO] Reactor Build Order: +[INFO] +[INFO] crm [pom] +[INFO] crm-base [jar] +[INFO] crm-file [jar] +[INFO] crm-auth [jar] +[INFO] crm-dict [jar] +[INFO] crm-rule [jar] +[INFO] crm-preference [jar] +[INFO] crm-lead [jar] +[INFO] crm-customer [jar] +[INFO] crm-opportunity [jar] +[INFO] crm-project [jar] +[INFO] crm-log [jar] +[INFO] crm-app [jar] +[INFO] +[INFO] ----------------------------< com.crm:crm >----------------------------- +[INFO] Building crm 1.0.0-SNAPSHOT [1/13] +[INFO] from pom.xml +[INFO] --------------------------------[ pom ]--------------------------------- +[INFO] +[INFO] --------------------------< com.crm:crm-base >-------------------------- +[INFO] Building crm-base 1.0.0-SNAPSHOT [2/13] +[INFO] from crm-base\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-base --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-base\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-base\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-base --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-base --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-base\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-base --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-base --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-base --- +[INFO] +[INFO] --------------------------< com.crm:crm-file >-------------------------- +[INFO] Building crm-file 1.0.0-SNAPSHOT [3/13] +[INFO] from crm-file\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-file --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-file\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-file\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-file --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-file --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-file\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-file --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-file --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-file --- +[INFO] +[INFO] --------------------------< com.crm:crm-auth >-------------------------- +[INFO] Building crm-auth 1.0.0-SNAPSHOT [4/13] +[INFO] from crm-auth\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-auth --- +[INFO] Copying 1 resource from src\main\resources to target\classes +[INFO] Copying 0 resource from src\main\resources to target\classes +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-auth --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-auth --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-auth\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-auth --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-auth --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-auth --- +[INFO] +[INFO] --------------------------< com.crm:crm-dict >-------------------------- +[INFO] Building crm-dict 1.0.0-SNAPSHOT [5/13] +[INFO] from crm-dict\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-dict --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-dict\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-dict\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-dict --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-dict --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-dict\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-dict --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-dict --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-dict --- +[INFO] +[INFO] --------------------------< com.crm:crm-rule >-------------------------- +[INFO] Building crm-rule 1.0.0-SNAPSHOT [6/13] +[INFO] from crm-rule\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-rule --- +[INFO] Copying 0 resource from src\main\resources to target\classes +[INFO] Copying 1 resource from src\main\resources to target\classes +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-rule --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-rule --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-rule\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-rule --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-rule --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-rule --- +[INFO] +[INFO] -----------------------< com.crm:crm-preference >----------------------- +[INFO] Building crm-preference 1.0.0-SNAPSHOT [7/13] +[INFO] from crm-preference\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-preference --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-preference\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-preference\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-preference --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-preference --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-preference\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-preference --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-preference --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-preference --- +[INFO] +[INFO] --------------------------< com.crm:crm-lead >-------------------------- +[INFO] Building crm-lead 1.0.0-SNAPSHOT [8/13] +[INFO] from crm-lead\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-lead --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-lead\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-lead\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-lead --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-lead --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-lead\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-lead --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-lead --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-lead --- +[INFO] +[INFO] ------------------------< com.crm:crm-customer >------------------------ +[INFO] Building crm-customer 1.0.0-SNAPSHOT [9/13] +[INFO] from crm-customer\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-customer --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-customer\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-customer\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-customer --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-customer --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-customer\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-customer --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-customer --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-customer --- +[INFO] +[INFO] ----------------------< com.crm:crm-opportunity >----------------------- +[INFO] Building crm-opportunity 1.0.0-SNAPSHOT [10/13] +[INFO] from crm-opportunity\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-opportunity --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-opportunity\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-opportunity\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-opportunity --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-opportunity --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-opportunity\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-opportunity --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-opportunity --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-opportunity --- +[INFO] +[INFO] ------------------------< com.crm:crm-project >------------------------- +[INFO] Building crm-project 1.0.0-SNAPSHOT [11/13] +[INFO] from crm-project\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-project --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-project\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-project\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-project --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-project --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-project\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-project --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-project --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-project --- +[INFO] +[INFO] --------------------------< com.crm:crm-log >--------------------------- +[INFO] Building crm-log 1.0.0-SNAPSHOT [12/13] +[INFO] from crm-log\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-log --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-log\src\main\resources +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-log\src\main\resources +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-log --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-log --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-log\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-log --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-log --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-log --- +[INFO] +[INFO] --------------------------< com.crm:crm-app >--------------------------- +[INFO] Building crm-app 1.0.0-SNAPSHOT [13/13] +[INFO] from crm-app\pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ crm-app --- +[INFO] Copying 2 resources from src\main\resources to target\classes +[INFO] Copying 0 resource from src\main\resources to target\classes +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ crm-app --- +[INFO] Nothing to compile - all classes are up to date. +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ crm-app --- +[INFO] skip non existing resourceDirectory E:\code\crm-backend-matt\crm-app\src\test\resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ crm-app --- +[INFO] No sources to compile +[INFO] +[INFO] --- surefire:3.2.5:test (default-test) @ crm-app --- +[INFO] Tests are skipped. +[INFO] +[INFO] --- jar:3.4.2:jar (default-jar) @ crm-app --- +[INFO] +[INFO] --- spring-boot:3.3.5:repackage (repackage) @ crm-app --- +[INFO] Replacing main artifact E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar with repackaged archive, adding nested dependencies in BOOT-INF/. +[INFO] The original artifact has been renamed to E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar.original +[INFO] ------------------------------------------------------------------------ +[INFO] Reactor Summary for crm 1.0.0-SNAPSHOT: +[INFO] +[INFO] crm ................................................ SUCCESS [ 0.002 s] +[INFO] crm-base ........................................... SUCCESS [ 1.312 s] +[INFO] crm-file ........................................... SUCCESS [ 0.182 s] +[INFO] crm-auth ........................................... SUCCESS [ 0.253 s] +[INFO] crm-dict ........................................... SUCCESS [ 0.119 s] +[INFO] crm-rule ........................................... SUCCESS [ 0.185 s] +[INFO] crm-preference ..................................... SUCCESS [ 0.118 s] +[INFO] crm-lead ........................................... SUCCESS [ 0.145 s] +[INFO] crm-customer ....................................... SUCCESS [ 0.197 s] +[INFO] crm-opportunity .................................... SUCCESS [ 0.176 s] +[INFO] crm-project ........................................ SUCCESS [ 0.144 s] +[INFO] crm-log ............................................ SUCCESS [ 0.138 s] +[INFO] crm-app ............................................ SUCCESS [ 1.167 s] +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 4.467 s +[INFO] Finished at: 2026-09-12T00:11:07+08:00 +[INFO] ------------------------------------------------------------------------ diff --git a/.scratch/customer-demo-ref/demo/_run7.log b/.scratch/customer-demo-ref/demo/_run7.log new file mode 100644 index 0000000..28baf67 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_run7.log @@ -0,0 +1,58 @@ +sweep 娓呯悊娈嬬暀 0 琛? +seed 鑷妇锛坖obc=chairman锛?.. + [seed] 鏌ラ噸鍖归厤鏂瑰紡褰掍綅 FUZZY(2) + [seed] 鏌ラ噸鍩虹嚎鍛戒腑鏁?1 +python.exe : E:\code\crm-backend-matt\.scratch\customer-e2e\.venv10\Lib\site-packages\openpyxl\styles\stylesheet.py:237 +: UserWarning: Workbook contains no default style, apply openpyxl's default +所在位置 行:1 字符: 1 ++ & "E:\code\crm-backend-matt\.scratch\customer-e2e\.venv10\Scripts\pyt ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: (E:\code\crm-bac...npyxl's default:String) [], RemoteException + + FullyQualifiedErrorId : NativeCommandError + + warn("Workbook contains no default style, apply openpyxl's default") + xlsx 灏辩华: e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\tmp_xlsx\cust.xlsx / e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\tmp_xlsx\cont.xlsx +PASS 01 鎵撳紑Demo+uid鐧诲綍+棣栧睆鍒楄〃娓叉煋 | rows=10 +PASS 02 涓墂orkspace鍒囨崲;pool涓嶅彂board+I-06娉ㄨ[D] | overview璇锋眰OK=True;pool鏂拌姹?鏉?i06鍙=True +PASS 03 鍐呯疆瑙嗗浘涓嬫媺浜斿€?鍒嘑OLLOW_UP_DUE | opts=['ASSIGNED', 'COLLABORATING', 'FOLLOW_UP_DUE', 'FOCUSED', 'RECENT'] +PASS 04 鍒楃瓫閫夐樁娈?宸叉垚浜? | 璇锋眰鍙傛暟 customerStage=3 宸插懡涓? +PASS 05 褰掓。鎬佸紑鍏?e2c-宸插綊妗e彲瑙? | archiveStatus=2鍛戒腑=True;鏍蜂緥鍙=True +PASS 06 saved-view 鏂板缓鈫掗€変腑鏌ヨ鈫掑垹闄? | save=True;閫変腑甯avedViewId=True;鍒犲悗娑堝け=True;body=POST /api/preference/view/save?scopeKey=customer.mine # {"name":"e2c-dr-瑙嗗浘","isDefault":false,"seqNo":10,"conditions":[{"field":"keyword","operator":" +PASS 07 褰㈡€佸亸濂給verview鍒囩湅鏉库啋娓叉煋鈫掕繕鍘焞ist | 鐪嬫澘鍒?3;cards璇锋眰=True;杩樺師=True +PASS 08 宸ュ晢鑱旀兂(companyName)+NO_HIT鐜拌薄+STUB-LOOKUP娉ㄨ[D] | 鏈煡璇㈠埌鍖归厤浼佷笟锛堜竴鏈熶紒鏌ユ煡 port 涓?stub 鎭?NO_HIT锛屽瀹炲憟鐜帮紱鍙墜宸ュ綍鍏ワ紝鐪熷疄婧愭帴鍏ュ悗鑷姩婵€娲伙級銆? +PASS 09 鍚嶇О鏌ラ噸needConfirm+similarHits鈫抍onfirmSimilar閲嶅彂鈫掑垱寤烘垚鍔? | simbox=鐩镐技鍛戒腑 1 鏉★細e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃锛堣礋璐d汉=缃椾紵鍋ワ紝娼滃湪瀹㈡埛锛屾湁鏁堬級浠嶈鍒涘缓锛?纭鍒涘缓锛坈onfirmSimilar=;toast=鍒涘缓鎴愬姛 id=753770502094323712;澶瑰叿A=753770502094323712 +FAIL 10 缂栬緫瀹㈡埛鍥炴樉+CAS淇濆瓨(鍚浉浼肩‘璁ら噸鍙? | 鍥炴樉鍚?e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃;simbox=-;toast=;db=e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃 v0 +PASS 11 璇︽儏澶撮儴娓叉煋+4閲戦鍗℃亽--[D] | cards=['--', '--', '--', '-- / --'];P3-6瑙掓爣=1 +PASS 12 8椤电鍏ㄩ亶鍘?鑱旂郴浜洪《绾ц彍鍗昪ontact/page | subs=['info', 'contacts', 'follow', 'opps', 'projects', 'agreements', 'members', 'oplog'];contact/page琛?10;鏂板errs=[] +PASS 13 淇℃伅鏍呮牸16瀛楁+G4鍒涘缓/鏇存柊浜?-[D]+creditCode鏄庢枃 | kv=18;鍒涘缓浜?--;淇$敤浠g爜=91440101E2CTEST001 +PASS 14 鍟嗘満7鍒?G2-D)+椤圭洰椤电Noop绌烘€?contact/search鍛戒腑 | 鍟嗘満鍒?['鍟嗘満ID', '鍟嗘満鍚嶇О', '闃舵', '棰勮閲戦', '璐熻矗浜篒D', '璐熻矗浜?, '鏈€杩戞洿鏂?];Noop绌烘€?True;search=濮撳悕鑱屽姟鐢佃瘽鍏抽敭鑱旂郴浜烘潵婧愭墍灞炲鎴峰鎴风紪鍙峰紶鍏抽敭钁d簨闀?38****0001鏄痗ontact_source_01e2c- +PASS 15 鎴愬憳鍔燘UDDY鈫掓覆鏌撯啋绉婚櫎(G3-D鏃犺亴鍔?鍔犲叆鏃堕棿鍒? | 鍒楀ご=['鎴愬憳', '瑙掕壊', '鎿嶄綔'];DB鎴愬憳琛?27;memberUserIds閲嶅閿?True +PASS 16 鑱旂郴浜簈uickAdd2琛?G5鏃犺礋璐d汉鍒梉D]+鐢佃瘽鑴辨晱+reveal鏄庢枃+DB鍩嬬偣 | 鑴辨晱=True;DB鑱旂郴浜?5;reveal_log=7;鏄庢枃=True;鍒楀ご=['', '#', '濮撳悕', '鑱屽姟', '鑱旂郴鐢佃瘽', '鍏抽敭', '鍐呯嚎', '鏉ユ簮', '绀煎搧澶囨敞', '鎿嶄綔'];qaRet={"successCount":2,"failedRows":[]} +PASS 17 batchEdit绌轰覆=DB涓嶆敼(D-G1)[D]+check-phone鍛戒腑+鍒犻櫎鍙屽埛 | DB phone=13812340001;D-G1瑙掓爣=1;check-phone=瀹㈡埛缂栧彿--瀹㈡埛鍚嶇О--瀹㈡埛绫诲瀷--闃舵--瀹㈡埛鏄熺骇--鍏崇郴鏄熺骇--鎴樼暐鍗忚--;鍒犲悗琛?4(鍒犲墠5,del_ok=True,errs+0);lid=753770624404422656;names=鏉庡啋鐑?璧靛啋鐑?鏉庢櫘閫?鐜嬮噸澶?寮犲叧閿? +PASS 18 鍐欒窡杩?鏃ユ湡鍒嗙粍+followWay绛涢€? | way閫夐」=6(绌?5);鏃ユ湡鍒嗙粍=5;绛涢€?True +PASS 19 鍏虫敞/閲嶇偣鏍囪+oplog鐣欑棔+action绛涢€? | action=CREATE绛涢€夊惈鏂板瀹㈡埛=True;action=FOLLOW绛涢€?True;DB璺熻繘=23 +PASS 20 瀹㈡埛瀵煎叆涓夋寮?缂虹渷浠介妫€FAIL鈫扗ONE璁℃暟=棰勬鈫掓槑缁嗗惢鍚? | 棰勬 t=2 ins=1 fail=1;taskId=753770723947839488;result={'taskId': '753770723947839488', 'importMode': 'APPEND_ONLY', 'templateVersion': 'V1', 'status': 2, 'totalCount': 2, 'insertCount': 1, 'updateCount': 0, 'unchangedCount': 0, 'failCount': 1, 'suspectCount': 0, 'failReason': None, 'creatorName': Non +PASS 21 瀵煎叆浠诲姟鍒楄〃+status/importMode杩囨护+P3-3娉ㄨ[D] | status杩囨护=True;mode杩囨护=True;P3-3=1 +PASS 22 鑱旂郴浜哄鍏ヤ笁娈靛紡+P3-3鏃犳牎楠屽閫夋[D] | 棰勬=棰勬瀹屾垚锛堜换鍔?753770764947161088 寰呯‘璁わ級锛氬叡 2 琛岋紝棰勮鏂板 2銆佹洿鏂?0銆佸け璐?0銆佺枒浼奸噸澶?;result={'taskId': '753770764947161088', 'customerId': '753770502094323712', 'importMode': 'APPEND_ONLY', 'templateVersion': 'V1', 'status': 2, 'totalCount': 2, 'insertCount': 2, 'updateCount': 0, 'unchangedCount': 0, 'failCount': 0, 'su +PASS 23 鍟嗘満鑱斿姩閾?UI寤哄晢鏈衡啋鎶涘叕娴锋嫤鎴啋鍏冲晢鏈衡啋鏀捐) | 鍟嗘満=753770801903173632;鐘舵€?鈫?;涓€娆elease鎷︽埅=True(toast=鍟嗘満宸插垱寤?id=753770801903173632锛涘鎴疯鎯呫€屽叧鑱斿晢鏈恒€嶉〉绛惧彲鍙嶆煡 || {"total":1,"s);杩涘叕娴?True +PASS 24 浜ゅ壊(preview鍦堝畾鈫抜nitiate鈫抪age鈫抎etail鈫抋ssignable鈫抋ssign鏄庣粏鎬佸彉鍖?F-13娓卨eftover=0) | 鍗曞彿=JG202609120001;鍦堝畾鍚す鍏?True;鏄庣粏=1鈫抋ssign鍚庡彉鍖?True(assign瀵硅薄=99021002);UI琛?10 +PASS 25 褰掑睘鍔ㄤ綔鏃?release鈫抍laim鈫抋rchive鈫抮estore鈫掑啀archive+oplog+assign) | 杩涘叕娴?True(pool榛樿瑙嗗浘琛?0,娓呰鍥惧悗琛?1);claim=True({"total":1,"successCount":1,"failCount":);archive=True({"total":1,"successCount":1,"failCount":);assign=True(success=1 fail=0);鎭㈠1鈫掑啀褰掓。2;oplog=3 +PASS 26 鏌ラ噸璁剧疆璇烩啋鏀?0鈫抯ave鐢熸晥鈫掕繕鍘?鍚尮閰嶆柟寮忎笉琚薄鏌? | 鍘?80鈫?0鈫掕繕鍘?80;mode=2(鍘?) +PASS 27 check-name鍛戒腑e2c-鎭掍俊杈?淇$敤浠g爜鎾炵爜67003(L3纭嫤)+check-credit-code L1 | check-name=check-name锛歔{"customerId":"753770361971015680","customerName;err=缁熶竴绀句細淇$敤浠g爜宸茶鍗犵敤锛氱郴缁熷凡瀛樺湪璇ヤ紒涓?(code=67003);creditCode.exists=True +PASS 28 瓒呮湡鎻愰啋save闈炴硶0鈫?4023toast鈫掕繕鍘?0/7 | 64023=True;杩樺師=30/7(鍘?0/7) +PASS 29 鍏捣姹犻厤缃崰浣嶅崱鍙[D] | 瑙掓爣=1;绂佺敤杈撳叆=2 +PASS 30 缂洪櫡鍙拌处闈㈡澘(A鈮?4/B4/C14/D1+鍥哄畾澹版槑) | A=14 B=4 C=14 D=1;娓叉煋琛?33 +PASS 31 data-defect瑙掓爣鈮?2涓斿叧閿被鐩綈鍏?澶氶〉绛剧疮璁? | 绱=87;绫荤洰=['D-G1', 'G1', 'G2', 'G3', 'G4', 'G5', 'I-06', 'P3-3', 'P3-6', 'POOL-CFG', 'STUB-LOOKUP'] +PASS 32 I-06鍙岀幇璞?pool鏃燽oard閫夐」+娉ㄨ鍚?7001/璁板繂鎴愬姛) | fForm閫夐」=['list', 'split'] +PASS 33 璞佸厤鍏ュ彛涓嶅嚭鐜?鎹㈣礋璐d汉/鏃ュ織瀵煎嚭/瀹屾暣閲戦寮€鍏?瀵煎叆鏍¢獙澶嶉€夋) | 鍛戒腑=0 +PASS 34 G绯诲垪鍚堝苟澶嶆牳(G1鏃犳搷浣滀汉绛涢€?G2涓冨垪/G3涓ゅ垪缂?G4--[D]/G5鏃犺礋璐d汉鍒?G6绌烘€? | G1=True G2=True G3=True G4=True G5=True G6=True +PASS 35 閲戦鍗3-6鍥涘崱--鍙e緞+鍏宠仈椤圭洰Noop绌烘€? | cards=['--', '--', '--', '-- / --'] +PASS 36 company-lookup NO_HIT+F6 stub鏂囨 | NO_HIT=True;F6stub=True +PASS 37 console/pageerror=0 | 鏃犻敊璇? +PASS 38 闆禤UT/DELETE(ADR-0017) | 杩濅緥=[] +PASS 39 绔偣瑕嗙洊骞垮害(鍞竴璺緞鈮?0+鐭╅樀娓呭崟50鏉? | 鍞竴璺緞=92;缂哄け=[] +PASS 40 澶瑰叿姝i棬娓呮壂+瑙勫垯/褰㈡€佸亸濂借繕鍘熸牳瀵? | 娓呮壂=4琛?娈嬬暀=0;dedup=80(鍘?0);reminder=30(鍘?0);overview褰㈡€?list + +==== summary ==== 40 steps, 1 failed (178.6s) 鈫?e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\smoke-report.json + FAIL 10 缂栬緫瀹㈡埛鍥炴樉+CAS淇濆瓨(鍚浉浼肩‘璁ら噸鍙? | 鍥炴樉鍚?e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃;simbox=-;toast=;db=e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃 v0 +ALL_PASS: False diff --git a/.scratch/customer-demo-ref/demo/_run8.log b/.scratch/customer-demo-ref/demo/_run8.log new file mode 100644 index 0000000..ac45f48 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_run8.log @@ -0,0 +1,56 @@ +sweep 娓呯悊娈嬬暀 0 琛? +seed 鑷妇锛坖obc=chairman锛?.. + [seed] 鏌ラ噸鍩虹嚎鍛戒腑鏁?1 +python.exe : E:\code\crm-backend-matt\.scratch\customer-e2e\.venv10\Lib\site-packages\openpyxl\styles\stylesheet.py:237 +: UserWarning: Workbook contains no default style, apply openpyxl's default +所在位置 行:1 字符: 1 ++ & "E:\code\crm-backend-matt\.scratch\customer-e2e\.venv10\Scripts\pyt ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: (E:\code\crm-bac...npyxl's default:String) [], RemoteException + + FullyQualifiedErrorId : NativeCommandError + + warn("Workbook contains no default style, apply openpyxl's default") + xlsx 灏辩华: e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\tmp_xlsx\cust.xlsx / e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\tmp_xlsx\cont.xlsx +PASS 01 鎵撳紑Demo+uid鐧诲綍+棣栧睆鍒楄〃娓叉煋 | rows=10 +PASS 02 涓墂orkspace鍒囨崲;pool涓嶅彂board+I-06娉ㄨ[D] | overview璇锋眰OK=True;pool鏂拌姹?鏉?i06鍙=True +PASS 03 鍐呯疆瑙嗗浘涓嬫媺浜斿€?鍒嘑OLLOW_UP_DUE | opts=['ASSIGNED', 'COLLABORATING', 'FOLLOW_UP_DUE', 'FOCUSED', 'RECENT'] +PASS 04 鍒楃瓫閫夐樁娈?宸叉垚浜? | 璇锋眰鍙傛暟 customerStage=3 宸插懡涓? +PASS 05 褰掓。鎬佸紑鍏?e2c-宸插綊妗e彲瑙? | archiveStatus=2鍛戒腑=True;鏍蜂緥鍙=True +PASS 06 saved-view 鏂板缓鈫掗€変腑鏌ヨ鈫掑垹闄? | save=True;閫変腑甯avedViewId=True;鍒犲悗娑堝け=True;body=POST /api/preference/view/save?scopeKey=customer.mine # {"name":"e2c-dr-瑙嗗浘","isDefault":false,"seqNo":10,"conditions":[{"field":"keyword","operator":" +PASS 07 褰㈡€佸亸濂給verview鍒囩湅鏉库啋娓叉煋鈫掕繕鍘焞ist | 鐪嬫澘鍒?3;cards璇锋眰=True;杩樺師=True +PASS 08 宸ュ晢鑱旀兂(companyName)+NO_HIT鐜拌薄+STUB-LOOKUP娉ㄨ[D] | 鏈煡璇㈠埌鍖归厤浼佷笟锛堜竴鏈熶紒鏌ユ煡 port 涓?stub 鎭?NO_HIT锛屽瀹炲憟鐜帮紱鍙墜宸ュ綍鍏ワ紝鐪熷疄婧愭帴鍏ュ悗鑷姩婵€娲伙級銆? +PASS 09 鍚嶇О鏌ラ噸needConfirm+similarHits鈫抍onfirmSimilar閲嶅彂鈫掑垱寤烘垚鍔? | simbox=鐩镐技鍛戒腑 1 鏉★細e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃锛堣礋璐d汉=缃椾紵鍋ワ紝娼滃湪瀹㈡埛锛屾湁鏁堬級浠嶈鍒涘缓锛?纭鍒涘缓锛坈onfirmSimilar=;toast=鍒涘缓鎴愬姛 id=753771843382411264;澶瑰叿A=753771843382411264 +PASS 10 缂栬緫瀹㈡埛鍥炴樉+CAS淇濆瓨(鍚浉浼肩‘璁ら噸鍙? | 鍥炴樉鍚?e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃;simbox=鍛戒腑;toast=淇濆瓨鎴愬姛;db=e2c-dr-鎭掍俊杈剧鎶€鏈夐檺璐d换鍏徃-鏀?v1 +PASS 11 璇︽儏澶撮儴娓叉煋+4閲戦鍗℃亽--[D] | cards=['--', '--', '--', '-- / --'];P3-6瑙掓爣=1 +PASS 12 8椤电鍏ㄩ亶鍘?鑱旂郴浜洪《绾ц彍鍗昪ontact/page | subs=['info', 'contacts', 'follow', 'opps', 'projects', 'agreements', 'members', 'oplog'];contact/page琛?10;鏂板errs=[] +PASS 13 淇℃伅鏍呮牸16瀛楁+G4鍒涘缓/鏇存柊浜?-[D]+creditCode鏄庢枃 | kv=18;鍒涘缓浜?--;淇$敤浠g爜=91440101E2CTEST001 +PASS 14 鍟嗘満7鍒?G2-D)+椤圭洰椤电Noop绌烘€?contact/search鍛戒腑 | 鍟嗘満鍒?['鍟嗘満ID', '鍟嗘満鍚嶇О', '闃舵', '棰勮閲戦', '璐熻矗浜篒D', '璐熻矗浜?, '鏈€杩戞洿鏂?];Noop绌烘€?True;search=濮撳悕鑱屽姟鐢佃瘽鍏抽敭鑱旂郴浜烘潵婧愭墍灞炲鎴峰鎴风紪鍙峰紶鍏抽敭钁d簨闀?38****0001鏄痗ontact_source_01e2c- +PASS 15 鎴愬憳鍔燘UDDY鈫掓覆鏌撯啋绉婚櫎(G3-D鏃犺亴鍔?鍔犲叆鏃堕棿鍒? | 鍒楀ご=['鎴愬憳', '瑙掕壊', '鎿嶄綔'];DB鎴愬憳琛?28;memberUserIds閲嶅閿?True +PASS 16 鑱旂郴浜簈uickAdd2琛?G5鏃犺礋璐d汉鍒梉D]+鐢佃瘽鑴辨晱+reveal鏄庢枃+DB鍩嬬偣 | 鑴辨晱=True;DB鑱旂郴浜?5;reveal_log=8;鏄庢枃=True;鍒楀ご=['', '#', '濮撳悕', '鑱屽姟', '鑱旂郴鐢佃瘽', '鍏抽敭', '鍐呯嚎', '鏉ユ簮', '绀煎搧澶囨敞', '鎿嶄綔'];qaRet={"successCount":2,"failedRows":[]} +PASS 17 batchEdit绌轰覆=DB涓嶆敼(D-G1)[D]+check-phone鍛戒腑+鍒犻櫎鍙屽埛 | DB phone=13812340001;D-G1瑙掓爣=1;check-phone=瀹㈡埛缂栧彿--瀹㈡埛鍚嶇О--瀹㈡埛绫诲瀷--闃舵--瀹㈡埛鏄熺骇--鍏崇郴鏄熺骇--鎴樼暐鍗忚--;鍒犲悗琛?4(鍒犲墠5,del_ok=True,errs+0);lid=753771972256595968;names=鏉庡啋鐑?璧靛啋鐑?鏉庢櫘閫?鐜嬮噸澶?寮犲叧閿? +PASS 18 鍐欒窡杩?鏃ユ湡鍒嗙粍+followWay绛涢€? | way閫夐」=6(绌?5);鏃ユ湡鍒嗙粍=5;绛涢€?True +PASS 19 鍏虫敞/閲嶇偣鏍囪+oplog鐣欑棔+action绛涢€? | action=CREATE绛涢€夊惈鏂板瀹㈡埛=True;action=FOLLOW绛涢€?True;DB璺熻繘=24 +PASS 20 瀹㈡埛瀵煎叆涓夋寮?缂虹渷浠介妫€FAIL鈫扗ONE璁℃暟=棰勬鈫掓槑缁嗗惢鍚? | 棰勬 t=2 ins=1 fail=1;taskId=753772071518994432;result={'taskId': '753772071518994432', 'importMode': 'APPEND_ONLY', 'templateVersion': 'V1', 'status': 2, 'totalCount': 2, 'insertCount': 1, 'updateCount': 0, 'unchangedCount': 0, 'failCount': 1, 'suspectCount': 0, 'failReason': None, 'creatorName': Non +PASS 21 瀵煎叆浠诲姟鍒楄〃+status/importMode杩囨护+P3-3娉ㄨ[D] | status杩囨护=True;mode杩囨护=True;P3-3=1 +PASS 22 鑱旂郴浜哄鍏ヤ笁娈靛紡+P3-3鏃犳牎楠屽閫夋[D] | 棰勬=棰勬瀹屾垚锛堜换鍔?753772113634000896 寰呯‘璁わ級锛氬叡 2 琛岋紝棰勮鏂板 2銆佹洿鏂?0銆佸け璐?0銆佺枒浼奸噸澶?;result={'taskId': '753772113634000896', 'customerId': '753771843382411264', 'importMode': 'APPEND_ONLY', 'templateVersion': 'V1', 'status': 2, 'totalCount': 2, 'insertCount': 2, 'updateCount': 0, 'unchangedCount': 0, 'failCount': 0, 'su +PASS 23 鍟嗘満鑱斿姩閾?UI寤哄晢鏈衡啋鎶涘叕娴锋嫤鎴啋鍏冲晢鏈衡啋鏀捐) | 鍟嗘満=753772150371909632;鐘舵€?鈫?;涓€娆elease鎷︽埅=True(toast=鍟嗘満宸插垱寤?id=753772150371909632锛涘鎴疯鎯呫€屽叧鑱斿晢鏈恒€嶉〉绛惧彲鍙嶆煡 || {"total":1,"s);杩涘叕娴?True +PASS 24 浜ゅ壊(preview鍦堝畾鈫抜nitiate鈫抪age鈫抎etail鈫抋ssignable鈫抋ssign鏄庣粏鎬佸彉鍖?F-13娓卨eftover=0) | 鍗曞彿=JG202609120001;鍦堝畾鍚す鍏?True;鏄庣粏=1鈫抋ssign鍚庡彉鍖?True(assign瀵硅薄=99021002);UI琛?10 +PASS 25 褰掑睘鍔ㄤ綔鏃?release鈫抍laim鈫抋rchive鈫抮estore鈫掑啀archive+oplog+assign) | 杩涘叕娴?True(pool榛樿瑙嗗浘琛?0,娓呰鍥惧悗琛?1);claim=True({"total":1,"successCount":1,"failCount":);archive=True({"total":1,"successCount":1,"failCount":);assign=True(success=1 fail=0);鎭㈠1鈫掑啀褰掓。2;oplog=3 +PASS 26 鏌ラ噸璁剧疆璇烩啋鏀?0鈫抯ave鐢熸晥鈫掕繕鍘?鍚尮閰嶆柟寮忎笉琚薄鏌? | 鍘?80鈫?0鈫掕繕鍘?80;mode=2(鍘?) +PASS 27 check-name鍛戒腑e2c-鎭掍俊杈?淇$敤浠g爜鎾炵爜67003(L3纭嫤)+check-credit-code L1 | check-name=check-name锛歔{"customerId":"753771720497692672","customerName;err=缁熶竴绀句細淇$敤浠g爜宸茶鍗犵敤锛氱郴缁熷凡瀛樺湪璇ヤ紒涓?(code=67003);creditCode.exists=True +PASS 28 瓒呮湡鎻愰啋save闈炴硶0鈫?4023toast鈫掕繕鍘?0/7 | 64023=True;杩樺師=30/7(鍘?0/7) +PASS 29 鍏捣姹犻厤缃崰浣嶅崱鍙[D] | 瑙掓爣=1;绂佺敤杈撳叆=2 +PASS 30 缂洪櫡鍙拌处闈㈡澘(A鈮?4/B4/C14/D1+鍥哄畾澹版槑) | A=14 B=4 C=14 D=1;娓叉煋琛?33 +PASS 31 data-defect瑙掓爣鈮?2涓斿叧閿被鐩綈鍏?澶氶〉绛剧疮璁? | 绱=87;绫荤洰=['D-G1', 'G1', 'G2', 'G3', 'G4', 'G5', 'I-06', 'P3-3', 'P3-6', 'POOL-CFG', 'STUB-LOOKUP'] +PASS 32 I-06鍙岀幇璞?pool鏃燽oard閫夐」+娉ㄨ鍚?7001/璁板繂鎴愬姛) | fForm閫夐」=['list', 'split'] +PASS 33 璞佸厤鍏ュ彛涓嶅嚭鐜?鎹㈣礋璐d汉/鏃ュ織瀵煎嚭/瀹屾暣閲戦寮€鍏?瀵煎叆鏍¢獙澶嶉€夋) | 鍛戒腑=0 +PASS 34 G绯诲垪鍚堝苟澶嶆牳(G1鏃犳搷浣滀汉绛涢€?G2涓冨垪/G3涓ゅ垪缂?G4--[D]/G5鏃犺礋璐d汉鍒?G6绌烘€? | G1=True G2=True G3=True G4=True G5=True G6=True +PASS 35 閲戦鍗3-6鍥涘崱--鍙e緞+鍏宠仈椤圭洰Noop绌烘€? | cards=['--', '--', '--', '-- / --'] +PASS 36 company-lookup NO_HIT+F6 stub鏂囨 | NO_HIT=True;F6stub=True +PASS 37 console/pageerror=0 | 鏃犻敊璇? +PASS 38 闆禤UT/DELETE(ADR-0017) | 杩濅緥=[] +PASS 39 绔偣瑕嗙洊骞垮害(鍞竴璺緞鈮?0+鐭╅樀娓呭崟50鏉? | 鍞竴璺緞=91;缂哄け=[] +PASS 40 澶瑰叿姝i棬娓呮壂+瑙勫垯/褰㈡€佸亸濂借繕鍘熸牳瀵? | 娓呮壂=4琛?娈嬬暀=0;dedup=80(鍘?0);reminder=30(鍘?0);overview褰㈡€?list + +==== summary ==== 40 steps, 0 failed (176.4s) 鈫?e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\smoke-report.json +ALL_PASS: True diff --git a/.scratch/customer-demo-ref/demo/_server.log b/.scratch/customer-demo-ref/demo/_server.log new file mode 100644 index 0000000..e69de29 diff --git a/.scratch/customer-demo-ref/demo/_t14api.py b/.scratch/customer-demo-ref/demo/_t14api.py new file mode 100644 index 0000000..a7e6bf3 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14api.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +"""票14 API 复现:check-name 对库内存量同名客户的真实行为。""" +import io, sys, json, urllib.request, urllib.parse +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + +BASE = "http://localhost:8080" +ADMIN = "739564171091247104" + +def get_json(url, token=None): + req = urllib.request.Request(url) + if token: req.add_header("Authorization", "Bearer " + token) + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()) + +tok = get_json(f"{BASE}/api/auth/debug/token?userId={ADMIN}").get("data") +if isinstance(tok, dict): tok = tok.get("token") +print("token:", (tok or "")[:20], "...") + +def ck(name): + u = f"{BASE}/api/customer/check-name?name={urllib.parse.quote(name)}" + try: + d = get_json(u, tok) + print(f"check-name[{name}] code={d.get('code')} data={json.dumps(d.get('data'), ensure_ascii=False)[:300]}") + except Exception as e: + print(f"check-name[{name}] EXC {e}") + +# 1) 库内现存 13 条同名:EXACT 模式应命中 +ck("e2c-恒信达科技有限公司") +# 2) sweep 已清的 seed 名:应空(无同名) +ck("e2c-dr-恒信达科技有限责任公司") +# 3) 部分词:EXACT 模式不命中 +ck("e2c-恒信达") +# 4) dedup 设置现状 +d = get_json(f"{BASE}/api/rule/customer/dedup", tok) +print("dedup:", json.dumps(d.get("data"), ensure_ascii=False)) diff --git a/.scratch/customer-demo-ref/demo/_t14cols.py b/.scratch/customer-demo-ref/demo/_t14cols.py new file mode 100644 index 0000000..9f9ee3b --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14cols.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +import pymysql, io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +conn = pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) +with conn.cursor() as cur: + for t in ("customer", "customer_contact", "customer_member", "customer_follow", + "customer_transfer", "customer_transfer_detail", "import_task", "contact_import_task"): + try: + cur.execute("SHOW COLUMNS FROM " + t) + cols = [r["Field"] for r in cur.fetchall()] + print(t, "→", cols) + except Exception as e: + print(t, "ERR", e) +conn.close() diff --git a/.scratch/customer-demo-ref/demo/_t14d7.py b/.scratch/customer-demo-ref/demo/_t14d7.py new file mode 100644 index 0000000..58b6521 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14d7.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +"""第七轮诊断:①seed 联系人 jobTitleName ②pool+viewType 复现 ③edit CAS 复现""" +import io, sys, json, urllib.request, urllib.parse +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', line_buffering=True) +sys.path.insert(0, r"e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo") +import pymysql + +BASE = "http://localhost:8080" +ADMIN = "739564171091247104" + +def get_json(url, token=None): + req = urllib.request.Request(url) + if token: req.add_header("Authorization", "Bearer " + token) + with urllib.request.urlopen(req, timeout=30) as r: + return json.loads(r.read().decode()) + +def post(url, data, token=None): + req = urllib.request.Request(url, data=urllib.parse.urlencode(data).encode(), method="POST") + req.add_header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8") + if token: req.add_header("Authorization", "Bearer " + token) + with urllib.request.urlopen(req, timeout=30) as r: + return json.loads(r.read().decode()) + +def db(): + return pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', autocommit=True, connect_timeout=10, + cursorclass=pymysql.cursors.DictCursor) + +tok = get_json(f"{BASE}/api/auth/debug/token?userId={ADMIN}").get("data") +if isinstance(tok, dict): tok = tok.get("token") + +print("== ① seed 联系人 jobTitleName ==") +with db() as conn, conn.cursor() as cur: + cur.execute("SELECT id, name, job_title_id, job_title_name, phone FROM customer_contact " + "WHERE customer_id=750844477165273088 AND deleted=0 ORDER BY id") + for r in cur.fetchall(): + print(" ", r) + +print("== ② pool+viewType 复现(对 e2c-dr-imp 客户) ==") +with db() as conn, conn.cursor() as cur: + cur.execute("SELECT id, customer_name, owner_user_id, archive_status, version FROM customer " + "WHERE customer_name LIKE 'e2c-dr%' AND deleted=0") + rows = cur.fetchall() + for r in rows: print(" ", r) + +def wsp(view, kw="e2c-dr-imp"): + body = {"workspace": "pool", "current": "1", "size": "50", "viewType": view, "keyword": kw, "archiveStatus": "1"} + return post(f"{BASE}/api/customer/workspace/page", body, tok) + +for v in ("ASSIGNED", "", "COLLABORATING"): + try: + d = wsp(v) + c = (d.get("data") or {}) + rows2 = c.get("content") or [] + print(" pool viewType=%r -> total=%s rows=%s" % (v, c.get("total"), [r.get("customerName") for r in rows2][:5])) + except Exception as e: + print(" pool viewType=%r -> ERR %s" % (v, e)) + +print("== ③ edit CAS 复现(对恒信达 seed) ==") +with db() as conn, conn.cursor() as cur: + cur.execute("SELECT id, customer_name, version FROM customer WHERE customer_name='e2c-dr-恒信达科技有限责任公司' AND deleted=0") + rows3 = cur.fetchall() + for r in rows3: print(" before:", r) +if rows3: + cid = str(rows3[0]["id"]); ver = str(rows3[0]["version"]) + det = get_json(f"{BASE}/api/customer/detail?id={cid}", tok) + dv = ((det.get("data") or {}).get("detail") or {}).get("version") + print(" detail.version =", dv, "| db.version =", ver) + body = {"customerName": "e2c-dr-恒信达科技有限责任公司-改", "customerType": "customer_type_01", + "provinceCode": "440000", "cityCode": "440100", "districtCode": "440103", + "industryCode": "I", "version": ver} + ret = post(f"{BASE}/api/customer/edit?id={cid}", body, tok) + print(" edit ret:", json.dumps(ret, ensure_ascii=False)[:200]) + with db() as conn, conn.cursor() as cur: + cur.execute("SELECT id, customer_name, version FROM customer WHERE id=%s", (int(cid),)) + for r in cur.fetchall(): print(" after:", r) + # 还原 + cur.execute("UPDATE customer SET customer_name='e2c-dr-恒信达科技有限责任公司' WHERE id=%s", (int(cid),)) + print(" (已还原名字)") diff --git a/.scratch/customer-demo-ref/demo/_t14db.py b/.scratch/customer-demo-ref/demo/_t14db.py new file mode 100644 index 0000000..1a668a7 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14db.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +import pymysql, io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', line_buffering=True) +conn = pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) +cur = conn.cursor() +cur.execute("SELECT id, customer_name, archive_status, owner_user_id FROM customer WHERE customer_name LIKE 'e2c-dr-imp%'") +for r in cur.fetchall(): print(r) +print('---- oplog of e2c-dr-imp% customers ----') +cur.execute("SELECT customer_id, action, detail FROM customer_oplog WHERE customer_id IN (SELECT id FROM customer WHERE customer_name LIKE %s) ORDER BY id DESC LIMIT 8", ('e2c-dr-imp%',)) +for r in cur.fetchall(): print(r) +print('---- transfer bills (recent) ----') +cur.execute("SELECT id, transfer_no, status, reason, to_director_id, total_count, assigned_count, create_time FROM customer_transfer ORDER BY id DESC LIMIT 3") +for r in cur.fetchall(): print(r) +conn.close() diff --git a/.scratch/customer-demo-ref/demo/_t14diag.py b/.scratch/customer-demo-ref/demo/_t14diag.py new file mode 100644 index 0000000..4fd03de --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14diag.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +"""票14 取证第二轮:transfer_detail 列结构 / 查重设置现状 / 撞码 seed 客户。""" +import io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +import pymysql + +def db(): + return pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', autocommit=True, + connect_timeout=10, cursorclass=pymysql.cursors.DictCursor) + +def q(sql, args=None): + with db() as c, c.cursor() as cur: + cur.execute(sql, args); return cur.fetchall() + +print("== 1) customer_transfer_detail 列结构 ==") +for r in q("SHOW COLUMNS FROM customer_transfer_detail"): + print(r["Field"], r["Type"], r["Null"], r["Default"]) + +print("== 2) customer_dedup_rule 现状(查重设置是否被污染)==") +for r in q("SELECT * FROM customer_dedup_rule"): + print(r) + +print("== 3) 最近 3 张交割单明细(SELECT *)==") +for r in q("SELECT id, transfer_no, status FROM customer_transfer ORDER BY id DESC LIMIT 3"): + print(r) + for d in q("SELECT * FROM customer_transfer_detail WHERE transfer_id=%s", (r["id"],)): + print(" 明细:", d) + +print("== 4) 信用代码 91440101E2CTEST001 占用者 ==") +for r in q("SELECT id, customer_name, archive_status, deleted FROM customer WHERE unified_credit_code=%s", ("91440101E2CTEST001",)): + print(r) diff --git a/.scratch/customer-demo-ref/demo/_t14org.py b/.scratch/customer-demo-ref/demo/_t14org.py new file mode 100644 index 0000000..84f82fb --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14org.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import pymysql, io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', line_buffering=True) +conn = pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) +cur = conn.cursor() +cur.execute("SHOW TABLES LIKE 'sys%%'") +print('sys tables:', [r[list(r)[0]] for r in cur.fetchall()]) +try: + cur.execute("SELECT id, name, dept_id, enabled, employment_status FROM sys_user WHERE id IN (739564171091247104, 744842318024015872)") + for r in cur.fetchall(): print('user:', r) +except Exception as e: print('sys_user ERR', e) +try: + cur.execute("SELECT id, dept_name, leader_user_id FROM sys_dept") + for r in cur.fetchall(): print('dept:', r) +except Exception as e: print('sys_dept ERR', e) +conn.close() diff --git a/.scratch/customer-demo-ref/demo/_t14org2.py b/.scratch/customer-demo-ref/demo/_t14org2.py new file mode 100644 index 0000000..c2c4266 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14org2.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +import pymysql, io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', line_buffering=True) +conn = pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) +cur = conn.cursor() +cur.execute("SHOW TABLES") +tabs = [r[list(r)[0]] for r in cur.fetchall()] +print('all tables:', tabs) +utabs = [t for t in tabs if 'user' in t.lower()] +for t in utabs: + try: + cur.execute("SHOW COLUMNS FROM " + t) + print(t, 'cols:', [r['Field'] for r in cur.fetchall()]) + except Exception as e: print(t, 'ERR', e) +for t in utabs: + try: + cur.execute("SELECT * FROM " + t + " WHERE user_id IN (739564171091247104, 744842318024015872) OR id IN (739564171091247104, 744842318024015872)") + for r in cur.fetchall(): print(t, r) + except Exception as e: pass +conn.close() diff --git a/.scratch/customer-demo-ref/demo/_t14org3.py b/.scratch/customer-demo-ref/demo/_t14org3.py new file mode 100644 index 0000000..82f42b9 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14org3.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import pymysql, io, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', line_buffering=True) +conn = pymysql.connect(host='8.129.84.155', port=3306, user='root', password='Itc@123456', + database='crm', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) +cur = conn.cursor() +cur.execute("SELECT id, username, account, dept_id, enabled, employment_status FROM crm_auth_user WHERE id IN (739564171091247104, 744842318024015872)") +for r in cur.fetchall(): print('user:', r) +buddy_dept = None +cur.execute("SELECT dept_id FROM crm_auth_user WHERE id=744842318024015872") +row = cur.fetchone() +if row: buddy_dept = row['dept_id'] +print('buddy dept_id =', buddy_dept) +if buddy_dept: + cur.execute("SELECT id, dept_name, leader_user_id FROM sys_dept WHERE id=%s", (buddy_dept,)) + for r in cur.fetchall(): print('buddy dept:', r) +conn.close() diff --git a/.scratch/customer-demo-ref/demo/_t14scan.py b/.scratch/customer-demo-ref/demo/_t14scan.py new file mode 100644 index 0000000..2c33876 --- /dev/null +++ b/.scratch/customer-demo-ref/demo/_t14scan.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +"""票 14 前置扫描:demo/index.html 函数签名 + 控件 id + 关键 JS 段行号""" +import io, re, sys +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +P = r"e:\code\crm-backend-matt\.scratch\customer-demo-ref\demo\index.html" +txt = open(P, encoding='utf-8').read() +lines = txt.split('\n') + +# 1) 全部函数签名(行号) +print("== FUNCTIONS ==") +for i, ln in enumerate(lines, 1): + for m in re.finditer(r'(?:async\s+)?function\s+([A-Za-z_$][\w$]*)\s*\(([^)]*)\)', ln): + print(f"L{i} {m.group(1)}({m.group(2)[:60]})") + +# 2) HTML/JS 控件 id +ids = sorted(set(re.findall(r'id="([^"]+)"', txt))) +print("\n== IDS(%d) ==" % len(ids)) +print(", ".join(ids)) + +# 3) 关键锚点行号(辅助定向阅读) +anchors = ["dlgCreate", "dlgOppCreate", "doOppCreate", "impUpload", "impConfirm", + "cimpUpload", "cimpConfirm", "transfer/", "dlgTransferEntry", "dedup", + "reminder", "check-name", "check-phone", "reveal", "defect-panel", + "svDelete", "saveForm", "loadForm", "errbox", "memberUserIds", + "batchUnarchive", "unarchive", "openQa", "qaSubmit", "dlgFollow", "act("] +print("\n== ANCHORS ==") +for a in anchors: + hits = [i for i, ln in enumerate(lines, 1) if a in ln][:8] + print(f"{a}: {hits}") diff --git a/.scratch/customer-demo-ref/demo/index.html b/.scratch/customer-demo-ref/demo/index.html index feec12d..cabeb1e 100644 --- a/.scratch/customer-demo-ref/demo/index.html +++ b/.scratch/customer-demo-ref/demo/index.html @@ -177,6 +177,7 @@ tr.err-row td { background:#fef2f2 !important; }
@@ -232,6 +279,7 @@ tr.err-row td { background:#fef2f2 !important; } + @@ -248,6 +296,7 @@ tr.err-row td { background:#fef2f2 !important; } + D-G1:空值提交=不修改(清空语义豁免) @@ -257,6 +306,7 @@ tr.err-row td { background:#fef2f2 !important; }
+ ⚠G5
@@ -296,6 +346,26 @@ tr.err-row td { background:#fef2f2 !important; } + + +
-
导入任务(仅本人可见,creator 过滤) +
导入任务(仅本人可见,creator 过滤;#63 状态/模式过滤已接 ImportPageParam) +
+ + +
任务ID模式状态总数新增更新未变化失败疑似失败原因提交时间操作
@@ -377,6 +456,14 @@ tr.err-row td { background:#fef2f2 !important; }
+
+ 客户公海池配置 POOL-CFG(未实现 · 只读占位) +
+ + +
POOL-CFG(决策票 02 核实):客户公海池配置后端未实现且原型无此页;客户公海=固定准入规则的虚拟池,非可配置池。线索域公海池配置(/api/rule/pool)不属客户域,不得混入。
+
+
查重试玩(消费侧试玩 · 配置走上方查重设置单例;信用代码恒开无配置)
@@ -530,7 +617,7 @@ async function loginByUid() { localStorage.setItem('e2c_me', JSON.stringify(me)); paintWho(); toast('登录成功: ' + (me.userName || me.nickName || uid), 'ok'); - S.page = 1; loadList(); loadSummary(); + switchWs(S.ws); } catch (e) { toast('登录异常: ' + e.message, 'err'); } } function switchUser(uid) { $('uidInput').value = uid; loginByUid(); } @@ -546,11 +633,32 @@ function switchTab(t) { } /* ================= 客户列表 ================= */ -const S = { ws: 'mine', page: 1, size: 10, total: 0, rows: [], picked: new Set() }; -function switchWs(ws) { - S.ws = ws; S.page = 1; S.picked.clear(); paintPick(); +const S = { ws: 'mine', page: 1, size: 10, total: 0, rows: [], picked: new Set(), form: 'list', savedViewId: null, savedViews: [], bCol: 'stage' }; +const CUST_TYPE = { customer_type_01: '总包', customer_type_02: '工程商', customer_type_03: '投资方', customer_type_04: '设计院', customer_type_05: '集成商', customer_type_06: '投标公司' }; // field-alignment 字典专节(DictDataInitializer 种子同值) +const BOARD_GROUP = { stage: { 1: '潜在', 2: '重潜', 3: '已成交' }, star: { 1: '★1', 2: '★2', 3: '★3', 4: '★4', 5: '★5' }, relation: { 1: '★1', 2: '★2', 3: '★3', 4: '★4', 5: '★5' } }; +const wsScope = () => 'customer.' + S.ws; +function typeName(code) { return CUST_TYPE[code] || code || '--'; } +function industryName(code) { + if (!code) return '--'; + for (const g of INDUSTRY) { + if (g.code === code) return g.name; + for (const c of (g.children || [])) if (c.code === code) return c.name; + } + return code; +} +async function switchWs(ws) { + S.ws = ws; S.page = 1; S.picked.clear(); S.savedViewId = null; paintPick(); document.querySelectorAll('#tab-list .viewbar [data-ws]').forEach(b => b.classList.toggle('on', b.dataset.ws === ws)); - loadList(); loadSummary(); + paintFormOptions(); + $('i06Note').style.display = ws === 'pool' ? '' : 'none'; + loadSavedViews(); + loadForm(); + loadList(); +} +function fltReset() { + ['fStage', 'fType', 'fStar', 'fRelStar', 'fIndustry', 'fProvince'].forEach(id => { $(id).value = ''; }); + $('fArchive').value = '1'; + S.page = 1; loadList(); } async function loadList(dir) { if (!TOKEN()) { $('listHint').textContent = '请先登录'; return; } @@ -560,12 +668,19 @@ async function loadList(dir) { try { const d = await api('/api/customer/workspace/page', { method: 'POST', - body: qs({ workspace: S.ws, current: S.page, size: S.size, viewType: $('fViewType').value, keyword: $('fKeyword').value.trim() }) + body: qs({ + workspace: S.ws, current: S.page, size: S.size, viewType: $('fViewType').value, keyword: $('fKeyword').value.trim(), + archiveStatus: $('fArchive').value, customerStage: $('fStage').value, customerType: $('fType').value, + customerStarLevel: $('fStar').value, relationStarLevel: $('fRelStar').value, + industryCode: $('fIndustry').value.trim(), provinceCode: $('fProvince').value.trim(), + savedViewId: ($('fViewType').value === 'RECENT' ? '' : (S.savedViewId || '')) + }) }); S.rows = (d && d.content) || []; S.total = (d && d.total) || 0; if (!S.rows.length && S.page > 1) { S.page = 1; return loadList(); } - $('listBody').innerHTML = S.rows.length ? S.rows.map(rowHtml).join('') : '无数据'; + paintHead(); + $('listBody').innerHTML = S.rows.length ? S.rows.map(rowHtml).join('') : '无数据'; $('pageInfo').textContent = '第 ' + S.page + ' 页 / 共 ' + S.total + ' 条'; $('listHint').textContent = ''; paintPick(); @@ -573,34 +688,158 @@ async function loadList(dir) { } function badge(txt, cls) { return '' + esc(txt) + ''; } function star(n) { return n ? '★'.repeat(Number(n)) : '--'; } +/* 列组随 workspace 切换(原型差异:mine/overview 有负责人+部门,pool 无负责人列、加进入公海时间固定列) */ +function listCols() { + const base = ['关注', '客户名称', '编号', '阶段', '星级', '类型', '行业', '协议等级', 'VIP等级']; + const tail = ['商机数', '项目数', '最近跟进', '操作']; + return S.ws === 'pool' ? base.concat(['进入公海时间'], tail) : base.concat(['负责人', '所属部门'], tail); +} +function paintHead() { + $('listHead').innerHTML = '' + listCols().map(h => '' + h + '').join('') + ''; +} function rowHtml(r) { const ck = S.picked.has(String(r.id)) ? ' checked' : ''; - return '' + - '' + - '' + (Number(r.focusFlag) ? '★' : '☆') + '' + - '' + esc(r.customerName) + '' + - '' + esc(r.customerNo) + '' + - '' + badge(STAGE[r.customerStage] || r.customerStage, r.customerStage === 3 ? 'b2' : 'b1') + '' + - '' + star(r.customerStarLevel) + '' + - '' + esc(r.ownerNameSnapshot || r.ownerUserNameSnapshot || r.ownerUserId) + '' + - '' + esc(r.ownerDeptNameSnapshot || '--') + '' + - '' + (r.opportunityCount == null ? '--' : r.opportunityCount) + '' + - '--' + - '' + esc(r.lastValidFollowTime || '--') + '' + - ''; + const nameClick = (S.form === 'split' ? 'splitPick' : 'openDetail') + '(\'' + r.id + '\')'; + const c = []; + c.push(''); + c.push('' + (Number(r.focusFlag) ? '★' : '☆') + ''); + c.push('' + esc(r.customerName) + ''); + c.push('' + esc(r.customerNo) + ''); + c.push('' + badge(STAGE[r.customerStage] || r.customerStage, r.customerStage === 3 ? 'b2' : 'b1') + ''); + c.push('' + star(r.customerStarLevel) + ''); + c.push('' + esc(typeName(r.customerType)) + ''); + c.push('' + esc(industryName(r.industryCode)) + ''); + c.push('' + (r.strategicAgreementLevel == null ? '--' : esc(r.strategicAgreementLevel)) + ''); + c.push('' + (r.vipCustomerLevel == null ? '--' : esc(r.vipCustomerLevel)) + ''); + if (S.ws === 'pool') c.push('' + esc(r.enterPoolTime || '--') + ''); + else { + c.push('' + esc(r.ownerNameSnapshot || r.ownerUserNameSnapshot || '--') + ''); + c.push('' + esc(r.ownerDeptNameSnapshot || '--') + ''); + } + c.push('' + (r.opportunityCount == null ? '--' : esc(r.opportunityCount)) + ''); + c.push('' + (r.projectCount == null ? '--' : esc(r.projectCount)) + ''); // K5:三方漂移收敛=按实返回,null 兜底 "--" + c.push('' + esc(r.lastValidFollowTime || '--') + ''); + c.push(' '); + return '' + c.join('') + ''; } function pick(id) { const k = String(id); if (S.picked.has(k)) S.picked.delete(k); else S.picked.add(k); paintPick(); } function paintPick() { $('pickHint').textContent = S.picked.size ? '已勾选 ' + S.picked.size + ' 条:' + [...S.picked].join(', ') : '未勾选'; } const pickedIds = () => [...S.picked]; -async function loadSummary() { - const box = $('summaryBox'); - if (!TOKEN()) { box.textContent = '请先登录'; return; } + +/* ---- saved-view 自定义视图(票 10;scopeKey=customer.mine/overview/pool;RECENT 不接) ---- + 契约(field-alignment #7):save 为全平台唯一 @RequestBody JSON 例外(ADR-0017 范围外); + 本期前端只提交 1 组条件(keyword like),conditions 为空数组=基础集。 */ +async function loadSavedViews() { + if (!TOKEN()) { S.savedViews = []; svPaint(); return; } + try { S.savedViews = (await api('/api/preference/view/list?scopeKey=' + wsScope())) || []; } + catch (e) { S.savedViews = []; } + svPaint(); +} +function svPaint() { + const dis = $('fViewType').value === 'RECENT'; + $('svSel').disabled = dis; + $('svSel').innerHTML = '' + + S.savedViews.map(v => '').join(''); +} +async function svNew() { + if ($('fViewType').value === 'RECENT') return toast('RECENT 视图不接 saved-view', 'err'); + const name = prompt('视图名称(存入 customer.' + S.ws + ' 作用域)', ''); + if (!name) return; + const kw = $('fKeyword').value.trim(); + const body = { name: name, isDefault: false, seqNo: (S.savedViews.length + 1) * 10, + conditions: kw ? [{ field: 'keyword', operator: 'like', value: kw }] : [] }; + try { + const viewId = await api('/api/preference/view/save?scopeKey=' + wsScope(), { method: 'POST', headers: { 'Content-Type': 'application/json;charset=UTF-8' }, body: JSON.stringify(body) }); + toast('视图已保存' + (viewId ? ': ' + viewId : ''), 'ok'); + S.savedViewId = viewId || null; + await loadSavedViews(); + S.page = 1; loadList(); + } catch (e) { toast('保存视图失败: ' + e.message + codeSuffix(e), 'err'); } +} +function svPick(v) { S.savedViewId = v || null; S.page = 1; loadList(); } +async function svSetDefault() { + if (!S.savedViewId) return toast('请先在下拉选中一个视图', 'err'); + try { await api('/api/preference/view/set-default?scopeKey=' + wsScope() + '&viewId=' + S.savedViewId, { method: 'POST' }); toast('已设为默认视图', 'ok'); loadSavedViews(); } + catch (e) { toast('失败: ' + e.message + codeSuffix(e), 'err'); } +} +async function svDelete() { + if (!S.savedViewId) return toast('请先在下拉选中一个视图', 'err'); + try { await api('/api/preference/view/delete?scopeKey=' + wsScope() + '&viewId=' + S.savedViewId, { method: 'POST' }); toast('视图已删除', 'ok'); S.savedViewId = null; loadSavedViews(); } + catch (e) { toast('失败: ' + e.message + codeSuffix(e), 'err'); } +} + +/* ---- 形态偏好 view-form(票 10;list/split/board;pool 不给 board 选项=I-06 注记口径) ---- */ +function paintFormOptions() { + $('fForm').innerHTML = '' + (S.ws === 'pool' ? '' : ''); +} +async function loadForm() { + try { S.form = (await api('/api/preference/view-form/get?scopeKey=' + wsScope())) || 'list'; } + catch (e) { S.form = 'list'; } + if (S.form === 'board' && S.ws === 'pool') S.form = 'list'; // I-06:保存侧对 pool+board 记忆成功,渲染侧不提供 + paintForm(); +} +function paintForm() { + const f = S.form === 'board' ? 'board' : (S.form === 'split' ? 'split' : 'list'); + $('fForm').value = f; + $('listTable').style.display = f === 'board' ? 'none' : ''; + $('boardBox').style.display = f === 'board' ? '' : 'none'; + $('splitPanel').style.display = f === 'split' ? '' : 'none'; + $('splitHint').style.display = f === 'split' ? '' : 'none'; + if (f === 'board') loadBoard(); +} +async function saveForm(v) { + if (!v) return; + if (S.ws === 'pool' && v === 'board') { paintForm(); return; } // pool 下拉无 board 选项,兜底不发送 + try { + await api('/api/preference/view-form/save', { method: 'POST', body: qs({ scopeKey: wsScope(), viewForm: v }) }); + S.form = v; toast('形态已保存: ' + v, 'ok'); + } catch (e) { toast('保存形态失败: ' + e.message + codeSuffix(e), 'err'); } + paintForm(); +} + +/* ---- 看板视图(票 10;summary 显式 groupColumn,字段 cnt/groupValue(K3);cards groupValue 必传) ---- */ +function cardHtml(r) { + return '
' + + '' + esc(r.customerName || '--') + ' ' + esc(r.customerNo || '--') + '
' + + '' + esc(STAGE[r.customerStage] || '--') + ' · ' + star(r.customerStarLevel) + ' · ' + esc(r.ownerNameSnapshot || r.ownerUserNameSnapshot || '无主') + '
'; +} +async function loadBoard() { + const box = $('boardRow'); + if (!TOKEN()) { box.innerHTML = '请先登录'; return; } + box.innerHTML = '看板加载中...'; + const col = S.bCol; try { - const d = await api('/api/customer/workspace/board/summary', { method: 'POST', body: qs({ workspace: S.ws, viewType: $('fViewType').value }) }); - const items = Array.isArray(d) ? d : Object.entries(d || {}).map(([k, v]) => ({ key: k, count: (v && typeof v === 'object') ? (v.count != null ? v.count : v.total) : v })); - box.className = 'sumcards'; - box.innerHTML = items.length ? items.map(it => '
' + esc(it.count != null ? it.count : '--') + '' + esc(it.name || it.key || '') + '
').join('') : ''; - } catch (e) { box.className = 'sumcards hint'; box.textContent = '汇总加载失败: ' + e.message; } + const sums = await api('/api/customer/workspace/board/summary', { method: 'POST', body: qs({ workspace: S.ws, viewType: $('fViewType').value, groupColumn: col }) }); + const map = {}; + (Array.isArray(sums) ? sums : []).forEach(it => { map[String(it.groupValue)] = it.cnt; }); + const defs = Object.keys(BOARD_GROUP[col] || {}); // 空列骨架前端补全(summary 仅返回有数据分组) + const cardLists = await Promise.all(defs.map(gv => + api('/api/customer/workspace/board/cards', { method: 'POST', body: qs({ workspace: S.ws, viewType: $('fViewType').value, groupColumn: col, groupValue: gv, current: 1, size: 20 }) }).catch(e => ({ err: e })))); + box.innerHTML = defs.map((gv, i) => { + const d = cardLists[i]; + const rows = (d && d.content) || []; + const cards = d && d.err ? '
加载失败: ' + esc(d.err.message) + '
' + : (rows.length ? rows.map(cardHtml).join('') : '
空列
'); + return '
' + + '' + BOARD_GROUP[col][gv] + ' ' + esc(map[String(gv)] != null ? map[String(gv)] : '0') + '' + + '
' + cards + '
'; + }).join(''); + } catch (e) { box.innerHTML = '看板加载失败: ' + esc(e.message) + codeSuffix(e) + ''; } +} + +/* ---- 分屏形态占位(票 10;卡片=列表行子集) ---- */ +function splitPick(id) { + const r = S.rows.find(x => String(x.id) === String(id)); + if (!r) return; + $('splitCard').innerHTML = '' + esc(r.customerName || '--') + ' ' + esc(r.customerNo || '--') + '' + + '
' + + '
阶段' + esc(STAGE[r.customerStage] || '--') + '
' + + '
星级' + star(r.customerStarLevel) + '
' + + '
类型' + esc(typeName(r.customerType)) + '
' + + '
行业' + esc(industryName(r.industryCode)) + '
' + + '
负责人' + esc(r.ownerNameSnapshot || r.ownerUserNameSnapshot || '--') + '
' + + '
最近跟进' + esc(r.lastValidFollowTime || '--') + '
' + + '
「详情」按钮进入完整详情页。
'; } /* ================= 联系人图谱/页签增强(票02 收编自 customer-contact-graph demo 修订⑧版) ================= */ @@ -622,6 +861,7 @@ const C = { list: [], query: { keyword: '', internal: '' }, checked: {}, editing let revealed = {}; // id -> true(单点临时明文;列表/图谱共享) let JOB_DICT = []; // [{cat, code, jobs:[{name, code, level}]}] let SOURCE_DICT = []; // [{code, name}] +let INDUSTRY = []; // 行业两级树 [{code, name, children:[{code, name}]}](列表行业列字典翻译用) let qaRows = []; const wrap = $('graphWrap'), canvasInner = $('canvasInner'), edgeSvg = $('edgeSvg'); const custName = () => D.cname || ('客户 ' + (D.id || '')); @@ -639,10 +879,12 @@ async function ensureDicts() { if (dictLoaded) return; const pair = await Promise.all([ api('/api/dict/item/tree?groupCode=job_title').catch(() => []), - api('/api/dict/item/enabled-list?groupCode=contact_source').catch(() => []) + api('/api/dict/item/enabled-list?groupCode=contact_source').catch(() => []), + api('/api/dict/item/tree?groupCode=industry').catch(() => []) ]); JOB_DICT = (pair[0] || []).map(g => ({ cat: g.name, code: g.code, jobs: (g.children || []).map(j => ({ name: j.name, code: j.code, level: j.level == null ? null : Number(j.level) })) })); SOURCE_DICT = (pair[1] || []).map(s => ({ code: s.code, name: s.name })); + INDUSTRY = pair[2] || []; dictLoaded = true; } /* 层级变化后一致性清理(用户拍板:同级不应有线;方向规则:上级层级必须 > 下级): @@ -927,7 +1169,7 @@ const DEFECT_LEDGER = { { id: 'G1', level: 'P2', ph: '跟进筛选无「操作人」', loc: '详情·页签3 筛选区', how: '①+②', copy: '后端 FollowPageParam 无操作人参数(G1),操作人筛选暂不可用' }, { id: 'G2', level: 'P2', ph: '关联商机 7 字段 vs 原型 13 列', loc: '详情·页签4', how: '①+②', copy: '原型期望 13 列,后端契约 7 字段(G2,挂账跨模块票);本页按实际契约渲染,缺列不补' }, { id: 'G3', level: 'P2', ph: '团队成员缺职务/加入时间两列', loc: '详情·页签7', how: '①+②', copy: '后端 CustomerMemberDTO 未暴露(G3);真源在实体,待 DTO 补列' }, - { id: 'G4', level: 'P2', ph: '系统信息四件套(创建/更新时间·人)恒 "--"', loc: '详情·页签1 系统信息区', how: '①+②', copy: '后端 CustomerDetailDTO 未暴露(G4),恒显 --' }, + { id: 'G4', level: 'P2', ph: '系统信息创建人/更新人恒 "--"(创建/更新时间实测有值)', loc: '详情·页签1 系统信息区', how: '①+②', copy: '后端 CustomerDetailDTO 未暴露创建人/更新人(G4);创建/更新时间经 BaseDTO 实测有值,如实渲染' }, { id: 'G5', level: 'P2', ph: '联系人列表缺「负责人」列', loc: '详情·页签2 列表', how: '①+②', copy: 'ContactDTO 未暴露负责人快照(G5)' }, { id: 'G6', level: 'P2', ph: '联系人维度操作日志无数据源', loc: '联系人页·日志子页签', how: '①+②', copy: '后端 CustomerOplog 无 contact 维度列(G6),本页签空态' }, { id: 'P3-6', level: 'P3', ph: '头部金额汇总卡 5 字段恒 null', loc: '详情头部·金额卡', how: '①+②', copy: '金额字段装配未接(P3-6),恒显 --' }, @@ -1012,6 +1254,8 @@ const formVal = id => { const el = $(id); return el ? el.value.trim() : ''; }; function dlgCreate() { dlgOpen('新建客户(三层查重内建:L2 名称相似 → needConfirm 确认后重发)', ` + @@ -1032,8 +1276,41 @@ function createForm() { isBizNegotiated: formVal('cBiz'), isChild: formVal('cChild'), ownerUserId: formVal('cOwner'), }; } -async function doCreate(confirmSimilar) { +/* ---- #24 工商联想(company-lookup;一期 stub 恒空数组=NO_HIT):只回填当前为空的字段,回填后立即 check-credit-code ---- */ +async function doLookup() { + const nm = formVal('cLk'); + if (!nm) { $('cOut').innerHTML = '
companyName 必填
'; return; } try { + const arr = await api('/api/customer/company-lookup?companyName=' + encodeURIComponent(nm)); + const list = Array.isArray(arr) ? arr : []; + if (!list.length) { + $('cOut').innerHTML = '
未查询到匹配企业(一期企查查 port 为 stub 恒 NO_HIT,如实呈现;可手工录入,真实源接入后自动激活)。
'; + return; + } + window._lookupHits = list; + $('cOut').innerHTML = '
命中 ' + list.length + ' 条(点「采用」只回填当前为空的字段,已填不覆盖):
' + + list.map((c, i) => '
' + esc(c.bizName || ('候选' + (i + 1))) + '' + + esc(c.unifiedCreditCode || '--') + ' / 法人=' + esc(c.legalRepresentative || '--') + ' / ' + esc(c.establishedDate || '--') + + '
').join(''); + } catch (e) { $('cOut').innerHTML = errHtml(e); } +} +async function applyLookup(i) { + const c = (window._lookupHits || [])[i]; + if (!c) return; + const put = (id, v) => { const el = $(id); if (el && v != null && v !== '' && !el.value.trim()) el.value = v; }; + put('cName', c.bizName); put('cCredit', c.unifiedCreditCode); + if (formVal('cCredit')) { + try { + const hit = await api('/api/customer/check-credit-code?creditCode=' + encodeURIComponent(formVal('cCredit'))); + $('cOut').innerHTML = '
已回填空字段;check-credit-code(回填即查重):' + esc(JSON.stringify(hit)) + '
'; + return; + } catch (e) { $('cOut').innerHTML = '已回填空字段;check-credit-code 失败: ' + errHtml(e); return; } + } + toast('已回填空字段(已填不覆盖)', 'ok'); +} +async function doCreate(cf) { + try { + const confirmSimilar = (cf === true || cf === 'true') ? true : undefined; // 同 doEdit:onclick 首参是事件对象,非显式 true 一律 undefined const d = await api('/api/customer/create', { method: 'POST', body: qs(Object.assign(createForm(), { confirmSimilar: confirmSimilar })) }); if (d && d.needConfirm) { const hits = d.similarHits || []; @@ -1063,15 +1340,25 @@ async function dlgEdit() { window._editBiz = d.isBizNegotiated; window._editChild = d.isChild; // 冒烟实证:edit 必带 isBizNegotiated+isChild(DB NOT NULL 无默认,D-05 关联) } catch (e) { toast(e.message, 'err'); } } -async function doEdit() { +async function doEdit(cf) { + /* dlgOpen 把 fn 直接挂 onclick(浏览器传 PointerEvent 作首参)→ 非显式 true 一律 undefined(qs 跳过) */ + const confirmSimilar = (cf === true || cf === 'true') ? true : undefined; const id = window._editId; try { - await api('/api/customer/edit?id=' + id, { method: 'POST', body: qs({ + const d = await api('/api/customer/edit?id=' + id, { method: 'POST', body: qs({ customerName: formVal('eName'), customerType: formVal('eType'), provinceCode: formVal('eProv'), cityCode: formVal('eCity'), districtCode: formVal('eDist'), industryCode: formVal('eInd'), customerStarLevel: formVal('eStar'), relationStarLevel: formVal('eRStar'), version: window._editVer, isBizNegotiated: window._editBiz, isChild: window._editChild, + confirmSimilar: confirmSimilar, }) }); + if (d && d.needConfirm) { // L2 名称相似(与服务端 needConfirm 契约同 create;不确认不落库) + const hits = d.similarHits || []; + $('eOut').innerHTML = '
相似命中 ' + hits.length + ' 条:
    ' + hits.map(h => + '
  • ' + esc(h.customerName) + '(负责人=' + esc(h.ownerName) + ')
  • ').join('') + + '
仍要保存?
'; + return; + } toast('保存成功', 'ok'); dlgClose(); loadList(); loadHead(); switchSub('info'); } catch (e) { $('eOut').innerHTML = errHtml(e); } } @@ -1102,17 +1389,22 @@ async function toggleFocus(id, target) { try { await api('/api/customer/' + (target ? 'focus' : 'unfocus') + '?id=' + id, { method: 'POST' }); toast(target ? '已关注' : '已取关', 'ok'); - loadList(); loadSummary(); + loadList(); } catch (e) { toast('失败: ' + e.message + codeSuffix(e), 'err'); } } function dlgAssign() { - const id = pickedIds()[0]; - if (!id) return toast('请先勾选客户行', 'err'); - dlgOpen('分配给销售', '' + + const ids = pickedIds(); + if (!ids.length) return toast('请先勾选客户行(支持整批分配)', 'err'); + dlgOpen('分配给销售(整批 ' + ids.length + ' 条 · assign-batch)', '' + '
', [{ text: '分配', ok: true, fn: async () => { - try { await act('/api/customer/assign?id=' + id + '&userId=' + formVal('asUser')); dlgClose(); } - catch (e) { $('asOut').innerHTML = errHtml(e); } + try { + const r = await api('/api/customer/assign-batch?ids=' + ids.join(',') + '&userId=' + formVal('asUser'), { method: 'POST' }); + const fails = (r && r.failures) || []; + $('asOut').innerHTML = '
总 ' + esc(r && r.total != null ? r.total : ids.length) + ' · 成功 ' + esc(r && r.successCount != null ? r.successCount : '-') + ' · 失败 ' + esc(r && r.failCount != null ? r.failCount : '-') + '
' + + (fails.length ? tableHtml(['客户 id', '原因', '说明'], fails.map(f => [esc(f.id || '--'), esc(f.reason || '--'), '' + esc(f.message || '--') + ''])) : ''); + loadList(); + } catch (e) { $('asOut').innerHTML = errHtml(e) + '
目标人员校验失败=整批拒绝(assign-batch 预检语义)。
'; loadList(); } } }]); } function dlgTransferEntry() { switchTab('transfer'); transferPage(0); } @@ -1157,7 +1449,15 @@ async function loadHead() { '|最近跟进:' + esc(d.lastFollowSummary || '--') + '(' + esc(d.lastFollowTime || '--') + ')' + '|下次跟进:' + esc(d.nextFollowTime || '--') + '|商机 ' + (d.opportunityCount == null ? '--' : d.opportunityCount) + - '|项目 ' + (d.projectCount == null ? '--' : d.projectCount) + '(契约恒 null 显 --)
' + + '|项目 ' + (d.projectCount == null ? '--' : d.projectCount) + '
' + + '
金额汇总' + dbadge('P3-6') + + '(4 卡装配未接 seam,契约恒 null 显 "--",不显 0)
' + + '
' + + '
已中标项目总额' + esc(d.wonProjectAmount == null ? '--' : d.wonProjectAmount) + '
' + + '
跟进中方案预估' + esc(d.planEstimateAmount == null ? '--' : d.planEstimateAmount) + '
' + + '
进行中商机总额' + esc(d.ongoingOpportunityAmount == null ? '--' : d.ongoingOpportunityAmount) + '
' + + '
合同/回款' + esc(d.contractAmount == null ? '--' : d.contractAmount) + ' / ' + esc(d.paidAmount == null ? '--' : d.paidAmount) + '
' + + '
' + '
' + '' + '' + @@ -1182,15 +1482,35 @@ async function switchSub(s) { try { if (s === 'info') { const d = await api('/api/customer/detail?id=' + D.id); - box.innerHTML = '
' + grid(d) + '
'; + box.innerHTML = '
客户信息(系统信息区:创建/更新时间经 BaseDTO 实测有值;创建人/更新人不暴露,恒 "--")' + dbadge('G4') + '
' + + '
' + grid(d) + '
'; } else if (s === 'follow') { - const d = await api('/api/customer/follow/page?id=' + D.id + '¤t=1&size=50'); - box.innerHTML = followHtml((d && d.content) || []); + box.innerHTML = '
' + + '' + + '' + + '' + + '' + + '' + dbadge('G1') + + '(原型有「操作人」筛选;FollowPageParam 无此参数,豁免不渲染)
' + + '
加载中...
'; + await loadFollow(); } else if (s === 'opps') { const d = await api('/api/customer/opportunity/page?id=' + D.id); const rows = Array.isArray(d) ? d : ((d && d.content) || []); - box.innerHTML = rows.length ? tableHtml(['商机名称', '阶段', '金额', '负责人', '状态'], rows.map(o => - [esc(o.opportunityName || o.name || o.id), esc(o.stageName || o.stage || '--'), esc(o.estimateAmount == null ? '--' : o.estimateAmount), esc(o.ownerUserName || o.ownerName || '--'), esc(o.statusName || o.status || '--')])) : '
无关联商机(port 反查,失败前端显 --)
'; + box.innerHTML = '
关联商机(契约 7 字段真名渲染;原型期望 13 列,缺列不补;port 失败/无数据显空态)' + dbadge('G2') + '
' + + tableHtml(['商机ID', '商机名称', '阶段', '预计金额', '负责人ID', '负责人', '最近更新'], rows.map(o => + [esc(o.id || '--'), esc(o.oppName || '--'), esc(o.stageName || '--'), + esc(o.estimateAmount == null ? '--' : o.estimateAmount), + esc(o.ownerUserId || '--'), esc(o.ownerNameSnapshot || '--'), esc(o.updateTime || '--')])); + } else if (s === 'projects') { + const d = await api('/api/customer/project/page?id=' + D.id + '¤t=1&size=50'); + const rows = (d && d.content) || []; + box.innerHTML = '
关联项目(真端点 CustomerProjectQueryPort 反查;当前后端为 Noop 实现 → 数据空态显 "--",K2 口径非硬占位)
' + + tableHtml(['项目名称', '阶段', '状态', '报备状态', '项目金额', '负责人', '最近更新'], rows.map(p => + [esc(p.projectName || '--'), esc(p.stageName || '--'), esc(p.statusName || '--'), + esc(p.filingStatusName || '--'), esc(p.projectAmount == null ? '--' : p.projectAmount), + esc(p.ownerNameSnapshot || p.ownerUserId || '--'), esc(p.updateTime || '--')])); } else if (s === 'agreements') { const d = await api('/api/customer/agreement/list?customerId=' + D.id); const rows = Array.isArray(d) ? d : ((d && d.content) || []); @@ -1201,8 +1521,16 @@ async function switchSub(s) { const rows = Array.isArray(d) ? d : ((d && d.content) || []); box.innerHTML = membersHtml(rows); } else if (s === 'oplog') { - const d = await api('/api/customer/oplog/page?id=' + D.id + '¤t=1&size=50'); - box.innerHTML = oplogHtml((d && d.content) || []); + box.innerHTML = '
' + + '' + + '' + + '' + + '' + + '' + + '(action 权威 18 种含 GRAPH_EDIT;AS §3「17 种」未同步——K4)
' + + '
加载中...
'; + await loadOplog(); } } catch (e) { box.innerHTML = errHtml(e); } } @@ -1210,9 +1538,10 @@ function grid(d) { const F = [['客户编号', 'customerNo'], ['客户名称', 'customerName'], ['客户类型', 'customerTypeName|customerType'], ['阶段', 'customerStageName|customerStage'], ['客户星级', 'customerStarLevel'], ['关系星级', 'relationStarLevel'], ['战略协议', 'strategicAgreementLevelName|strategicAgreementLevel'], ['VIP 等级', 'vipCustomerLevel'], - ['信用代码', 'creditCode'], ['省/市/区', 'provinceCode|cityCode|districtCode'], ['行业', 'industryName|industryCode'], + ['信用代码', 'unifiedCreditCode'], ['省/市/区', 'provinceCode|cityCode|districtCode'], ['行业', 'industryName|industryCode'], ['商务谈判', 'isBizNegotiated'], ['子客户', 'isChild'], ['负责人', 'ownerUserNameSnapshot|ownerUserId'], - ['创建时间', 'createTime'], ['更新时间', 'updateTime']]; + ['创建时间', 'createTime'], ['更新时间', 'updateTime'], + ['创建人', 'creatorId'], ['更新人', 'updaterId']]; // G4:creatorId/updaterId 不在 CustomerDetailDTO,恒 "--"(K1 两件口径) return F.map(p => { const v = p[1].split('|').map(k => d[k]).find(x => x !== undefined && x !== null && x !== ''); return '
' + p[0] + '' + esc(v === undefined ? '--' : v) + '
'; @@ -1224,16 +1553,19 @@ function tableHtml(heads, rows) { '无数据') + ''; } /* ---- 联系人:收编为 contactsShell 常驻面板(p4/p6 注入),旧 contactsHtml 退役 ---- */ -function dlgContact(cid) { +async function dlgContact(cid) { + if (!dictLoaded) await ensureDicts(); // K6:来源下拉走 contact_source 字典(group_meeting/group_activity/referral/other),旧硬编码 contact_source_01..04 为字典改版前遗留 const c = (window._contacts || []).find(x => String(x.id) === String(cid)) || {}; + const srcSel = '' + SOURCE_DICT.map(s => + '').join(''); dlgOpen(cid ? '编辑联系人' : '新建联系人(67008=入参非法/不属于该客户)', ` - + - +
`, [{ text: '保存', ok: true, fn: async () => { const fields = { name: formVal('ctName'), jobTitleName: formVal('ctJob'), phone: formVal('ctPhone'), isKeyContact: formVal('ctKey'), isInternal: formVal('ctInternal'), giftRemark: formVal('ctGift'), source: formVal('ctSource') }; @@ -1259,16 +1591,227 @@ function dlgCheckPhone(phone) { } catch (e) { $('cpOut').innerHTML = errHtml(e); } } }]); } +/* ================= 联系人独立菜单(票 12:#50 顶级列表 / contact.list 列偏好+形态偏好) ================= */ +const CT = { page: 1, size: 10, total: 0, rows: [] }; +const CT_COLS = [ + { k: 'jobTitleName', t: '职务' }, { k: 'phone', t: '电话' }, { k: 'isKeyContact', t: '关键联系人' }, + { k: 'isInternal', t: '内线' }, { k: 'source', t: '来源' }, { k: 'giftRemark', t: '礼品备注' }, + { k: 'customerName', t: '所属客户' } +]; +let ctVisibleKeys = null; // null=未取列偏好(全列显);姓名列固定不参与隐显 +function ctCols() { return ctVisibleKeys ? CT_COLS.filter(c => ctVisibleKeys.includes(c.k)) : CT_COLS; } +function ynCell(v) { return v == null ? '--' : (Number(v) === 1 ? '是' : '否'); } +function ctRowHtml(r) { + const c = []; + c.push('' + esc(r.name) + ''); + for (const col of ctCols()) { + let v; + if (col.k === 'phone') v = esc(r.phone || '--'); // K10:服务端已脱敏(138****1234),前端直显 + else if (col.k === 'isKeyContact' || col.k === 'isInternal') v = ynCell(r[col.k]); + else if (col.k === 'source') v = esc(sourceName(r.source)); // K6:字典驱动翻译 + else v = esc(r[col.k] == null ? '--' : r[col.k]); + c.push('' + v + ''); + } + c.push(''); + return '' + c.join('') + ''; +} +async function loadContactPage(dir) { + if (!TOKEN()) { $('ctPageInfo').textContent = '请先登录'; return; } + if (dir === -1) CT.page = Math.max(1, CT.page - 1); + else if (dir === 1) CT.page += 1; + $('ctPageInfo').textContent = '加载中...'; + try { + const d = await api('/api/customer/contact/page?current=' + CT.page + '&size=' + CT.size + '&keyword=' + encodeURIComponent($('cKw').value.trim())); + CT.rows = (d && d.content) || []; + CT.total = (d && d.total) || 0; + if (!CT.rows.length && CT.page > 1) { CT.page = 1; return loadContactPage(); } + $('ctPageHead').innerHTML = '姓名' + ctCols().map(c => '' + c.t + '').join('') + '操作'; + $('ctPageBody').innerHTML = CT.rows.length ? CT.rows.map(ctRowHtml).join('') : '无数据'; + $('ctPageInfo').textContent = '第 ' + CT.page + ' 页 / 共 ' + CT.total + ' 条'; + } catch (e) { $('ctPageInfo').textContent = '加载失败: ' + e.message; } +} +/* ---- 联系人菜单偏好:形态 view-form / 列偏好 preference(scopeKey=contact.list) ---- */ +async function loadContactForm() { + let v = 'list'; + try { v = (await api('/api/preference/view-form/get?scopeKey=contact.list')) || 'list'; } catch (e) { /* 未登录/网络失败回落 */ } + $('cForm').innerHTML = ''; + $('cForm').value = v; +} +async function saveContactForm(v) { + try { await api('/api/preference/view-form/save', { method: 'POST', body: qs({ scopeKey: 'contact.list', viewForm: v }) }); toast('形态偏好已保存(scopeKey=contact.list)', 'ok'); } + catch (e) { toast('失败: ' + e.message, 'err'); } +} +async function dlgCpEdit() { + try { + const p = await api('/api/preference/get?scopeKey=contact.list'); + const vis = (p && p.visibleKeys) || []; + dlgOpen('列偏好(scopeKey=contact.list;GET /api/preference/get + POST /api/preference/save,visibleKeys 重复键)', ` +
姓名列固定不可隐藏(对齐客户侧「客户名称固定列」口径);全不勾=保存空集(后读回落全列显)。
+ +
` + CT_COLS.map(c => + '').join('') + `
+
`, + [{ text: '保存', ok: true, fn: async () => { + const keys = [...document.querySelectorAll('.cpChk:checked')].map(x => x.value); + try { + await api('/api/preference/save?scopeKey=contact.list' + (keys.length ? '&' + keys.map(k => 'visibleKeys=' + encodeURIComponent(k)).join('&') : ''), { method: 'POST' }); + ctVisibleKeys = keys.length ? keys : null; + toast('列偏好已保存', 'ok'); dlgClose(); loadContactPage(); + } catch (e) { $('cpOut').innerHTML = errHtml(e); } + } }]); + } catch (e) { toast('读取列偏好失败: ' + e.message, 'err'); } +} +/* ---- 联系人详情弹窗(#51 contact/detail 回显)+ 操作日志空态(#53/G6)---- */ +async function dlgContactDetail(id) { + try { + const d = await api('/api/customer/contact/detail?id=' + id); + dlgOpen('联系人详情(contact/detail 回显;phone 脱敏形态提交=不改号)', ` +
+ + +
+
${ctInfoHtml(d)}
+ `, []); + } catch (e) { dlgOpen('联系人详情', errHtml(e), []); } +} +function ctInfoHtml(d) { + const kv = (t, v) => '
' + t + '' + (v == null || v === '' ? '--' : esc(v)) + '
'; + return kv('姓名', d.name) + kv('职务名称', d.jobTitleName) + kv('职务类别', d.jobTitleCategory) + kv('职务层级', d.jobTitleLevel) + + kv('电话(服务端脱敏)', d.phone) + kv('关键联系人', ynCell(d.isKeyContact)) + kv('内线', ynCell(d.isInternal)) + + kv('来源', sourceName(d.source)) + kv('礼品备注', d.giftRemark) + + kv('所属客户', d.customerName) + kv('客户编号', d.customerNo) + kv('所属客户 id', d.customerId); +} +function ctSubTab(i) { + $('ctPaneInfo').style.display = i === 0 ? '' : 'none'; + $('ctPaneLog').style.display = i === 1 ? '' : 'none'; + $('ctTabBtn0').classList.toggle('on', i === 0); + $('ctTabBtn1').classList.toggle('on', i === 1); +} +/* ---- 联系人全局搜索(#52 contact/search;商机「关键联系人」数据源演示)---- */ +function dlgContactSearch() { + dlgOpen('联系人全局搜索(GET /api/customer/contact/search?keyword=&limit=)', ` + + +
场景文案:商机表单「关键联系人」数据源——姓名/电话模糊 + 带出所属公司名;电话服务端脱敏(K10);客户可见性收口。
+
`, + [{ text: '搜索', ok: true, fn: async () => { + try { + const kw = formVal('csKw'); + if (!kw) { $('csOut').innerHTML = '
keyword 必填
'; return; } + const lim = formVal('csLimit'); + const arr = await api('/api/customer/contact/search?keyword=' + encodeURIComponent(kw) + (lim ? '&limit=' + lim : '')); + const rows = (arr || []).map(r => [esc(r.name), esc(r.jobTitleName || '--'), esc(r.phone || '--'), ynCell(r.isKeyContact), esc(sourceName(r.source)), esc(r.customerName || '--'), esc(r.customerNo || '--')]); + $('csOut').innerHTML = tableHtml(['姓名', '职务', '电话', '关键联系人', '来源', '所属客户', '客户编号'], rows); + } catch (e) { $('csOut').innerHTML = errHtml(e); } + } }]); +} +/* ================= 商机侧演示入口(票 12:#47 quick-create / #48 customer/search / 建商机) ================= */ +/* ---- #47 快建客户:K9 以 DTO 为准 7 必填 + confirmSimilar(.bru 漏 confirmSimilar/误标星级选填系漂移)---- */ +function dlgQuickCreate() { + dlgOpen('商机表单快建客户(POST /api/customer/quick-create;K9:DTO 全 7 必填,服务端 owner=当前用户)', ` + + + + + + +
confirmSimilar 默认 false(命中相似先回 needConfirm 列表,确认后 true 重发);查重三层与编号生成复用主表 create;similarHits 行级 masked(无权命中不透出业务字段);错误 67001/67003。
+
`, + [{ text: '快建', ok: true, fn: () => doQuickCreate(false) }]); +} +async function doQuickCreate(confirmSimilar) { + try { + const d = await api('/api/customer/quick-create', { method: 'POST', body: qs({ + customerName: formVal('qName'), customerType: formVal('qType'), + provinceCode: formVal('qProv'), cityCode: formVal('qCity'), industryCode: formVal('qInd'), + customerStarLevel: formVal('qStar'), relationStarLevel: formVal('qRStar'), + confirmSimilar: confirmSimilar + }) }); + if (d && d.needConfirm) { + const hits = d.similarHits || []; + $('qOut').innerHTML = '
命中相似客户 ' + hits.length + ' 条:仍要创建?
'; + return; + } + toast('快建成功:' + ((d && d.customerNo) ? d.customerNo + ' / ' : '') + ((d && d.customerName) || ''), 'ok'); dlgClose(); + } catch (e) { $('qOut').innerHTML = errHtml(e); } +} +/* ---- #48 商机候选客户三维搜索:keyword=名称/联系人/电话 ---- */ +function dlgCustSearch() { + dlgOpen('商机候选客户搜索(POST /api/customer/search;keyword 名称/联系人/电话三维模糊)', ` + + + + +
轻量 9 字段出参;选中后走 GET /api/customer/detail?id= 带出全量;DataScope 注入可见范围。
+
`, + [{ text: '搜索', ok: true, fn: async () => { + try { + const ex = formVal('dsEx').split(/[,\s,]+/).filter(Boolean); + const bodyStr = qs({ keyword: formVal('dsKw'), customerType: formVal('dsType'), archiveStatus: formVal('dsArchive') }) + + ex.map(x => '&excludeCustomerIds=' + encodeURIComponent(x)).join(''); + const d = await api('/api/customer/search', { method: 'POST', body: bodyStr }); + const rows = ((d && d.content) || []).map(r => [esc(r.id), esc(r.customerNo || '--'), esc(r.customerName), esc(typeName(r.customerType)), + esc(r.ownerUserId || '--'), esc(r.ownerName || '--'), esc(STAGE[r.customerStage] || r.customerStage || '--'), + esc(r.archiveStatus === 2 ? '已归档' : '有效')]); + $('dsOut').innerHTML = '
共 ' + ((d && d.total) || 0) + ' 条
' + + tableHtml(['id', '客户编号', '客户名称', '类型', '负责人id', '负责人', '阶段', '归档'], rows); + } catch (e) { $('dsOut').innerHTML = errHtml(e); } + } }]); +} +/* ---- 从客户发起建商机:POST /api/opportunity 预填 customerId(opp-deps §4;核心 6 必填 D-14)---- */ +function dlgOppCreate(cid) { + const r = S.rows.find(x => String(x.id) === String(cid)); + if (!r) return toast('行数据缺失,请刷新列表', 'err'); + dlgOpen('从客户发起建商机(POST /api/opportunity,预填 customerId/customerName;关联落 opportunity_customer,客户详情「关联商机」页签立即可见)', ` + + + + + + + + +
核心 6 必填缺一报 66001;直接新建路径不做客户存在性/归档校验(区别于商机详情挂客户 requireLive)。
+
`, + [{ text: '创建商机', ok: true, fn: async () => { + try { + const id = await api('/api/opportunity', { method: 'POST', body: qs({ + opportunityName: formVal('oName'), oppSource: formVal('oSource'), bidForm: formVal('oBid'), localityType: formVal('oLoc'), + provinceCode: formVal('oProv'), cityCode: formVal('oCity'), + customerId: r.id, customerName: r.customerName, + isPrimaryIntended: formVal('oPrimary'), customerRole: formVal('oRole'), remark: formVal('oRemark') + }) }); + toast('商机已创建 id=' + id + ';客户详情「关联商机」页签可反查', 'ok'); dlgClose(); + } catch (e) { $('oOut').innerHTML = errHtml(e); } + } }]); +} /* ---- 跟进 ---- */ +const FOLLOW_WAYS = { follow_way_01: '电话沟通', follow_way_02: '上门拜访', follow_way_03: '微信对接', follow_way_04: '线上会议', follow_way_05: '展会沟通' }; function followHtml(rows) { - if (!rows.length) return '
暂无跟进记录
'; + if (!rows.length) return '
暂无跟进记录
'; const days = {}; rows.forEach(r => { const day = String(r.followTime || r.createTime || '').slice(0, 10) || '未知日期'; (days[day] = days[day] || []).push(r); }); - return '
' + - Object.keys(days).sort().reverse().map(day => - '
' + esc(day) + '
' + days[day].map(r => - '
' + esc(r.followWayName || r.followWay || '--') + ' ' + esc(r.createByName || r.createBy || r.operatorName || '') + - '
' + esc(r.followContent || '') + '
下次跟进:' + esc(r.nextFollowTime || '--') + '
').join('')).join(''); + return Object.keys(days).sort().reverse().map(day => + '
' + esc(day) + '
' + days[day].map(r => + '
' + esc(FOLLOW_WAYS[r.followWay] || r.followWay || '--') + ' ' + esc(r.followByName || r.followBy || '') + + '
' + esc(r.followContent || '') + '
下次跟进:' + esc(r.nextFollowTime || '--') + '
').join('')).join(''); +} +async function loadFollow() { + const box = $('followBox'); + if (!box) return; + try { + const d = await api('/api/customer/follow/page?' + qs({ + id: D.id, followWay: formVal('fFollowWay'), + startTime: formVal('fFollowStart') ? formVal('fFollowStart') + ' 00:00:00' : '', + endTime: formVal('fFollowEnd') ? formVal('fFollowEnd') + ' 23:59:59' : '', current: 1, size: 50 + })); + box.innerHTML = followHtml((d && d.content) || []); + } catch (e) { box.innerHTML = errHtml(e); } } function dlgFollow() { dlgOpen('写跟进(append-only;副作用刷新 last_valid_follow_time 锚点)', ` @@ -1290,7 +1833,8 @@ function membersHtml(rows) { [esc(m.userName || m.memberUserName || m.userId || '--'), isOwner(m) ? badge('负责人', 'b2') : badge('协同人', 'b1'), isOwner(m) ? '--' : ''])); - return '
' + t; + return '
' + dbadge('G3') + + '(原型另有职务/加入时间两列;CustomerMemberDTO 未暴露,缺列不补)
' + t; } function dlgMemberAdd() { dlgOpen('添加协同人(两阶段校验整批拒绝 67016)', '
', @@ -1305,13 +1849,31 @@ async function delMember(uid) { catch (e) { toast('失败: ' + e.message + codeSuffix(e), 'err'); } } /* ---- 操作日志 ---- */ +const OPLOG_ACTIONS = { // K4:权威 18 种(CustomerConstants 全部 ACTION_*,含 GRAPH_EDIT;AS §3「17 种」未同步) + CREATE: '新增客户', UPDATE: '编辑', FOLLOW: '跟进', ARCHIVE: '归档', RESTORE: '恢复', TRANSFER: '交接', + CLAIM: '领取', POOL: '抛公海', STAGE_CHANGE: '阶段流转', MEMBER_ADD: '添加成员', MEMBER_REMOVE: '移除成员', + CONTACT_ADD: '新增联系人', CONTACT_EDIT: '编辑联系人', CONTACT_DELETE: '删除联系人', + AGREEMENT_ADD: '新增协议', AGREEMENT_EDIT: '编辑协议', AGREEMENT_DELETE: '删除协议', GRAPH_EDIT: '图谱编辑' +}; function oplogHtml(rows) { if (!rows.length) return '
暂无日志
'; const days = {}; rows.forEach(r => { const day = String(r.createTime || '').slice(0, 10) || '未知日期'; (days[day] = days[day] || []).push(r); }); return Object.keys(days).sort().reverse().map(day => '
' + esc(day) + '
' + days[day].map(r => - '
' + esc(r.createTime || '') + ' ' + badge(r.action, 'b1') + ' ' + esc(r.operatorName || r.operator || '') + ':' + esc(r.detail || '') + '
').join('')).join(''); + '
' + esc(r.createTime || '') + ' ' + badge(OPLOG_ACTIONS[r.action] || r.action, 'b1') + ' ' + esc(r.operatorName || r.operator || '') + ':' + esc(r.detail || '') + '
').join('')).join(''); +} +async function loadOplog() { + const box = $('oplogBox'); + if (!box) return; + try { + const d = await api('/api/customer/oplog/page?' + qs({ + id: D.id, action: formVal('fOpAction'), keyword: formVal('fOpKw'), + startTime: formVal('fOpStart') ? formVal('fOpStart') + ' 00:00:00' : '', + endTime: formVal('fOpEnd') ? formVal('fOpEnd') + ' 23:59:59' : '', current: 1, size: 50 + })); + box.innerHTML = oplogHtml((d && d.content) || []); + } catch (e) { box.innerHTML = errHtml(e); } } /* ---- 战略协议(详情页签 6,返工票 12) ---- */ @@ -1375,7 +1937,9 @@ async function loadImportPage() { const b = $('impBody'); if (!TOKEN()) { b.innerHTML = '请先登录'; return; } try { - const d = await api('/api/customer/import/page?current=1&size=20'); + const d = await api('/api/customer/import/page?current=1&size=20' + + ($('impFStatus').value !== '' ? '&status=' + $('impFStatus').value : '') + + ($('impFMode').value !== '' ? '&importMode=' + $('impFMode').value : '')); const rows = (d && d.content) || []; b.innerHTML = rows.length ? rows.map(t => '' + '' + esc(t.taskId) + '' + esc(t.importMode || '--') + '' + impBadge(t.status) + @@ -2341,7 +2905,9 @@ function bindContactsUI() { $('apiBox').textContent = 'API: ' + (API_BASE || '同源部署') + (localStorage.getItem('e2c_api') ? '(已记忆,?api=reset 恢复本地)' : ''); paintWho(); bindContactsUI(); - if (TOKEN()) { loadList(); loadSummary(); } + paintFormOptions(); + paintHead(); + if (TOKEN()) switchWs(S.ws); })(); diff --git a/.scratch/customer-demo-ref/demo/shots/s01-list.png b/.scratch/customer-demo-ref/demo/shots/s01-list.png new file mode 100644 index 0000000000000000000000000000000000000000..a307c1f236656fe1d4f7fbde82d4e9d1e0a09530 GIT binary patch literal 145210 zcmbrlWmuct^DasaEl?=MwX|q~;ts`&yA(@-;v~3BC|bNgfnvekU4j&McTI732oMN4 zyg&Kxy}#`1I_J!n^~jQ0HZyD1++k`ea=6&!*l1{IxbmN+HPFz|8`037O=CWN{NgE8 zZjXlc3Qb;GLdzrVuocIHxaam7tVy6nNJ}Xt@cXlp#wTSS%(sIQJ-KhuStSYBp886l zJ_Y9aU&_e%$>iR@dzutV9K>=OpcnRoA$#lHTN@&^Of2cwuOtP~KYtR`dvKobIuwJB z(GA3l$hTz-DV`sWjvkLblFv@tNfG!6*ZtKaAOEFH&;{#1eEpZEJ!y&l_xJzX8>S@P ze~Ue){{Lsz|2IF?GyYYNKiE*c-EZm#@mf?WkJb23v_d1pMu)b`;XTdwec&dSuzzx? zF@9IWd`z{t#^WTD!#~p<4%7o_oX;kErV3Pz5HA$43xU(^*$>*ffDxA4EE=55H~;j< zHQsA()dAzl<6~yr$J*QsFak?o1M_X(Pu2s#7d+-%&!K*FT_bHB9R;*$<4*EmK#Rk} z%|zGp#{&M%7$2}7OZpGyT1(^P6G|##fBEe-1i_1!e4A4DQVSc)etGk9PxJYwvhAG= zu+3zywO~-E{#Pa39b2?dyJ~%+S}gOlfQdrSDNuVm13VfLm7ZdB%7y6tS43u;n_M6vu5H4h+oWa=N%@;~iW_Iuc4 zEPiu;f1zr!_GAh0_<5t5Kn+X6s)Oa*@DKVYRR3=7@w*zGO*|*>hv+A0TRFGDf-ci6 z!hoOjB5;wCw1)!xaJ6~%rX6HMpT^g2x9|dm_toARZPx{tN7@4m|7-Q>{b=0!@Z?q8 zb1gwu1ExsCR45Fzdfq#HTOo#w%m`inczJSC_5fev7fU-Ua62yAZfR&bT^d0_Ozb=m zFc^q^`TQL7%&a>bzto#dbjnhM9}IUMd#TAUR%<$B5%cSjO&iujv$I*sf4527Xt?qq z@}CCle-C7~1CxKvPkO?x=-UuC1Vf4OOBVPKNS2r&*pVPCQ!wUf-1tSsvxnMn4oq@w&{x89ZsB>8uRjV4ij5UNDB_K*#^QNDXz77LZh5Wl{i6@hcA zhUa$GjOoNBSo3u9uvO1Fp7#@x4cIh|i7gHmcNe0ln-JdvoS`KQ zY0d{P!>3bKVx2rrk>$M<+CCF5IVuSaQ~qgj+MCzd6g*bTm07lE_;=-%A-J0~V8m(3 zujs^I=Na3r`MzldZd)$e+`U4eeJa*R@8l_Um1gBe@u#9qG1% z^P2vjxJyRrJrc8piSmO?!HN(n@4vyoO&u;-tQ#Tqt`I5;{*&K7T~L)A#+0`^{NaVi zj!1el;S9ZmWGcPkk@I*Shk4-pg$g?nl{Z;eWvX~K=eGed4HRHCHh<9w5a@ik$S8Y! z9tmgiG`|u{>Xxgn&2D^%?R(4Da%+Ayvs+xQJL=N5GmyAsZXU6pKD(p0UA=-=^t3qs zgJVIfqUeRmZNUUFZ+z}|>#_#)_UFF~-8Ue+7{(5Z*O%?>N1lg0cOgtscNFv_*GpUv zOET~3B=af6q`yp1(|hORl6qG2jMdJYLITpOVw~KdxxX)m8&YwFuekx9nrtQHas#~~ zG94yQpN$DS^xyXsqE%n*Gj58ANJ{2&@qfjRGc}De9xWJN+o1$l^v-W!opuD zLFYWG`tFv+Qvdhp%lV17^}rtr4@XDe{hG+9M@>q}9O35kJjs5`_hcueGMj~&@(Dk= zym4Ka2ORO8T@Oq9=#D%>dK2CAS3m>FfHy$S{om}HM=)E(DWAJ+iur_#P+q5zUv3CsdNqbvH9KM02?m}C}esB%g3&ng|4~GJ_DC0^)OG9CL)tOJ80iZ+` z%0jY2Lhdm4%?RR+T-jmwx_MI`+WKF_*a7pShlY2Zqjlxp$)ri8s8)*sEu%=Y>aW;G zi!I!t2$7_7emH-^HoFg_oS>S#T_Dv`7>mmJZ{d_<>v?A`0mU7xdhew{K_Z8%I|x1vjkH764tcV$y%$t`OTd36*+ z6F$)`4dVXYvT<8}{UP2ar~I8lPRj`ly2Fp^imy{VPM*$=8ZI{RfZb`byM*tLbM_u` z@Yp#5`-lY+bway$c%jg)e;p+HL=2Lcp*>u`YJ> zI=BA4O)6JiMAxX(a$|vM;p;Sh$HknJQxAgl)uywFuzk3k@k1ho@CY=bBnZE3o~sR7 z{L_^RaC78=l(SiDC|b-27u)3+oeic0t$xl5u{g^u^c&1f3ghZZsMTCIg@ZZ&G)T_1 z+uP;5W;{WHranK|q7X{^tRvN?y=4!eG@IKQRMeVb)&<}S2V1E*+&p{oo~&lMr#t02 z$su+%kE4w>Lcl05rQI0}tF@@!nLtHBjvgf+kFsJ-_Q_%_zcSr9gGr=8JbA}+>4vu{ zXBM#ElQot^zS1RH7pk1VIX2Dm6i!aBL_h3u2K-^lN}&<%C@nNtay{hesJnQ=hi;#0 zc=}hz?X&9jwu1#AX_?W!-+ta+S7HkI0vdg?kg=+M_*!!*omuoC8)AT+80PP*%HB+O zuzI2)I%So|0~{%D+b~6lNh?N?Ka58*#_cLGo2W01`}4ai3D=L>2!ITQv)i*Ju0`q| z(r>4o_g>p3Q)!W)pmiC7pj-8^*hg5(fx-Huf z^B)QKZvOOn;!}DQ9Q2=Lcp%7p$*YWDJKNW6D;G20PjG@{Oq5c45k(YoMoW{|0Tv|D zzI?uEp3lsXvc~%>V zG}MX;Z`&i8BKRyum#yyOBokm3A!YVQQU(_6uPh=1z4GrFX*UFPC%7?h2>&VtyU$OH z4Z@`W!^`Ann`}`kREYJ28F&frhgSL{Ed)i&zRaGV3&*etp_|6Ai@QQ zUYa!4YE_z_q$roX*~>d|Pes^($?HS$T_f` zqWY`9^KiuhIpkZg))q17u;~raJg$4Up6AXtwmaH#A+vhQ9!@-v;JDakc+)s+s@=mwv!UhIuDC0kjiqhJ4I8fZs>&M|T4}G|tHppq9yK|zh&V9m zlM^Zkz4SiLH!0<>blcBxEs=DWl2MK56z1KU0LTAv;|DBVeu_5f@HkCH7J!=h&b);5 z%taX1bIT?`M7Uv1rdKOV^+7g z7};e(DU;W|hdX?{?Y8Hr<%wvj>W3y0nDBzrJb=bjFhlSj8HO_`VRB@e!k>#CJqb&` zQhllZQg5?pr-gB*^}JGE7wbh>6mG^kjux|B3Q}6OMF*4WH8rhQI&uOuUW2;dFrsqB zx_ZE%R)C!&elo(=d}B>EwsCZ!Cv%MHs(zXAN{asc`sMgXgx|i}du0lWBPWPKgSPk4Y#DF1Uwx$9K4&He3Bd8=nny z_^KXt;L9#91>u%~VXK$!ipvx<^H`5O>{9w3CATUDQESyYUO!Z&+uJG2L^B%z+>JKq zGZfWbui^F}`Mv4ndMKv6k~py1R?)wjU@BD%o?h&@eA@S!lX}x;(G{Z_a0U<%JI~9% zpk@|SR@a*Ps{rU;$OmfXyUjztNx-9Gu5x4S^ch*>cgMt8nt^H!MP^V>TJT@l|M~*9 zE5XlDDEN%x2*x|y&qq4RAy1gab!VU0EXp*feq$!Nci1os5n*2)TxF}*P4V2GLOt+l z$8coXdU9^y^e|>_G^EnJ?fR^y%*?!%V$^96?5iRMyNLOA!2zGTYTTY+2gaMU<`w!C zmGBA|O&To{GowbMQQ8oO2*PUCE2X63r3V1ez4X&dIVVDXH~QwsSl9 zd*mexIod&?G@oxTP}etqF*N+dk2(5O6D!$b*-|-@#cP16I^xLti}qQ>gq}8L>Sg}v zcx2mLwQ20NfkVr$b^5y+3irX>&7YyP0+B^djMu&GO$gyHE_@l6({82r1rw2NL}(Az zDaa+h9PZl}5aC4PBqbFaa@DP1igysCO@uW=Z=FiMmW7M6!jW+$OO-N(Z~`Q#mB5fp z6+nU7{`{2gd&yM>hG7q+V_%#fQ*=q2Tn;BUi>Cxtv3;Fnu*|?H*^~X#`wmYL&(h|r zY_xAoB~7k|HO@Hb^dbk;ylATe%t-abxYqH@^5OI6e{bx5RYU_%rGRg3CNb1nbv@8N zZavrdaI9b%6Qr>(B8yZeMHtX>ytTKXv(=zT#=jHutl2p*X;Rc)mFDI=Ny`}SQ{Q$L zk+ZcM6c)#3iTWZu6ZXtoslr(H+s5y0C*)6l+12Ziax6a-gd7j$MUYc@smFe+>``E1 zkGwNE>PxmK!B4ASP0XH)6u*kg7u~_Pt1j1`6!05whk1XxQ*UN8o5y)D;A*K76K^d! zwE|HO$V_e)pal2Iqf0BtXjUH_u50zD5Zu>av9K>yerK!K zsBi3q0(mFxe2_6o`<*oQm;dv5T4MvaJz7#S&%fg@P&Vz)!LU~ zi;rX_%T<~*L9gCni3wqvA9_YqH?CZs`!pLml^;!&=w)@yzm{$f`rymm)U+N;-34O3 zT@S@u0TFj;j-(Aj6TnWD#?~Am@Yp9g1lEAD!0AUD_eC@InpQxtmf}s**Sc}ANb=_pjsn$ zOOS`#V!Sx`9+!y4>EnJQ`ubKa{9PD))T96bO21s%k^s*P;=;*APGJ#o9h17Bx^Mu zj7-yDI{l<~rF$Rdw`NLaaB2h2hsy6M*D?J%f2-^-*eMlOga1LN;T=tswR*yyJtw~#SXcywUtlz{c7@|S1!9!lHG?jyf$CoLWJ z5(5}nvW52U@1}tCe*BeEP(D-|YOb$WxeVO%M&rGR!|7>$nIO@(v|N6(rkFr32goPP z9Qo_f%)08IQ=6Lf%&uhTRYeU>HEp(cHZqLoY4_WWc_|gmdMSZ-#hSD?jIEv~v#SBq zZOv3n{Ij-p5kGfd=rklFTEMMM-QoGJlOGEVb-3;JG_f0&=m_U9TM5VdJi_CFXQM)hIe0To-$A0;BSNFg6>wqb^F)x-F3JMY#xjC-uC_HcdDL^}Gwi$0Ybf+N!Mx2VhJ=U95r`!3U^ zj}oqokDkQBc&+g(55?XkZ-jERXyO&3F^SoCqR|gn(F$IqKr*Dy*B%IF$UU) z9+f|+chl^JBffkcd~LL36DB2m{BVBf#`u}8O}CHd_(;*H937k}f~iVTDJ z5Bj319a(j;_PX=Q0(%z6nNfz~b-EED=^$_mRqIz3I%>q_wMf3nCIIGl7yI1tOH;|Q zm&bzyn<#Xx|Csr5zd=>}t#;=H6yW!v~lwX1#I%zeW#m&cyYdnDX29=wKCivxohCEN}W3f=ELq`1UDfq^+L!vT3&J99s` z5ThNV-XBz!w{YmTUVAi)>7^gpncFBUZpUV~N*56Ab315r_kLnxtj1ahW4;|Qq>>eQ~Ja0A1ho^Zn34&BZg&cB3wRyuef!m=$kDYJY()X z*=C6C$cD!1>?FeC4;&+A*DPZW%~{x>{u|R!#stXGRC1zveEzzGe#_pHR}B*nmy&1c zMOe&lHR`$h`6LSce9_4TYwKStG#u8+7Vg!;&WkP2KoByC87YtJfm9qu3US34Px*uP zgDP*muAdR=g&eF|`2IW4_pf@b7WumLdMC0SdQ*L^+s9vf_wwM`^LS3}58S!?&Xh*j zUGYXpPWfyeI!?(urw}03tlT(($@`ahBfH%*l)h?g>*IMWZ!AzGPUCIA?$F@CHY7b8 zALX@*t2#1rIS5*1t$jT@@p_{+UMJ`^qbkyGdAf%Kg+GOz)Gm|?3=6mO+&xuiATJ*6 z@AxhkDiV(h*7lmZ_Y7`sKnSn=h!gGeU?@6=h}pS7x?O- zeNv&E66Z!GEW%{bJa{wi_Stp=!fyF98Ey@&t*?X)KNxSS8)RFmwAj{f1a`>N zULr`z=pa+_%qNS2ju}#QoES2Yyks^>WFQ$F$SCx9;(wh)V1HsRK5k}S@O9m0+46%$ zr%_m#qF=jcou>4=+RofRp;l78wg@*>_iennsz|5dZq)g3w|zN~K;==%`zy$p5m66+ zfhWmVt=zeIGvr9gA-T?rX+aMX;^lfH4`E#d$DMBDRe$BjyJo|p! zobU2*e;dMP8vldUX9vfvv__xEP4(!ou=`3=k{G))K17rs&=e`SwyN_-#MuhPxsr9G z6wCE0YX9z0%ZtWkl5HJ%dN!tQ&W}&wU8Z?ZSh9VM@pNuA zN8i@rqYtredH)pto9K91A0GHqAgIrl$USf-_eW(a1}-!iwf5D=(lMKd`EHw@ z`PtEubKw%OeA}L(zzsOzBzC^F6B^=5Snpc#;UgRXlb>Ru0;f>4f623T3yEOI!Usg; zx{7%7Htq}`KMK-wD)MIMqNywt zbjo)KX9Lntnv|DiGT1GzKg_Qps=PJu9LRKg1EyOl7n}hyZL_1ZU9|fWd=Y#g!L#{F zxqi7%@@%qeSsWj(%BmdH3kD@{Y1SgGS=TFM)_xRP?A!Dh8^(N5aI#!~=B}}8qKE0` zN{VK?&CQKoNq1QukelDebpT6rYi%vq+f+$`Frg0sB0cOH-Aub_P$%oRVBlQH5{mc@&7H4yVbG-Lz1=Et zgXGU@{RV#O6poC5=G>D=eqHax$SEfpzDWPN*sn*)I zU84Sn z{QEp22*G9YhD?TvI-?RbnyNI(%42@=TJ9wh&qBXa$B3od`9Dv#RTT~9<|D0XHQ>dG zGV#kK9PrWY$Y3CZhWFw&t!J!s2B8e}#%p7?+#22F1Rv1ELhB_LuOBw@+_iK+)1rO) zNXFZ`r0J45Rn;%$yL$u!Wqd-rQI-kn>>p5sd9BNqkil*z13iUT0pQG)BT;CdT)iFT zDpv^7oejSx)l0XXjT?sVQ5Fdq%XI-U5lJ$LQyZcX`L8kXdd2UQB0_M@npaK$K^+%6 zL!%i<#KHL?MY5VA&Z~;wIwnOGXzu+ ze?=3PA}hVyb^l{KYDk6B62DXMeK3U$14qV`H!D4DdXMF-=t%3YqQOj`rZ-*G<0n3b zuOeut_&Ys*qK+~{g{Cpw=gfp5v%h2v7q=%jr^T{OHNTedDaN6@<={%b1z&7DUN97N z3O77h6@8(*8dB80k{h~mVAZV#P`rLyvk)x0FqtZK9afe+l$*6>){rtL!~3!H<0{g# zti12xQKZ=r_#GOwr)Vag-`PJieBY!`kd3AJjOu0jO}WL3gIhOtRBMXg<(jhclEnw) zC}A!D%a*C-x131tkt2g<3IBYf$3Uf&4_P?KmM`iTObIw+Mz*S=cS=Tv)mkkrgs0f| zsd#{hMwruQ8Iah9Fcr;S+dy^ZN@0sFhu3I{ad8O9j++G>F0}Bj27LtOF4W9?%>S*& zN3k9LbSfv_XN~R&G~WH(E`?Amjy00;+N=2IJ^UKHW)$EEr`C>S8X%n37+7%c!1gFR zHZ7-N+bZzU7aAh09bK5B(V|cM8>h19g7#U)?G!+yiX(bS0>xf=A0Jd( zO2;#dCZ}B#p+&PWfegld#!`)B&(f%V-<==vpWKzsJ$?Eo_pPMKS%m$G$8K+T@8sBT z`Jg^krw+CjsdfyZSGuL)V`*07m7XbOK~=W)gK5KDYaziX5t zM_K`!kNM_?aD9T?K@a)|l2uPXzB)y}wRx7TZ@fPv($eO6%pQanpAMSC3~FrVY4cWs z@6A>3w{9t?D3YL99KJ4phkCSB-pUP=vOQXjFHn%1?#pY|Aw0Q)6?%>WTetvYeS05* z%a@n);{MotN(ZPJ4-x+YsZ)qaN+%gzWXlB)8Z_9@>{jF2eCTqkkrx7Qv zssCU+jI6--rJI{Ro(e{m0o@DnSyl~WaHGNAnRYj94YEhGlCQ-iX*iZfSUWk{oCoTC_5d9V4@h&_Y zoOUbAe~d%T6lLr^{YE0)VB!z$|=r)I?)w7+xMeMHXXq zBeiqzXYKZw^0Am?k+0~yX6IA21bdrb)%&fdB@gnk=SGiMMYO2zQYZ|ov;O{Jqx4-x!X96by~c{_>tp%*vM;Z&{}3~{5CuT)Xo3F%n!!4(Y^6k0zK6pklW-Z zJ`J81wsk!@r!(rpw@|n%`r?hlcjfyw2c_{4FFXlZXe+!AQU88JrP%I7S2v&djjUl? znVi;^HU>>EZea*|$xyP8jfMn2I~Rta;BZj9_b93CTjDIed5q&;UNjK4jWqS&gPos4 z8t^E#!~%2-wn1Wk7xRkMdtO_5Ju%Drlepg87mugf3edAj&G-7d80;u26>#|!zQP{~ z>bA-rOFUa*Mp(jl?X$Z6hYLpF?`aRaBb+|{;g&$SM`6&D3a=LDKKyp&=tdm^>k z!_?VhfC(o1ZL42NRFj)O{5<)Mjv z(oq~1*v%_;kz>qj!J;00_MR7K+;U`lZZ4rV8g~~9UAo6GX70Y}fPC%r>QCMD#}*?4 zUB!mL3|u}PB5QXuZq7eU!tpyPXVr`t6jJqfF*K_eM=0upV%)nlk;Rnj6nGk0)Mi-e zE(WnXjf1bE$;7vyTEv?=C~_gRQNiQkE}%M^b0i*JRMd2a2Ki-G7oBIi$>DH` zZ7EyUcE~>shI+_W-Ro_;KG^S14!BC4zO$L%eju7^N8CHwcf6{5E%RRV*JO>iq_g#% z$99Q1c+J=UYAGCYJd;hw8+qjCy#S~+k0>%yfJIZd{j!Xz(Y}Sn94?2s)`NV$`VA&J zF7yyxji)V{f9QYhUG1)x>2NYc|E0K*-q2R&k3ca`qpx9j{b1j|?^4s-e2&LMgR-jo zJ520QKU_`sKR761ay;PR!@D#v?6XtWx} zImXT~f8r%4$KA%;B_L=9pV(wOgq5Eux5{^jPg*rWCvCY9nBhIRu|RXA4eE%9>v^H< zs=P`6-aOqfj-jV+wOtn=UJGnkQ#xIt5anf;yfWX!DgJezN!gv$yIQjthYv`|lg18a z(+~A-4qB=todUv|bpf=$2TaW8_KAa6_XA->z~NzX0VNTuCViYcOISnhkaNm>feyYO zyL!Fkw@bZY>2^Nlo{bb*_YMm%&DaO|RH2_14N`o0Y+ zJ)Fc2CsW+EPXZTe*?pXgnDU4obl6{AkCMa_^wbGyGN=zOUyy0Pyj4GqcJG_Aj**Q3 z%l-Bg8&5yaxRx5Cs4BGV3t)5Cj^EeCdpV}*>>D>}1V}%e)E2Nce>{Hf7ZW*+MA6xc)Fzg&;g5I(0199@ zI?sdp*tF8J*K@R7yK6D8UD_bxUx)5bUbcVbW})%^L~~_SBA9A$6#-JUBQK&@w6R^W z`f`=co63{WJ@AAZ?S_0X?}cAdy+!u>dpB+GKex}|r_c>>b;|5eg{%6Zq-v2Whjm|o zs|-4L+NbKe%kJa1zZ#hqhkGAkr=ujET~HUQkI}2i9EYFMFaF~7Yi@(*tSfHydMF3H z@a;|85Xv6(aEn%|fi8}h{WgO(C!;KCSY2K8VTM9GreSMiMDotgy^AVf@8iA1x6iZm zP8v5gmu%iGw>LgZUu=2|jrsOXs>yRCuITPg9NDm=L7Ak2=N||=6u)XDzx*iJ?1Ey{ zJAbq!=)3F8D8#%=-fO0?x3EcfVI8QPkU8dkB;4eBW!)Jc|2*IEnBpo)nU6fRw!plK zMMQqkTC(x0x53scIuPWQzHzEHayJj=SN}7YJ(0)#$=pO^{~Jfd0?f%X0x62znh)-+ z6YMwEa5URGO^*NmEmgb0c*B##P+C~8*j_+nm-9*`SbJLt8JY6Dh?sUY4 z@O$r5v88acx?M%2#6q4kzIp$kd~h)~-w@)uzf_jfBP{6XR89H`!o0c-<3BV@-7wGL^`_}4yuJ|?dkqpuP zmY)?Z&!uY9KQABZRv`U0g{w=>_Dc?E20tIoSDN%;Y!l^w?%NB&r8ovNdi#3nFtHpt$IW(vTDb@U$D;9HJ^^UvR zG<#+^3LcoQu=+j^z~_>7RMNhC`5Pq5_*R9FY_nybQc}eeH9yu8rwX4dvP;hh2ypnd3M@6Fmyriyd3;!8 z`lM6LO+rc>+?7vWVs>Zzyw{5!ilZ8%9l#bIF*}qdr+DupVcwXn_x1WG z0AGIipQ5`4=O|T!dWc8PVET`pWsjq43Tjs;OFq1Bz&UT9);o_yxDA?LUslyVryK<` zzdq-bovps#9Ei-Fp|I5*S}5UO5_eKF=!7a!j}oPQS4{ta9n4?i!fYgLD&H{HD=)WQ z128`liYGTSq&R!e>k{nvP~IkSrf`gs9dolh7cc%}^JXS`250`yzHUjSn>3j5Ofd?v zv%}m%b5J{>N7zTe>yh1%HZZgzNWJAWBvw9hU?gnh-*tuY8%;~>M9Dz>t7}T-p>U0_ z?vsTS0v&$SS-Uvp@s0rG^fFtI zrNI;%iqB`?-{h+YPO6I(#Aw80suO=9JwAnp~OBs$KTEHPB3kdf{0(LOy<1 zBH_Q?LaMj71Vj|v@z}W2K%w)gOI4*jbdgw@*U^|6Lk|w^opR9eS$@Oi!ai9zlVB2T zm;7o_nB@NSun2F;NYZ`GH#x$;wHxV##kGA{W1r?{)18ngLXqxmP+UlJh$w^|;RD7J z_#1}YMx}Y-hH5QWvj_S;9!+-f>Qlm(OoG`s6)8;j@T&%xE%Q$VB7u_n(tI;Z%;rgT zE6F+jEPl3*o~LA1hRC@G2i;ma$9*TPY9YmLw(GDQpA+HnhDNJ_a(H zLi>2^$fgd5bq!WM&1On6w%o@Wj~?oQyZ2!y?a1@=yd?uX@B7#``A$_2lrW0hSCb%p ztnDh}@U%Bwt_2}cQQ8CcyiEr_5nQRmwEf(%>9bdreXp#zqiUEpjOhdKJh9}z*`YaE zA7Y}YA|6Y-hYSwnTZ8@DI$#V1#wDA&2;bR*4Tg#$*Ys!LM9wEHcZt5fW7AdFR{0Ko zOp$|~494A!zC)`-Vd+T~Rk=kYhYxy*Z*&REyj|2MCGK4lD%mi+I*yt?BGqFO^|YB5 zmvP)ztnRaly&vN+tYe8qbZI%cs;EELKa--F`uQ_xPqV_2=%bw6CCzSaI@S-Pl!*7z zw_jW$>PgL7iL9-84{|DIqo)lOfGN>$+vbB(t-UBYOLon)or!K`1()4^oX2xmX5Gy{ zMYEw-L6j~scxVT)DYC_qL$tr3hmU+q+fP+^J8J{>CEPmHz1V8rZwWIyT60eg@!8U) z9CM=W76ybl8Q;~Q`1~`hP|c;m)&B%M6w?Y;_%51nSFVNb-5j|~)78S6IZI~TReRy+*5x|WkcF2O{UO}r z+LcqTC?SwE>9Y0CL!9%Pc>yH3vp%O6$(j!Q*B3AkhdZ(0r!#OM4}MU%N_BGIB`W)^ zbG-1~X-8ZlIoGJ5`6|aLDGx{0H<9LJ6|jq5a-CIXFhIO6gU3h^?6Gnvu1W+CT*^n@ z_H0+E91omho%|L;RFIsXq*%DuU)fl!cNvEyBF|*osbKdFmV%8o2&0nxhJQj00~#oa z`7QBZQ;*q+))R50-tSfqOz*+le0ugT7#ottBAU>@#(%!&WG%Tkbek^zbR<>h@nXi` zy@VaVai<6n${jnJ@r}~@bK_;yy~zw&-_c{xa9%xYe?Tk=+MgFE^(ENs++^fW>YH7k z8wD@7ymsbA)52QrNr-Oot*oyB<=l?KqdA*OXc$4S-MmoLmPQxGo{ zuPQHw8fa`Rn+Ujo&nST85`OFXX2mWb8}&|NYUoGN-Z^t`@x7rkvoVO@Y~UtZ{MR<@xz%mIx%Z#zPF`G<|QQ4WAyM-Cwywjw@pnutAYKGR%@g7-O=?rt`* zG9CbxS$7Q&x}0 z+u!DSZUl)xj3192c0FQP9hkN3h^&?R%NQol`qy#5_@{1gjT!xO|pt>(`d3Gvq?-ihYcT zRfOQp!e#qCj3c^i06yNiNmrG=eqsAv=@H`aZ}MO44mcW9IpISB zbxL_2gw*8xMleL36Gc;PfO_PLt}Y2g4l_#x*L-#BM7%j)iF1+pjDOkDzd8Kw4Qn}G z-2?7^v9*$6@O5+iNe^3`@$pi+P=6OkC6bMkZ|XfId(UJl>AD z6Ow(&9xm={T>r*e+4J=CQs4Oqn=!k$oyUiC?eJ~fG zY7o1u*fxMUILcIDw!i()bQYrJS*ieBuV%DZ8~2M#h7`sgZJFmuSm67^1*0Snt9F=Q zKC)qrQWHzGwvw*|)S53ZjM%L*rRF*rI%WE_9If$Gx_0mB& z+ilIcE{deQt!{}f|6{!wHof?q;`DbUGPcPytcp_ZFdw|qX6Z#ShGQW_l5lU=RDaiO zH>r8v<3mA~WWwN4i~}?(AX|=Vu868OO4=d*wassHzN_c#{m|ya5R=k#zC?d(DzjZ5 zh`-`BHHk*Ry#vix(+WUtooFH8Kh5DMR=G(_4t%xIgN=RKDsWw12-7h>yAv(bOXAka|;i69u!4+`eD z9?ztkQTi>Zuj7@!xmg8ZHxYYOupb**5UpUWHxh&CH3c=;|92A=O3Bm zv7W5mPMMiD&FvYVSP$G9mpFBhILd!(|2S2TFeQwCH=z&`RTV?SW`QCobp5;bFVvF1 z{!1Ov|B-Z$c|S4zgIW78{hx2If+YX@unL_d|F^mdU-gLrmC%CTJ<%TZO5y=%FoE-v~nc-?<;unhhnBQ2_Z&F7;CN* z{WP7{FrTPVN%L4yk@z_`STMKhi%S0o_4eQVXme)&^Z5Ai|8Wc+7tH^UlAXaMqpteP>%iT zcA4JwcXAw!o-8+Y0ff2;0#Ksp_tdqzm}!|PSyIlp{hAB5CYdap>vOLITE6WSA-CT& z8H+s`i5zIVmzgkITOBZ%uHL^40VGXc!j`Ll4s(Lkn#(BqRSI#?}TaMJ4yXUricPkQJlVgJ-bZ)-%ije z`W72g%7|uzeg4RN3KVOY;KrIIl4FKOqM+~Q%ygduKW9EO*t_;je1>bHJ|evz$CuAm ze}5@gR|;wt^EuhK+-Y6va@;(8xBP)}#08T|P%OsB;p^tEWkDR@{jrcAB1SVKeGYOm z*>{as91Q%_ez!0|V+{`Z`^k7U{?!=~uj+44PNU$}^lSCa!nrqj(_f0e^1~4a#-PK# zK*p2?TUFke!9p3rBuftL6*JZnPi{FX%Cea{^3Pidsc}0u>KQS{0w*QqD#gWdFu7iw zx%*Z10YMzkbi9@3KFFm@iVYu^g3MVd#iE!dTx<19`3T{E=FeZDpgCAl{vGi1%uD2A z-&CsTu&6<`Rmxh?PA&`RCJklzmGl`%up33Q6xlKnzUs4Fowcn;Bvh=IZ$+y%lQIhG zmEXTH+_$m^&*ZGwNJV_)#Z88$SdT89z)8g)TsdSzc%SAQ4->uUFqf?P*-Y-vP?tQK zb3auT4*telPc`#AKqEqc(Jq0H=;H8BF$mvc;n1zq>=N1`{_+4Ko1sia0=gTRlU>9AoNLnLb48 zjcBY;j%+!+!6bQphcEp7&V|YaCRx5d(PGe$nq)D)q{$B#mz^}ZCtY%9_ptIsJqRU| zbRoY1Uv@I=HB{W|t^{7IMxgA*imsAXOm;k57cxqXh@8(cY+APGrn}6dcj`9kaw{a#KmuMA7+p%eEO_nBK=hG1JsT>RD5Mo4=I$fCs|T`tNV zWrjCH8V*bE1H5er1rA>7@2g$q|3@DBFUq*$1a~Um-1hJ&KTOMfl4?(lRoMD^>u#YY zxfggSJEjGav{G~afPE{Ff(wyTOgIP{IsM#Ex~wz`_Ia_Y84nuCavP|H-mLCD!ymmn zGcl4bVI~e<$IG)Y-{r2yjLZeb6YgTEnpMpiooJ8}O&*W6XP47ecxZdEO*#@N1mlgU zcw}FEimATczgQVb<%hK*R@Teu0D%EIApPYIbE@77v$Elw%+G-eGco^TskOptH$I)gVc=>QfuMCExn|@sN{MC2r z*n?%#1pdXW2J(jD!n=jVG5PAR5S*XwXt$y+fLd%(^#o7;j|%qanMKQ zd&SofPcDOF8=#@LSNHj=f*57}8(<<;@_z*OHeutbWH;etGpy|2S5Im+@D9&{5ZJ zAJ;|hkS@U$_DF)#ha4NwGLOCuhEl(o0tDk2JLv*JsH6J%?v)YV4as28#>vPTX=i9X zFl*22egmpWl9C-!v@KBDWb@FJQ-866Wj(g{Am;W-rzMyo#bE%zO3xz zpV1sCSm8&^t^6{QZZ_?9A%R6bvS6ITbc|?l>zaVv{d@L8fJgSPnoZ=fqCF@AL0?&huYiz_*TP za@Ml%#_s=75|XPXeV}n?i|{q^w)`x_I!kSs7v5y#Ybo@*SNdUDeYMYe+~iq^M64hs zWwF!=m2U;uj0idvaetTh9laSd17TZCP?zS}abs_^i_~G~L!1J+9+++jCqX!CA?O{2 zG9X(g(p_{1;v=O(lSLse(>mBs_Qt<0zTpp+#7_XBsXP~ocZ)*$c>3SNoz-zA%U#O$ z(<;jm#TN)sFISlk6Gw-r;lYXn5HW8Kc{dMTn2^pg4YzLQEntMOx( z*z1D`Ng_Hcwnc3VP14HoVNk@vEB3~(?Y_AcPez>0uLi0}KVa*7CZ!dL)xI#8r#L@s zf#0iqv+LdC1{P;R$J}<7{%eJN+ImeGk^H%6)ESFl5AR+)W+?|3Aya+|z{^2RjNk(m z-pY}(ImLH*AVSO4#q56<2bo$);-@KrN}DDAErOqEv6SMV5aD<_W*@Md7~WrYcwR?0 zH{41B_ly`$IipPP1I4K?iQts?kx|OT21+Xo>hesvot6a}yK*+A_xiaw;%&!i=`uvA zDJtZt*4P@KU*|Tc&Q-~yj~(uxtc4gc2J@6Qc_flhozbEnHEqBp)qin|X7K%wt(6&G z^gtSnKGh;i{Vm(Lo*FpL-!#4B?7U`1ack~FvedR^i%8gC5%&b1ggIe|-Rel$SCUc+4w?s8)eGd>n=;3H8wr^%wEPXlh>Vnx1tJs&7 z1!nfHo8spE`E>MDGJV|nPzjKuSmn*QVR1WE$TiYWCkJU?bm#J~EEQAq-`?Dm`tKxesuZ@4BO@)^wSityB_ zdE4EJ{zh-!CGkTLxhE7fX!!3{P>N0U;zF)M0Kuc;dO;<#)u9Ny)%LTvRDif-t566a z*yBQo2syjA&U~S8_4s*L*>&B)XLMr9Y9|nY< zMCtr$cle*H_@d>P(EnWh{pF1NIq;w5|E}csJ6*=#wekO5^?&H1sCNm7H!9LaENm3g z-@gp}CV>7g<@EHdF;qp8K{rlbVSEVCXyZ>?X=KpPJ|9@vvfq>8-DH+?n zb@f7{(Y;*_`_k#QOaGS2pTpM;rAnPPs)`4dZmLSFi4DmT`rEOL7JiiN6*<25Bh}lA zrsmD~+e$rE(SO}_JxurB=60Cq$d}&Xm0ZzYLZA{J3Kb|#(t0&Sl@g#U^v~Ky8%~E! zQi(oIPbH;ApvnUv7cYTfs#=#+MFIb)rc5NARjOLK76^@245}k|BovC z^$w%6u(VobKjhW2d!=b#uhxNiResy)|EcxWVt452Hd##!B}-6nb9Xqg+5_?*5156E zJxl^#1YyMc$61hnWtjPQ>Hi_$%)c|$px^$ZAwL}tr|3+F#^TdoAGdm?K3RaO>ZtRT zO{zq6R}|~MLxK8y{GCw+B+JE*AmZD2Ht5h0h%wm9hi+T>c|953%jy`*3Jdhb8gqYe zRm37lU;>+H@A3uzFe{92eM7!S={&CAhNK1$ry8P1|I8%;=zTxF!|pNUMGFNw@@2YW zQ)ZPZ%L9Jlwaz1fSm2S##ZMVqpd!d-6(~Stu4Zq=BFGH+cBoh=xV>PvHTm;$@ss)H zEQ!^Y7K?d4c_Y^U?Bft9&-5Jv~Vo#h!bml?jJ zZQd{ktt-4pF?yofLi+Gy3J@@zlsJSXg0tlwFXN~6>Lkp1_dhQzgHHQSENN`C9$F2A zA6Qh`jIKj7JT1K;-8#I1I*}FH`J)f1@h^cR#i3k4G49vvI;_OO0!&R;+)PlsUxsyfy>jqYy!|g=c&J36`v$sIgN}S!_*rnC~(fm#*hEq%oW7 z&zvZP=qNI9*pH2+dKnLlHG9!12-_z7SU?adUUS$jHZKz2v~TiSuU>=OpO)Pe7q;y< zL!SW=T*#>+vvx~+XG=CalRtgO0{6(nknB)ltzvfMav#2Jq`2{cdUU?~h74*1U(80l z9OV><0SSo__`zr=y1Kn{B*gkM!xUxXx}EujoGc+eq3>n5d4A#GuVgtOMe)IOS!6@| z^KC*KPmji2Y4V7s@b=@iOD%ZqlTs0@(Q~Q@jVH>OAMPnzT`jnW3Po=;9z>pA)m~3u zuLxboXB25=Q53mmcERjCvAndRo}o8Aq-g2Fwv%6}F*A%uj|ZPTZf9A$r38xnA%bdV z;jcAL-uP}p4V$c&Rg$^5ON!OKkr)|grtHwUAGtD0q{E?2OaVY6DcV7IkA{6-cQ=`< zwa%wwOy%By816s@3#~~FigDI91{7`Wj#jmidPQH3&(shy-YSi0@OzyI^Od2&x)r$U zu}j&acpHS}&C!D? zb_5U9KRJ#X{e8bvA`o!)3?C%g~sJJ6ZIHLWg@Sm_k04 zbrrbM4cw-f>We-}4ryX2+4{AU_}B>8crdF_Oqv^#ladgP&W9+OjLJkw3|u&T3rwz@ zTsc9enSOwjs!`1&2m6wq;mHxWvvb~cJ+u29MP|s;P0RXvFLjF z@(ou6#%+OdXGe+g`N5mI;#5@D>r#{2daIGc-Nv^5IJV;{rZ-DTek*1{!xST{0wLY$ zcL5-hkX5ps#)}l>BPj0|nmU~jKc!~Q{CooPRrQY*s{IvDz2P*AQ^btu)G_!>0Cf&B zCJj7u9ZOvA>I{9VfNvV1+NRNjN#^`}~=^3MUaD#JfYAyEM zXyee6mIb>#IZscHwZ%rtq5NN1g6cf7v_r|8dmLQ3jR%wNahn&82P8Fdq6bV9YX}V` zcq-exKX_gkB93(W?>5yk>KKdz61W$kQX_61izW5O`3!>{bo;=Tsc_e$e?-%h5V(qj z-d;@sjI5a)^k|w%I*$BROjt`8bvo3WUVL`u@t0Gm*=S;|Wqx$j2IZZhb0;aD-m)2s z%*A;0iAo*oQ&4(GO)rl$$Yf`2nwj^oYUy#&9D*!r z*t$>DFfXn%1Ux;SLemJ!k*^4PH+*rJfMk#`BgiO4b!Ri18oIAE8zCV1x7%~R@L($0u@xr1bM zZ8uXB*+N7_L=iN-y}eX`GI2S%!XbXT4`C}`(tjj12EZ=mN?7okI9O+SEEd$0ny8(N zpoKbVNvWJant8J;P&O%%?(9ZeLJXwqCB|0{E5vc`OKz+@BQYB2c$nxn&j{D-x1%zV zaHVGwxoWO$Y~s#R)~~_2nEAO=mSR_Qd4{<+AUS&bzu0T5D1JSk{@eVN5_sLP^;_0{d=#sYKw7f zKy+tI8c%lEN6!||N6PQbTNu_Zl{{??WGSmNEQ$xn_S8&685MP~Vp;ZB#t)^F{=z|u zdW|%1N#AB2#dq@#9)9qh1UYV6iPTjOlJY|3R`qmpH75#fxZTdGzTXt`RlnP=wKmD5 zvRVyqb_boeUXQ)Jyog3%zHY+%Ws zx?4ft+c)1gvIUhlZrFr3wgHo`^Gx;T(XLQN%-GPIC;LTHRq|G{Qm$FCMo}&~)ufuW zp8GXU-H}3suE0Uj`8EK$+;C5}cz<);uoUZL@X8^+q=YQg+i8Tg0+WuwcE^M`FVqiE zP7jpHsH`duud%@|#sd5$>-P(krj?u@Q#Go@(h_QnB-v|{+Q=xdjZ+U6yUIcXqh2%& zM5-`8kHIp$Hs2_$c@o33t6IWdPv%gcRN$nsfl4-&mzG@%fy{9DBkZeOV-0a!A<2|7Z^3SaMSh4Y zk$Y=bS=$Me^kED|2#LLr`xuwQokcnM3qfpD>bLkmGM35h;9ww!T|c1wN5K z84hjd@%DXuKDZyIh|{a5OjPYazf7-tG`rZd5#jK{d?64SR?`AeXs(WD8D3N|`!!bS zAC&l`tw4EvQp_fcrj-mr-9C$O>Sa^u__eB#|;)h1CFk&GI{F;HNiYH_SrROX#-S=!<}O=+YkN{9k#lH!F< zG;VrE1+U;N$b6^hv`)QrI<+ShTf>GVr#p!NLfqnnZfjg3ju7D|=+lM(*llEnC_P?U zgs&lu_$kCztx^nBWM;WtD0g#Wbfm`tGG`6kr5_A}J1gnFQQRUSLcr^on=^0kkFA=3 zCmPst7(>o`oj>N6|D>jj`K(q1*(rd@uQ@T>{PX9}Hcym#nV-b{u(x(hYnF+KDq9cl zc|z6T)BC}@%;pGD@MhDObpc)iF@^{vJ5@W7a@lVtNBGlVNcG`J`56PW_F{1L)EZ3Y zG5Z!k9U~Jp#&F1U)oLrTWOXnRE0tZ8dLVtfMLi9|9MsFd{MN{-#WH+RWK!ml_Kt)> z758#&zqGB7GN4wQW&kn8m%4Z>Je3{?pOyos>Zl}4b4Cygx2T{=J~L5(3Q_yrA>Uk{ z49A&q=(%`2bp!pDpk(938*U^ZuA|t}sJLf8V*o0WN%1@m6{cQs}Ay z&n_UrQfkayUuI_dW9Y-X7()nSe`{whZ=zC#cW^Rr{kTmbm;9!v;anZxsJ6#Nqi_=M z+)b1j;VS;6OHf~E_4WbzmP53=`+=48agtYwgn9Ji`1O0+&y-=`45}Y5KGkokWFES% zrfZjh(=}w0!9rYxMHciOkW_$!@|4HdnoU}enu5uzZn=5GLLCJZuBlX4-->aJyYpjQ|4jk{5v$u&l^5KN06*Lf{ys^ z!kO(*sA(OmFk^IfcgU#Z7Q&y^pD(5rZPESwytrh6s*PCPBySuQGm zWa@6XoGw`}RAsAH>PV02@g?U}+i!~=GO8zE*f&ms=_j&kK`Ry|3v=ogX~M9!#Fn7d zl=I+C&c;%q&0yuA{Yd<53MeTmd-+xSiQ5RDi;*>Z6TK^*wA4JG{FK4peA%u&Kv1v` z{rsbbkUD*7&LkvVP=j6zkv5C{LF6%X(tu7yUEXMpa`q4HIq#9;)F|C4d}~AK5n6XY=1a^NkUsVo zqZdw`+)6iU_?TXXGzG>Xo@Ovat#P>7^)he&`XNMJZ6*==@{WwVJ-D!y%uB>Tz+|`_ z06Fwa*7ivFcpS=9;=bvUxCSGpSR&$NtY=C!Fkz*6e5)ZLXJp~4?EH2w)?m$|Xs3Yl z+pchui?0{K=I#+(0X!;7ynLLd&iC6)!Y`c52d5iP={_GU$sb9F2yF--oCueRc*6LI ztBuXZ@^+zJiHEp%9Qu)vZiym{O~;fPS@d0Yt+98H$v8pJU`yn0j`Qv0AFaUC<+g zF_=IJW;P4xbklVdsbKajsK!Zk8$N2n*IkJo7~1i@d^>*YsQ*M&coSbQ-A{!}w&B;* z6{=Ssxw6pn5N(hU$cNja%|tp=3B#|S@;?tDl>OzsQiLFGN=r%In$}w59sNl)rA zLa5-1nju@F<s+kVQK}|Cv z1ymH^swFj9!$fVf>Zc;i2E7lC8dKOBkNo!Ms%L2VWqEuyi3rJL(ObbD3S$sqNe zDTJ7yd#ObhgEtAFkxru&$Zby1_`t9fTc1h`fbA?Jn@Wy@cxK!J!z`=okygp5ti#)_ zeHLYR1+J^dPBYRo=mW#ND5xBib{zMc4RkX04dvv%`Ssk1TUUwB=j0-D2`B9twX)`BXfhg9z z@J&e-GzwEaSuwk2rP|@}>L=RX1*_Sk!|4&(D8hSY&l_4|S!Q@~+TCs(&Up=B>q;gp zlWTYvq(wwO;!+vr5IqnTb867Lt6U9U_kbs8{pcu*nJkU_hhhpPAe3`yXuxm%yTYOz zZE`4okP3gDK7jV7EB>sLZQzBNb3gaMuyvh;%-$iNN=~qXx0A1T5{7@Nx>6bKxrnf? zGHXuvjy_3Q)7|#ikApm`jHt%YrXkJBC8KE0PY=!HWa-xQjl}j@1YTvW}ISA9#T!wd^i&RP%T!g`01YDnX+0k0~pf+>G4iN#D=HKbYyb(CE2q< z=w`H2U8~1FB@@m2fm(7FdgwFs23|Zl6?l2ZfC!sgRpqC!-Ws%zIIBL)DGqdn)mPGb zuo5Y2OL=*kxUF|9)7M+u+t&l;0a@tg$_n^gXi!YwjS9*KOv)+llUV`IGoil>qzKo; z-P#}Mbg9{S^fh^+NFtlghEmm5mnr+1 z(FUYYMGr*V-2I40rYlq6=}t>=q|DugJI7mK zvEYkl*D-M0g{DBB8(N6!^VygF`k)gP+LluMHGzh!Jqr?`YdAbKAk33`xhpRS7Q|_G z9A6UF(q!1Dv3?cC|3>xZh_vU08E^n?niyF$gYu7ED7r+gL2t z7x`*7y!Q5>XHt;P7%BRQ;^qVFb3%Dq7Oe%lz`G$9cNB2tJ_EP`BO9elkB!TrTS*l$ z$qevSL0TxX@-s$0+T}{OR)<%MqD^cO<|^jRPfi#_Y4l?_WPn620-zJ+8i3(hzl<4w zmZ4Cb!4QexcxA8|?(;y&3EMAIk{CMgm#<)fE-5Q(B^VY9so&EqV9Jkeg?#&rPuQjY zvU0My44|ECw8P+BUZ|viZiUB8!m)H(N_vvSHNJpa+cV(Tp=&hSd9z*uy3GXdrX}6(5}6ck z7uvXi{6Ik9DrsQ=o|&G^GH*ls)1k{UMGz;~bGNWcS+q5OBeo@?xp44l0d~9il{gg45_#(D1b1zq>Rx#+vjnUsYsUeh}}|^z=j;! zusGqHx%Z{&@5gT6n$DUlya-`m5ydXagHs-}NYrvds<%SgSE_wDpvh?X`grms0&tBy zQ5BoWDJesOLvxlQ-cbWr@?6=qqWp#Bmh5Oo~2ASM0m^4yG=7*1fn5nkQ}Juqk|Z-LR{<|{EiubhMY$DnQ^tSDe3W7BR5gByB~5R2Mz@`r18;RFbLnNIZ4=n(d8C)4i^#a zOI^mJrQ+0M$q6m~)G>jIl7g!fyPu`(v0`#ImA9%`8T*Muvn8`%R|vl9R`e?l52ie8 zShRWMAW5#tOU_WU;La>*Zz{ZQ1=?pu>R;!PLrea`^Q{M~<}J?#962+R3AZ`z zdf-&98W8D0_7p7~Yc!7x5eCMWA$2=&cOQI*J&pJeXA&)WM0N;KGOxojHR6#%5~=? zVtdaQWo)KJt_ER)-loWd_Lz|rdzJs(ZOJBrA|Gs%2$ zo6(_TTcLg_YocJm^P7s$TGupk)Bq&w_TvP}O@JT*552Uw+xt@2JJZ9fK?O=AO2aoq z&v3z4wJ~=MJ?+Vb7Lm=J1gDL!xQGnM7y1eV#^p_mye+gQpLi$ztC>?zU?%fiWp3eP zx7dvM_%#AlQFwu#5gf+feNA@ynl+cibnU~p05KYckz#ZbBUL6vpI|~=p=IEJ6UvNT zoqDepgem5p?YLCS&(y`x1EkF_Bx1XTrjQK{lCIe~AXQK^U=jN`i8Gcn=iXheSDgEAKQF`G zQjbA|1WJ{0W_#R_pAHlvy|Oo@?i!r-SQ6{wl*=&m`qs#Sh6=Of8dtd9t$Bqx3R3~X6ZJ>JK+xh%umH++u$_f83S6+S;s6Yf&1)R=H*~-?Mx4(F9xL-E0 zt7ZFloQj|}jqty3X!|KM=R&lvA zE%_Li{>*WL2~l1b8TWPh6v&JMKk{Nl+dS_nKF{bA`uwV5pBE{$PvfhO0=f{`l+-?! z+*WyFyN7k(_36*2JwLt-D&^O^A%0)QZ0Q6t`L@_T5<zx}a;efANt;21k)>{_ivP zOvzvQfh4Y7DVcNYzOJJ!-bYTDgCk@DwS1vG#JRs*DdH1jrt__dQXezl9yl~!V6C~t z|3eoa&NXO}SZ!YM(`i5LN*{6*!0NWTg;)@kCH^w91!N!3cXTlboYH>C{M~(JlCoTh z#A0<}_76CXi~{QJel?(P8~MC{v8b?r2;R4ELj8oAtkytZ1yB~)f_4-5iC6AF zN$@1n;-;BSQ;0v*I|#e{aT~@<(J8F%4N)Bju{4+1FRux527#jn5b-cLv_pGuP z2xArPtQ{ew%<;b%7vOxDBGp#APb=?E!J)mxT9cd^vglUupf<>&%3`#73=Uh7*E|YT z>&1z)mGONdO;NW`Xl_%kgq&o7EF?t`SMNcPrr+F;7~Hd%@AdG^MM)~ zTPS(R$Pz~WUO&gXGW5xK7xMQlZ~lL^N5%PD47^NhobPGFO@IK&U-$C|D+y#*9RX9E zMRC*^D}h4k&ugi8oy6_afBgTucO@fC|8Ouvw!H2p4m|z@2zvZ>$dIQhZtj&{Xyx?E zwW5@_6aC^!Lz`Xql<)69fxp>uJa*IK;*>hmA}%6hmzAu=HH9C7Kd z9Dn%(EJL>JmDD)${qamHa#lVp>Hpp9`Xo++!$XrlzYb!-S@jQ=9@we>rUZ-(0OGd9 z#74-7Aiv-#&%Fn672$0&GPBD5h!ePd4q`Sf@)Is7lX=eC536NVy#5Eisz@N;oA$+U zlrKP^4KRLOe);Lh$NuYw_3mM%SDH=DwjIl~`4nC8L`{-7l%V)<_f+Z-hw(+Bk?wMc z)ZJXw-XDNGs$*|^>QDVgF+9L2VCCe-tY1j5DhnGg^L>2A?T}if7!W@@39p+}X9qDE z85qmG$wghIOy}jM%tKp*R*+r_%Argjmem!OhDOjL>mKjr-+k+W?A#mHN7YH`uF#uy z6uu8v%c|jMzpUf^U0i*GYJtWUUM%V7lYFW`f>)xiU)Q@R@jFDkbf{gX~WoHU;R&Mhy9VYwK)hA?q@00qD1~ z;HKJp$RiPjJppFXT2@1tRxh+8;>rA%Myg*&VkAjigl(F|arhefjRqp&)hR2>pd1@R zj`S;$w_vD7*D0ua^lR)MF1brlD3pncdhSK21mNAG$<+&_4y6*XN+tUAEm&X)^7t*9 zRNkhDO$J;AyPc~t1sAXGs9ADQ<7XoS9a$T&IVq#b?Psjy9wJkqTI$o;WYS)5Y&8@P z2tHMo6@|mHWhEs@B-c&>Js>ZfIQr@y4a&q!mMm zmciYA54jx_I|JJ#b}>4b#?#JUa~>X94dhq7tnGw*EjG4a0F>+H0pV81;K`;#p+Gy6 z*Sjo{#mx=&5&5^D%GVNtod7}0eva9t?s})Jh&TqMD;RS>>oG5yaR-=l)Mc@QmoJ`u zC3-uo!i_G2-j`ESbSP+OrJ4)l;o&ePP7klWt*ixK!j@Eb;~ewZejWc4I7MiEKnUzr~{k!_|wNhN77M#Wi<>PsSH86R8mdf z3hJ}zduEGMx?41%_wH%QSxBhc*H-Q_*NK*XtFXJJpk*Nz5!5-;BC4Y@pVElri(V8m zZ^}kFQ>%^kfESOWNU&s!XSXmoHyjq4(wJ)6iSqerMkFH4PSSX~(Jyv`OTn}eLw-8C zxM}QZr>Bcm-=^&Bv)fG>efq)kxxOIjHZoks1M|+_V4ZdMV?t_G0E=*ICj(=GJ7Y1u zeOH_n1$C&`NZN5=-XiPo|7sEEky3Cc*Vy5e9P6Dn<4Wpme6-@XK@E4SF75EvQJ5Nu zX%FVvVItLrwwS^hUGLjjzSl#!llN3MTbtIk zab%)kd$7TR$Och5$Of9I_xuJOj!n&3sNdq+<6xM%NHpE;AtMkCj@nF&D8cDMSFtmj5eq$5dChRT?rrl;uzGs!7hQ=DQ_%U5RPC$@}_B8zb^Wt2G=XQx{`F&+b% zj=R25J_4)2q^Mxiqz-F+PMHgJno=C6rwieHIqIZ1-FH{&4~<{0WBeqvq#qq5e?_gT z5x#{p5la{oiQE8yc$}eU{R~pB*Zz)=tCn_Zl39l&&2{jaknK{FRufqv72>i6xPX}T zZEB(Ed!NTt@Xwzju@Bqm`S}2l$Za7D5tF$dJd-xRp&IL`FoQ(><$gbk|3;3ksTcb)#6Ev_YERBMuCE;mDQ` za@Gh$GUSQ!saw)T6*4KY`S1F97Az(YL-f&Dn+(8f}X-w;w}_fJ7Hk=Yb8c_VWUO^b6Lw4i;7XF z;fyhh@bM|o^7kc9-h z_O_?+N-p=Y(E(sI0jD;|y|x7Pqzu_6t~way!_jm~3M%)`JvrNMYa#T3+Rvd=y6fA) z8VZ0A#ju$6ek4boq&#SGKtNg?W+MaD{(2Mh+rl@u|5v-2G;d7?SU_ zB)Ot}UteJCUMs(1_0)ZM%sh*^JLKValjiAS+Ksjg{W#S`gK?^>=%#5Dl6B;2d(%k; zN#sXt<0Whr@B(5}#hOH0^|4b(u|)f0jI|f8w8uk(L;k_4%wa4t7T{H2bcmZ=*>NrKz7r ztvW7X86-ShwdFu^@AZ4c`DyT(4UsXySu={F&ufD0aKc>knv7ycoik=|{2}_GQ!xu% ztcRKWPe?w$r*-;6qzc^Jtbm)ki)-7+`j*5-!4nb@ExNTB_D5P(tqT2m)8k{aT^n&x zFvjP`P|c$nlQMZB932!t8S#F5Tp5<#DS*a_Pt2GtXD6_RkxA-uQcVbmn>7&r>A2<2 zS>!LfneY;}uNFHj*&|-imf6K5b)HMp4Ws|#xuTr zk`u3w)5X1yiS_Y#>3rN@*C8=R`J4dyC9oK!!W5@S#<({QuL3kea!1q#N@)A1GRc<` zd4rn7A8uVFHw8v=m%(9L_Cm1cRMF58gt+O=_A~N4mZS_6o)2)t7*2&so6Z_FO#P|T zG-&b2+f13sT)GIVP!UKtquG*z;Qna~T!ez(mutK4&=c>v971CmH?Is45Ihr?(Ngtm zR*M!h^wEWicLI@RL~-9vK4XmRO<#~Uux8+90;D*H3q>okND|2GLwpDBED;>l@g!sn z?0MiW^9TNnj2)yvn4q~$JPSL^Y;Tsyh25px-H)3yNB6jNr)kkJxn>}g9PCb0OCK?% z3O6=kGL5oai9#j(uI|#=8;Y1=YS-Aw(DwF{rQPC!#cFjhTdFD`@Zot-bQO!uCeFs2 z074gOuO1zcR9lyc;eVWOI&wu}kPMJ3qjpCv$gQY~yqFiLCrwZR%`d2^`= zdhlU_$^3Qws2_#E8c!vu&MbD*vPdS!kC|4W|4f2d0cr9{<-GyJxLYT)L!LEPbcYhL zeJU`aQR7SoC-xDRf)>&+=f0LwR%-oMp>^Gc)A=P_YPy`Rnz+ucE!@W8XK1I(jq9!M z*Vc`zfDRvT)*}-k`w}DWZtP;hKmvL8&zP-V@tHse#w}f>f+WAVP5?Z_lPE$I(k2#W#>W8-_}{<< zVUT@EA~Aba_>A$8&Iof#23`S$gd~+TW>!zimV8@h$KE6E{S%9WH0FggSU%(B1MZ&m z)eWDHAdKu15(9P;Mt)s&G70T@IF-hc)9gjd!~9<69nlkzAya0%0X!PXI}85zTPJHkAxOT`olIXE~LV?`e%7X(+H;A+wI(KM9#Hw zKj|2VGA|OLG7t=~24A?a)b1%tOM;WgCT&>p@297z0C=nk5wNr_KL>_jM1G_W`gNP& zaiB}i5xWtuVz-8d>+BSS89E-N=W`;Au?&Ff<>Msrv=M}frGPNihI4zs-0?6b+`Sxz z1TwHtJm=I)*}!*M24~|cc9*5xDFu~zu1np(`b~-nU}mbOUi@c)tkX=ibT@Y;)@?o2 ziRaJ!9EXWM{<(59l-Vf{R6L*(N4w8+nVCvx0ma)+1I6HbKncIn{$BcKx9RSuY$TeDzj_XMo z^jn3qWD!yrph$QPk)hn^*zD~Hk(fsKJt(v`22y_*fCpd4_G2|J*HDL(0faeYq&|&b8x@IN-ro2>blgelkcy{1-f0a#-nwzuCFNZWbEv z4Jx@DxC*tRu>5a1+v_RFDoAKCs;~kjvh+jB_du0YS;$ndc;};-P7x}C61W8NJ#a#0 zU)cKW(SuvpKoD82cWSSv{&6R2te>VcLR9MgiP$L$ZC`IF+c#V0x7zZb5*w-VxO}_) z8n5d>p~*1ZZoqC|sLI-$Fr2k>rGAr?^r4vS8@>f3Qirx50?y}Alrs977TS{dD~ zNQzaxpZS1#PTzobeM=c-CeRbke3KZM4V!DJp~ejJ&Neu4Rj9H0rz4#RepU z(u4Ak3Qm)X?+)GC8qVcxPXyIF+FDSW)Ue*+Wf0|iPx zsVrotBhfjj5cj^hnm+g8P(1mV+e$)Rf!-SOf5AoWGA= z`4lXf$Cca;HLy`e-F^~c3U^mqTSmM8eTuytaUBg}+%j@rg|FbEF?m=!6pwbk@4Mp% zD^2kkDkVa#&1$+{FUUI1EFe3KZnc1GU4W7h$c<@oN==1h?T!>l7*3%{;wj@T6~VAi zzIsq<_pmll?OsAk$!FE#6~k@;ba)WKBTY>-8r1La+ASH{^AO>^Q~8|905xkJ#@Y~9 z(Im(aN9ub*&?IF{pnTOXXS=@XGR9w-pT_PRdm>=7z3;=hSI<@FG&ZT$<5JEsk;{Eu zE{TtJ#7pHGxF%{$w@83knPg0>yeklqx%UT?*ezUJbVMs^jZ34o##$U1?^#E~JwwNd z30nYAMfUpDH~>*BzW>6%kZA33V=b^_=Yi&qOv_aHHDy0BEXjF@;?=AujxVj*UwgKI zfC$D4^^y^#1Sq)|n^*h=8SxKfEfm*3jZPOslgXsyy_O}g#2tSTsO|a_)0QRsCswEk z8DHo31AvJvY*FW)j@*G<3#;?$5w2Ib2t3)kIf5TV*iPwu4Qp+tJ z8hewjPX|I*LE4Tezn}P3Lkt-4;%pSjgTF$$qX5YGjSc?p*|!e}Aa4`wCn><7B0l$$ zx`qaVllFzx^yfpb?F-94u}3qUB{nl;`wOWoKV!Z|E(dV`6w8s)$3%YH!QJeuJbH~1?&WOG5t?WCJ;_bmmk<$0OGn6 z6b7$SFjfm7{t?ZK0o=zHo@XNJ#s9m3mpXtiD*muLClftk=QK(aDIx*2?|<6$HAVDa zaOV3V5Tp(qt*&i%E>AOr|I9(K&i;bg2|#}P@y3uK>Y7Zjzxa1WL-vJ zR7@ppD<9e)S(haK9=|x>sb(8vTJ zD2n@^3r)(a|A7hrocQ_!?7s<4`yUHcD=zuzc1idjZTj63(9I#L$~?*ssDXbP_UHKT zFwcLN{)d7-|J%m`BSJlqZFO!LZar?s07DJAsR`bzFVQo!SM$;3w%&sG+*3qT3*!w& z8M2t=WS?0*Yjg&q+#UD@dt<9pz3=-Q;7jfef>xg)T87DwBKxN~cTL)LzGxaZLLOn? zK{Z&8ZjCynis6_H^3pks;8U+z8iT8V+QMH;_GWH&w97T*>!e~{@-MIKwaAoSnvE7S zSwNbt$0d11mC&XbK=C{XQO8GVz6#fjPZT;8dKJfq>i@DB;Hfj$3=?44f6lpu2(Fh6 zD)&4&g_mjyIm4YPtvBo-6xJ`d@hMa9PpeGh8KO(!DQN}naAD?KW+U@~>-?^um9h01 z?-&bls=WCzm}Lg4^4Iy(46IxqYU`DGwX@t#xmr53RpV-v3JBfc!gWak72L+4nXn}K8h~{+xO&kNG3()DbG8o#gY<+8b5WzV0E4iEqHF z6P)i!bW*_7`w~@bK{dvg91mwz=zO%45OWsarF=6*itcXyYya`t{Eu5dv+4uw1Aoyq z`=z?W;G&`geWrOpsE#f*p2I`scDH*6;rZ(PwfJ(^vqo7*cB!m?hE;ZWj~igrZ?=33 zb}SpN;a)-YNh8Ux;562#y{pwx4Ir8v<~qz{y~UMyg>Y!{>ceuId0U?(IdD$CDWQV- zWxWg)S*u3`(YrZmHPHtGjxsf{ThicuFysPNh4YNDB6c>J3_|UbfOXingudfA~&JyaO%yjX4`v?l3UT`=r~ z_KwwCrc$apuIH#}qX}m+rf1#~vS6`jV9{*N#qRM9r+_;&*n3&dNUl+^n2&Ca@Z5`B zcn)~%##!Y%N)=h(Z@A84hoy8BKCNp&M$PSVJ2rf6n@NbO&qfb5oTW{E9B795Nt3xd z2bsV?5K#gH#Uf9_*1_D)RmmiF?E@p_@rhDjz9>wPK%rD8Y9-`_|zwi38gdEr=Ofxykxss%7{(NK31OawnI^zAruL;XzzsRL=5p&ZlKwIm(eCQsyaVS zVyFX%YprkGCYC+}u*POZhqzO7in9u;MJ4~$9KV|?*nzKaPdaa*ra#%K)M zf5w?)bCL9BM2^54j%dl(|y}>6f3IvC~m%Df=}- zi1$yJ9cOZ+8BQp-HM~f9a8q@)JQmPZRGxOou|{~;hPxro9w^Ga;gDsD`CdNY-8rPU zJ;bxz7+DD@s8?HW1^MwuJC9g?G4`QDoH`?Sv%H?9y#jr4R;+d&Bs456(ZV>ph~TX^l{l(oBl1QJ@j zV29e{g=Rw1Zz$XC+O_AqbStb7EeZ2Aw@6h>X$mpS{~ zU4|Ajt4|BB57|=}SQafgxN=cu~a0MeDK$RWv}UxZrP2cUtmR)X+ijrfK; z`1<#Vsg+o?7`ANhL^aoy#iIDuka(v%QW6N63a&xIccNZs3Lia+EL_Ep!!(~^AXC1n zSnb?xTe%dX;A!v?!o5TjZuJtEo*9h9caDzYS`&C6w5}+|&XrA#zz4DxMkKiNk$q#q zQTB+509Ok#^)z4h^iz{B-&zhjeT$axFTV+jPxVcjRk7_J9^kSKej49@^mMp(Zp#{8 z)m+zzeKu>1U6$HD-*mAqKQnJ0x_H#H&^z4Z&ep6RM?LRVSUlW5fk?%AmQ%B$Mo9>v1Lf z6E_Il>r5Tir0Xy@wM*0floZvu zs&86M^jZ<#k(#s|8Zi^;!6SG~v0)cK?Ebm&l@5AJcIWJmAGbh5uCmY{ago~K@ z5-%b>ryr*9;1$%>i%&0|JzB#sbo&rHY_VoRn7gU;t#39iRVrK0zA#FNn=>e6`Xssr z5aMJ`X87e)mDtTtqCJUURmoqAxE866g}W%edej-E*etX{TC3Kv7C6N!-+OSU#N7@Z zhux0wxdpy=EMSKn(XrF1VL*~Sosvl%UvMc9>exsYRveJteQg!f zc4%ynP_i3)lqf<#M@|^lr-70L5V59CD1=+UwwJ!YSQb`h$@d+8-!$%e-I9=qAVhhaE#ny?XX&ST#b#c zXr!#haNLKjck1iq!`lM!Y7A++6i$g{j5)QKBM+m{&AE=;;AvVda_cz3^SHLhIPj~` zgU{%H@%C0>adq3eE`bCB1PC621$PLp1q63@E8N{365QPicX#*T?(VLIyA^EyHRsxU z&2zDzb8}9=si$g;8huDr>%D)iwYRk@W`IP#el za8~;Rl`bt!hSDtiEQoRJl z3r3j86a9l3bRfM0f$h(ILllH=t2LnCY&bL&Y>_2LR%bTa<|a@aD_Ze?&~l?E_Nq8> z%ZK(7xs_C^!q9Hm9>M$Biw<+WB)q2^o?y*4cu5J1R)8Y77`FkcFSV1#+(8g@D|RO? zk^3FmLuxgWmM9i2zSuH#NTKws^YzT&Z1OnzL+W0ngap#uy!gyzz6|NyF)14?Th1Y* z=_tWyRV7_Y)7I}0waMML#q-B| zFN$xd$+ho!@q+sfI;!Oz-zn~NAT)&9=mZ}*{D@ZW{_{4jC|>ey+qRlkO77T?@2^)PNpRbG&0l-(hsi3p)nebZu@S#BL=2Tr$`Yx|YWNhX>(p{6@eWa7qF-33QQZT*fw$fXqy^1v{+2lSPC(0eRmBr4LYtNL_pHsC;B=X|r@JVclPCNgU=~@WNEj#b0_{Fj_I%#V3F!-WNxp+l`+~&m~;A z=^!bana>L#>yN9F3!8X*mlBH&7GLX{>GCiIr4=sMj;l~;yt-K^WaB8>t_|Mpxg9qfw~FNKpWLM=WVHqGoVjhc9`UD~wNRdJ zK7c4Th8n7=ci_MEXJZXBAB`ZE2sZlb&>`F$=t!Gxe8%3&m8vdap+hiu8B7YIKySoi z3HUzyMaEjAAsJ388Xzm}349s88>Gzn9P>x?yA`^+1S1L?s*(tY#ZuNY$B5Wx@*`#_l-;arM{dIq13R;U03+r&#W}UtK^wGR$b6FS%9F9w8J5_ z4Nb>P+73pK%+wt9UUs~ zfXz+yyW0TEQ26_!+K+I$jm4Gni_7LIm^p)D?2Xl^0q1p~m~?GQN0y>@cc`y$XGav+ zF~8)uRPDpvO|{c43UVgq!w&~p0ZU$#-$~>frVLSY)|jzbrpjeKidY%5x!hobvY}Hn z%^#4!KVlSX$}j%xm9|lgfs!A;*eAb-YwIn5CVEoWr)lnPXfiD$I#XTMdcN9@+p0aN z4KTBOYb-Vd@d5|Zu+uA-vWA810M2vIED>2we{@bF-|rm6e91w@o6QC-LpE!CMv9}g ztj4QAU3qG3Oek-PyNEIqg@|zPc9;s+XkG}(jc|#I{N=Wic?CnXuRx)Gr{`A9&8Tic z?rsB3zX#h!6CFpZeCFF$sEz0{ejYjhj-% zV`lN2IF}TDf?ww#w}+F?-EY(iTwerzwkJ`U#6Z@N{F=2)`u%Iy6yjdYHyW;#^p{70Xv6UbIJZ(< zf)(nTnIDpM4*>O)c+h+Z=D1Y~(`v@mvU^OXW5{Z4AFsLs7S2itamYQR&Z82nC^EID zZ4==9utKr#!!0jDsIG z@~f3`tv^v&XJ=9JkY8XYvR{$)OK1u3hhw`e=WD*)jS5;fEGGE%<@^kkmUdEWFq?__ zb?LT|@Y<5JR%SD?&>El}_7<$UX@Fqyg&v7y9RD-U2^K^`HdgYl84oY)Z|bZHgn*~* zZchL=K_yohtwuIq9Okbsy*UcWxBf~*X5yO8?OQr7Z)(~^cy{6lQ!<;{hKy;wLTVV+ zKg*E>v>~@c8k0m63kFC@P|lHxVOdc zNOmUA=Vj}F65;G`O&M|mfz=rhy|I`$QCSk|@~b%*Xkm0gxC=QK8>o zuFO2ynE$L=+@^ED>A6Fx%_?qEX9;P~#bsj?t<6dXfe1t2iKV9m76V+9d~VYd(WStEF787R!k>b;MmL8av}D0I7y1Mt(5yidC*pN6ue{w zeI^gdvTSOgv0*_Ajb`|~N22kuUHtHE)%nRd7-%ghTa>=Y4x%@w=2sLO5#l{{-mU)F zR=;CI<7!G$Ug-ALQ%xzz!HQLcuU7r4$q(J0+vJ{3M?F0utJYN6-$6l3|8tUeON{FPFn2d?#(!=%78Co>Gc?Z>FT|hBihlF=fo=79tmMPlKJuR zXJ=P)ipVGvjh4JVV0RRnxglLCw5Pi}Wn2xDWTHgarR`Lo(kK!upnS|Zp_04{pL0*a z?-C{Q%+7Oc+Xcvn4~ns4`6cuw#}rfa>3)&A6vj>uuT0GRgQtADLXSZ75yPU6VEGP3Td1U8gKkdFN z@$R$|ahDoyUjpi|S63;a*V{Xi3rW{GE}B1Zp4*$CysEz_S?&F4pKK_qlfahrOm~B^ zMu>myrDV~3Cdf&D|u*$ zezyB_Us=XP80Dx}r_m-Q^fo*i@phAli^W_lQD;k7)@mfSo~vp0K~D&Pn(zU&s3hLq zWI{XZO2NLR&ML2yk(XYlP3(X8iG2B+-m#DnDYv2rL!mfZYKH$^WaFQm_|xJ3|Mziy z{*NyI@03UR%#zRfB%y@_@H4?zexc1SqrL9?zBf^i@9i-1^LAy<+~Gp88ol+12G8khI}-zot~| zc{N1A2f2wW8T)i3wAYc5W&hug_rF-Gax&hJ=RUGY5H0t+7uf>_owgfE$|C39oq0PJV$%U(NrO3FSLU>>ByEA+2)MT5KBj!IJ{?p94 z;B?xZo^FBk3ZpQ5I5?MY-l{c4%U@tEaI&}EJ>O63`Mh&O61pKNKbuQz>MDDPOE3vr zzHhVnF>_?TnE0JM%2r^l?7-%8DL9weFA`<-B(7EY*Zuo|C0bAL_UXTdj1D|`TVU~A+JG@CQ%gtNP~_nSFYZ!B&!ry+Mp0tGB!i!L4631^5> z9yq%<5lpO(6l)VUj1;$@*z!0jU%pdW%YRX4`)mJfwS>m}doAo_(dkwH*9k|3jcAtM z4-`fSfEv*>^`dFNX~*lJox2e6IK_KP`ID>NB59^>J?xyc?RWb8eRZU70ew2E?xto> z1e}e$CK82s@B9vi8g{lXB1Z`IrG3_cO9xfzFh7pA)0;hxR^G(TcdNq<9t-^ z)8g8thxzEjvjSz4bnp!Q;+===1^>pdp6hhY^sQV!`GNfkeNWW?G3>4Fb`C}+NXYby zd(t|7-kTiC?ene-g`BR0p}z-OgDM||>^J#W8h9juzP9eEohCdp=$*w5Iu8bs^>wO5 zfyA6W^o2WM95ai=3&8QOZ+4w=^Mi7L5R!HV^QQ>?Zmr9F z>UvQ)Q7x&WcS|=>(YX4=aC*wl0IKh2IAukviXF0Ri7!_is5E%)ttiSicy4F$?wZd| z%mFhpQ<#u9_f%Ma2p})}I#5}QQOd3+AFU(NHW(*fDfFVcrMQiW$}l)!7p zJBFl#flm*QV))N!AGCPR^QwCiM%4Ko?Coz5zb)q<_rdxh%Z`$g_np36g&@BSB$YPZ z^;>;R33gE&AB`2pryc4{<+_@4!SYhS@_#w%6ef}!QWEaEWp)`KZ5DqMW*3&)d*f-6 z-~-QkH5e3{i+?fH;C@o^mRBMvUh!7TpMBRe4crR0g7=ZOMpKyE$xj#^#uNo9=oyZ;0D?=+3ZFQ=?;%0RV(Y9E)8Oe9(}Hm% zG4Envr#E=MocSIkKnA|O0a_&8^lN?sz@I~lf>RhMciWG<>)XD?0&DVWw2I-+Z+cDiE){VtL|S4#eQ8o887~IZS#VD*mknOm6Tm@lB*O{>_PO&D1ci z*IExg)EL39VBc!#Ih|GReJ4nJ4lS{q@AI|ICYm|FnI@zr4fx1<9+&cZMOmr=yI(UP zvz;VQGLJCryqYhwu6Et9ngpmW(ocLhQP^+VIo6&Q-Mx*Yz{{v*$DaB7TN}XTxkc-8 zy%_gN%~Ib&XAZT0cTRV=Q|s=IeXi|7OFhfHq{o>kfpQQRRZd+x*l@-aS1mL?lFl-r z_)B(>>FL0J*-^JK^=Dt|K(F6LZ*38YX2VVr6aB710VQ?D`;#fmeMto_QQ3kHf#&rt zIP zBg-0Kw=i_Kk<6}*zOK?bWgK-vc81NoZS9Z05ZvQPCO5WlFGj$aEWi{0_8X&5xc6r87) zyPjh1)b474LYz6!pSV;!Js)O=D?GlRR>}y^VyT~$-3VG+mHJku++GpjC_YhWmvbU} zoK8+n>JlbEkt!gWDbK0EGAjF+_L?Xz%s2WZ<^FICr?It789>~^s7FSb5zu<4;8-W0 zvkl&FPuew>JdRal0hbNjMzO^TyM(NiN=9k`{{j&q#1<;@?au@4q&4>K@b|5V7qbbY z`I0(#u9_R{RxEF-)s$_OrTW@p6Qihe_RnB+duyj^be@_-v)>MCPp6f#FEwDiQ~rot zi%cKc*S@=sgwm5CBaOT}3PoIPAwlQM+sdNQWZah{Oe`#U6dR@=r+Z_PN{`n?8mk@5 zDq-kLlbq~3M3%c{dXHt}x$lOz0Kt95y69^`nl1sssg}%(Ltor`c4&e>S4i{tk*wf$ zjEIrI%?uj{?#HmMf-2rPXT~YS*f=ZZkKjK?E8C*?s-tyWj#p`NeSGK1?DXsU?h-EC zx*IEQig9s4pa_tAM8lFE-1R%&$CNnRuPcsd{8Dtkk31D<(pk;CXPM8HIr=@>tu=Pf z(;cNRXX5##ex3M;c}Gd;UGcsZw;b77kg>80R1>WT{w-XO?)t`fQ-pNCDY40ZkQu=^ zP%cPd1u#)^WNF`Z9}m6hg&{x{qVYmZ>JZ9a>05awtJ&IAq|fFy8JguRSe{xFXhZj8 zx|;WzKp+uJm$ko>XPQD{?tEE$!xaZ6#+x2NhsY1k0xIs-?z_rSL+7&e=)YZ7M3dfw z8iJl-abn2^;_0|Q|B`2Sk2m&Lx-Om(*uu%_pFRANPHHYP7ol%X%S9E4msg zzSO*K)S1qudV0o#tR;8xp*=L85o|!8#X3E^2y0=p-Evdt6p$mVe?1IFC@0|)q(i6w zY^PDM-iCDZA^DpCXbA7=XURwMmey6JXjfv!^ExMLWhlMTf<22qu7)qx8I*2_)k2*bR}sX>9!9QGgT^E z1@Y zaYa=n^(3FGki8&>Os=RQh*WygtQ z#%uq^i$S1;X<}ICi@mb4=Yu~W_`ama;^T8?EApWz0a4I5;aESM=*tXwYy@>$=-)5D zAUyZMK&IfplXYB_7+Im-$GtUpexocW%{t%jBLEn4({!k%4@UxQNCOxc5g|a8fO>;w zsYSs|gLiL!=?s ztI6~5-B8Ax8a^b1VQh0f$7~rKp+**T3eV1J>^dRuuVJxPMFZ|lGtt6|c*bYiKxrUa z`&&$`ARx9fGto*9g72~|3frhmZ6>=3E}GCiLmG&Of8Lql4AC0@>X6>9u7SzKBw^$l z3{8C{25ECO@YZ{TUXYBuws9t-JPdTxiTEJg?X{tu`NI7a8B*Z#7D-G@JgQv)$-cMb z#c`Y29&qs<=L(5bM&=~%x> zsg}B(vnnMs%wYmG(M zWVZH`Xy;9=y}N<;ygAzT!)X-=p2>Xz<1VZ{3B{?&ZR~dO(HY=wc;av1!l>Q|>}(I% zg`v9%TN1Ayd%CU(G0yBd{;Z-7f8rH#-*5Z5vERZHDz>H-9?|k?erh&Tl z6khR#;BoW(&3ewKqBZqr9P-9+?#HtR&!Wx(I{W7?60g@Nlmq=tSJt4iAIS54!%gvx z-0kekW4?5A>x@Ew08!>;GT^lI5Khn}o=OR$Le!nShmB^;GZOS2AuvZS*~rc4zx8(q&j$t1wYZX4DowX z1wHPav~Ia*JXg4(!VOZqoog@O)3XyghRGk=`JY+SZsWQK2f^v257&OfxJ6L5)V>xt&5FH#Yj zQb8>P4eNo#BJlxthMpbSlP@?6WEz0qLTUXojtt{VIngV)p+AbCH)euWdbLK@oj{fT zx5h#PiP)jMzlPiyk+VVdkJB7W#kk+46GM!qVvcNz{1ID5JxXj}B*%YQom}pzr%IwX zQ?=|=a6>NkLM&DZhV?1~R2BY) zI~7zJV1G@hGrbydZt#>PpPvw&)c-FyLLPzB0|FP6+FDU?^& zwC+!Rq`b`wn&2rx*{B#0NT$>{JH@vH385hI81h=b)2M>Qy_KO@tRgV;tH=-iGYCB< z=#)H)U>Zvs$s?IMD#97nPm2o?yjs6uoP`o_t4O^J&r8uB_H%IwnmipHX|jH<9cW*l z<+9s3u^u(El-&G@H0CGk3LH&c@;T)yOq671)FLn%SzA3laX*>FcXr~Wy5htc+FQyA zCU(}$Nuivf&sn&U;ZF(}nHHP8Y)@We5_N8tX?jFxEeD$E$GE;jw14_&z93VCmiy@KV{n9VX*T_*}AIy!R9q$b9@ zchoeW9}TiUh>ELj7 zTt8{QAn*2FX2d-?SB+#HzIM>BT+V9cHLfVzjrHEn>YP__6{}8Y)9}>X5e7X?xP`o4 z&VJnS8b+6l5xPldGI6vZXpLqtp4KSyBo5$91z)1}IHdI4{zAQ(l=~u%_)9D(GQQ`Q zLZH|bR0D65we1NeDl^hO8` z39*v|?9_s}G+$gZFu4B=siB;$rJ3za*J8sEnaS&WhrbYcbtVL?;c+=;+ zltH~uG=JD0vv{;~4iNpO$;fHf3|h@_2hS$$a>6{@K6JGCihlIocD>{(_z+ng@>T^b zJjq_hWb}E zy<#9!D$~8^TxF{DEef0pygDh~N2eChdlxHd$RdDR3&jgg@3xYoG=TiwZsMhvWpQf? zZ_x!Bv?+P5!Fg!zn2gnC94OpJiJmj+kR|J~u6&i%ODovzX3YFzxIb!qr+PSv!1U zOtSnOnrM~?5o5`=&oN3h$(6JP60L<5=s8e(reKtf#X`WcdT zrv?pgCb6ZmT`p*a$O0vRMaLB;*alqD$5YTj`+e@=u)|N6um`BSS8=~Tzn}iIr=4?u z2j+96jIvV1#0vQBwUf4^$z7>r5}Dx^ThFtt)cNXQ?Czm?Z~jWFfjw&f=G{yH7mAY` zE%Y(x(6Bl3C;0UuqwG3=xX5ytSNLR7(m4ISaHz)jtJ89PWA5)h%_$o)X8#|6OH?kFlE;bKq z#8y)V?+e=~bO&@%r-|QQEZ0k|LtiNZEb3Ts0S+acN`2c=ueM{X3vKT*w+>oWJ1vqj znyAa$DoZs0@>d$M@q~A&DmlH$J8=Yf@SbrZ5{5- z|2~S2q)VATKpCG)qSt#db!)h7d3_3Cl~w+Gsk6v>ojiWLi<(-If=x%S(hI1gZ7%3) z@jaQne!3*U9B9Ve2Wi|$!f4_0ucULVMcrD-)(M5*Vo&W3Iod z?&fl(UQYxe;yjRSvw9z15&Ohy3R-DgZJl>Pt8X(+7rJs(FhshNg|kb8>O!;IHDyjh zs4MrNR!HprLS_N|yqJyFznuq&2a7N;wPa6QazS=L)`vmW6{_k|jC1=W0IOckWo8GD z-SnZ!nT7N#Y8NC4sPN{&vTk27KP3K6a|K?h^(t;64ZfGeb2BjF5kSX@^v)3L(j>^$ z_!upkur2rO>NmFWX@0lb+3lp_!x7e@Jf5v2HE5rLh5Mx4UvBZ@~JN62q_eB&R8qmp8k-Q17zoysIeRv+=o z*OxA?d+;f@1+Ey!Qomk@GN^ z$@mKCDN~+UWLa1%UG&k#HZM9tz@<}l2~mMuJ*+TcH~m(gof`aUwRS~A4xykW6e9GJ zc0AtqBE;)E8O@6&KeM1oqJMlX0hICovo1Ht0?*R9;G$K@HgWFm0d4QMZNbqrJ!bT} zScyI9J-1gcEl>-3NH)t}EHu{G=L6L(CqLq@k!4J8jGM+X`b*#v2+5EoGFnn=9rkZ| z?awcIN8vW`Sq@uMCi?9Ze|1SK-rM!bo9t3F7>uT?AjKUth&59ZR9tjzEWKnjJG*+p zm5BR?3U5{E^(4}3Kizk}LEe2V_p2+_2BHOMH7rV;X*>>2*Zr+7mMx2I3#aK)FI1R^qa9w-V3NY>$@2BP@3U zj%6?oqG;&e0_H(r_lgrM36^c)=AUhoQf)h1k9)N(xRsQqxzuMqq|+h5 zWE=K`p|dSE;B>(?npm68IU#?NnhX$N9Lwg~t2knczkO5+>ngWM5N6%G5)z~%_w(MB zPcYT9>b-ResXavp>j>X|8@4FHy8bPjP%5&kl8HZmy@p!?W?AMdy*B*|&FR_bEpck~ z;d~hp(d~^-2}h|@(faka5mojbNy_A@rEUrb236o z!)j{Jw2LqZ?sSy0dDA*Rm^qzi)=q$PIX9ab>l54d_m-V~RoX%7S z&J;=7$MfdXQw1?@qZ;FFGA{mxzx;x3M_{yiE_N#vD)jElnorqFJqY3ND{>v!mJ0R* z9@6Nkllrzc>>$aYG_TQ+VsnrB@{y6H&E{~mmnPp(o@oRv&!`lG1#%0R+^;yQ9W+TF zFM%r0Z%f=OiyS2$Z-fKn(Rl%&XNn^yp*pich5CKi!&q$Vd|30-R7?I=y~%Dqltg}%7eYAXyiOoZ*)9~ zII=?sUk}WT$4Aqcxh*_0PtHYAU0uf0g3?o%JFfwq*WAh;7z#Pn>ASRmOA0B&UEzRx z%6QKlX*PEr!J6~u9g>FCJ94Yq1)JD>rt8Q0@{P9CIy@i9$jX~nPl!BaXY&${*9Gv5 zi2qlal(_UwO8e}I^lq;^%33$dNJltj$RBd7Q}3y|P$6ww;xUZsceBEj#-3Kjt~fAm zH{GP#e{^ENnCe9>&r!zGyO2H7cKUtD6T+S8USqqW^GeCk6XPj|U6B#_cS^TUT}$ib zWu$T++tUt#Ap`H5kH3w=$#RiURxi5YFZdw{p-xNQNc+qZO$yJE9iL$r+*<+zpu_bl z;K&E@JdM%}xZu37aAsQSmDW8M)_FgF%lP}ZrltwYjM6hZ)Mj?*XNZu2T#5kHg@1?` zy=Yl|)oYO3Ugp-t2Y3ubx#HATLVJ7kF=OL0eC4@YEt-+@S!&bK*-egZ(jVp3pbD(~ z;T$oGR5Pb%fh4-2xG2XJj}aQDTa$D3ta3^4(E*EUH;r za`!R=0Jc2LLhckH_g_R4b3YP{Kv5D5F5Dk02pKw*mUwie7!_UG|FETL5vd!kS_~j3 zs*;%|C46<=a`3-?@KAP!v&adT{VUbB%CNy^L#D)NW$JR~>TPFSm01+VK}X^jjYJR4 z*MAjbE!mG;;TFS9X`h1D(9^_Ss?&pSHVLteU{#O)L#l=1pD2({6%iHn z@bDN46}ZmhT*%HMTPRHFnl^afDrxAgw>1K0KiJ0>tDT`u||5LjC^Fdb9rzCgy*{T=@PcQ&EmftoCn*s3Gw{DUflaC`~Nh#ciY0r%+39L zIY1bPssD};Nqvu@cfHUpN7OL(0wp#qf!T)?QXXHH=WW)d-@jL;XFWbPF-A8!R_hZM z7M3?vS6}Z`S84FZHD7*iO7X8F`xf|zy8Oc~Iz1($89qEbjKF1AvZ@gIMAyvwKCW!= zg4@7g!{YzCdS5c8&Z>*YB%pRGWFW$4wS|>^;|n!WfQp|=ph}2JxJs1De+P1aqL!AH zG=g1NWI+!22nZpaykk=6bO3M2?LsB6^L0v;@Db&7vD#p#KO&0nmE-;4PvX7o?5`%V zC!WRW5bp0|zn(9v0#~YD?`}WW|LeEG?;zhA@HZn3+_}9d`2I)8Fvj7KPq?UPJwu3w z-f#!gfnYU=prBY_fNN=~R_+Otfe4^5|J4uW{|d|TRXK=5Z;d*~<1251izGPq-1$3t z6v+9df(c}Fba@M2@OjxGgd@!oHTzxzn=(#efHm~OqE2ss!`-T8O#4&)@0JE*q6=tH z-(lGweDE@fJItFK5400(0ch2N@K1V0jDY{MJ8=s;yH%EM%p+z0Ce? z9=RUp<^C(s73DDwZnbfoh&AjloG9mEY0O(VnGVNW`xf=0S7f%S18Nt=Ea>qu080V> zQ(br6@<&>jH$U@3r`t7lDBVw&YPcG+g_95^P=N!yJ#v)57B2eKSvD)_`dKZcbfmrF;LEB)+bFLxnsx0g=ccTYeEW*q!s^7?;mIef z&s7UFse2#h-&c5}y3x3>pN+%4_;nAmFbWySH!ZLEYwhbGY*rYu;!%TQ{DvGQPLiYJWgb3OQk+$QCVUQtuwmU&!M$#mbgz-FAgHE7>_$ z^m*6;zJ{?d&piGX(9i3|5s%Z_V9H#tmg2)fTS^Gr?t3N29gavq4B#ydI+j2#80o2L z@6VVu=Hk;Ljcew$I=~^US+*=(@H84uzDtJ)OIw-QykjJ92!jju$Z`!mPPCpzt~~BW zS~U!4|6nth(d5qQb&AHk$~_vY2G8z4C+d6zyX>I^^L)M8oXmMX@gr-6?oUg!->SQZ zrQyKFxiT@LT-Fkrgs(TTvzw~geppjH!XDS&^3kDcbG*`iWQ9EUbt~I!(;Vp3p~3x% z!{>IY)(8Dmx9jX~5thdrQEH)`d6WuxZL=r1&8JBr6vsGuj#v-sSz9(qzSX!CLiqqS z8(RdiXL>3A>6OhtUHnycPc8c!SwJ4EA)WyP(H(DY<+?jEv4_IVDcjdP?InypRDuuv|9$QY@Cd?W_~4(B7;hc`3L&zcoVu`b45&JFZ!8 z2As3a&=;2TNw}3nVn~D}<&EX&*VOF{7=sSk!<*!(g7VXrjS`G$8CgA3*&nv#Qzyk8 z=)js2jOSzk^h{z2```f6-2#!f+|G|5wrZmB%jQ8bMC0>FEP_hw4>QUOXUjFGrimww zc}-TL0~@5z0mCA~ZQA)K4^vhZyM%_w=|4mVOh|3cNS@d0ct5&hQ40{zNqa9Rq=+0^ zeE)AP05p7}P!ACHuZtJcrzp;X(O}I^Fqfad<0`Y*9k*F^hMfDa3W6}7D#o~dPzn&e z0uX10aGUzvRP`2DWa-;D$2l$ zs9-9NZjU)Umq+lRNIlamK%QyL9}H9<=5+h}vRTDVw#~2ox4vMw@fpBopLpaX(D! z&GxvLSHwY)VHQxnva#0W5@STo8J2{c16Wfb2U= zT;=N%EOAIS;!rXZeL@t&fOlYX2}`WBaqSCIT_HsZE!mz2o#dfvp2|ga>%j65mGW*q z-VuQc8s=KioPQ3dmXg6Atvx%2=YVMvfQ&LRPm~b(d{T%Sep*GOu&OFHA;L6;p{fM> zo*&xOc&2|51=wOoP<=Vu*+_I+oVt4OYz`<5VGst#*w;klNobRv*F*`I__u!WDuZ@r zr?)Ko{gN?%yo75dUjDH(8%e}tZIxq3E|C{SNo_PJ1!)R*S15idSEc{K@4Ki?R}WW+ z-8Yisf>JXV{6hfbb@ps0R}`hK%ZPJ$X}tDo(fe*;{N#B@bSPwPU&N$1^$s0lVmB!I3rvlfmw8k zP^xg0NB2N%VnsIo<#CIu)K#O0R{c|%S@y*-Qq5(nOLQk&m|RiY0?iUmw(Qq&MZpjO zK4~=~RSNE9&AiotG{zj}Vf1S@!8{<|7TmBi*F@74jy~+HzPo!%X=&Jm5P5!@`TyL|rozrR4Q+e5!EMPc_sVoL+CUj<);qcR@lIIoE2i1#v;tXP5r z>#p!mZ*B8URExDT$N|5Yeq@^+wpZQo9ETNO7eLH^K@6R-2ukyZtB9L)N>6V0r2t3k z2BB%2X$0`M&~UnsQq)`;^7n;wm$r`#eZqW?0qaD`QQy#u=|}EKnef8gj6a8Zi7PNS z^Z7rn^ni4!k}#)Bwt+uodL9*}CSuV;ZvZ^;A$_qjg$465x8Csg16jvnF;%;jF?8eA zlH`Wr1d4#2;jm4J2< z5X)+$*c@2=yMqu`yvMALtRAf_knLM>hh0t_;tXTTm#g5`(F!sD-EgD#U+AwMF5I1; z3O)_ynuli`a*&g0lEiT%BDZ)oplw;$Zzn-PMB zp2i{trQ{++%J<33jrXf(GNLA=tz698QRB5*v1vSp@QH@zopkC*O9j5xK-l1EVKCH>a|EAL-(vioo#Dkdqdq3o_NHAgIdlU?l9;f4==T+Ay^G z6Nf6n6Yfz%dj!o6N8|*?YhWOxG%r?ZIlfrgdz}FKFi@>)c8)3jfJ^S7rtebRO?*t;&9Tj>Xha z*Mos-^|Kh3CS?`>0EodVTQLq>jS18Fr56p;lAIn@xacAxgyk4*tDs9 z9aMnd03>)*Byw+?25O>B;OR9(Len3JxTgZCd?)Z5_y8hdE8C@mt%W))6&S6od_JN8 z9naNh#15xL{9kVt^B)9vryMWjNvE1Vd`fAQ_B#h8*RJ~&+$VnnE@H<>3kf}%;`+M( zAalc!>#<$h4&(>MEBFvvtrmk2p}hMN+vNsPZ9O54WnM6qh*C??zU)uQUQ2MY_B$Bee!eS6(J^anHUDlcUJmtcG70cJ z0ERm}f`7zvq=JgKtx?oEbeRT8*5nmTbC%SZLCdO|ZhM6m1l(yUz6=Is>N2Z?h)Y9R$uVBN zj#1)(90se>spljvK9_x&>#w=((zk)-8*k%Yd1p;{WdT9ARVE?Tt}82HKeTmbEXS;; z(>!?c!-)EBzIzCf1hUI~N?xgEAzUMahqLkkbs<-G`^E1P*N_@rkaBr>MEn_a=g6EM z1W8S;2u4hes!^p%pxh%xk)?r3pZZj7=D=W4zx z{#m+Yc}vqM=2ul<<G5#3r$nz!s1I)@I8?q`J8WZK zGwD&|XEY0Sj3v?mWyGvv9#M4MZiW!T!f4PAk(;Gn0I^*3M(tf0i0fyAPAfA90QsVL zQ5exfVTitd;Ekq!*g~KPT2DzSit0Bp8eMM`*tP-71>JW8{TT%NH&nNrIIf!KMcc1^ zRLY+#a`@aoF!!3$aH^a5(lq6HKbp8UKIh1hGzlH0gC*&Eel)9+$fd(x7&>HwDg z2VyQS^tg*{yZy~EZ$g3x*+;A1;Y80Nd#I~B|BU>B8s=HeBHp3MP8_Wbp;={Cf67wJ zWI)d`)x4TWZXBd#Rf6mpPE4cryw`8xIwp~`_fCe=h@`jfMr~YsCB-eB>qvHBULNH6 z0jkK?BnuaMA(}tDGw(U{0w|BCDbNKxRtUa8v?5Mt+P^`vNhV34P35j{ ziU=$MoNi`JPl~zgONilfaPn%7vh7DFEi>(Ay|Ji;kFX z6Iln_43?M5&QYQl)AD%)$e=_Kk}%kLno_P49+FY&(?^zZ8H5R^(%u|6GT2nYc59Pr zQF-25k-eZqQkqWYf2{iTN?<^stkYD_|JV6PD*6OIecR7y@+jWh;U83O@w{vX0T^xX zwaoZ`iwEV|UcHPq`aDI;!H^|Q4|w;zZaf|;PMoe?U2LUkS+^w}`*r7Dy!!by2LbxV zUS6?bIv3`0uSI+R3LvpFqoQ=$SPQfpSVfuKe^zJ~_MqOM;-F>#?05G%W+B#DV|8-= z?1b}sABPnd5xBD7SR08MI*g5wSQd_@>zF$7!{ycK(&<$rbrmv#^Ay&4U{q}S2~NeB zG$o7$D{jhBR!{Ai#L9P&3d?c6@0RNobv2VVbaATu5L^<67$ zD4S?~E6EiRo(=pY=DX^4zDMi9xj;p5Feb6a4cKZ6(Qx`f%fCK&Ow{?rC@!Os0L7DOX~G zIlb7r$TG>IydLyci0EaWUcK|b*n7+1IF>eBSGHv_Sj>_oi_sqnZdnV%kx%ES>YDINrb*Cz`^I2=XpN!+NE!a4whjUrpI&+AH zNgWADI?X>URk+UrG=Q-m}J)##IA}T*mw8HPJyJ)VrlUQ%OD((>x z-QoSvGO@Ne8S7|$?dPiV(0PV!A6CGmW9n8}e|ft{-w-^&(}bGSfSRX}ySr;(Z8`E! zV?fU}-e=D5?-P`OJ-?8SQshz@!OYiP#e+&uTWYu#%XT#9V5e`W)`PIfF6SKnS@Rq! zP>tV=G>feLv`&Dv-!pU;zYg*hZ|%qH;E_C)(YcDixP9g95h*rc)>PbN`GI=e{oEzN zh|nu+Lh2U$c1L(~X17N(JXIJ6qq4oFrvdNK_2jVgn~LHIPkquLa{G1Amp68ih>8WW z1T;~co$s(_y^#Z70G0US2*^3gIi}XEOQ*iCyN%84R~y?ppHF^qn!&P5JUz5v_+}Yl zJc%iDRo5vGabN4rmGxe?T-Qa_p06Fp#Pm}~v?o+ZPymCJ>Xd{Ca)*a7UIs_h&Ij_% zc~swTLIOb?UzmhZN_C9rSp^JaM!jyq)=hQxpdBukF3r|n_}Farf$Lq z%PKSad`lQ00NAkr+v_%@!omL9s-s0=JwJUD6Q<|u&K!@M#ST$+GBno`Gw8o!lss_2 zn@--dWTB_S6!v|;Y9V>JskMlrC=xJTv$VZ)*4!?}724V< zs=uNPCRgr`U1&K-(=tN2q+xpD4C&R~*UqNkt zX;OcU{^5x2Ji1KfF=PGB=q&F0^LnR62r!Dr^_h6-U(&i7!G_=g* zZ?8mm6j|`NqoYfOy4Q0Q&6wDnrfYAFWiV{m!)J6u^Q}fM5@?{Jxf6G-X?j>R8RpuB`hla*C9cblrd?|4 z=pg4i4j4*W(uC{@mp%R*TipP>5q;s+QnSp3i=mXc*AeOs)>G^3a6YWvxc^NLw=?KiTh0?=sSc zPO7<1IWL2l>YNj^E~#y6%+3+;ZCq_{!fIeoR{B(d(asGVXkR5Vtpsdg+MCARc4A1P z-PBpUD8kkb?L~8!vhugY#A?9&073Jv$7Ky4;U{wFp_OpU-yTaW*d3`J$!sWIx-+C$p=l#k$N8 z5};(LH%d4cM0a&B`;CEcb254`BjEl;CMw|4vN;gvKp72+1Glvr&;kE3gY>$J*&i_6 z@pMfN&QX;Z>xj#t8Y!u0!$uj?D7fcsTxKOrri||^-D_)*g2IKn2Nq~_oXMhSkOH^h)J~aF6Vc?U_-e_1U&|H^+X%M0Tp83f$dR5 zPzn)_V>42o$}&_OOs6bRNLV-FwdL`jnHtYZryA#8U!%AU2nd#fiu0`?9SXxp_mWnU zWw*_0dK-T!LPP^I1x1lkt8ftzl-&Pr_8Ioz zT6r~7T!Xjl1u`s;^6Hpsd1LE&R2uBrZjod-Y%pwwhcIRh9#|ySW z9FLdFc@2-(Sp|*PgPe#L0f&=??{YlJ{-sbEZdIEZXD`<-7VA$1IPULk@3(6iYwh(~ z(_s>W9QVSjC7QmXt#R}j%4j6*bC}f>7K@ zs>kDk)3}5EMQ2C{OUGl>cWH*&tK59a9HuShShlG&O#Ms5RD7M!dNN{+OA)%!<)bA$ zJ5mz55EN*}pbqf!K^Nh-KYfyg#3=kT6$)aedF5}=fDTo5(0I6wrt0h}U!eqpNuR_vq9Uq*Cd7U=;>x&M1LGz^FtY4b4kl%^xObmwj z8dTY(-bWTXo zukn6$=do_7jW}dsZvO-4CBX&E5Z~H_rJbR$ZZU9~Jub>HuvUEL-qXWF=N!hto)}5q zbDxaZ0myfIuk6ue{ymGu@^a_r!#CF$?fD-B9|_XGLJA9>yVrE%5zn}g zoDUVQN|(JcRHE-Hj{AH86&9^-uV!`jq^iA%%}Pw)*`^vM4D*ZbEP#IUBEdZcnW?h` ziPpnPBnIwS<3SbOX{kRNFt-xq_k5E*+B*wKUE!;dL2wh7m7BMrK(VaJHAZ^DQuF)Y z!0RZl7k?rHm#e`a#J}iu&|2X?=ygGBm1uP;M6>_VVOfds2O#5483~TtnvB=b*F2eH z*Oa6$NmmbJm(y*@bfvsE;{bZSPu1~K-SE`~Qs-@6$t~}0kRyDZc|$GG^gLs03dTvg zJ}Ib$u^KpOMkXWK`q3i8Ztd2tT6Qj15-b_Xs2m>x-Dk4CR#O#dLJ}DTh3oyQ;6H1A>8Ef{{ybw{nFKyFmEw7N)@S}m*ciN&s46_0MqXK7dK`2p#6(W8$z8P&;5F{ z_E3=b_x3ERJRl)M!q#_m)l`o}k<$iI1T{AZ-?rFn;yc5Eud zKd%U6XjX~-M?Ub^6aOH^K>yg|{x7-le+P+T-ck+EMimq4=SZ{rP(LYjeN{qzP?fWA1Klu4SJ7s-mijAC_NMR+i(2 z^*mo??k2$Y*VWJy$hIz5YVrQ=N&vZp#Y$tAu?+*M;o#q;AAhc%JnGTUZ@lB>Xz7H@ z{AGKttmzR@#gU{Iy_U9CxK_K?xi_S;xOt*x>bUTjZ+}_>blwVqLO{*h zUt4m>5(V(xj_Ny7KQ_9$*9HCX&!A#ohgCZTPsE2g6^lvw35X9snP?A3dn=~XCBBTZ z6RP+-Fou5xw%4*|q%OF*?mrmya#-F-?qh)Ji!+UAS;kEQhWuY_ejDeV`RfM`;ps?* z0b5SA8o|8+q1j3(S{>g|J#CO!QzN`x1h!cP!q+Jc*pkRh!p89{y`14LH7u_0{j)gX z`X^6@9wlr-djsxN8Xwgt<7_@-o}c!d3tsx2iQ9M-thJ|WEU@J2!#!*egSs(XWn{&c zwKU#T-X$NWBj#z|v-oExC>JQxadk}akY;(xC(5UI>TP&Pin&>CkbMBE{FqqA`g%O| zDhsk8k({9XDg8hgL^JVk4E)7UtqEptJ#PxBdhBMQCtc5zT*X6!j{B)< zA@^FXoGQMCi*LI2p_7kRltaNJt zDy}7>>EbUIVW8Id9C%B!F~S1R{?|p=bxCT2t|Ug35e-h>o>~OR+9CR%LQb46 zYn!N0&`5V(*p<+N)s@qX$G5h!wR$gG3a0$Z3(}Wc{36Nx65OY6N1_52=Wosx1~&~5 zQq+PfQe7_bouY|gya}IsZMWjOVLumu#~@vkwc1Rdnwgp9!i4J4;$tk#i|x~)-02=W z?#4r(0tpCCwSPYxWh(8s2b2eixy(X3I`{wtQkqbBMc(`_JCb?``8gUJ>Qa_=Iyh3d z)FV29I+pkbQl*?rUUsOIVFnE23}fJ&23dX*cxOUiqEDuF@pA*T;0tm}nk;r6vKG6z z^>@3%31FX93ef;V*1VY?vf^#J)y?iL(q#p9O){6N?-z>F??YZyrM-sEbze#{q4ix> zXPB=eJw0k8J}3O0lK*u4>1SW~<;gVJwDI7Xmhb)K6zmkw?o%vCB><}5D+ zTrwry^|=BU1vZq#rm?h*#=ZEAWFd5La&X$nxZp1*J;Qr;j@iV~H$ z+lLr48T;C|>8*9@l7R&ezD)3q7)CMQ?%I0~_Zq6Acz6crfL- zJMAs}MBAT!1?6bojBg8~_*8+6eQ6w}{)eR><06VD4EKV&V}->M1%Hkft`~gYvYn1s z{~5(mX`neMhJJ8zwmQ2E3%rJTB~>6XvQ?&-<|I-GCm#o6TQ#>A6PsYiHFC6wiX&95y0WQs!jouAyG3n}rITtYNju%}(0BZ#?3lc0$M zgme!vtIwGpt}2GVIVWarStgmZeG*h=Ajs|$DM3rk(Nav{o}+x<5ArN=J1uic%@61C zZR6Nl?+WY?_ng^|DAD^MkCEG3gF1PuAY7efpNl`kOx>VJz=U$q5=+FYQnX&+Y*9Ji zj06lt!4@HtyyqI{e5cQiJ2$Kl7=gCG9ojXT(rG0>3C{#TZ*FB^nTE47(Z!OUT#)ct zX+1?a)rwi%sr7Svxk`1QdWg*d@Ug=vNh(XA`0?EA93(rBCHM$S((UYw7oPJkBLe#? z&!UZ|eEvE#<51tN&`eZF;k#Z=wZtUF`ha9FsZa|xUq}dzOcuQ=l^>xROly<{B1np@ zI&92gh*VN_63BlNrOeW$4?(D;84$(@g)lI78W%X;bSlotw7o94{zbAkT|?0b zeb~1sYslbnS#*-}zk5D<25S{+vMyVgSXQjf@M(0kDCI6I#5z+x%e|t45<}BT6tN1( zu}uy4vW*>Nt;&qs5b=ggP9X-tU2)sL{KNBO$(mSJf&Q4 ziWiBF2|wSQaaXCoxmLGbG8bcTglqvan9}`0fvdsn{;CN^papuUw8SsKWzzL)?<3)s z(U(Y&K4<7;@gFnH^~$|>&65Kiyl04UMFLVt*NjxXhJTXCC=p9vmUWsGE0pK@p>8+H ztG98a5q(XBlw(DB+GxM)^1f?b5-o&UHcs-t7d zhjmm-Z$3I|(owLqZqdN`D(Vdw@KE+2Azi+{j=kP5ulX6|z6c~DJ}j4TRm*lcNaU>t z?S?ZaZ^rk~2`HL(XcM^)h}UXCY}f>xN<>UKC&HMZf)NwU+BT# zDQCtnI1iLBo`dLe8K9HZ8(D$_Z+%KJy2jqj&_?6L+`p@JgIna|qn|kv2a^9tGC1ss z?&QG@O>!B?V7%Isv)L$bdQr1TK|ZcWs|6dgo4A_ejA+l~B~z&aL~o=eUc4~prolf>>~4cN>Gzcty48o;6p|nUE zP0=`8lfe?HC?zq9*wn_1;`{jIx&;iy-b`C#n&4PR2fI4stKqbj#c=m^Pe)p>XKJxV z7*wGk!4;8XPNteaT{8!~KCjd>quI}}a?df&Nva;I*xu#I4w5LWc;a%gj zULC|BA)_eZPheRmJ+u+ePzKy;x==bk%g>wPSX^=D7ix%(M7oQZUM@`tYAc@ds1R9~ zL_VgX(5TqsQ--6qE|{G5;9f!%)19;X^rREwXnW3j*8xfNU0uKiogz7_s==Rwt8`B~ zAyyk|MLE`vxY-Cs4T?~~hZngv<%2z5a1>wf!DnYopm4`& zzYn-t9w@qq-UZq@1?Lcn&@(8!FTNJCmy#gIHg9a+dS+Sk8cEl>ttGrCdbVr2bROEF zj{knVfp*~klL24TSfQ$e8sC}u4oDuWI;vyBM&6JDj-Nn0`2)jILG?q&i7>vqSE2%u z+!&J2*WnXW;glG*Jtdk~_RA0B!V+AYdkV?U8=fcYyQEvBXl~o&Nvy*wpkg!-ZU&0O zVNR~R8IBKwK~Tfm9{ZrKM)ZqlCJ%vDO{M=QqBpy6aYsBb5TGd7Bcg!J+L z_klCRCl)>^O$&D&fKMjA^TzC@>njmOMU`et)ZaK$7>&>+F9|_ zXq_`cS*Qhxj;y>$!LVO&QXCOpk?j42C+)OKpri}JJg;_3j-=yL8s1zj;XzrsOU8C`Zi>g;hr-PN* zPAMxQQH2to3E{KD)COho^#y()Pa5g*A#1@)iP6pA7y0@@AW(}0K6`y>vR#hxQyj}a zk;^iw+IKL-@<_@D@a3-AvqC*H_yg8K?0&KZ&RaQl=1!KPb2(+`V*P-M`j0A;8*LJa z`r72pFm}r5W@h?j7yoyt`8B+MYRvWzY>r(6z~=g{0U<1X7vwgh9~;=S*(~`xCO&0| zXGWhrc;4AHXX$*(dPptIJ^K>_#bYAF8D-U%WWK=ftB}u;_b- z!0=bR&#W1ztAc=n3>&&Z?3XV)Sz~H<&U$3Ooa1M?$-8R^Eo^N6IY|ce88-V9#VGo$ zhdBrLhcXF~^U3XN&zlEK3lBBR3ltG;NfYsWe0= z`DKz_8{om@sS$YJ`RCikMF4)ERmA*@-w-+Ci*-_@#k(vto8vE(^7#ITBB#1PV%glO z+;Kh+sjE=7+V-L3NS1T93lHp-so1ixyFM%i1T|gd&Q+4}2LTjGh-q1b+nzy)xeFgV z`}61ppLIC#M&b`V8Y6@vIQh!dTfQ*8D#q}!TyKTE4N~cnFkYo zwA5755|#0CFnU0B_l02qOfO}gz&FHVyz+r19&bk&uxlc3L#mMP7yILk8qe$RFKkBm z|!ioG}?Na`1F6i2m`L2j8FXP?=N2h$$=XroeDGZd|_d~#OKHj5D5RyU=gAwiLz$vcMH6(74K;arWZ=yp0o}GwcmK^@OyBl%5L;&~ zLK|6ZfAnYx)uY=AV9hGz7YH734r-DA*IGbfBWM`^e3rOKSF6dz-+=HhVavPHG6I+F zPE(tTAT#UY({Ae1`NnH`b$t&u-mLU9MZ}{k)$z*JBl~gGiO9j%u1VNS#9AW!JG05s zLWc}rr4nsU;vWHfMM3R~`Xi3^Q)gs{ViF4z^&|zwi`3mtupt+GS70uVX>Y=ZEU2Xl zNvXt@i9abABta;kU4YBvP~usl2WtXG4HD&am+mE}RMK~>`JF{VR+6%KXYs|W8DEh+ zCIei3dz?4;deq>IYX~4Z)!R)xX}}siV{7qv2VLCH8Ig;uA*1U>6bRu3gny*^m_x_x+A9|!LMk+#dm60L zO~W{te=FmwaYW>Nd)Th%czY_TXn*?U<%&34sPZZH1t<{EIG?qJOU5bZD&LdMA*6p)#%}^Y zgEseuf9ca!T;XM#GPW~cwy%UhM&?3>Y?l%`S9foQpeGfFICjZ-&qIE`e^fBxZ|b1HWiX;4j`rY zJo{zC|HlmA4%S&(r}hT}XRhT`qU(=!xSq7`v#~vF^sc9_zYKgWN=}CKn>h$;MBWXz zB`V4*afYg9L42;Zvl2Mbop_4;p>tj#@O~EV93D4p+SNuhcqWSs-XSm|RuZDPlEzhc zpQ2r?9B^O9%J<~od!crRA)m43bhhA0*w+Q32M%N>V2;;3}|FkyzkmyOqZdrpZO!a%pDLls6RIHEfL#pV(NmF1&PL0FK zH0qQ(fc}Od7mry8oyhcM#-M;tZ&`1dRw26YGI~{!Q!hu9bsHP<{^XutV1A9{K508$ z{wNdB`L%$`hDWYW=+UfQA4}b=k@^c{cIn6sKNI0h=>L2<&=NIm?`U*TPln9duXB`SucC~1~;7^ zO#!8xzD`V29H!|bF>Zcsk-R8py~=sg^6-Zr(UccfLvfvJn)!Ml;D^V84n9gec&|9q z%4LuA&0@tP)yUT@jn-qhurI?t*t-e=jK3Bdx3-0WnsqgejSm2q;waU_79v2wOZ^76 zp1V*d6~rAxG~f*%{mj*BE0o|;P@_QWG_~zM;0^mmrr``A{*cq}$ZIT8Q|;xap-3XqBrIU2K0Fa%YeQh@m2W5Zf|x*CVmFNiHxe3lgjPv|xV%0#ZblHD9*ve_E`F z=Ny;yF!alU_vUt#bZ;u|pgDf}4b$e(0Z@);w)*to!RYbbYQH2Y$BTt3FB2(m6A29V zw|iI4rvDTxH*93h@IzT;S(xb(z~;Gp(f%o}kTQ|-H{?>J1ejaVv9L~m*-{}!WA;=7 zyyI0f^g({}$KM2ws$xAgMdRxzfORxiSg3ZGW4VI=p?QWs{-aY?HjeFIMpa0HeE(^`XVYrE2AkBDAOo&C=317U_(xQ0|OJ>wMllPF*{;n z{5OD_K&pRfaA8qRjbn<4lqgo8Ug`bgxlsKBE?2yO|eg2ZPj*65bm0U-|ROX%gZmob5I*wOiQC&V|=upXdrO_NW_&4CC|q0dDH|%Lot5 zNKfoMqXBeX){Iak{OjplV?&Vi>pt45kwh8}4)keEgIh3Wk+K3Zv~lt4HfQe=_x#XM zBzisIWGMTr8L}R#+=nigfeh8Ah}L^Q8^KY$i%yyqx~J5U`${)Omx8B^R?n7Y$=XY9 zpYx~x=uQ>}PzGqlL%$C|ij+qtlfF-g%^AYeH6pcCbs+4MACREZym3p+AL>-Yu4S>~T~=-ZS7 z=PY%%|Ps4{%xKkC0Kv_>s?W($g z3O2;*Ck@6VHP>$A)u+R7R=y3xGztELnnE_-GBcJ^uOqb41TC~5N1Ds>fpCdM3M6JE6~Y0StmBOecoJuQ{GiHh>4 zz$Rj6JXJO}8Y)`7oE6L6==J$>~mFv3WOG%z}FIYC*pf5EGB^D_?uF4c1M0j(#e_^Wg;1=(aa`Q0>{?Bq{!*Q75?mxCj~;V!Q~n11%_4&*BFxy{3Ku=Iq05~H^#W~-!Vq+niqi?p}`+W?y98g zi85u|zN@chPBDW~V_Rlnk@|8jGkx7tZ1eEDqx&|h7Pp5c3J^FFJX4UE15z`X2Hmr& zrQj?SNZ8zMQ^+1clX!^+CNI$jQ=SLfnaW_j(*1%X1w>*p?Dg{VXLY8_5IpSuE*AW0QI*vyKHG=>$^0!nc<0IdfV~Q z(C|Nrd&q_kuK6u}l9#~yjL3OHHu(;475WPYQTJAU-;`9>?KTBb61i+EHIuL>#>R-R zE0Bk*3a9==G_Qd=e0Ng`yO=vtM+8UoilFzDCIjCfo-IXd?Qn~B`1rgdY6KRh#SiZ-T8t&>T&pNL_77YoU1W+P4YQr@ADlJp z*3mZgz4W}iEQ0+t;yKT^2Egvur@LJ4{NK=24VITkXUE~So_H?>$O!h71yS$J*?a&7 zv-nnL(5y-+4y+M>#aG2Gz4?6I*L7ksOn4fxIA>Hv75}Xq1-xM^s$lP=f6Lh**h=dhl8lJQ!{} z5X%IH1{tGC?cj{rkT}vD*f-6AGKy+jth98XckXND$IbtI^#aLhGdE8)68xDCN=m-h zJ>q`=Z7n^TIYkdfjU!0|jntJU_VQ`VSQATt9zD(W%DBAK_Wba^z#a#O!+8Uma#(82 zK0U4<0AcO**KxRn0e5xr^h^!6i=`&1tEIP*SiAPLWC%O`qRM-EB={!v#D9WV)W1M% zD$CHDCad1w2Q~rcHTUeDaaakZ-f49G{~e4~9~>*(@)dM&Xj&PS?fS4+Jg?^9}O4=}lDyrv2?M6IWFn?wZ3i=@)oS5i%f% z;~>Dmj>)Zp>-!|);wm57)a3cO6|e;4;`{n8yqULd%VD#l^|ZexklF$6WF862LYdAk zzjQkJOkN&xJUaESwE)CIWM;u>jbHQmflPKO>$;0BkHC(DNje--0nS|I+?SZ*Fp$Ye z`SzSP?DCtFqqyPe+3%#v!H-s4-(3!L8=>=PS>79K|3XLwx~_T5jx(V z1?eUP5PsAiE{X`4B8*?;ULgC7m_34%#@lZahvWTes}!dWXJ%Nd*Qhq%P-U@5;NxEy zs(V@N2Yo{)b&3txrB(iJL0<2PSi(2|=~UpPH(8%r zd>4m)@T?U{pLztSPoTq4+bMV(hLEP37(S>QDNu|i`$q@hpXGgM+EKQN^<`K;%3MQg z&4$0fGhelosO1r4S~e}G80&C%3(MeU;;d+2ZOu0)j|BePj@QY97ZXg>WfEFac`~Y> z?5d9O`kGA(8&+D>$c{HmGa$0hC`Mi`g$_*xK5@sE)8s!ya4gNI%p|#3e_#2@u>plZ}TA!VDyZr4X zUK~&A3pPVn{pj_;z4i9(MTWdPVB6JIOM{OQ4sJKc4Cu%!c4zkXD@1tDx4A+)gb4p_ zu;BRmadRyv${6sZd-0-JJ6jg*P$o%@mH)(1j2%3F*`Xqx*BdP4_WqSsXfE2CGfCzp z+mWc-cueL3U@7KkIX9*+G3X*N9>Q)av^uvh^3ro&{f0zT_uyBHxbJ!9+~kuC!+snckq-H0DMhRCI_jBpUnQ7t zJI5A2Tz!~Tae<8-8x!A;-1b0C9X-fWtKhhNW9C>RYXe!u_M2lQiTUt&fnZ7~BBLu; z)#uyQA@Qnp1!)l4Vs!1cb4JzvFum+i+fcMtdHcNH6fuL9;8S-|iG4>-gKXjA0+%~% zlH8shBP3S-(u;$OtBHWBlcc?PD5ubM?KA!kwJ*al7cF7#4{k`sQ6%b|aC%v5*4wP0 zPi%rUBo4mfIRx+#H!b2Jx60Xj0YmH1_M3k+OUxZi_0S6C3WV0ERUH*vdEKxiD&L|; zt4cF@jxn9kVdpr&Hvih!Ux58T>=IT-JZg+xECq1c1fM4JXUp=Pu$+H_S-V>)j`gNm zqJIOkwm_48Ca=K?YMP`~^y5EnDx2jPw5wB<5>DG2^y)Pkx>O(&QjSj02QBOu%#nWyI zbdHI8F(E!=DzkrD{nF?UEc!}zhvLr%+mFpnpwG>m>>ye60EPk5)ARIMTRlydW&R56 z46eP~{!DDf{4BA5<>Ml#0SncB>CFv-xqDs_D9pf{S~*^M^d!?*bWzQSTO;W;Fuy^C~874Is(M`;-ilXCq- zhr_zhdP{_>^3%55)%bddTL?YKo$0e}bT!9ALP%CDN-dc5-s!7si|_rHkqRf}5j00r zKWe7)XQAVx$|8 zJ|CG0=x@NLpw%pwE1O-ApNy^!WGbMdyF?Ck=;Q@ELx>`v5fg0%A&ADuU7rhJ!5Jj2 zN!(5pPTtc1*5Q>k3V>Q}aJSE;h?AHd;+%^)(PcqqW#rt0=E6mdgVlo%ihRbB4q?*a zQJc5Op_F>w_1l2H0vJJD0=A8oHY?6esBG$)IVxvT1Pfxwx0Sl@NI+N`I{YN2pVKDn zT&^IG-u+9l=eTXk*7(S_RfbUGW~UCV^JZ~Jki-5@tie{J_|}&=bVY-bj8eo$&XkAR ziRV{4XP9$T9CMDdXeb{fo%XZ|vh{;yt;C0N;t=rUU6vW%s!a2l1m1uAa;qc_)i^ zLvx2$jC967w^zjsFI3HIH6GE$56&{FVid*)I%3=sm8i7kwwaw;wR*d~mN;5^+f1!> z&mz#U6ZU0`fp&3lGUS$xmLjQ>q&BCbjzq~E>U^4WNO+LP2S_D39CaZ>)CL&o7P}lc z;kq&m4lj{hc4>VMeb^7O%246aydzcHt9|qO%^21P_?A?{JQ;Nb@sadGb<(CKMW@BN7Mn1N?qz+)i<^F=%vSe0u2Rl{E1Q7{u47;B zo#BDC@9}a5zL(TSykY{r)~Zc_h5fQtRf*hmZ1gnPN6W*7IUFg8?I&-qcf2~N%X>yI zrknar0$KaCp}H!iFY{W_baYo0+mNds3^1x;rnO-&G+KUBf_$%JfTuQ}g&|GZ>&10o zWrPaEvVG2g7`IMPfPen#(HD;+8Y1X5X5hjEj}TADtb`}Q&gE2SlK@zQ2$m{@2xBYK zZ%Q!pY}KHMG7h<$+Me7_0)=T68f)*o8MOj@4{=N8Ctj)2=?~5Y?`>$m?zV7KcD9iB zCu}t^h;^+W*)<*Zvr}4X%ralcy$2V8B>Jgw#(T)qv8#Q;VZJCcX?d9uM0HejQ5^UX zom3wM<}X5W2BVCU#E%V*HGoY2g(OC{ity(W!D5Q)s){d|fC}z*5;i7h{`}`~y1gB3 zqx(worJF?55EzAmr|HQxa|jv7+cby4IRUUH(E)(F%^wR8Dv&q)^4{Te-&p`7-tiL7 z@=W29;igwXfuhd39U?`nfTKb1FGugoNq3K`leEb~Ty`bJE^%|%ksc;>lsBTv*N4Uv zJA}_P|3+lnD92|7+w5`8pQ;FhtoM3RqGB}$8qWgBT%%+rVWjWI>o zQ>?(8g8E0+yHh{ukU9geN?C!`096?7=>B{{=X)-tHH~%smU~R;DDq#cUC@@QZ~xz7v}>}-X^Xhwt(Aj zsjk%{ALA#+k=VZ0*SK0K?)Bvm<&!VV7{RB+ASwkd!7BEKNY=XUEgLsJID78J9u!Sv zhsJ~%V)hx0!rC-zJGj!$n2{+gnWXJ5rqPp|)50Cb3_JFL21Fd55{a#7zvwgU>NW=? zcplQwAe%93y1O3vI?Zp8ovY%*a^m&0z6ry_@D=CXsbF72cKORcy0-IK*gV6t23p?mviAzI3ZE=zD@j?1fY-?LD+Z!sB^Lm! zx=A$Ki-V{I5$iX;&}J#tuQV9?%;#Eg`2yHluocr9BpjeVx1=!$enErHoB^6)-PqsR z-hA<63}7+lVN0a93fy1`+IEE~6>=MD2hyClWf+2DO2s^SHEwWmaI3JH;j9#L$ygGJ zfgSj38_;tfe}WvI{9C|ZcFsOBoVX+npfg2ev886)iXiq>BS-XnSabolerv|6 z67Id3K+W^m+4}qUyGLRhq@9x?QJUV#t%<^Y%>7K2Zry)(@G9Mp)OM#W3zAKeWBUPY zQV#&T(c4i;g*%}1>st;$SdvMK3s4OBkGC&eNI1Mbwl!G1PQ!M*r@cF$OIQFhHxK&? zcG6vhw!etW-wpZT8szyf*=KEkW9I`{cmbUD^BI|8FT%ohflD zW5uo!v!wO!${nTIv_vF#0yc~~sMVhk^C4zZzou9C2#doleGnhoae|sw{ybb38887B zwT7aqvVw`{o7t$hLKp218n9OKt%tSSt;X1f7BHgeIE#*iQO^mzKg@t1A8iAc$^X<8 zteLZSa@H3SJ@Ryp=rT@ZdB3WkS zZqBP9VUZP^Df-FlEm#EICZ{}QP0)Tiev6C}{tGsZLIvfK)wrjOi$}H6z0pm(e1PD3 zC2ISyd$;oeyW0nhiHmuYcpyoK9YT1~A+mwA=B}+${yTv-{RtE*v}*0&m=@}omqIs6 zoIbp5pIA4WORnLyZh8Qzc9F7blTwUDFkoD$OhBw>esVG8Xkz>)4Bn@M7l)oT zqtI+lu&Q0AqZ!VVq0`LbFG{+i&5l-|i1!w|d|#jJ19f|;ul-|-@Um@r{{z4MsfP*r zjtSz^+6x+o0-`MvlDpu0%K1M`Y9A1dgHON0T{@u0I}+csOz|xcjU|BbKmmOP#LH%Q zJkGv&Q;Bc(#(dh2xDX3g!-xZmb@V1D#%+4<7D=#ea$t2Kh#}%Q3m|{k=(x)3N0Df! zezn+4Lm)UkUOIbP!ZNFikZE+jG@H$Kqe8uVj;$T}yA4-gshk8D=(h{EM;Y?iBT?ZE z4F)HYTgjSTzgi;gj|+F~iGALtjJ!jpWaIpRvMgC_vP0p}ZhKVFy3wen?}ers`unPY(#m1Z;)S;gYD>VUh=?o~C4u&RLaK zwULsIAPyV=uvAH2xKjVe8|#){1n|c45&(N$WWLZ&{k+oo;}rB9GF@*^lO3+l*)G_9 z?@z1H4+q(6jrEp~^;h`H{+mb2j$$=9L^9I4lv$!0N~1^`x!>It0w2`pEl6^ z{~-4F8v*$7UjkBMtX%b%@e#Yfp--Sf|M&T(s2RT}a6dZ}_urjHM=}rM*6EM+`z#xd9ZZDU4X`j+JwtDQY;yME+^c2OKy@4TuTf z-$UNpTkPolMa-9$mROhOt30rd=NxMP!qMC^JiRT@7>qY}chN|Cwzf9_m0B^QLe4LE z|2GTz@2md_pQNGq0EnG0AAQ^I<1$}OPO$)qi{vT!PR3ipNA{ycfK2GG29NfioS0Jd zuq6|XHo<)M>(R*2&ku^n1}Kn@e-Y4M=@bF>Cks_p+kF7coC-L~5a!Lw=4=>4X@6|VAVN{roVSe;}6qzMu=P^pE&j`L~`p9Q@v+HR4> zKK)9LPWGw*#Aq|N2^;c$9_8mb^OOhseLQ!`^{;SIhwu#fl}`e&cI{T0d$!$}APQ)s z)i)1Mx5r#>ml2=-#IpE^?#IxC=(;D%LJxnX`!S$MsLwqZPbkeDH`nqY@R~~WK&>W*1esX{Hn}#a7PYf{m4CL{%6pP@sn?7;nuKmS;slA&RU8z;$4CR!r)llFqE zFrSn8A`T$t_%I@$_BOlWPWtJDXjG)^gM=-?Cu&g$|I+5od25EDY2ml7a#hglbLm3} zB?IRZx%Z-UJXZx?ld=}Fk2*>LzveZ{9nc>D%GMfHCTl2%5Hu+3ZlKQ4Dp;@+%-G*( zHl;yMX!pENg2$OKO+5;5x`{#cc~=l_V|t)nIV(bq@4)X2S0nLNZfW zw}9n;vG0HNk9492VY0Lnk15FFb$fv4$C1a(JwD^+tPjCIfy4L&W(`Dhr*x!6s z%;CH(%H3U*A#yjZFqc$~!hkXxgAzFlfdM{9l4EWAL6`kefJrh4SAwW(+G~cjk1-G~ zMvOc2n?!LqnSpD6V0&Sb2$1Hb-5~%Z8Cp_Uv!b}bB0=sHUwzLD; zq=lH_xX7IgrzBE{e3<8)hoC11C|lMrgNFcnqzULbT*BEL{j@=o7ymPGBBXWjA2=Ux z7I^Ywb^6Io+()8_nqoNAZk@Q+i>!*<`cu)QlOAm%GUQtOqGB?PyMV@`s1l=8GmI!; z0H373D1E1?VrY%2E*7V#{H4g650Z0?!Z?OnQ*Bzrerb|s4#cg19A?y(Xet{-;t|?Z z0H76&oJ=C2I9zr%Dp^-oQxm~K7dsGcrme-AGNwKs1?vJ#u`8=(49>^nUI<{_c z%*e%(oD>YlEZqa7oT5xCyRBmPS`g1Zg$6~$jlNN!pNoP&p!`Zit3xKchgPfZS)3oO z@--iUWtla6O^>QL6S6;JBsI8-Rlma=1hK8hkTgcPKnOi7N?itkf;+Swp{MW@6}6T# zZ4QW|X0DfFOu0*jQUZ4${Q4pv=0JlDs6S5?`6z>$(=8q5_9pnff68*Fss}(`p4f`E z59eN(;6S|~G}Qt=<3>~ZT|#Sd9nV$gd7EAg_dg$dIqVIWCa5yxmH~y|x(c{WONQf+ zdkDE-yw}#{58mtH?&7wSe}}%B6`q@2NMK}i^K51kcO3vA8s)FYu2U4ujN9z2gi-VU z)tbeYDmfzJm9=v^8ibA>o3)3Yq+2+X#p90VtM{&S8he!L@luM!F}>b%VF;SX;$8+{;#%hwVQAacsvsA_6mliU0N zRrF4Dh2c9j22+hH8Vm9ukR5P8jCusmf!t*8pZH&@GWEJ9 z_j7?$izc{=nvEe?ON3H_L+EhMc2(!p>^yX=rA`xX&(@a}3l~xrpVo84k1qKhQiO4v zY+h~|uTHgcJ?HM{r~C#6v@XIT#X$cWw~z)XAwe zv4b3jckkr)ntl-Z(h%vfr?}^E{XOV=MJY#_yl>!_ywn>67xKn@uSoE$6ZL{jV>I;V zX`^xWtqT#?orxIeg{a48D)tTzHc*PqS7Um8kafHrUWf#_RkW~h2PZ$&P;y4*+TJ-Y zv^*3+>MaP6K^G0Ez?#!79`5ue_`aW|V;MH{U&SNM9LA|(=*6A>3(n0}#|?=Tl>_aa zKt3kTn&paQ;KL8exV?J((i9ek!+qvUyq$7fE!g~gL`!iLf=f*5fJ-VpUdH2eyiDe7 z-j=nqP;h+#c*=)|O=va@bY1JNakkU)sqT<2z81<>3XO1K#8CJ^44`y@AAL+16^VYr z{uF^SmMvTfr3`>-Gg$hYj;DB@=75a8b6KBXrv#(|&v$!PqER?fr~!$NoOaRTFZc5_ zspTZrc7$Ac$g49>Q3bI+6`)tc_^L$}+$*K0Vk$#021Y7kIlVePsoBL_$!r=suOo1A z&U37iz@(xj4aiDm^F1iCb)HHQ=`TpAy^}tnsK;F4xz@-F~Vxqb}zMf=)Y2`2y z0*6WwN4rTE*TLHo%c~A#8{L&}Vgo0|jW7b3C78_Dy8kn7EfV1O2)az- z)F%h!FRBwJ<%|pT4A2BRiPz!Kf}$VvCpWsf`%}1j|PoYc`PbyD@rI#FT?y@xd}Q4 zJwAkLj#_u7^;ySQ>l^U?h?Zfoi+_!qhMbaWuV=36Wh=5M>!f0nsDCEVt#h2|so z%!^0U^}Z1zKO!-~pJxGE%Ry~yV_Nfo%Kk~)+6@gC;Wlq)cKe#8!k2r-{mR$!u8$Xb+-DKsyM$h4UOJ1;0tNyP4|s<>c*_G z*qE?Vr)0TXI6{rxWk@LZ8?YHZk>!SJN@^#cr+$}MO_#TjoY_0XexlDNnrWf8?2F;a zg`BqOS(hzl1gt2;As#k#uP=2Tw2=Z+#4g=&h(UUTDXx^I!i_{Di_}|L0k(eBmum>P z1mLAt=4X~{BmyrQ%~-)>T?bC31$e1NoRE<-O&k?Nx}JNoZ*n7R{`}&>(eP8621S3g zM<7PYat>mMo^~7~oHY4C+vw=s{kMaX7H|jSqxl||5WSrBQSehn4 zWz$@a1mt3!bY3Dhx4%#~1k#6!Y#nVB-EnH?v42I&?L4pU)!6b&i_TX8e$>X_9q7J& zrRHOE+4gN_$+R>UF9CMCnRr1LCB^Wf2|#>nujH0i z5hf`C_*9^A)Lni`NI+GXpr(ZOc|+_YlkxeccMv55X(5gbto(WGDs1y|Ec_BhLKEGrTmYD$@f4TL3#xWjAz!!6GHC$*sw*PPhS`*nc zuFIvI8?D*B=&*LTbS>t>_$NfmAB1tP^tL<_)9>JGfU^Btr=IIr7j{)(hzDJ+}fkSz4?~B(_dTAt~2*UP5Gp#aIESY z=g)rtUe&0_w-U4yw}B1%P`dpYjGe$wOhmftvUx3ZMDCBS?}|Pw^aD!Il-05RnTVt# z-!QMgs61&o5F@tn4Hre368gFbe=&2~;<}qS@h!+%rXLI3-wl9sQgnHMWNn+A1_9T9 zrBOmq8rZ`!8kknu;V}-B-Q(<1wHV&S`e*cZ3P5iM|NZp#SePJ&a~pKTjP14Z{S3`I zxA&SoZRsu9(ZJ4vMDAUs9K0@WC)jaVjC+9t=^#S`I1sb%pLAW+3|F7NNukt?p`hzr=Pg@X1#uUDRWffq*x?kR5X}y z=2Bda^=F-YiChoUlwR3qau4&tC~{|j_5=th33g=Xz$N3_%f0|VY_z%h=Wdo6 zZ8YHa-j>Z~i##qej?XRb$6@Xxa*LhYHuSreQb72G01Oq_v`xJmVwrU!bG5?Zr=lZm z=5i)C%BAr~0O0krLbE(`iGAlL9o>R1T+fm}mbm$~n9Qdn9jVcR`YSld7_0tuIauP? zYZ6tAHM!pW;#jFTXcR_DX+gPylXW12+&cJ-SbYX8n;c8`pB7hW*~~}A@ho8l zU`L4~f?nfAC4DOc_+{s8MbWz4;z%8L%RTlhdW%NuA)FSqvOm9*aHv47a6vtqtuGCt ztOf}-7#I87mb06e-le!|ab{c?40c8K&@+n}~vHW=F z8nXJx_D9p%XJMWV#y3Dl;MP<)n_yV0Je@@Mg!uf9NHki`pg|!QrN&`VLld7qlIB*D zND!+jvOr|`BwNr<6(d3@UQm7thFO$CN2m4uFye*>o*>Q2jXr*C6`8AovFg!1wrZbN zF1f#domCB|sY=rOMyU(%8SN?Ui>6K$)7Vgpu;aP8`WZn@<$%95tPj0*F9_iYD8MTn#SFpZ!d;~M z)#{4qL-5<&4?x&yf7#-NEFmtrr8vAn{gmMhuP`OM6w{sT?*-8w| zfvJ%%PeHwSzc{xS8iA<=D6B5O3!_I!A;HHs&u^~IOQs5kPEeL|r<;ML={~Yigm`9J zf6ur)cy;6^XW?SjLsq;%m*58$ATPDsDi1Yo`ui*-nS7k9Sk>8=0pT?>6Z(uA>H0NkW#VzNMq7C2g?R! zN&q{!kbhIEQ00WXqN&QZO_g8<^*E<5tB(=xqf=C}yVriwCY9^t15=PpJ>c3uiYQW` zrTebm+C%l#YB7wY)7U84y;;K0LM-%QW%apSi92qy#(HEI8G0CJTiYdBn9-#+fmsgsMK}xj(mkCX7fBK8dISW-F<> zCV&iJU4v!d(}+gG?NHlCeTxwsBvN>)Ep4CywYNkd(6s08W#k65bjzS042K7NOemx2 zoPH2Mr_dtG+i9m@?ln*Ux58h+tO?P;(fLU0c0nk)>8oEwXF1I5XL?)&L-8x#<-TlT z+)TwX4gVyMV$sZG=W`*VZ8ZE+&JCzEqL@zlP8Yw}O2E+`;orx(;n6`b12ry8NA|h+6Z|Y0Uc)JQ-f&tY)hf_i@2uy)-`POPyt_S zlM{KVp0ZmD2`G|mBoH{Yslbs&558Iey175V8hv{)eBV>ak6YD8R7~JGB6&DQH?GT4 z*=LA((S_tDM#&n%A$+g7nlFQr%VoI1Awqqr>7rP=;rZl%jk_W`%47AjdiiSpNOq4h zzJaY!m?wc?Vb?W)TIwQa;>4_YSoBaPYy`Kf9B}$rx9URqJD!KKagf&b(Cc*@*~T!} z$@_F)H8S^d%lj&Y2^l0NqBWgBfA35cHC$!Fje)UZIb4pEkD-@Bmom1MClJ#;jN_AG zz~(aE%H2C6Ut?=TFE(kgiimSN&eJU?o^P&{S&%vWkdEFPq%L{DdiyOk)_93iU!m*WEhRjXg)5ze8HPdt-D4R=_=TQ9^OTF{ya}T#M)uPikCV5h#9SyItX4?p^ zJAe37o+pKe`ESo-i>Y@Rg#VCc-ktUYKXr_$A-;hxh+VXF9^Q3T*^LF1nZxw8_4r%n5$e;GvlS`!?6Db6Sp7DvF7YA zvE~dGwM_VBl!;Z-a47u<`9PTWwO&~HrE@Ktg*l07)t)!XSql(JLIs6=vv;6!Nbxnq zy}{a3HONJt*j3-yzdZnQaHRd6rYL_FnSTS_s0N^+!JVQN30}VeJSE>LiFPX1E}IV@ z>ar;8DW|5Uq#l5BWM><4)1>0rMveW13@ie-5r&PVFLrpgyMjLte1T(J9Xlxwf2_?~ za5uU=eZ_lpi*A6j0r&~=8^+eg)3%|u<0U$k%Tkmvy6aH4*k{GAhKuW?=GigEs9~Le zL+>YmqvUx#qs05LNBBB{&FLT$6P}At*=3|^+yu!U|Pw~bh%#W!MtIfl>9UZG0Tvw{mNH2 zkI<F??5W%}yy)pk@(4`$d6~~@YxS0LKvW8dmwEz&kRtV0{f8Jjf z$jYsc84aZV)H!7O-!wN|1gEnKIBrWKz0?oWrrjF%ajj4+h>j6#`-;wi!(M0)QYVYxh*dfSCIMv1)Qy;%VqR#{zGD%$$GBtFIPFjW##jC=H?d zL~=cym#hA=WR&9Qo(-c_LVS+rMT^xrTLVPxDYz`cb_Lrh|9&{% z{l8J+|NBRUb%q#Hq(6jrxK#!L)--|s>+`~<862v`zynX!5?rwnxO=!jqLRW240@%e z<6pSe-s{a}6TJ1C=Fm7Up)jV>#66X5+wUf$HDBWcg~IHBMNzMO&2xP^6wmt55!09dbxDKzh(W(j*?+ALPmKuM3^oMAX$r=xigVG)K| z-T`rRG2{myYEr8DaoQ6DL}P8$Yl&=%8E+O>hSbavn!85qKBya_7-2x98i%wYokQOE z$BezpVRy;!TYb5=)*t%B(yhjBZmMy)z^PR0I8a0WDaT3HjSOB^j6@Lt;462yow0?|OZ>$1S+p^3RW~2WNo=jxS%wZUPToDE*d;v*pQk{e=L)B%l z>Dk6KD2A8BuqZ93rJcaBCjfDmaGmedqu!KsDh92gy`363 zASkwh^|V|8c4{7yJDCmN*N$ly>;Ug{g{}72{}V0d?@%;NgvOXUKdI@%db3=j>h-Tt z1UR|`A>5#V&gcsEjD=RxYP$(j34a;BmqTvd{VikOOH%r5hC!d@cqj^K9w;RtF01{R zJLG66vlV*Uw3B^pA7isi48W%;KI$T%B(q!9gwkLs9D3{)h9W~Ue~_+a>!V576L*!k zjuyA@mN4EHI{ujvpsZ!~V@3)?(#dphtemQf+SYT*1aVKcAC~Qusf=o|20c?GSmx0Z zAou=ZBfQDI|A>w4#wBfh89)mAJ}7jvSun#0z-FDmhh$#l*_QI$+T1zJK^Bh6&V*js zoQE>H7~f7`E)R_BRx=6ddUJ(i^PctMGw?7HPAMQ|g%`R?951v(`C=LV-2UzgPz`^-`iRq2*rurZsi|Rlu!J#Ff2s5Y`wQ{C>=KZjs&rC-|;xk zzg(eHkG8Get$d-y+$>s7Ol!-+q2-}L`)Y}er6Ufu_YLqy1dKe;q-{m2FTb*{s+`M9 zOKPO92HvhJxah!;{&^KwMnH_~sbzq)Tpcr%kWBS6L6UeBfc%ETQr&050fvDwfXnJZ z`JzyFn36W_qxHH|U<&s4Ri*aY6KHF7WN^(dQn2SF< zD&_=OMj46xi3Sst)9RN%eh|gOT!=VEd#h!A$#9`$vMEu9ozUernb8cY0KA%)m)dZ+0VXIOm?P$ z)qOC&{29aB?SgO_B-)M?X(NS-lghdE!#?#rKP2&sMtm6_y|iNDiDDFir0^57AE z+_xjj?fI@=!`4b?@H|^{9R$)pNc} zBXIS>QHtws5)WZJhYmzK@zwHHuy=7 zXoa&{7hF=Y%JL*=NDQAlQ-2TrI3{4@S?4>NG0cLf;dD7y0LPuhMNHn_-&v-lVbsL7oTk@OOIH!tIy9+XGIBKX}9*O z$tmgj`m4u$T$iFb-By0tZ|8^ z^+hY-@API}HRJ7uR<#7cgwE~BL+Nuq4jSHn5RJ-o5m?+8xP%x#p4;;_Lrp3Smb|jf z2}hp|Q2ef;r>Qm>ym?gP{X3;>iF!h?E{4AvtYAzmCw1AJTOf%)=9rmrM87l91@hVt z&d9@rd|H;>)s$s%Gov4&C}4TmBea<@60rLLO%q)tN;u8MARJj!3^%EQA4-$U*(|+1 zTR@J@*<)vk*Igw4dn7>SZPR@{b&Eds`L`#0`Htg)>MvRYP_IK#=0;e5$XiUL20An0 zy4_pT>^hRlYnr6y(PbYGuOt;!4*%DiOXn*widqrj6x1#bV&LJ8Nm`jb+<&>_6oIcDlj!lA} zCY}+PK;b@I0cU^E+{U;JE`G^ak1p>P$E^1p)Pu27x&F*X+tV?};bLM7#nhh=T?LRF z^_D49A0-`$-f8|$FMr>x$b3&Lf7%1p8?7uvi;Kab3#b^AMjxp7Kzv$B_T%=yIoYh` z&%flZctLS0lsL9v`X5KWlI6G724VbQDU1nJjW-Ef6KdkaDn19akd?(0@14Y5!OMmd z3Z{vR(rJ=vsS-tXlbvdh8OP#unSs}iES#wLgJo3Qa5`RPH6wY+}_U@SAUObf{A z7bhSn6{uPItoDX?p_)TG86fUoU zsZch{vDvfJ#}npF_8n>G{6|IJnzeIfO~gJ5?5mYs33r;J&v~~SKK)q*@IzrpuFWy( zrLE+#pBh2Gi=N&jrei*pg2tr4s>c7pb|)zQmhGZgPQ%jNO(l+8U^A=yl6gr0ca^dM zd@N8_nX$s}Z|UymYB^4n*^6R^YYRPa%Hpl2dPFjMsCz7aiKHP@82Htu3-@95Yo=#? zJ&X+8Py-RNFn-FW%Ig#TO8nEWC3l9u_I$rusy^G;jX`Uxd=FDhF6;x6?Ef1GjCSk= zW^ein0`GfTdp{n>RfVacdoz<4XBvdc*Bo0A3ug1}R<&RSK#C(JQ$>)brg2R-3;_-z zddTE`dQ;@9mR)rnjdne11PiGb#lwWdjBwb_NZ232rdaz_ZnCdU0ISe|nJ&sdhkdV2 z_FGgi5&`?;vKI>saaASo_*_sz)2&X;%eX@@uoGcOT?0Sd1TJGh2G;WpNkOGYUHmr0 z4&4lRO%8ot4hmCPii|P`6}oU`1l_gv z0M*1?Iv=Gq=QuNW@9-gSKqSC)9*_;tY8-xjO>)F_JNS7ubQ)i^R(ZRibhBu)p2OIR z?qhR(uE5V?xso}wzTP#)BQYF9TH~uhE(T~BW$&^44FAo2(Ia9ml|jz@x}TA&&fnKE z0ew>jG?pt!|JLV?Yi8V87aYQKbx3T3}+AlEcvSd?du+aure1%rXy2Jf* zplk>)kSayR5jK?vLaDHMri7)Ce_rwZ6aDhJ;)C0NYRY1ovZTd%jKM1KT|>#O4d!t5 zhbYeJ^H2z9h^e^6t2iseR$QpPg{(Zh+mo`n`3{n|o!e&^#;?^e+#}0$I{GOZ`xk( z9Vg#gp>gvPnizy|x?hMA#EiuGitr}kA4_egjK(B_-OCfP87Wx+?+nBpZ4ihMEW4(v zNPnL}F4SY@aU3SM{+3+~Ijv(cKaRkp0(NyB1$e&G%Lw)_JH7h{me0^Dpr-srY_-20 z26j2q&keGMi|AxG+QoMPjN#mYC%gEqBhcc2Zzipw{MzHrI`lc^^Jx{M=;fu^=b`9B z^L6l5k^}-bAC_~~j9nHjqUFBb<1p;#o2Bg6mLmNpurDX=?B>p8by6tOpN=o+A?xu{ zW+2z>JFdcp-Bm+EAj4#&ce89}2P~G(cA^ZdDLcL)mB*;W@CBzNaE$jkygTuS@@3*6h`eMY9g`VxR}b5}{- zD^jfG7)Ux@-I6)?AU}zW=QVO04@}n-0@Vd$z$6*%f_d9^)lpexXkqSW!{ReQJ)J|V zmDMX=R~1)HiHqPugL;WgXV^0fyqIwSZ(z`%Y~jQ8L(BiF_2=RSW_(%Jtx2Tt0@x-% z=>0``rCD@Jif)ICu!36Y;HP@q8CC^)ldr&mEe;#CXBTOt$IJpmv1LwWm0=lowRjv> zFH^AH&NeJZEj{$ZtQB(81ZW1}oHMbO~dWDI0CC@VwhK1lK(Jy=lYF>iT8XXDnr!g3Pxe-6$H( zzs~4xf?A3s?1Yx6J+q}_{C+0_3Ymg~>|R}BDEpZPAi7`f!<5%=Db0~}3pJIT=NFwC zNYHXflPJ2k@JP1EvIu6Xo1~Ia)P8u!%@p2{Wdr7P2UJ`(q~rVhgP=}j$?gS{%&we# z_1A9ugv}a`CI2>~YQp~V5Lfs5=!=vk<6&FH`0%rBSpd_|dc@l`h=nXgIX*`C}NgnN=z={ZB7?=AEy>GV|pg7r4M~B=X(As zky0n9m^*c?=gX=xiHa1chQRgJtU}GZcQrr%r=V>q3dMqkWK96}yL9`%Ei3K*tM7NuRT%F0(47~oU!<%k;Qs3fL9kGB#osLpl z6CsH;yXJwl>L?jxc#V@O`RlJK24yi{Wa8jhTv`%WME>njQaA97z{LK_Iul$%Lu+Za zv9q@ECB}r_*lVrTd#rHWA^x^m$AgpEZ4Dh9ZZ^YsNhrGk1i661@$6@ZDq8jM!}N#l zH_C@pANGHq z1^oJlfB*5XhnWB08t&Vp^nckJt{R|$Yx50eCrab}yK<=i_%3c%F2FJd5Bm0I^lG_Z zD^$MmTP+I)I#DKW0{hwu3A6en_jJ!Iw2(KByCINc7IqntDkoCk3fWsK+7tZ-b7$iM zyoa0ldp|Esc=A1?aFy6&14cwswMoZufWDU}HHTZ3QoQ2#v>b46N#j_lBnyl(Zg^x* zpSFO{=shG?*NKiprjkl?3zN^M#ANKz2{CPGCjY7Rx~V-j-Z;Ep&c}RiB1*&&mAtx+ zduFA24Rq2p9d$n#8NGEopp;=>sGP7De8)sNgXw(qk}5(zmN76q8UN$N_K@EIgfSVC zq9~Qj*pqq=diqWLCD|9Vr%M`%DGgVs{|bTE3Me%@k35!s&MBqbi@QMPndCmg3cV|V z$>CG{vLOktD$`a$bd<=yLVI3q0@fz` z!YnRRDk&KaJh_&f6<=yjM<|#D1c0FA1C{~Z6L$ebp*(%au|@F0(l^}8pYeAlcF7?Q z#+`&S;RE{p=3em_UE3cx&**n!eWRLIB=^@&7Z0)(m#0M1L=>;+qh9t?sK|231o3RRC0O#jF4W;<}vNJ?r5P&%1 zyJ8iK%AJCn&SDl|G}3ubxAZ}q0ls)+&)no%!}}c>Pt`B^*zwh z#9T#PovE13<5s?L{CXOY$$_`YIh(X>Ol7~Idju4nDcGOPbgL-eqRy#A(ih#I#`W9c zrJ8N-GJZ1YRO)*8I9fEel$3-_f3J}6)d!&+vg5G@OpNV8<|hkl>q2!xP@Hj)X20@F7vw z$g7iD<_gXIB4%zDRR8m(S4rIQ5Ak=VbY7@OD-f;64;UdwUpGePY{v5&Wd4S5#vJ(~ zYqIopew(ZkgO*t0&=gZ4(0dH)l1>U^uLVt3W}0@e+0dh_oCDa4ir{Da99*WeIyi&P zc(Cf(JN8sOg=g(vpisHYle|lw(kCSe=HcZ<2PSb2$254kWkCGG66b)6X;7X;oXL*T z4p;v}%H8$;c|z8Po>LgVQ2$bbJFnWJ!H`Q62jh_^|I(#@_>W)--K;sFlD{hj6QK(| zbKjh=i|}L+g*aS-tZO_{{6@IPSH^(hX2O#PRTTQ0XsOshe1m}uvtkvhUUg6vLzpBX z?EPHq3|`I=phV|i2o@mJ4BhnK!q~c=D~`JTpz>1{o*+BdB$UBElH?MlHJQhnwNr^V z!>TEs`KA6|k&LR5+7W|K`S6JAYsb-T&@Mzz&C?a-ON<1D!UhEg3ngKVR7KW({AK;J zW5CJRi+>$?>fBgvc5n@U%RbAEoJ{Y)(Q4?X0U!z2!+gwTTUv(aE5mcsXkRLigw#u< zXLK`Q@`N;O6!-ZtYHNC^ElIYG%hv2?@a6uC7tV^+pUG#Z8WGy+#p(;}<7;@RyrJz4 z!7~GLX=LbWROon<(qv(;^X2=C*qLcZcEI4w7Q<f`AO@fp}egRFuOJ z6~zwRdNYQk?bz+qRQ<~6YPWfR29%bKJqhiw@B7zIl#OsjkU3?+#DyUdV&z)>2dz{X z-*+PV^M`co{vftr6~uU~FbmX4@DD_(RT5E>6i)|3v!mPxnycHMXQp4}s&U9kmqZGu zh4PQ(k8aU_LOOyxd`t*eW|^Jbo(7X`L74kBf_iLkyBW+jIzN}o;(3;U%)N_+<7qYqsdcon`9tBZ6SZ_VS~-UNuHvRvvWVSUmUxH z5=KN~FQMuEfku;rDxk$C8D|HumFG>4;cYAtGRDbXNwIx|5xP3TEfqt-IW6?Z$EAVA*~x`x-)M^<(oBN1Bv(Akf?uG z8N2At-qa9Za{2Mg4ypMxdn#wLXA;Q-r z)&mEWzDLD`?|FRQImOG{RcD?^t8E~RA-wsz5BCNnDe=PcN&a0a>+*^J<&vlCT3GMoQ4o9)~rU{b`-4W~;ssWmvU z0|r#`@xsq2CBoXgsOXeRe%v}*AFH=8{W z+y8sPW$ng0CT%K1jCTf#r;i0Iv8@-GPaEy+jUfa zp0l14Fk8V_*+!EQbCU^s%9v=r30c|9Y`H1U)tvl_z^%s0s+vdG2%^#ZTouOObaL`- zfn{e^qZ!{*CHxx3m7xjRRj~Zga-F%)-OTs!66%2Th*~@M=Q8d>*|t2HY6T7z*Jq*a z$8`+yR|FE!mz#qys+hBt zFZ+(V4TPbF^~C4H2(e3L^8vV(Napdtcgs4DQ+m~GuP&R8(k*O~5;1B25~_u#gT}tl zxz{b9kfl5=x=ts`$cJ8v(HQQEP%$d zeb`5KoUpgitw{w;T^eJNILc#aulT4o@7AabCKJ9XM2t>u{?S^V>-(d%Oakv+{8n1F z(HJ|t%ts~D83m6BL<~ZqR-A$qXJ_uUWu|U$h}YZ^(YdF(kC_$(yp)`*j;_N)E@2=k zLXX}9UQmQj1Pap(Dwiwe#!O|d7dPNlI#iz>jY?lYUuRM zQi0)wiv0H#aaGx^IHLa?&~~3J}Vw@6uR_ol(*s)b}q^rr2V|CUJ>X! zC?<0~R)P30g_r-cbGUz@v^57$K({Td!u2uGS1`uBRb^BKiCY%w`J#EGmYuPe zjTkT^JJIJJE)zxE!~Zi(<v z5UGB{ih{v;L0%=OfR2zxG4Gb0lHjbb4;xH(QsFlUs4diJ7-$-Rg0d#=8==i;3k4F< zSh`HirTy&OinOd3MjwWQb0^Fbf1Z)yUq=TEC`Z@?{y?=6Ax-or zC}YpLoQUseU0k^#N??nz7Yc55LG{G`iJj}6ZZX=0BRFT#)^P^%@z{6pVcly!v@{@9 z<{$FP|9m6&Q{CbDbim4^ig#y%=A(Qes)OOpF`*d{Q(1Sz9L{{5W#C6A-q`zrfEIt* z`NUx=>p-Ke(|M*gG3#a;>VPBH&=+zUIi< zF3ukoE++kTLosH`swCaM=OS{O@<)U2ge_()tqDuLt@>m z^gH@o+7Ik+h<~EszhO3)+3!zWOJeuC(aii=e;dHtp75=Cdx~#+VoBb?Q_^G@=6D$~ ze!!*!xUD}E#Dyg_^I09K5_3_zdTu0yalXAbA_X_=(+P>O zV|4HHjRKq%GO!<Q-U+fy*qD}Y)X?>CUuc}wba^6+&RI!<@*mm6j z=}F~+gtUrtE-t|em;U=5T~ym`C8$;B3LMt7ycN6T`MB{<-dVUC0col8g~_T0NIjXla(RHo&kvv=TI^M=W|1II?g{0QPTx zS+}feB3Sap;8KFiDEnd`NTA#+f(z=9`8V)T`Uwhk>7}RQfbTYQCAg9?|<( zA-EtgC|u72HgF4DD{9MoI0SOPk}JM0t~={r;n8xqrYNXIeKs$HSrVaw_O1UAqXCAh z#wB}lTayq_0`>B97q-W&yXFHR_Ws#*#Vj_-OuMUJ3LxaBjT#kOeBZY=xU>nC@%jc; zlMjq@6vV4L180?N3*rYibJc$R5#kF&hbXOC<5Ww$R^H#M+H7H(oE4RK8I@Hjrh zOT6@*jo`IC=mFP@@wMtj2X<~`M`sMdHU)~wk$?C*s1m_0Gjh!u#R2&s2s4Y<@ zO6u4^+dB`vx?ux z0U`}48^9G>dv(_GmlK1}MKuX&AZwZsNw^?C@mM3YY7Ewz zTpS-=KI}o$=pv2_2UTHwr00Uh7s8$Y8BH{b(wb~8f!IsXL#J1UXhfSvjzZ3d!jGnyxLyRisytg zo=5H*FHkc|Jd3KzIfMo+X;3u3+N6t2#Zn z0*U$$`Cz-W!O55p1RH*isSCBIF5Ds&mg$H=6KUxO(K5vxc6V0t2iL301G?hr4;cq; zXAUb@cPU059CycCF-Y9dI~pvmv-(OD@4pQw^20q7Wcp($9ZVtRe$mkAG=avV5tVxC zvg}|mwi3&8GT9o@61y2zKnqbptiX?CaG0g|e$j4;ZQx*Bd| zALNl$aMi-+^VVF&ool2XB|-nJHd&R2RqZzS!w)l@U6%Bd*>Dbu+Qqdev9|C95Tx6 zU&v(GV1>C;d4gMm35kvQfZhT9AKvadDyr`P8$P0lf`CY=2&i;-Gk~OY4c*<%&><*Y z(%s!9%?#ZgLx<8ebi=?iT-W#d{=VzJf9tpIbwAH~_CLb7&Yr`#<(#u$pZDG@V=A17 zEQp0pmBNQO6dsSubf?pWXvOZ%2VMY7ADTyRch`kcl!yoYD1hCpKecLKnII!2(pZ>| zBnp_;B`O*PP=db;g++0`|6cN|{qcR7*oQL&d`8m&2HE{=#skJ`@$?&_v-oG2);?9>$iVjwDvoWuFHx<}dM#x(qoEm&+c9MvP{u z*GYV53NMff!=ge7MsKCP1YgsKV5z7^SDfsJ{pSZq4NNo*$dW%DIwF$$U0e>mA z5@A`@V~>dT`Vpibn_%YOh>rB_qx|2?_96-X`!7Gfc#K;=w%5-PB?^DF7s!t^{n&Cf z6c`>3*MI)~9g=*=gMxrutmrkezp*Cyzh2DC-eLaNm;XNQf9&)b;>7=MeuAI=_0^Yu zpCgd=@0Y$+d;IYyK0zroQ80?Acv6Er{1~ z%tJzwHrxsn4+vz$j4XT*6BifFgHBCNjihGXm!vT_JLf<4Dj#QbWOK0C$hqQKlPK?T zvCr*sQTi?=B^M=}`#(l1o=oHuBttfb<5kmw(KMdZ?m0#Vt+&KQ0aRIJHJ?~XYsgqB zYA9K$AG-u*u$qoYiyg`4Q!6oa`n^HhDo9pVm|W9^@2Uz53yVh*V?6va=nio^-SoO_ zUcp29wtLil{b$m&SBDbJ7a-2y?Y^tEv^bYAoL};|VtHnhw2ts^!GR51`w#NRugFyC zv1C~!UAysAabKVu%-2fE3YXdqydN^D3x>@}e@C)=$>rjGB@GpSsm+qfP1E(k;PKzC z4R|?Iz{ywVu;M6o-UhgwdALcB8C5Rr_)VU#kxYz*k=qkw`OjPchV}ffqPAxzs@&lX zM*UnGO4v#JnE-p;K=_w?1-*#|T^S-Th*h6D@(S+eW^Q4Cv}LiSv{01A_7r(${v^bqRwD`*WprTex zl!3kO(2cA$Do7u3>ujQf`#6Ti-F1!`P1R@y3Ija~iCs$=o`#q1Zd8HgMg+yXyJnxr z9)Am&MewTx;XYp$X*w58`F&DX;HWc|?o9`j*W&hhjK zBdES9;|5~+QQ;t2bHRhdcF-nF>no7QS_V8WF`!j{Ui=DGDflLuYeQX`-&y{{VM~flgd1Se3d3}j_+!i^ZdP~87zu@C0W;KpO@R`!XlL@~5RF|Gl zCOQ`g?ik$CRZ&tR9muT65q9d)nTTt*>Rk>`^B?)PY91@WNlGOLYlIQB?Yn?}bhw`qF`rQFeHE_|r!4_jfdTPoHn$DxtK36nr*Y%uz2l zMQ$&i6{PX}`O(K#i?L1aRN!c>qCP^?P7bk;RBA`gj~R8ctV->J5}TRFm879-JGUs> z=_%gMSZinJi8|p82uCT~F{HKg?cBN;dXz*F(mHN3)YK3Tco2Eetjo}Kk~*Q>uykH5;8eYpB+4Lt! z3vs;z3NbQFNYZEA`nBrE!#%rJhPp54Hn$?isSR7B9VmA~SX?8x0C4tE@vS0OdbvAo zol0o~2qv5+6tKFybU9YL+X-1IoJ}bvrTXqVbMBJvd7!bf?sL%au;b%nv(g_}8rg4& zJ3ws=RM4EewlRGGjZoTadj;NXMIa(5Fs?U=^_}Tm#xjKKo+T{g`MEnwn0v7eo_|WS zT3_176~2jL=250v*uGzm8ORTpAe`AD35)*I;D30yOtb_kyarj@?7q3b<9QbhR!sJP z26wT17y+?({t(;gE%|}qb^^=wWz~vr!IC5529uuWKwPGiY}{9 z-0a8zdTSRAP475(@}SSP73;izqS{XK!~*-~LOfG)hR&lpUfW0d=Wd#}B(2wF zYqod264#flb*(xNW#S~SNAF7R%{&bD2z}XhZEsdIyK3ZGyeIBX{L2<}j`+)(IA3#W zd1|^J*AX@DeXr{Km}H%FJ)gAk0vB`h6pV^Sf_?oI%&m?eDuDhbS3%#GbcNrD^n?(U zB`YbgeqaTtYz+MRiAm)IlWbzigH=ZCQ_Tz&xUrjk@5kPdlk+a`aL=Z6zJMV?Jdgh| zjeCbEp6^qXq4F+cep?bjz-Dab7+XFu99Y7qbIlivm~*mocQ%+MPq23g~dm#%wB0!+W5<#Em2OP@m)i{R|fL-J#z{m*-x2GZziM~Y@} zTg|lFbP05-1&RW~cX}AofL4;np+UUqgNCjRf=`#b>*3p9&MOphj_UTp=lxfE7tTq0 zc}J~aE3cL0j$CDXkn0C`R@_V$Aba%-tn>UM@H6E-#_K)wz%X6Rezjb9K^RBRGYsQR zOVjwAQHh^|=)wTu1FV)YR~@@JJ>{=r-b_(HLw+8{rC~djVH4EL z6X`TIdjI(bUhVyLs&=&0g10E0g44_>Fw(t~U5!H4Z`Hg;1BKE--AIG=N;R>5waJrq zKFtL6#CxI49eA|ti<;cIK5-xEUu}r`l9Yz8v7Nhiu+-ArQHx(wgSQM#m514bMLiwH zKlZC}=i5NqF&lQDK3987nw8EBClM}+CGIY=))9LJ*i6?jNC#Ug{-G{3gcf|K=EdL- z3R1oqATKd2?ZWF*x;GvOv>C^%8A6^@62QZ|y?dwK7U{8zS&^)~qzcin4o$AVTI*cL zU6&-!ab&Tew3%+_wH}2NM%;<0vN-MU2z*ZdaV5D0@$mL)opm|M1!z-y;SOx4hg>XO zEMT0Am3^si(t{83ka7P;1iKsx2&;iDl^eA@ncG13U&YuVMYbBKXaWSQ4$KdZ$HA{v zL(nY8DxRdQKE2zmD;t>yg@YTlLbqYN(Ym!E%jr)6N%=Zn64jCcEbecan-vCaweaqt zcw*5tQ~CNu;b|K`X$T7WpiHSJrlk6 zEn{SBmhJ4q{6m99oM!V83hx~ykm|^VWMy6C<-?iPElElf@tHwD=%j$BeBOnvMUSwB zSV9QW{neAp$@=xx4p{iZ*?w!6bD4v_k&!I7jVF)R2e<8p(rP1LEYKd{r|!D4r}?DKR;Dh6Q5Y_T`hl*c`G}QyKL)I!;HC*>yC;~8mUR5sZC9*M zXSc*HUr@g;HoQmD)1n*Fw5C^6kTpMk^FbaCeLMUTQ2es$AY`<}hcjQ=1=kF3haE6t z%Bn2}rt;cR;+|33_N)sEiukzineX*QhG+(T+Kr9COeqdaQB;`j=6A67uw|f9ic_(@ zOgZ5DhL>W{z?a(iN=ZBFQsHl^I&uvTzT$pBo|W-mb3F6tPSJ=frd*jNZlj2;X{b?! zy|!em|MfT0Fr6nSL+>ndwJ;8LAvhr1x}dWt=OdyL)@!jFy`~|Cl+) z2T<$Xa`Wx_At$d)f)_hln!e(5wA>t1JB%|D?1Wfzd@5kt8}9?a+DPlo;OfArz{BXu zLpxEv`@w{yv-(>{1y&)C;D>()padwEYFIlfBr@pn5$CAAch@%xz$d=5gF!_ zlU8ro^d^Dti!-8R;QV=MgoJ_V4CBkRWtS-;*N>l-yo-@miLW+xhl^5;O6gB-EBLS0 zCl=*=;ysQ61>AvsYFU-V=S7&$P%H2aIwRBiejl$KxWaeOVvdJ@7;hi>cN)}M)Opfb z_u?zV+t*eW6?5(F6;MiqBa|BO{oS5Sd41i-(9!e?1h+WnId)GJHg)z}I8MgkxfP^K zCGvxYT&8+75VM*yMH`0VXpBkoZ`xeBF^={jd>y7y3qqsYb#wdnY`7;%X}WnD?@v{1 zbHFq$Q?twIySvpRD$S7{pzMh-4G>B}wZ`wpmgmeW+9EZYX&g`@{pERn_kAqGg;}`k zB`@ALKk@~^$+cf;Mn+{#@_i%Q+I{h8zvxdaP>WB(%&IzmSYP+_j4imQC65#U8qWl^>1_e+sdh zIjbqYJ}0>z09>3e*@$Xo16sY+Ke(wYlZ5T%FtG(rE~;JHzC|OxKi|QO>q_P43sbgDMnS94aO+eiIXfhf*-L0#@p6L;c&dAjJp@K}NBfxFL>Cqo$_EcO%J)xt zHUAWiSAn8Ga+@^U0p%(IJdCOZ))F3m+g4n-$rm?qYmMt07D{v7!H?g!d zp+bjg+aeWtVB%U#NE8m=**%LS>4Q6IHeYR$%GnS!X4KjOcATiMMp!lLH-Ovn>*;Q5 z>$?x<%Czszco!k(D^soKD?r06Pna)5bK|i!3%?nZN(*#&QC@+9?{XqQymCRJa9!9c z(bb^#@p8==c0Cq~e;QQFkeNmKb?vn^L$cWU_;6%%Q-^Io}>&!lX{@E5{Y$7bxIbBP74_9dKJLDg_WzJIdg91SZ+d-8av>0VakJ3 zcSeuprTvx)w``J@VJ6?BS%NEJe!5{Tg7=37QW@*<9lipp{ zyj3>Fd*}0R%9v<~bm{cAiCV4Mi=H0k zXJpRf7{T}oPuSUyt2)*iO(XN_U4l&)>YLKyh^K|4rhN9sVOR_*UIfMM()fE(a;0s$ znLEe!^&8dMtKXX@g*gqV_8DGuSFIVEx$|9<5-)5>R{)y;PN^l^j>~jT&m+g5nFH}k zuI=3onPS$!HyXnq;ZJ;he;*}Ni8fe#c^QY1pDyJILZ5nD} zk!NK?p&=TlvTM-hL0D;}+ERD0-kCz-;p<||oCQzUlrdG+TCsc29_wldCaw4E%%?X{ zDyQf{-b-0Lj;R?9{YzW?uN@Y*urL|Ir4InRr-|RtkZ}qvq}0e8aHqe7(o_&=HTH@7 zsr||H((>iw0_ln;)D9hmlg`zVjB?qah*&XsdDd~ctN|~2)MB!u+ zI5;1+307|V+u-Ljjj%Yx`40=ONxrLTf$d&qdL-`(W(Mi}*byz?=WzwIR1h(&%y&EYL&Q zdR0dPa7!U%;JXtlj1+1)zOi{TnK&@VZz2lQ<<%SU23Y0J`~rls+{0>A^7uscz-@&1j0+;B zZ`NKMl5;(%8yPf`u}HW0JJ;qtOs+>lOBzuhc*h)!nBIiV*OvS}ie=i}p zwXoRV7Jf;on!$6d>w}{#s5*|mFlY12J|TfM$_6%c;S$Pm9^j;HIo+(%m;I%VU75>R z*8-n?%02%J>X(WB^4G;@K&BLxDQ0$Vdm%6CobwLcd>ZN6zHD=fltRY-SwOkFIN|p0 z&Ll}GgDdFmC>oOpv_mnfW4R8~6ccK%QIbr@K<-upvlByAGLDIj37>t}^*gg!u?M;I zA_)w*c)#Z@SW04`6rw9)+#UJe^Dgo*=zK=Ay;=BS8UjkW&0ys_RwcPZ%xj6VoEO6# z60TRkC7y#Ci)YFT#r-5FYOT}Cs*6@CI{BJEn$ZC&E@w;bXrLu0tk5?TiO-!VmwYWk zb|nPyMo^fBi?%vSm2w8Bqm%(1+gJJ$wi2M0epS7gOWJWLly>lk%I@xYWf+C|OWVb~ z3C^1z#_}ZqJD!cvufirCJoSx5qz4w}C~xWqk<^Q8m91zSh?}PNX+f?~|DiXPE&Qlx zU1`*fI6RU~2I5obvE!Vz48>KlE{l*~8V^m~$jz6TnT01!1I}G+n>X`I9B2j4NIeBM zyin+%uAf)%HB9lW*njW}R1{j!>&LAsss+xTxO-Od9YhJnV?A%G_+KxnRf6DyIAeqT~J5iu^_f+=S4V`8KO^cy;Bpt@-@|HwaOyp!JBhH0a z6<-2AAINj)dOgDXuy`FKrmQUAT)q|*!o_p2f|J;LJ5JIGECQGsNrF^edjY=AqcqM9 zCmPIgK&kMKL+{Jx)*EOAVsAtHv+ePt3R;!Yp9(_U;fZfEJo#P5Hy*$bmjw9mHO}e# z75KyTt&-zb23%09RvM`0_ujv_&d0r=iLdZekBE}y6rFE*zVe5$OX}kBilsSEM=jK$ zdm+&w!hs%V{dGr{Kp8Ypt#m7;QkYVi{N?Wiy_-aU4d~Ns?rq>vs~&o~%teL8H~T+B zfA$C&c=9$!eodD1AL#&`$35!VMK64fYbim^yll-#krLG2FdAz9X=kgW^;HU9%(vP( zmAI5Eu8)&Vhl?YqD{dR%B^4_Sk{mm}Lh1ohN#b$4OWOG4!|%U)aU06ZfWF9rj6CDk z-{dkwuSd4F2kU8mz5jkacXlN7%KMe;{ueSJ6(i*$vHqLm`Oo62WIIr}choMT93__g*iQph7z8;_{h~pz0%LFgWzOyWDxji4*)$z z1)%C3G{bq7m{l9+$g~9TuX^EN>jGt0$1dDH<10C?rNjC}f}|JrbC!LVTu&M0re%ZY z^wt!u4b57uFkVLUm8v*|3l&wF=eeqnToK_JO@&J8%|nE5zDAolPTU2+=Ay5S!_K^%_BeGy+484W*s z^B;6G*F|FcJnzWJR{dBvXo94)xV^oN@SJe1SLaHIE5pKtb_FW+1qRT7`348^h!>(9 zh)EJ530@|oRkwNx6ac1SEtjVdx1J8kp|+;AIAmM@izubN1^khi`X#rsbVYEP*Cf5% zJDiG3q`0j0JIVWleXi)$o@2=F;4+4{T(5Ar7O9skx$D);yc$&vV0SNKu6g}lj^-ZZ zH1!;9gMudo!fr9F8R`^}bb+CmiBs7+9&@NQvsU^eYR2xwx5IVnmoJM~SGwKz(qUiN z8#NtWaf%fUGm_+*NgpnxNzzEZlkX&Vh$J0e89Ii^=Y47t&BnvV6w*yQZ$ts=-IjpQ zYA~fAx(u1%P;jFMS4Sm?}#u8U0A5PJfLjrVnj76gu9MQY(fi=8*aP)XN++OW|(5sGeJte|%NXB8MGuhJUsHZ!C0R<00+CKbz)C z9t-Sl1y@t)W>#92{0nz8fsa4+U+v${i}XJN>;H(rKP^!H?o8hKe>H7>#E3$CRxZ^9 zY$JETvSe1_t!}lnyZxyN%W_<#Z|3`VM}0>}-G8vpSGKnc3x6diC(kFbPWjZbn#_#g zKK5E1{c3qQjrVdh#TFmO0)gzNqv`C1jxoP7nYT<8iEg)JZfNm?svbRAFHDR<=WhS3 zQOOj-b&HtK?IeZ1CXY4ZFfuWUH|jCEFrs)o(Qmtsn?p(cFP8rU>uYE%-0w{Oz5|K z@!@OZ9eu>p#}Qe)(JmqOvZ7%%1UaisyV<$lJP1#g-it^Eu;*;TigADFuya3R@0hx`gYq#o=mh}cI%{_#D!to;N!CL;T?8k7PmPB~&A|7~Z zsadgYeJVpZ;-F-8(1I5ijsSPdClD_~l-2dd#joJ(Tvd z=7&iA?#?a#NggtBNdXBD#<*d)v<;(dxr>cjBQZB$ea67osH-6e= zd~9)kVk*YkdZdeyTEo$@$<$GthQ=QJ)h%nzQ&1+s#(eNR4|?h02&Uh;m+e=7>J#44 zMx*|G{?5{*;%5!==fe!XSTo^#cBql*uZjXo!55tE!!p_?(Ga5$D=!zK`d}axN?c&u z`u916JbD$>#-(U35OSh&x(ib*WCZJ`+tqF5iI=Nu+8TOfLd;Vk5gg-7D=Sv;rKxGM zRGEr@Jh#UIQ?_x((Hve@i_K~JqnYY_4nD3WCN24H%Mu{bQ$|Y2`n@Uy0B#2@FUI}t zxiqoS=@P_k^pf{H?6h$N^Y6DDpZ>7usP@SCoUg5bH5m9!{ zZ-)0n&ihNV>f5gpgV-oUjwJDvH5UgWKn)>cm#Hs56j{jLt{nO6IyKIiim!%>K&u(K zlsxI>(^5}6xk%wY@4Mfqe|rO4z*%GmDtrx+R!RZUxFBTrrnGKQVS|U#IIGC?v~Is= z)*p|)+T5m*nV`w?xs=*L?nOoQvzdv{O=ufgeKbxNmo8!(61r4`3!34JYDugvNoh-V z++#xpHO-ouP4n(IEaUa)X!TJcc&qt-QhG$IgM0S01P@;`1)5s%bS#{FTPix?O|#GG zn_y+VqdiyBvm2Q`7kwm#Tk&!P1|B}GHNh-m`gEI53e0x>iIWEo5ck3Uue!m_hgp`; zK(AJXDo$l_`RB*wdxw12i?xvchei8`$%p$zNDP)bNz4pYtkOVXc3t)9(#ZW@s@!VR z4d(eMQLBCYygeC{Z6F|cFqxz8TE$pWT4J)9XqwvoxE$B!> z6xSf^kwQ1*gV`QvfUgPn*OHdZL;Q?e=;95FzY3)fK)XoA&1(crnSJ6icQ10IusK{a zx|&nl=5$snHQ`OI_49QxnI>{0^X9qR=H@)rfGpmW6cAnc_*@T0Q?3>KBYKg#>2u4@ ztqV+(DW~FZDQJw`4CEk2>z%p+m4CVLuar!>ubdochuhWB0~$)(*|l*6$kghTCO$5a zbl1ShsL-6waphC|m5UroTSo!#>Ck9|*KOdA;MsvCmJ@xPJ=nB@-|4FIrlkxXxpFss z%y}=|P4G|)KfkdB+;r|eT-8wOTy_)c&NjhN4kwE}p4xYI*XI$~E<`o+e;(N;t)XYt z<*oVP+tKa`x%}oP@?!(*Y*WON;+_sM&<6(Hd7S)w{axk8ZZ^kOX}7itJe^(_a{OC~ zlX~fn8n!YcXkhz)De>4}O1u{PRMaoVW2l3?dTj9fUq~E{p9pFkeOZiG0h!*4i&|px zlO|mnH~N8;eX{Lis=H5~?$|wu?}-vSiqPR$Y@8%uL5mtkArBG9c4S9R zBOca^j1zs$UqpR_hox+!BzA9di66#**qj2F2T>T2Ft_b=UEZvgguS$n%W1oe?`9V+ zf4aJN8m@Yrln6YW)O&O>9-d{p9ZZe?;dP;=l;bb>?n)$6ukCRvd=v8u-CO*wIZUBg zY}lRUUGXo!pF9Rvc$}hmrnq7^I)V!HI{w7nw$4|QnU;1#IFo22%Q?)e_WKaQi z4F{)j`{QX#k4Nf@J(JHb7jnK(uV4(dCdxa9W{GkKjzZOo=tTd~_|5&l+ zMFh5{_V7Kj0ks4>+&&xix>|R5y=}JGPs*1ZVDI z3OI)JfTmkFQJ9#bh&~ib*Q(pndmdJX#j&0mmx^*VAMk09+%^I2$_JD&ddT(Kf^yEq z;5z}XrIN-x+onF)a6dJH``vj{m0F_f>}ddJTK1;VG>3$p5E~@})9rU3e>d84InCx@ z)Ms7|nxL@X+8D?LNHyDU72qQYM7&?$D*WlE6)s3)5<`GAthxn{!fB#fDp3X%ctEv? zuk3zZb)$v0_qyaPPD-U$EtvLa!QG(M*E|u`A(l|1Q66rnWq2aGACIWNo$>I z9?Oqr>?9|8YjX<=aL<{})YPuLHztbyaI{NI+&GD$PNOq>qCq6@L<7)(zUZFfEPLvo zfo|WJ_|SMI5=1MCca&g?wm6TTkTc}b)MAE~MKZA8=8v5*Y5U5PJw8+_@5I`~oH~}a zfZbO?@~3e|{KbW5!u6X4dgtBUZ-9%z{uUla!V^G>N7_ID%eUFdCe|gxILQ=Em;Cq9 z>rnNkAw?bnx^fY)V0{RGR{o-IaBfQrT0zLN|Jg|nslIb?jYPrw8Jcd^M7)ILzleIA z-o5ON)1y-3H4^@%)SAt&l#G@n@nrwS)NNksrkmMg*-Iwe*O-Tcf?1!{C6C|F517+G*ewf(#K3AE9&V0ELr=l0X zBT4K8y!OWB!$o)GM(?Gp9%u-}#5QBsdJ6WwixBfL&@O6z#N@&@k4@0b8Y{$6JNm4; zZKARs>`{GIXRTSU#J)RjY*`Q=Hs15~;Wuz`XYc2w`6ap9c0e&lpP25XA;@Upw`{rQ zXx=9Exj)hGD#JNu*aFzGZ}+8P+6#!4GrEYZycXwT<)*T}&^bhsq}U|91EehfhZAvc ziXiN>2_deEI#|4G_`T9n9-3tnEq}%RQXE|~B<+v&CNhL&8`>D=c< zj(A9%%C+>ZUox(Zp(9gWwyN@D5ltIy1*KMF8|fFCv_rFbD)o7MsWdCBNj#04b;BHYClmGFzy_Me;L>XB@KR)>F0Ip;3VZ z5|)gT7Irjs-f9}E1Aiy%=CHi3KGO#ip7qi@QMX?XLLcUE0AXpI&>z_}IBAEJ}VgZS=G zBrzU~3RP*bPjO6pdx`(-k>OJQW36JVom#1iOmt)(3^6}=|NGe1hI*o*p|D~1C(b9W z(2f?7LYBQAa65YaVP&Let%Cb|JV^QWrBb#Olwn-kP-L+XdBf!pRDb$Gqn%462UOrR z|7M4)tRg(>{QDBh7smn*pJUD^G=+H!%i_frKDOl+$lyec)aS0wy2O8CdaScd&%~it zY=N6|ETAdvdZ$G>Gf8ZR*oQ&7v4 z)?&hc@RdSZThf0VMhS{OxG(J2+ub~)YaA3KiaT`R*;Ev7xn%gnTrh22b8cd1uz7KL zv!kOu#Q$oQ*zSFpTj*BVSsGKjQ#W6MT&v*2H^v2ac&UXqTpZ#M>E%_giJf3JTA_4)UAv)rHT;K-a~e(<;1}rQ)g(-AZwk)dM@ywqLGNj9qQvr;IuJ{v;T2&MHz!7Vw&qs&N2 zRmNlo9Bk8!(K_r`r}!&P?AVxFhPpyaDPO(%tRFr(F-Mcy>wXBRdk>f0_9g@O3oCQu z`Q-ep`)upZNbcOat-yJx=Om~abtI#2UGgUTg)<+Zl6^_=+c@?kq&t}=q`!0$iS9^%yOU7@1jR=-n0Pd{RV(6kE5)(^?a&<(fuFZKb^?lXLWiFk;93gWRNy9dG1?3vq&8%sA;Z4oF6)pcJ zbypdp1x2&}jnqBCor(?Jz&F}DjASQKZC>c6&N^nqp`yf}N{gv4s7W)_=1;9r!}ht+ z?LDxAHL$%5!j75bxazMV1x3TNW(rtb%e(keV8o!DTl~M$@=8>jt36wv>p0#6uFnT< z^+jvEaw}pa{z{Y8`GZ*Z_gD|yj(<)F?`7+`>U#O_0|z3!KD_@#moKQ0yM>ifzFtqC zuv~u6=vfiBkx<<-$+$X*X9itavK zXY_@kDVr<&cqlf7h}MOuWo2>0lU^w<1=jL za}DVcsxD=9c7XY2J4J&16{bT*`)%rLr|4U41gtwMnF!}j(4da9_BB`X?0aoEH22Hz zHHl#_R?tu=*pY{vg4VT&+1dRK{QWI)X?h(;iKT20-;CDTE^T_cs9~vo{vNhKg4+sD zC|e%ur{OQ;Wpg48=r|};OxgcuF2GOz122C-es7GxYL)iLnPlFAaBpJ>|JJaO>CxM? zAT}CdsG(eel6E7gY|crJf_GNyif#sEy7+#B!?JH360vNtD?oXG`G;L;O6Ez4wky+w zL1&DtdBW8$ej&4o@}!Jrg`e_&!26qA1iVAQ&d$5o?9d;mQ)X^%yot8jX8XJgxd5@< zc*mmENpd-y=UO5jB*da|R=bhPifkCVRLH z21o%bL`uC@rs>~0^}RPNtH+1YpV(Ic@|xT%!Ywp*TSm`Xi!Ul1j@au|Bkh|RnYcN6 zXg8OiF>1riodCV1F+wio5@l+J9h-bMSBKN$W2>aBto;Qw6aHxn}3_D>{7{sZNUN~B7cD@h^e za#LpwKphf)p-bDJ7S--wQKiwB)3rhjZZ$IM~?AUYBP!a9e z^?tPfv4ELU4u*NGHuYYV;xhVdq;DarOx7%M1Mo|WxsqG&&V#n^`iDC(WOwt&?~PKs zx~CNAeLMb^cgx9q8GD>Q-3>MaKhL|BE&Os_>U)QyOOkYDW%RA|D@OZ`6;;=L!x9T2 z7mG2M2u`EA0@e#EllFJ(w=HKQ0e!K+V+n1H=Wx~!W}pDz%uLLW!;hZkv#P^joj*BM z`o5KzlT(r3j_i09Cy8o~osb9{_4pc6LkCKpJbD!wqjtFY^CfDhNM>+0 z`!8}Ya%xfKX9;;lkT$>1JX4L+FX*6yM_~BM+H$?2a7^|~mTSy8M`MZV zvMbzhvdD*G$9|$|oU%C~PD^jPba3qAjN{#@CEfzd9CAYLk)-=!A37VLj$jg~Aw z(SqltWZZcLkwz}_fp_Z=_%E2{5rB(F{~ljA zHtB&&E*{*kAEsr6FSy_P_O_91^NDHYc2NH@mJFUr*VE1%;$FEDyfOufu%HGJ9jgvsoCZ|RaGnryyQ2< z;9>P5(mrNKJ3qP0;#gG+b}+V&-0~~-{Rv>C&?b({bJfsV#aK|>DZIn*J0$_< z+=}Qll~bDMT5y@|v-sc6{8uBiwpw0rXJ+4|jE}{(YNv&Y;O5J-mo*F;x+8CalTB@= zckn)G!S{Gs<>v;{->-gT7>8T`FLdj8zrBazwrv?)du*%gO67Z3)8B z)J`l3hkagiL+P@UBZF*?@>urdbtm%i6GZ-EuSsF zBwUzGqxcyWB&*)y!r=?Yp4AkcSxohE7sFN_8nqZ&L1EZf08# znsu;@tT3$iAC~qU<-@BjtRF06;2V()TE{}rS0y%k=2|%Qs+BHiCHHyrDS9( znJR^zyJkm|)HKZ1G|}8pk@v|VtYzr9iP)4p z8?979Q|bj;JyP-Xf69Moxk6zvM)~69;xM)&mq0%P$4@f^j=ON$Q5uEc1}<=U98~sl z-Jb*6?G+Y}l{~A20Y&eJx-tkoUS8z--boi5l6WclbR#pXOtQ!aIRvBOHf=mhf8twY z;kuq3h8I#KCiarD^{tf@`{71-k{Om0flNc!hV>&U90H1>bumo`#z#mEh7(Tb{exzZGvkr7d z#FE{c@XHkf93w>C0Sk@GA^1}E!mlSOqhFZBAL*Oq`$jGvK0b#paF^rNN3?#&&W@1& zq2e@kO%R{;!FzWI{ohw*8g>m z#dv@BB{=uL7Dim(U7sR8tL1*3F|JdkT8oiaX#|F#lNu$dibh35V7=9Ap$3BR7y3<=PF zj@)jA+Q*)d{9dGQ%OrKj)lrFetnTe5 z@k3o7{w%r{Mc9HorS`T%HC(yu+2hi(rFr?j0BO3Fy5GKS7E-$H{EP1$0QP71M~|^; z7pv``EdLd&zIfPA=~k;0DC(dVO%FewOZFrsB`A=O9sA6R*lm$X3{v89)U-q7dp~G( zECpeNM;{o+bn#ahsZ8lYf0BMocGHwr^gPapK#|nMc1e9ByAiC|;*?T)XZe__Mii#@ z5Zv&n@?jk>W@;>5^qLr;ZrKQHk2<8`?$GnyaFng*|5 zW98{k4WC4}x87d9CD{eb?XCqBJiKR@0>efUx(8i&NQTsL82K!oJbxEl8kr$-ze}ei zqb6{X3JkO;(!rivb$vA%yJ;)F{Jz0%m~+}&9q9irpl8-!muPLY{CH$+csp``AJDgR z%QJrh}@uXcgqW!zHx67xs@eNpkKORyod!De7JD{hwn@WT)jM-SP!wrDJt~e zLXN>QsV~|$aSA~^ZH1?JRF@6EGkk)PWaUHQ?dDEO{5sLhp}FpS;5&1Q`B$b|J~mMo zpH|Q_XSQ1Qm!`cXawmnbg#JS9+D6hmpP#(^3DYYY&32Ar4WWt|OC-a_UAeLLkm(qs zY3`TZLwcnKa<+D9oGy7yw>87QxoCOosonHD@-|B{iYAEvTFmqjh`g6a`JX6~l{&Sc zwSPl9B;M!nHP#)KSFP>p8sgdAvKOf;D+a!{8DO4A&o~_=*=V*ZvUjhFIzb~=OVwv*Gc(xPryG8 zoXUr3BsB^gRtYb;`af%qZd%WUSE18t=uItVgBYCtyo^7*%d^w=wlc@o_CJv~!sEHU z<;^+CJ=_b2m1R}`Y8>3(50J_-;ZIvynxBA9PbLII+!cRC083wU;%Oo8z1G!<)NH&G z_ggn!Ye06>4ZHek(V?gA|Xqi z6EZ(A;=+4d;m9Anx63;v;BwcaZqXan)QgRUcZeCX}Ye{m?>@xM{G!3N07)&BVEXtSIt)mAYb8O z+g=TLyA9=zArDqzw)tabQc<(a-!rkkK@X*=Fj42W{*66FBBLu(m^{=IUI3mfj5Wlx)WiwsXAZCiixgA}7{+;ilX5`hh%_xj$sBj1P zgcDE4K}&L1XMVz3t_*)^%8(ql*^Kjx`cE4x+~q23^0?akF;PoeITXceSww`JSpDSK zRsd9OLJNHV0ddXzpv`{x7nU$BVg`*-7#&==$fIjL>NTK0HFuFE<`Mzx2qZb9I6}ggbg`7Lqk2iUVgfXjU6vA zmV#53bXD{5%X?#e0uz4_tK#U-)i%MkCg9NeNLnxdO!Y;U71(;BzR=0>%!AGpJD@Oe zbv;T`i!EPi8uk1q<2R`v?t>`@%PHn8BfK>Y{||9*0Tfrawu#0G7D8|ckU(&UAi;yX zH|`$X8z&^eEd+N9)<_3;3GTrfcc-x+jmvEECExt#%$a}Az4uJrT}2gD+gGo>-nHIG z-c`|SkjgtVvz#*Jd0!3=GuA7DTq~N6Gmh%?yaJ)PCXtEZ21lI;7DXptMb}>n?D0sJ z`Hwum^w+JPzL+tcy7Qt16YSD@@><(;M$esTq&~}U_50ISb2{x>{jeG^-pRcmJSK`m z*CzY$Z#MpJWcsI4dl_GC^%@J z3%zSa0c3p(>1YBe`Bi>rj>i9QxH|kXwkBTD+M4Or^$;=~xy~w9DNXv>AwDiWjryYa zmF8EL(>Wm=oJ*XiMV8;d=!AU%sMuj!$?d&ygb#z!<(fxAOcQbN$kk|UvuC2lnc6{K zoA;o6&M_7G^t9^l+CA=szZ&~r1xULt#juW--CPg>F*;bNpDm0*9L zrlQ!snYIO6xBRNH0azSxws3C9Lkx^+OQfklFDU9>W5dZ_DDnkMvhixC-`!i9_C88K zAJ0>Cokoc52<D8k>-ZJZX#Pkk`zq@3F6 z%Os8qqm*Or8ZthHW8(~L;%P<=&U6%noK^(8H6ssby|x7jime-u%FPsh1W%=2a6Uf^ zDmLDj81WH#jl3T-;B|6&?p?CCBI!}9bWR;T#D}v}w^Ky~57Yc;PZ+YZ z?>C;5EzF`#ZLM@G3cP#^hKgNh!$=z=@tdqc-!Yp=TPM_X_;<6cKuh<+`Qiy@DA_~k zdhJh4PZrC4hL=pxkNKG=cXgzK!bK-d8YxpOwCkQ4tVrvV?J$(E8U*sI75)Q6z6O$| zCh)O65Qyx|{wjrhUy*4Hg>lL{Hfrx@BN{gCmu&2m`egE$0q|?Gqz$iWh?Q9t136UxKu-Q}cY>czBF>l-8G@sGNFcJ}81 z7?9Cx*?w1v{tYF}W>SF#@AFt~?dpd8wA8D(32zO?(9k}b&M^6LBm(MFIaOlJgPVQ( zW2dO$>q0Fd@vz4A@jrLii&uDZLtbn?6Dg-Hr=f&x}G&d2vc+XX&-1sY6k zMlmeoL4s(VsMOq5n6ooQeJu1kiwA6$LXI&Ed6kM#StTs{lzkg zos`UMn(6;tI6a6FHAOYJg}Wd0zy{hRwx}+z&a;+F^ajn;B#4EAbW_DXx4-WFL`5Sa z%6ZPMW9!Go+)H?YJmgK3_3`-iH{C$j(DQ|Z9VsoV2%5P9E%KzuxblT9jhcJ2kiCuT zf#^U>QUe#Z)mOGQq8DxoF=u&|in{l8AoO!2Fr0NkwQ2*IYR4zD<~1ye0@Anz@!RDj zV=>k49-lz+s>JxJ^3O}kw&Fg??eV}xh^a^C1CvDSG~{$;9)Vgmt;>vXYgcsVY~KA} zkc<14GHv??&o#Er6}PK$g-P*cXa(p*xns;Sas)qYT}5w#3)p52%F zq$}=5`)PbQ(`K@^^Dg@@03Ecw1E#(6P&(B&r}G_8cbBGf#^;p7;n^sZqrLTpV8vB} z82JJ(c_X9h`|2@?(L2j(BYQAL5#=tR^4oHwTOrJ zRVmj&DTE(?T-?C?Np4Na?mRO#@8#AAF>Mgf)=goOSV)X)dn$gx+-p>9-HHSM0{)G8 zro=HO$EJ&ebDz`F)ASn*(h!Q9!6OPqz>y|@cW2Ap*tgxCloeARNp1vsj5`F|nmtO% zE$KLReuJpTb;UpIp+ct}FvG?v)K$35OycCB(M;h#64l8nf)8~}JVVl~TU{d4J%)>3 z1lSM0lt{2Cup=pK;Ow@zd^0q^xuw}tJh%G8zez((D-v83PyHJjSN{c#FS47-s0aTP z!dYvX=>%tSMu(NWd%YFzvwfHYK;yZ8LF3)tZD1qZ>nEB$hEA`Ka|=cUykDG*Snn() zMex?>tay(#BEF7fF8~%Qv$4tN)KrvYK^GiMed(I};IyctBE1pD14FJd3R37%E&|V@|kg z7E4;>S?Tmpa~h$}hYJtb{$2<;edXDrR263k&mzc>2qZvOe&p>gJsZ<0V)@LF#t-35 zpAxYl>q!cQuLWq>CA|V-**?5oAhO?#e^jvb+*`3?b*3vGt)QZ6J%p1j%5Ugj;^q#~ zuk;?sL92DjE2n$nuM#H-lfkoIZ*Jx22(j7O9a{fMe?j=%k0IFzatl~H$2}4>CRVaL zd9}Qfo1SYk75h7Q^L8Jwi&$br{t}r7(i0_h{%;iKrlLndEFG=9i!*B%sW}`*S)zOk z@eQfi5_}x}QVthLq2}(MJC0N^33B3d;gvx0b_18fd_?7$4J7r?pq^UPIPR~pY!d0VlrTVl?v)5m;-#z^$C2vx zjG!tr5I@K=`wTX4_CM`eb&1Lta}FbORmqnS`W_SS5Wb$u7dtmck!n2;*M0nCD?XL-$+>gn=kgf7Mg zgLs|xJedtX&&L6e^u_iVxCds&;v_CiJGzv{{STV zA0Yt|+U`#-fS6PdPLZu4T9|sT;m5A|EBoa51;M7%Ir&Gs(53-v==PDK`6EKLp7>R3 zdD}c_(};FvC_}Am#0l@%evF4Vx$bpEuf&@J>iO&nYgy%J`wz2Ab&(L0}y|Dm}*%Z zGb&1I1Nw74=hwVuN%5K7Jh1AI%X5biL}hX)vo(}-4g@5ab0=tYOx|ZQZd&iiJ`hvV z7|3&Fy+Wco>A)?a>_to&@R~J8FBE}DzbK|Ow&$!E9brG`6BaIm(l73bbdA%L;*m&J znt!x-GOPUkC8LFfAsvqQWv4(;_Bg7&Od#y0cl(ykLRmc3bbp{MPT^Cknz&HlUQ<`6RiT!_z#d zIx5aMdbSgo^XF6+?%K4_2%(G%QVDjAtHhqA2)H*ZcR_}#gxI%_na&0j05m!HUodd$ z46En(*{^oJOaRHbVd*-C6fWt+h;68&R<76f{egHTdC=RW@c#(@9sZp(DxTAJu2`oI zMdpQ1%t#>e!M;zLR<(D+X$VB~bj-)c0g;b&gWyyYEhM?*@HZsLPOgBvKmAtLpon3( z9o6p%dPIdKgI`UCVaii_W|*L0|HFzBM;-mjqz#fsrXc~A9(`@9yWME=X*zcDM0rjP zPaM=fQ008|Fh`j}NO;t4C|&~6q7p)%Xj&R%;jK}GAnQqout9x`Ni2OduRJ%IQ?E`* z?4$FE-a#E7Z15u$EmH!DbhMg)5Za`#$yRLxPo=?DV@A-DClTu6+xSXSy#$qSXq?M& z(u{;)1IYx3z54=<VXn%P^^t#p}wP%#!;A2XuDpv^PUM z`$u+cEt@Un_*+i%+uESfFee2c8u#f?Y1tNO@|==KRn*y@el##wh2x({Nk>&mjW}2v& zBTlje{PUGO2D+l*#XrM6?(L+4w(V9c3~BRY3H|1;cELV~0==DylI2@%p`Kcy`pc|O z4umW${AZrKnY}k2H+xL<=bg5NS4|f;hbOsf0|FPm)fNePC>`pLW0OH|6m)TSm_DQs zAkGCU10{1})1qvBlnxF^c0V?@EheCb(42COYAI~-shCX>+x920Z-JbVN1sZ*0&=5|5z=ix&SA%H}Vf+P3XKf$xWe8~jnF zGqF%udcHNf+%F|*s9-Z|L-X|fKgrW6*_bF}=#O&xvZN5Zj3Hl4bxInOS@Lq+r{tZD z0Wcd|KC5NMU#RGf+bnt|eku3$!TFK>*7WH`*I1B<%f=fMxTt!=ok?Nda&Q%AC629o z;ehTU!q*stQ(7EgGu^sdTJGFN(Ly33$FIX4OFRKRWUR5mW&dbTC+~8AXF&C>HdYL>&nBl(lj(E&7_5vA z;$aHZANEyxjc>gT_PQUV9(w%%l>5mLmeCrJr35|ckiylv2g3lZf2`Wd>D=Qz9Qkfb z1x?=2VBRa8ETgPbTFmaKA%QgO^Fvzq`PWTiZAaIBW{;%GU8V10x;fsvVNYV*^CkPG ze2*Sqa*zFOQ%>B?tCE;>YN%)>09I7y_G_PLDT+(1m?}cz@Mw5{8vI457mHL>mi@1erreo4EfUjd8x`!MdvJ{@S z6haJ_1SW0QGZWI^sL)sbi@Z277JyEh)x*NWy{+)0X!?N^ zQhrC5ZSd#P{Cv#A^?^p9n`{8U^LxnQ{~6fs!3Pl4qrtPq$dF7;AdHmg&utU11;kqjN)gf?_`sEoe zi3!+=hlZea^e5|hOj_Ac0~fl(TrouW3!(@9|Igsjs|Po7Pkz_PzLR}QiZ~R}h-Oky zuLS*eDOaFPysg!JyZw!0zyB9D;(zb__pQ!vL4DwzU}zW-p5E>oM+uGq5*-5PuvE34 zy?hfl-d|9ZLZhJgoWt+7Ep9jEP_z@zqpGOGHEoxE5Go*Nr+`eK9pV`qOPQV~7QlmW zRG$XOD*jREEBCGE1{hbb_nbe3k?uwsQ<|u*_cv@GDhuC>X*E#3HFUq-nA?;29gA(Q zpR;6-_9r>IZzKz@+D%}Kju`#ktzFH`OF`?GVC-Meq*pIZ1l(fupUvLW2?3ay-T5eC z9?g`^*A}J!IbXIExvz|iLiA@gHn;gghv5&BXNRk4Dh!lwZMKoIZ1AH$09gF(w(up^ z#{zLsl}6~bkISM;>sJ(jDqjZgKEdEier7Z_J~T#m^Ue}p(PVD5C%68n?fpsErG**C z$kSwH{}~Q2`s1N5;Zjw%ZpRO(1O}((C+VLN_8lMfP*A1vM>dkgtcop%gy&RxUJQ8G zc+&3= zLqx%c=8}pHf*ti3pJ9plcLP9kSwDJajTZY$ zRh;D&a3=foApJQQGS-kE_#$I?W)j+BB$~L$UGekzb&u;14o*tFXa{nNW@s!R0$+=0 zI9{)I+R59fP3?cPUU2DqH&Uu*gdFuZ%V*jvGtsT9kH>3faF&%wvD+a zqn)XFzf7Ick+uK+^pE3&=)*+PCKaRCG{m-L%l-hL)=EWvaJ_&qt@A`Vvf|CqLA~D@>?nyJnUba?$^Bg|8$B<+9<0X+c_j_K*J@2&`cU)@J zUL~p}Dsj_n_ab^EX4={pS4wx7GbC7-f|%%hH6vLMCgoo)Jq31CQM|nErTfQP zm&4XYe=v~;{s^HJ{#_bC`+%|<9vi$r!&wsZ{W8q0LbuGY5@tGH`$XR3VG*S)x1;k;{Qb^mN_v!> zR_7gLN_yrQ`@?vP{j+r?#U|}3-R$qqf7zFNT&c)*sBo9B2p(=rhUX-XR*z%!HXp!q zRgUDno*I>VJ4>lR34RZU6cbmT`@w+}N^f6lfkU1$Ffh1BKRJ{(Qdwa6YJ;>=$bU}@ z!^-9h>*U+L-1K|)LQ!xsh3sW-b2v5Y1IK8<%D-1oErLB46jj2`c+Ht7=1X$q!%~?Y zEAc3{Q%#)triUq5Riu#q@2-_i!fz}ZbRb{U=zJ3;AEf2Imp}O@7hv%fCcipM+9BUL zsX|e6Jy4Da3-_h5Zs<-#?JQMNay~uhN!t1Lm6$0sv}AKJTnk95lsin9+2rEAQ`y|r z9v^w_Z)f1RK5*=rq^kzaG+1HfBsHIHRD>$=Lz`4^(2KIq?+3!(`r{SlY}M`QHacHf zp724#lM?H|9s(+uf8xR`LuU)uam%a#WD9j&e3_ty9Y^$iLEB^o6-mDX8r>qCERC|`Pt*zzY0U#xzn>@e%*?b zPf;R3MQD{7y^zWVm(hSZ%4*(@u;kK^hPi_i$F2iwmB?K>0C zukhxXDnETG_4=D8^*hAH8|KKh^_vBoUVLF8ev)MW2xT+tcXf|H5ttd)mk9E>zI@1% z-G$a`g{txdh!1~0RBUBVpMg!b^|ojS_YLjY`Zxa+d9-yoZ8v7{(mdTQq*R_pB}8iw zb6>QtqOKwTx{Qk3U-mG{GS)kNmc@{p%h5q`pNpdwKLf>C(|$-%5~sMSx~W#W1D91W z+3#v2IV1#pHKpFZm-2Ul>?g3re#fypcm8Is{hQTD{uQl_WkAqCR<^&ZOZ2bseJ4HB zI9~42RvT9+oq{?r3AlTfc|2u;|nCT^;7W+GD{V!dD3CcL)D7E%|=D>9As_`Oo4zVCxv?9`6? zmk(}uT(-G?P0Q~zJ1NlhW|Dsr4IX75!UneQ4HuML> z>{UwtwPfLHNO5YT%+K6m_R78J0_;;IF)~gtdfN|R8Y^#cJr<`-2LsYPH&!yXR!{w& z`>b5-kyk$CS$=9(wfowzKX^xTWybGK5M_Zu{ay+NhnmP43@>J;JGJF#}!n!wcSQ( zd=dRkp3jogI&yP|yLv3?tM-|qq*v`+uh#cf+^pj>8pncPG4TC2hes$$Jat;`)9!V~ zdEXH4!!r<-?3>JKc#|Q4n>e|qQX2L(f_(#c5~0Dg+;5&{)9X;Y3YGlm+x?W&oSLey zV$TYlN#oJ|uzZhXu8b=)*So$5ZBHZ9-mr}Hlu$GDF4tH)fk#HHOEBU+H`1BFq3=4j zK}3~Z0^>H4*x?sHi->vVo?#+W*j@II&ue}2me#%$D~j&}ANNnQg&a44&xK2j0NznF>U^!Ts;T$% z@Sx=~DbC8TQhUv@b|Kvql)8Kjdzn7wmApiQp zf702eD~R@$!spkn!-_uoX^jvrau(306H&7X+4ZMfUA;TAOkxjV3sMGu%dT622hrxl z4IOT^8Rrdz^H-La=goVVL@VSZIU6R!>+Z3mAQf_dVySq(N?S=Xv90PDEp63r>nQxS zmfOI{!?J7xQ?iRILv3B^;hqo{Hu_u;XBq7W$K|C{S{u!8j}kGtO0)bM2_0G9c7LqX z^^z~F@sf6Baeu_w%59lc8A@K9WvJFc+fI>Px$prI;*9>f;VyZlQ0BW&TszRlwP``J zjG#&WPOKf}`I3xhR@&;|(QbcYR(d_}CnS6oYdNx(tMZUs5%wL$67P|z3d5nK$?c?& zFXLntc$JczT=VuSyHHWu2vnPiFE3?&E$0OlfEr#luF#SOo)pVN82)QAYg*oF#aC;7 zM^5Kr*{v+>h8)0G6trtYC7<9A=r?usT3DrO98)xD^gM^dY{f=nqPG$-Azw0|Ae(Zm z&lE!BEl^i5s;4QMI5}UK#W|k5Ioo6?w?R6o*~h^7pz*3Ls2Lmi1DMm4)x~Kw2XW!D z{g_kS*%CvHV+O5!nL$F0ux>V=sj?M?MATTlNXFB6xZ6Kb5ZhAve6w+zv1FkYL!f-! ziKnX!(z-cTEbUa$!d}~`)kaMMd^<`iKBBMr!ne~0_1H^n`sbNkZ9i1XfAOmAnvHfD zl;?I9665vL97!6JTe+6{k`{`x?X@w@Y(ofbnv8#~Qmsxp*fS-|+0{^_DKxV3i(mg9 ze-#y*yWiI28(p@=PK|H*j$sm}m9iB6q8f;1Tjl=!X=jw#BPVSJh^*Z=+vYpa+Dx4+ z=ARxa6ry@x{CMcC-t~WV&>46hc73Mo;5EFn^DbjKZ%manPMi85pImJVue)o&unL3E zC!HBWTAL>~ovgbtMu@W~^<0AN?F$)(UdeelwAlVd-PWgZ5$Eq@js~jJ>Qrm0UmK0E zL3e+a2hTA~#erTHW7WCjLwDSx>mD89Vq1=ldRaV(yTrL~63dxP%^z0r=z1IJl!qGI z-V1x~)R}W{d4|9JWOHAE1dl-hX>i{c1Gn%8J+A5Dio;6hIN=nYCCs;r?0$#3(>FxZ zjFIjxkxs9w-;0kp`oF%Y_tYLEMjzQrZE0aI4vsl##lY#XF#m_-Hkg?Fj;_zhsq^kz zaW9!s8MIB1U0}Ul`lvf%6shh@=y%=b%(LWgnj0YWrhTnapD8$@PoINIDjR~us8x0Y zQ%hkXZ!v%ca6i=TMAGlh9MW2STjFWHU4Ch+fOn+twLy12R#=G1&)z57o0QGR^Ujups~Ei;uYwf#EKw=nKtEm-d81XXusvV3^-;OkrncnS8S=w>4YGM3Nzmi2^65fNI1RKxc$Gy7Cc^V&qpO+0LOOz(%rL~!GTGq5*4y#q% zkbOuu{YF?ak7U7RL-CzSo@GceyNg{~DBj%9%>wZddRyy#b?Fs-{4oqM1S@e%uhlbK zQ?R;XMlELqG_1P;b_`3?pKTG%z7a}OCnPo}` z`#qrM%cLs=AkPXebT}EQ#o;iOkp*PhjSf79vjZk-RX~<0r*}X|#g(O@VLo^r9mu$- z8zD!0p9{~qpV@wCx*(|Q1s$dzJ#tMi$YnAz?Hi~U(2b`SRHx3Yc8LlHcfSt~?zeK# zvW52>m(#*vA8-av%UM-V$MQ|W)}AAQgUGfCKZMJZEb4cpAAX8kfY(pc6sQWUPHWZlRmT1)cWD0vX#$2Axuz1NrH zzTFdY-rM1vuP{LF&lI$z`q`>qgS_OcqpYl~=tn9&Z;&$1u>;ihrH)x|XTW~RE%R-pwpOn(`Qzd0LuH>`^Sjy@1E?s%hT8E$b3Sc=J$Kpl6%a|wB*lFmDbgm=;b(cE-$Z@vC6vIss4rE zB90!@&`&Gt+o)zj26d^&1{TY&MN)HaXch_kGTxtD0EyPe)1DWJ5LrBdg--mW`3@NM z>sXREPbCA{l7eZTm?E@YdH`)jgG;~onTeP&n{1<4TdW<{M#pj5*IJSh$Lzv{?N=Au zjgMi0^qb+YzPG5mI|b?|{|LM3N)HSj<9eI=F)j7_X9MxlqpC@3U#{?JyOF%QsvpQ$ z@Ui@Bi465R0}Yq?wU#^Ui z!zFaNC=DEnDdx|!RT66XDm3!iGaCy-7;%O3FCwy>(AT(#nD8|fc2G5sckg+YDxF6~3L@j3XeTn>ueqvz z-amL5|6Ylt4~KglNnYWgwyF33S=CFBX8J1i*sqzvRK+S&bD=)t)&r zLX*_Ac-S27ai}~j0Y6JzBMM&r#K6o~GEY|kkY#|6qa*(xitJ*^(UX$!pHFwYIWk6> z%uJS<1p!{MXQ&4+Er3kJxHgECajPtYHl!hH@b$dHb1Ey}&7dn?4ZkV@;94*Kc7>(Y zOaB=qFCV06Z*nzp=pGa_{lY5GqIpizJkgdq9ILYVsLdNnU&#iXgo1CD{>>Ap4Fz6s zK3spy1z+ob!{@|!$wves{PvHJOlNa(izY0qHS(h{Y2)X-{32-+*2S1Sp#XdTPY+~2 zO$r=|FCg}B`RyvM`nJr1$7dR}u9JXdIz0E_dVU4W{t`UzRkhz8-znK0|0dedmDRGR znNt_#7{ehaue|5`EVC|0R%Oh9QF(K@1@{$bWep@CddaM4xo53xv~}+7+!UIaj#AS( zvRjuDhRxp=z0qHU@$SZeXlAyACYWrx48mcyv=e>Ag=7X;;9z$477G z;?l(QJonoblP=p+IBrH;mn!gV_n+P7>vS@(S22DxIgNW&1y(l)pIoLZJyo6iRK2=S zCCXIaYRnYW$^@%7<_nuYG4F>9@72XTg4K^jAAEH0czR%OS5WozFv|0D@{yU)nR*t9 zRQ4)+)90avOtvnw%(#~MV)q04lfBsp8=afc4TdVui*6XJiaE4pcm2fYW?v=a6Kp`E zLT}rJ^9NkGK-7SB@cdXgE5K&I=m&$vCe2nVs<$cx-Qn@hX&EV5f}|CVt&H8rGL>(r)Vinh zPwlPLi^c{og^I1)-rDzu>;W9Cdv1@3&T2vR9NcF}3i(@lE6n!YUKdl->;n|ar0Cya zB?D37U?^_YoQ0K=?Ol`V@EA`5I_sNGsW(Xe1I_MWQP}R&?=Y8>$lk6GWsxfS7B??1 z(4ri9ebO$sc9p6Y@$@|H0gdtE;$jFMQ!r~Hi;xO9dX(-2+ACTSd77$VLHA2n$mca zYnV`3PqgDMBPS#@vB-0ESg(FH7SE{I*ks}kg$y;CjO(Vt7|>Y$NT)~9f3EkBOni!j_!?-j&u9`2Giul$B(=IV7ayz z6BRsE{ISM`SFCq-}!j#@XK~ZCKp_6dLfrFZtb%7D15mv(ugW}uHjpcbQ2vg3gszKRtL=2x9Q;|3P z^G~xXg=^!_8!djQ9eAWSi#L}({7pP77w0#Zi$;o{6NeM2&X|PO-mZy6``RZb&T55< zJukRxT4#U3Z+o4yiqR^3Dgia}oljDme!P*n z#4KoTbhvQ=2TlFFp3R_LJAE~knr$=Ct!B(a!54l%|ItMz+cHWm)b|Rb0DZ-Uavilj zrlPmBWlL|#Kq;AfF^k8(Ae1bwq-6Kz)eOHZLh&gv4})sfV3<3Bz}9r&wZdzk+YtQo zr`_pAEojrnMcW}?4GZwy=xb@@&ud&e!DBpEYj+Kg4Ak!0ov6VzFr-|t3?F{Fx zg6+Y_vvEb#i&0xu{1%nG)h1i#R7G>@v-uYH6xUbo9#-=q_9Km!5-sI!D85PaU$@S+ zVtOpXZ7=1`pd5PS#qX}E%FvXLfBkL`KsxCP6$hY_x*>%-1KzI`mV0jhe@Hmx?W>*>efjSS`EdH9Oh?nNg?5eH|ra$J`# z9r<)YQ=`RAMt$CMn78hl)C^weya>3|q`bxPB*uO)e>RJ@xd(kOO{23%`2fSREVh(S zdNMgGw|qzCh>N3Z=UJYvSqIK-97cePp3UD}>oCop{~VtuMW@!v?in6y>N0pna>$tp z%60TA^-%cwAsnPxwSE^8VQ7j z_;B-JMw6#g|Gdw#1!5iUbH46#kn6PpHhowj+_ZHe5g2jq4erVtp`^06th!nSf1k3- zUN4aw7Sg@j9u*-_=)qW0 zpv*J=fP6HWw}qt4L?zkoo$|==$c>3ANwh(Wk+hnQ@{2b$adJ=#%@n&^1XD0UWk0V| z_c2g7jNShHESStlEug`G`VccK-CcOK79$P*wnQ+jWkE3h?W%bt_4vx!#b~Q?WOFik zF=cqK77aU4p^!tvu|Q%`xqbQ5B0*U3iw65*ba=^tTX+=D<`66(85EeOr^2@!yxVwz zTT&OzK%fljJDc3i8a&&0^kTcYKnwaUdPf62sciK2cW}YZ$IfrTlIOd2CXi8a4h4s3 zeTehZPwJ3Vf}i8Pks%`_3AkWCBBSF@Th4YP8E^W)z4LZ0N1tTMXFqm@ar|{_rH!J^=+o+zMO;*Ev_R3COBV z3&~A}Adai~3$l)lhx1&IVk7NaxCxpY+*g(Cw*$+xoZ{`4IdR*mC{HFgK}1E(wjZ*A zR==~V)b1<9N1b`2!LA_CsusbdQqbn!$V`%4l>7Kbx$GkF-4oh{a?g+uA`w3#ODV4< z{9FaB#cy3=t^0+G=pTl%0~;1{cE<#VTgmDvE6=$Dg1f<1Q494Xwv?Ieg^yR-3CKpw zY3W*=!NL9sRBHRWyTN=nxbY*Xg3p5^`f+D(qj@*0#&o`fS;Cpx-1YTxV`6O9T@#2R zS3+kH+e8U_huEoFUAG&B?4^kneZ7Z}ahE+}TrJ_P_ zQsk}5a?=9>*$7bc-ZEBhyZDkc+{itKt9~2}r{@J|R@{p=llpoy?Z!;xCr$j(aEwJF zOs`ffnSZ||@2OX$yLQud-JV-R8tCEl)%Pc=Mg1F2BAZQKE95OD+$z=D5lYYSIeNKZ zA6t_{Q-ZO)C3UPqB{GO9>uY~nwM^Y|(*&LKaX?aGjGp6`Ooa1!v_jXxB#j;K4&LmX zowhkWw}(YRz4Tt;n4jfnF?U{D$RP6al4rqCZ{2GnYYHkALukFaZW%0LH=B?Na;_9M zs{-PGJ4^M^hp8Ln!9wBlIpU{ z=tA74Eeka~Rbmd5#XF~W?+np~+UfO7XRgVy9LHQl?jhJv#;MEUjvJKi z5Il%t9oWrB_PgDlDrA}#rsHl9kR`4~qwLZC6hZG?V8Kx}ZTWhA)C~D`^f4@p*+P@n zomVFS;+I2)4snUGNHGJ&+0z-{b?8y9{lj%ETLNW_4oHDRa z3q{jJeqJjd@2neQ^WzJLSpxQq9L4ia_X)Eaheb$JB$c@_`l3{FkKb5RbgKyTvrPN! zD}cj!ma51Jtp)T28NKQ>7fmW_v7vIJ;9VLg`Rag%j0vx%3pu=m$&0zUTK;!U_klt> zlCNjsOgfHJkdho)yeSsp-cFxW0SL>%ZA3bPaL>!o=D2DC1t0JNcB@>t;RUs#Y7r~~ z%b6G0M>=0s%53@OzPL@Q6$R`8i2>DRPqbuIUp#j?sYHIbFi6QOH{9#TA-V?%ondd6 ztoi7r3W)ClgP=9$wVsjRBegg46EHqh7!`f*uN;ygNDn~oj-3P)ubBfv9Sc#8t8f{2 zd#R&&^h;qMR0VVsBkWjYBXD4Wo7sASvyHpM4T^aE%qBly&U$#_nHaKPRiq+79Yu?Y z%5%8YAa;86PC-vTw#oW+RzBw4tUBjy`A38^a%oRCk*WhJ-?M(pm;$?D;fCSlkjz;- zaWEwllE`gLXUygXUbuiW+vfnsdoEd&NUM{JE!f$=pnqY;T?9Bl$4XZb+$NA z;`3v=f-q~3t~X{W4D_7a8CAekqAAbA9B0UOeVbT+hlZS@AB9OPprLA+T#rQ)`GL*R z+eN>b=uJ*ep5}d?pLY)xj}fr-GW|l6yY8K~&Bs3QYoaOf zcm1*r6eOH|YB*kl!s0CkC8AseqWcwXy(p?Uzy3Zx(bKCfJ}{a=Ku#l6Y@ZEmsY;2{bVGzoAK36baL6Lr2{ z^Kiul|1ScTpO1+!2-kxu<6UD0m)yj?5v+@bQWRSs;F+^j)}Xt+D5_(?**>O5nzdYyET_P{o&?8lG#zl zZKjs|4vek#ob8qKcIUtAKpUw5Y6FEfmBNpO4ov61L7CfC?CpsYAhnU@k9Bk0tD}Ux z)s~&tev7JYkj4ElB(RD6CtB($*@%YPpuY~j^9)FPGXpydc;?vn^Y5f7i!1n}wWDhh zB9+$3xylCP(X(dxt3DLXg_Q&o+oU@R{dJzcOb;IQ5j$^XmcRY|i03oev{;aCTg~`c zXFF?Oln+$=dTL%m!n{ko$S%v``*x_~b|;|W__YZJ^{D;fPByO)n1!{Vpqc)HX@I%H)Ze7I z|3p>2|K9k|Fxj^SD3%u)8S?w?f}-8bDQIIs_5h>p8&JX!D1P_%9vys=*zeo`PchML ztWZPP><98+Z*vES{k4<#EhX=H2M%?;)p6m_P$Iyp`+N7nF2^{R5x`9?%%9PRAibiY(v(6GP7qK*FR51OZds68+TQS5-hxOCcmAAxYpd3kL|M zpgWfUeG<6KQ;Of87_G#k4ZtLE0EipExQIX$1L%%gzfaH0b8|FHYr5q&RzG4RAgSR3 zc$9xGtq4#|O#rH5YxO-pz!EN0_jhklNk$v#2KcNq(tIBy8)O6DXGXl&wz4ok?zu9AG0#s+OX+5faE?sGYXY&V*H#!mU#?`L$=L2HDh5j z_1^1UoM4OLEnqog#H$Iu_#d^sWmFtZ*ESj_K#&AWAV?sCOYq?C?ykYz2A2@rgS)#9 zHn_XH%MffJz~DZ}H@TnO?|IHy>s{;oIA?zJnpIuhRo%6_YRk2+!c)Chh?3Y!ACnTq z!v*$uSJIwdAIp-i8CVyt11t!qp~X0kpMv#NuLU>wyha07D-ZnY(?(jFHhJE17L(uR zu{nSe2{?mLb*`Qz7XF$YTBw$?X%J}H)^&CnXy%`JkaQN5oBBsV!7N8;CxOy+e6ePd z4DXA+xzeq!29VF$cb$t)PHzh@&D>o+wrUW3CVZIw#Pt?kOmi(N0)@6frNU#GbBZxr z5I~NCk071Bi{&WAZW2nvW$YBU#SVU6b}*Z~1Da$zy3VdPT%=U~~D%FMiJ+{cxmT*jO%< zV#L=XA|p^fhqPYo@SpyE2HAtH3}xp+L75MlWfGhcRuA`!ptE-@xkd^KHOJ97Z~8+T zfP5-np208`B>M9+SnbtfJ3tuW%7)EA6rkl(G$HMAL_yB^)~Wg zg+p^Wr3 zildttZ?qZ@o{C_D()8se8!yt z6A;R&hi$3^;6Q@K_VSv#yo?Q1R&$}Qlx}=>x;#Z5GTNT(wNKe-e;-3=3*&Ol^{PYj zv~wT4^gP%B%^wU+@xd`=h11T^I4HE!k1;D=2 zR;ga1OSxZ8xTl9RpqScGWVO1BsKzTf~J8yyj9hQ?Usz(MigRu6##~;2s*RV~av$sT=WN1<*JZo2l4o z))x$wW;U%21{KSUWkw9|LEy@~fdHRpD)xTH?1TMX_s{!#H+nli&sV6Q&OKoDKc~WH z74-xnUjzZ1^P31Fs1=c1MCiG-&w9j1J&t)`rL*6pmFh)5yBzNZ0a4l2OFcDtp@;x0 zv0rPD+BZgIqJ0%ihx>$Us)L~Y@MfP;l48iTR8Oc(TfYH2jl+plg8#;o?C$P2+q?Lj z|KN?bKYdd>i{SYx$?>F+2>7BM2mR;Jb+&qqs12q<%D`D~-g7H4)C|9VxwH~3$7xN| zTbYotxtGHU>F(nZ%gA2b3>tON86<#=BFkf+g5gJD&W#4>B{*9`@1j-IE(+X$8Wc(I zU1>EMbH$4}_~9*JEuPiL`Hu{j-@s@?Y5n> z#~Su>uXU^tl)0eau6=AxWN_5640Kuu`_;sX0xKD?WQH`8`iLv)STVK9DP$X&8gw2onP4uDwY4!Xrj5Ue3(Bc?z24syVDOkO7x!M`vGI zmZ?67KsMgz;GO7gSUK*9D7qKgiQs7Y_P2)^oH4a9JUUF`>rEC_5=K&ZKH+y0o-BZ< z*VH{~>)1kg(SG6nYQ{(?i|7Su9}rb2>=ZnXMmLbewDM^=L@7ts^LQ_kuF@*N)T5$_Z|9LmFZIbpKf~EBhepbyl84C{%B@27v^>07tr&lmtaQ zhx2Jy^I}gZ`{r|2=@HSa>y(Z?yrlWzxGNdFUr)=ashB1Io)B%1WEuI2>6Zv}W}Qy9 zJ%2n~BtS`Fk$H``;Rq#sbK-u{6YDfv^5K=eduNw%AusFN#DLITyEOQg*t@7+TA4V2 zw9#&LGwE!%oBt7GJ-*HX>cf%i4X&x!m`66Y z<;t2Uto9d{D;{L?1>?{06`4ZvvIRkjhK9J%X=d4@&Lqj?a ztw1hSMkHNw(IdJ1J{*uNc3``K@Jdt~zBWqMyHOCvQC{g|BL+egXl(~LV32E;hk}{$Q-C`xu(a(KVi`p4H zbokDHkh&)lMeXKJEa~=<(B3BN@Y*uCO4U!T)QTKT(NTC|Trx3hRGD;o9Em8evrt4t z$#G=+4ty~+N6I3UTHfHj^@y;NYp>T+Cm6if^}1iz60@C%SlA@U#g{37y;^dv(*vf= zl-jNW0`O+OVp=`7{9MtUt7;7*RQ1qmb}qaXile;rWF%)KwYHzLXGH}x~`qim9S$SUd5SWyYyS37x6k`?@)4?Qc+O>ITFOI^f!0}Vc}N*NC| zf!37ijDeGe;Cp8yxs?q2ZpVHkUY*K3o6gWw+`~2CaY0c*KLsxiDnV;hG{S)2bCgH= zBs6N$nn(&nRSQ-MD9u^I!vbD1RF79O&V82l{6VkKO7{vkn}H*Yw7_W--k0&ye(fa< z?%)+_j;r%I^t2+$S5~H#d(EufFr?AH?rez4 zQVu`%uSh3VLROZ3>r0`3f!%7jh$IF>k}btzH!be9#K!eV;q^9LM@z*eQ~^hgEHN>X z>ldx@D|dxBEL^<58r5{(Yd@dB;`AqnJ|{eH3$ zIlIoDYR)pHB$*xNfa;{Sg*{_-GzrOTCgBDbHcewd^=<&qib#Wx0IrPI8;$qnE$=QX zfUKC4`VAzEFYNI)n8d63d-R)dCY9@(R8EXy4iSL1%qyN99+g5#K(Un$kFitjJZTFnC5b8k-$$ z7cJ;9r2zxzwllVo>J1z5PU(OfTH#hAi+5fq zOzS?l?zWo&nXhaDn6${S9u$e)UDgx5Vo~7h3cD*UP3eBAW-9|C<&`2rw66lBB|Bwg zcgb5EL#L{s0m+*Z2C@=-HpX2oR=6}e8p1FI$Nb%S<${CXA3Q`vP2<95eZ^mYv-v?R zGPTWvf;PKz_410BLGS|~hsOL>jSV|vj)s@c>^_hoaERk^eWG@>*-4-Wi`c3RLNJPer%2XOp@)Kw&%vOTNV-tEp0IafABj;AU)%I3U0dq~~ z__Y4w{0wLei-pC{X7|-9m#wBeIV~4U@YME+Zp}x&>a@w=UR?N~mP)?Z>g#bqS%&Lw zbyT^iIyQ7xB~2c_HMg~gn+($T9=EDuu5AG`lgb+TEyL1Ki2`m7OIe|{PsunW*D= z;faZ;qYsqC-kjUD!s=}6gW$*O2Qy)wlhk3fm9~= zo6oX)mCzL385$H_l^q%xc_U^%)^<61MKfe*+WL@|W)c=xg};GOMYr@eFweZ)gfM37 z%}Ij1lm>?Z=`6p!t3y4(Ss=BF0HCND=irW>)>>8e%};!}T6@1m#+(VW3ZZ8qIrc3j zF?#Y^lx3_31*D6D{uxcUB37gE3fQQ5IHUwmQ(!!A19|cM44YZ_VNE;0yahH*ZvwQ; zsF)}BmreNzdD@>`x@$%hW5!s=Qr4FqwpzmM$4s4St0v=e0zwF6U|HENay)ZCuB1s8 zw^KM*Pcu$Wrphm4>xx$(B$D_LYKYxiJfev8b>0riW*|f->Ye1q}kUlw`sG8SjqY4gA?(>bbs!2Tv8*BNoxGvp`YH} zbh{_LcQPvdB~diNAEJ`~-~u8vsqgLz+pqbJxIW{tak{w}Y(EAE{7`Mk40f;)stc() zS^g4szGg;E98;nsv8{sRzNdWQF-?#uOcV7XK%n>wb4@pm4V0a&b%7k*rQ6a^7wz~E ze82r>=qa?lGz9w7fp5x2pwCfMM9z`{5Z_!fXo!ubDN)BoNRC>Az^gyu_%NFit!2x% zePTL)>Qc4t+*mhR0Bouy3Yt4JH=>KrjU(&LULw^uWB(mtEKGD1V}8Y#VQaR?uYmo& znUx>VAQ26~R@MGsq126p{K-+eE*y=6w&pV#YoixYL0`|=uSyBU`~~vdxCx^L)P%C}vt;gznb`HgI`5!jrKPw>QP&I(O%dvm zSHUVs@x!|Yi})#CpL}ekZYsz{^>i&#(p;9bCUfPvC^gYW%Fy%^^^$NzR*FL zH}HvVD&92b-;CMRf1{gV3&+Y}bg2mlMfpMR#J|)C{_gFUE4o@FFU0G^7ZVDbJI`t4 zz(W``d8#B%rxmv<;w@4Vv-J6YCBVGlbTsTp7<6|cN5SW|0~;#b-_@AG?HO#8+&Js6#8XF9Y-##3=9JQ4` z?g&OrYlLiN^h4o>0oik%p?XaktK~0?oy<7MG$ZARe#4cU89qZ>bXi|Z zmdVxdI$o@}b(-5mjiB6`NK#t04`p;&o5e5y6#%cNQBY?zvPMjXZ(8G23aUM(>6HVz zOksxYQy$o~NToO?cy;zZrQ+>xzQ9Q5GMQ8diWuVd2<^tUkSt0}(;f)kpm;4E96PfV zz}&#a$tODmHw4OixD#W8b9yB;7Qr$w>JRiA<^UJBX=W2mcgIkh*g_AuK}tX5^Tx@Z zrH`e71K(RC7!ARJZ4O@8>PU0W^6{Ql_p-BiA~<&cXN(rmIkxQU!r1!iKN%h!!~M4H z58YaP`0rXBG6X+$Z08H*UD1q|l3;gb**UklJQpD$MTf$(!gk&qlKivwf?gD2qcD6q zfB);9*M_J6&C|Lye|$_I2^aH$=Z)!%6M)#UHbCuXEy##L1NqXPD2Z|38J%TjaOYKb|Q z1w>GbEaY|a40-e3jm>WjrE{fAg;4!v#o`C(YDNj>#~6kFyg!Gu7Rnv9nnos=k*WDS zgfy_vYb++i4<0T@4{=BUY8P1q=A)*qAc+hBEYzcd8-DTpWN;i*!Uuw^!nOL;u0X66 zdSKI0o?F3&Hf^8l>&t#em8lH)_2p)2x~1F2q2eaQWAF@RX**t#>TKF0BEMM;rs8<( zS2i(~_}gD*h`krj$K$-}?)+FbP4^2MHal@xKYK12&dUh_=H|$>#Lt?BkI$KD|BjKn z(XqcE>!J^3UTySmpXeC_(+$U{T9Wf#YkL`Lk;~Y)po-PUp}V)_?@4=w*Jpd!o=L5@ zpuFq2O}}c>zFp2x@zho2+$XGV%s*#)k}?2ERHRs;84^jH`Ss)ah|*@i^DKgprH%_va8asio{o|jg(@FnN=19~40%P0Aza`+?%(0yVGhpjkJw+L5vL}z28Uj79r0Xm(YQ%M z8*tpQsS!fRFG<>Dvs(2oG^C}8AyP>aJcIgL)wTUmPrwMF#z97RhMGq^z|~G z^la(=97qvG?>WfE#UlBlMfoN!Q8WXgN1YGz*eg(CaL?v*}6_wR14XQuINwlh*O-iG!rR^LmrajTXgi zvqtuuHubxtE2=4e?_WOhxnSq|Y*YpIFgKe)YyW7@8B)|SPvoK3F(%X>ua1#sH#&_< z^sl%S8cg_iO|*}5of_ptqEV?#-&tu0zV&|ngH}z5t)YOS(Bs1jFG5<^^0TaeLrc^$h@#NuR-d{{FE5uQ_IZO5BFx2Q6u8OeIX7Yzl zXKuNTiJT?qRO9v52VH(SqOMSH${rqyZ@E}9aqJe=&Hw$)*pS#$JY#9cxwPxDADC2t%6`o(cc*!-$-wyF z5e}^$rT05atz5Hg6jbUC$ub317O57)cOlv7)Q;{cjS!9fIOtaaL=A}L-E}PZ0t@AO!5!;Vc-qA*kycS_FZTSU zpT%3mUbqcy(C-k%#gSXe0esPZK4ZF~oXM`Ba4LQms-?R->forA+_23!dx_m?zyMa! z%KcK0;1Z<+IRw;}TPeu}5)BLT-l-4%kka^i5pVXiE3GiI_-9GbTOM0Yj1?R9Wy+et z7m5<_y*4{srJn$~Z z1PtHz*jM~v&ls8fB%eDi4#AFuj1Uc}tR^OlXg&{D+u~??8QNeGUQ7BpM@-iw#j%Rd z%8WQaQkGA<&YOW0PJ)?o-8V5QflO!<1<+Lnw+{yqRv_s>A~D>e-pVW~mEv4G11uZc zefu-}g)l`nt5O^&UE>Hj*95GSQkpQr`sk@LP5-!ax#$4)Wx3yV&Jh)XfnBVl5jI(<>49oUxl2OXf z!4!e+Vd@b)E1n-`7K`6AB%@amH_d2_vPDglt~KzN{1S&ElxLO_U>^w2@uzV05e5n- zl)V+Geg>7=EYbfs)8)VXyJTmqUzUTF2F3d=at?ikGDv{3&5kp6uPSxPV#8a`HNFo$ z-yqI1)9xXBcJ&@g<->cQWZJoMPort;=Z zm_^*KAMOonzd29hfZ>8$T*kHi{>nv51qSF^`m0 zKC>Q~z;rzcD5yv=S%v+I5f=mzT4-to0SiA;a7C6Ub$_jfr)|;T5S`i*2<%fAL~1|IB&YBl z%8tC-(+`WML1y&&fV;Xv{a1Y^^@d*%LvAO3?#6dwqv&b2L?)}D=+b3Z`hYpoqmrsF148Tw+)0cFGqQ202{?yd*~;Ql(WNq zZvK4go$ejn=gw|-bfZ2AMO$zQ1LZ%}zdQcAGhEU2fE}&foM<7`{gaEMsP@MPhG+DQ zp!Nq%*eH7*k9aAici8{aVgNGIay<1$m(PrR+JCx!cVln>|4AeU{}bY)Fli(AnneyVO7Xumy@ zO*JEUF(6st%G}bZ(_4k#yV-q3ofgg+t$T`^8A2VEG?q^RE`XwWwGP?TZ%57-*wBrz zc%fM+O>d5~*MRP+a(kKhh}+{S<>ePC3#$x65-`Y@=9`3i)ixbo0c6-+%{4Xb$cDVp#QJgoFTccU#AX=3iBw2?rkxLo!Ptnw%8(4H8#I8E)IB9$1KmO_2fD#qq0_c(9kRU67{-? zLaip<4{McB3_jj_ZKV<$tZCD6ODZt*-lfi2i*B}oX{Wb$Qa?lf6CWR8MtwPmAv4p3 zSh8Tsp6g@NTV<7mkJu%0`g$?HOMfR0yg;(bcuzCc_#**%Z&3{z+B2HJ6_iDMA9%}F zbl!;IhXiX~kG|{VC~RKsy_yJX0-nll(TcacJG6X0OfeV&-exthCeJ76>pM75#}ly= zLKu(VnRhkuJpX4?b>9t4Tc5vGnYE$~jBW+jexDVOjSV<_tNY@-}Ze#kAE8%VI~=)Hjy ze5$T<=&ICzxx5XF)szY^J$y~h$p&&IO_hL{ZYX>;n+mV3=&lltim+1pT8}?#VaR@A z_)Y&fR{<>!{C1Xd3F434RP$*|uYO??Y{sCm{Pye+Iwi5ao4poi+%L98D3WlXEmLJ` zIVkB}fF=wIl=&$~={4MXN z%N>pTrxs178;-pkgSE>u?}Lnds4c77ob%q#Sb+a^7j?55)oeSqT1jiLFY=$QYKnhoz=oRh+2g|Q@|Rlvh51<6DA`!d`H z&NKx192fTZn#euH_`pLTvTMu1QaQ(z?#0H z%F?7qo_KL9tqW`zFl)n(@Th{vCaa}9N#+^(n)*?p&8tcJlCrqYy|4~RjK03p%c9K3 zd~L6V>ZWYIY&LF1s{5i?6)9BKu#{Ri|CC%YKznCrIZR%^**Ur_E+a5o zYF~`q`DOwi5?I@R$yK==Suwt)X*uvOmK`x|_b5DFAxt+9rz2+Z+rd75lO*RWj2tx8+6=uy{bkcwcf>GEYXrP zFU-fHqN)l$T`~R;gpcY?C0FWgF{==Xo|s)>s7jQXct_^M#8Pd{7$vO&w)aTp6O&Ii zD;J-yPhBFOW-G&6SY3gPY_DpIXSn2=*Pxg@a&?x()*o2pl=g2r>>kxAPbqBn$o7EO zE3^Ial;KLb@*)^Kav1h=Js;!m}BQU(h15GI(kS6jBHD(6>Hs^^5VmiCM1?nVuD zjjO|Hb$M%DfoH7aiz=!%8f-_g3yt%nwu7+s1NwL6*{QNUz#OSz%`ldXxPac@JCej7 zRvwc$Zyu}KYotJ3OrEnNJgswT7#z!jq@T?D>`!V5o;9_#YG|?r8Ad3DwR>a zFieh+`pG#TuEiL_9dO^L&vPTwALE>-uWf%FJxpEhRuXD%E)k8`oYjA7tX5eBeHpei z=wd7pW%QiHdUr1@OJoCEn86EgEtdSsPeE%ATC)-IV3%~`Rq*QD40@lr4~Jg;1|g%x zUci?rL7ud589X1}m`Uj19CBM6Ut7(|Cjiz^VIk{9Tvle|9T{Q?bv84D09472KpTS( z(eFj55YdY7%m$bNUC=6J6g4%r5x*?&he)Sx+7#2ikthD%Aj_wIoe#`z+6{=28v_M5J8e4`m_M_@JKkbDU z)XmFS-S)8>ib~2hcNsAZnNfxV1SzNuczs9+LQyTv`+TZfcME5zKfD~f! zjsp+`L=vdX(*jxSv;5a$cX9+f4TDxZ(JiJnw~UlJj5w=<||qDqtbdc8od9X4(6sFpMq4 z$V3C9+;}Ie><6#ctbLm-r|-?cFK6%e7Hd}DiXT-pDISm|5&EmCljY9Sk*?PdoYUV) zjSsE+K{Q6kesQmPoZTOiV1rNYYe<+YudYeX7hZ4B5QwG26dxx7WIiO)W5@nL5lvrf z151j!NVTG~vT~*@>GCYRy=Z#9@jI7@PE)y!M#{Y>K{~zGQBBY=Tm8>dggn-j z8XoP8CBEd4gd;&S4f3mD3Rm-65eQ1HCt1XAvgC_!-&oO(uw9%jM?f8^KB4hk*~+4# z2B+?Dg5IMP^0Ufu`V%!DTxMcW-P<}q(o6N|EC(soC5D^RU_?k%gWdIk^|MSfWERQY zb_Ol_IGm|=j+-IMnS%BvRtK&?n5*>7R*~t(w|pt<#)Ul?+dfjAH6H*Ag%O*wBw*s( zw(M7WQ^HbNE?PFFhK88AOngJG;MMr3;bgs8_2#LvkJ8dn=`0lSY5JKS7cAosI;kmf zdf{tH*m89_G#;=0!BRgkB=x>(fthylUgOeYw7jz7ST!LhmDg~r(~L;>>&^}#$f=Q~ zlptXFot67WoYH-2)y}9w?pkxV-@lhhbiB*nXKsv^jUmINJR47ZOkyQ;<2S7 za7vB!T@wgh@#3VMsTKCcr~bXUo(1+!K7faAGq`Q8sA9_!fHM}@4~>Vc+k79JY=TSQ zTP6-ze=YDlk>v9Nl2M!I?GcVo^q3`tFwZFTdz*6QIzESgs#epOtwS!%N@9{BCI{940j539UX z<`e)Z#N@6i{2oKmZP#AMLmChFt$iUq_0|3lWlaPeqZ&-c$q`9|u{b;0Vt42xnB$@W zD43`N4~f=$s>A{7tJ%vb;(MlDDvM5ussO_)-*a`@gN7A@kwg|;vKt8c#!`B?FcO_o zxt78a5?1gFs{o&@o7J9n=rEYn!eV`>#Jh(bX7L?n^JyEl-+np#j2Go~8) z;0tz$5)|2|eU|e_FJbYcz}Dm|o@_c5)X-Ill4K_9A0Aul@{mn_A2-^CA8=WC})QStBWW z?FFd2Ui9FZx1d>78T}=U%(r@ns7lS=l50_0Lp~qbS|ihj_jITb^nIKr z^NgrKfBddDL98+pX)tZ;`&vWN?Z#*m%)V#1IbKz)LNH_c*<6qF`zq;&OE zYyzX`0S44IcWU;Xe+oFww1J2D%$(r|46+>|_4cF~1Cr9++cdql{ZCJF zGpxX}MFgHcGAQxWzIe7?hGrbi%xvtcb6d@e&O`w@w}yR)p?k8*Y$up~3Sn0%MWkiDl={OLki?U((l9OF&x!)(TrUt8BOn+} zPL5vJ9B#Uz2J};_a}f}bF*7p_YYEEQorz36NP43nHt6FVlgmBGPc9F+ISt8i7+D-0 z+6zlK>)4Zu*!XdCz05l=Zjjd{)C^6Ws_ZKm1#7_w-Q;46husB~#o)>16~X#o)^c}s zq^(2a9}R19(x$6kKV)M*2I}bU1}soi$$$U|?ri7uMb1(}p1rpHY1}zLU%tKd{shvu zedk59=4@*f$0PGQXY!^A$m&pdmepM#E86@pO(2n)i$K&IWm&j+d($dY$)ZbV&C>21 z5lG8&T!-7s#c7gkNS^eJ{iS5VMD`J9T(>$R^2AwU(ulL%GUU||i{+i@(xczGAp4=t zdd*b_2S+izJl6ukO@B+Ey)O)r+#hwe#3t9(7fqtbQgiWRLWsgw%U9BrEQg-n2FxJC zWK*zNZ{iG!KLj8-7=aZ=$UKeOiAa@U$x|%_Yc_WhJ#&`QjFzG53SJ5B9*sAs7glM0 zIfd%6My{>G1ZLreIeD9Kq&*7$R?5>75fA9HL2ehm>&i)NZu0E5)!~V=vMak|3PKmr z0<|b{Z=hS~6@7>|`|ah*Hd_%WaFNf!7o8u%8iZ~mZK1j0_vFkK38yvdzBcaSz@nCk?fa~R&_`w@NrzwW==*+ki4B{< z<)Bw%Zr?<5Lv>TmcKs+!DWdBK@LQ42>;Sefm0fe^8k9AFC40$0B&zF>8TOR5NvxV} z@`Hwt@Qq6MEh*}>W_mNxaRTC!@BO2zw8-+>Joq^C?Eto;oQhcVBhFaaxTVu|Ld^7nhUKN0^nEFZt>=6Fbisy6hm+^c@W%ah4q_i#pN?8fi{{>J3$(YYw0IP%_7r<9_p}(w zde@1!HqCuSINdyAYD)_m<>hGv;qUdT3(#iXsO5)CH7ap;OLT)`o(t}=J@b>x_ul^{ zJHNgkxr3Gl!$wtRt-HkOR%<>ci(c}j`Fuk&=ghp>nOmaM{oUYzc14AotWm&WU8Z6= zb>J{))%ymE`wv`!o~Ql(7Q^=5O#FOEA30#cm;cHBekczE9iAEA^C>)EPjrq6WIfrE z3oVb{yy}e8nAZW$NL1lBG2Qn>m|=(;WT7xL{=qa%(0QfMwZ9NFpeVFyz)n(Ax(@!c zM)JS>FaO=ITEX?Te={r*iQ?z~i!boMivPa@PsmbX>oz)UgM9Ag{&eg=KfKVm-+Ag3 rvYkGNvd2et-=bE;iC2H7)#pznP%taVMU1QdRFx2s6|NA}|M7nSi;5!n literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/s02-pool-i06.png b/.scratch/customer-demo-ref/demo/shots/s02-pool-i06.png new file mode 100644 index 0000000000000000000000000000000000000000..74f9e0017e5e9054ed7501efc18081c7f668745b GIT binary patch literal 77303 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

7EejrU-u&{o6 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 H4}SY6dHHm! literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/s07-board.png b/.scratch/customer-demo-ref/demo/shots/s07-board.png new file mode 100644 index 0000000000000000000000000000000000000000..03eceb53fa5bef1a791aaae3aa1e75dc8b4535ef GIT binary patch literal 143993 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%0Db0V4IsRae+)&Z7Fr99% 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 literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/s11-head.png b/.scratch/customer-demo-ref/demo/shots/s11-head.png new file mode 100644 index 0000000000000000000000000000000000000000..065d03f8ddde6da5d95d77281d130a7cd0120864 GIT binary patch literal 73035 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 i#+D^OH` literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/s19-oplog.png b/.scratch/customer-demo-ref/demo/shots/s19-oplog.png new file mode 100644 index 0000000000000000000000000000000000000000..4bf26987cdbf2f13af7f183c941b755f2aa50353 GIT binary patch literal 62494 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 y{2Y$|AH$(4go)>^NVNas#Y^HJnGO{gxE~ literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/s20-import.png b/.scratch/customer-demo-ref/demo/shots/s20-import.png new file mode 100644 index 0000000000000000000000000000000000000000..701d0ac3f7c4203dca7f02fc8dac40e60fb0defd GIT binary patch literal 129386 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 x_}4HQ+*_N&!Re8jo#ArG?^;g+ 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 literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/s30-ledger.png b/.scratch/customer-demo-ref/demo/shots/s30-ledger.png new file mode 100644 index 0000000000000000000000000000000000000000..d76f696a901457e37d488adbca1845f5b7f6578f GIT binary patch literal 102270 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 z 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 QTaEfmjVw>*p15-V-&P%^@Bjb+ literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/shots/t10-quick-pool.png b/.scratch/customer-demo-ref/demo/shots/t10-quick-pool.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2c40ef4ca11268f539b3029d97f71970b82883 GIT binary patch literal 61363 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 k;Q{q@oA$XYzjEyVu!k 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 底栏指定文案按钮。""" + return pg.evaluate("(t) => { const b = [...document.querySelectorAll('#dlgFoot button')].find(x => x.textContent === t); if (b) { b.click(); return true; } return false; }", text) + +def get_bytes(url, token=None): + req = urllib.request.Request(url) + if token: req.add_header("Authorization", "Bearer " + token) + with urllib.request.urlopen(req, timeout=60) as r: + return r.read() + +def build_xlsx(token, ctype, gov, jobc): + """步 20/22 夹具:下载两个导入模板 → openpyxl 动态列头填行。客户=1 完整行+1 缺省份行;联系人=2 行。""" + global XLSX_CUST, XLSX_CONT + import openpyxl + d = os.path.join(DEMO, "tmp_xlsx"); os.makedirs(d, exist_ok=True) + tpl = get_bytes(f"{BASE}/api/customer/import/template", token) + src = os.path.join(d, "tpl_cust.xlsx"); open(src, "wb").write(tpl) + wb = openpyxl.load_workbook(src) + ws = wb[wb.sheetnames[0]] + heads = {} + for c in range(1, (ws.max_column or 1) + 1): + v = ws.cell(row=1, column=c).value + if v: heads[str(v).strip()] = c + def col(*kws): + for h, c in heads.items(): + if any(k in h for k in kws): return c + return None + c_name, c_type, c_prov = col("客户名称", "名称"), col("客户类型", "类型"), col("省") + for r, nm, prov in ((2, "e2c-dr-imp-全字段", "440000"), (3, "e2c-dr-imp-缺省份", None)): + if c_name: ws.cell(row=r, column=c_name, value=nm) + if c_type: ws.cell(row=r, column=c_type, value=ctype) + if c_prov and prov: ws.cell(row=r, column=c_prov, value=prov) + if r == 2: # 完整行尽量补齐城市/行业/星级 + for h, c in heads.items(): + if ("市" in h or "城市" in h) and "省" not in h: ws.cell(row=r, column=c, value="440100") + elif "行业" in h: ws.cell(row=r, column=c, value=gov) + elif "星级" in h and "客户" in h and "关系" not in h: ws.cell(row=r, column=c, value=3) + XLSX_CUST = os.path.join(d, "cust.xlsx"); wb.save(XLSX_CUST) + tpl2 = get_bytes(f"{BASE}/api/customer/contact/import/template", token) + wb2 = openpyxl.load_workbook(io.BytesIO(tpl2)) + ws2 = wb2[wb2.sheetnames[0]] + ws2.append(["李冒烟", jobc, "13812341122", "other", "否"]) + ws2.append(["赵冒烟", jobc, "13812341133", "other", "否"]) + XLSX_CONT = os.path.join(d, "cont.xlsx"); wb2.save(XLSX_CONT) + print(" xlsx 就绪: %s / %s" % (XLSX_CUST, XLSX_CONT), flush=True) + + +def main(): + t0 = time.time() + tok = get_token(ADMIN) + ctype = dict_one("customer_type", tok) or "customer_type_01" + gov = dict_one("industry", tok) or "I" + jobc = job_code_first(tok) + n = sweep() # sweep 必须先于 ensure_seeds:否则上轮 e2c-dr* seed 被 find 命中 → 不重建 → 随即被本 sweep 清掉(五跑步9/27 查重基线缺失根因) + print("sweep 清理残留 %s 行" % n, flush=True) + print("seed 自举(jobc=%s)..." % jobc, flush=True) + ensure_seeds(tok, ctype, gov, jobc) + chk = (get_json(f"{BASE}/api/customer/check-name?name={urllib.parse.quote('e2c-dr-恒信达科技有限责任公司')}", tok).get("data") or []) + print(" [seed] 查重基线命中数=%s" % len(chk), flush=True) + build_xlsx(tok, ctype, gov, jobc) + + with sync_playwright() as p: + browser = p.chromium.launch(headless=True) + ctx = browser.new_context(viewport={"width": 1720, "height": 980}) + pg = ctx.new_page() + pg.on("pageerror", lambda e: console_errors.append("pageerror: " + str(e)[:300])) + pg.on("console", lambda m: console_errors.append("console.error: " + m.text[:300]) if m.type == "error" else None) + def on_response(r): + try: + if r.status >= 400: http_fails.append("%s %s" % (r.status, r.url)) + except Exception: pass + pg.on("response", on_response) + def on_dialog(d): + try: + d.accept("e2c-dr-视图") if d.type == "prompt" else d.accept() + except Exception: pass + pg.on("dialog", on_dialog) + pg.route("http://localhost:8080/**", make_handle(tok)) + pg.goto(URL) + pg.wait_for_timeout(1200) + + # ---- 步 1 登录 + 首屏列表 ---- + pg.evaluate("() => { document.getElementById('uidInput').value = '%s'; loginByUid(); }" % ADMIN) + pg.wait_for_timeout(2500) + nrows = ev(pg, "document.querySelectorAll('#listBody tr').length") or 0 + ok1 = nrows > 0 and wait_api(pg, "workspace/page") + step("01 打开Demo+uid登录+首屏列表渲染", ok1, "rows=%s" % nrows) + shot(pg, "s01-list.png") + + # ---- 步 2 三 workspace 切换;pool 不发 board + I-06 注记〔D〕 ---- + n0 = len(api_urls) + pg.evaluate("() => switchWs('overview')"); pg.wait_for_timeout(1500) + ov_ok = any("workspace/page" in u for u in api_urls[n0:]) + n0 = len(api_urls) + pg.evaluate("() => switchWs('pool')"); pg.wait_for_timeout(1500) + reqp = api_urls[n0:] + i06 = ev(pg, "document.getElementById('i06Note').textContent") or "" + i06_vis = ev(pg, "document.getElementById('i06Note').style.display !== 'none'") + step("02 三workspace切换;pool不发board+I-06注记[D]", + ov_ok and not any(("board/summary" in u or "board/cards" in u) for u in reqp) and i06_vis and ("67001" in i06 and "记忆成功" in i06), + "overview请求OK=%s;pool新请求%d条;i06可见=%s" % (ov_ok, len(reqp), i06_vis)) + shot(pg, "s02-pool-i06.png") + + # ---- 步 3 内置视图五值 + FOLLOW_UP_DUE ---- + pg.evaluate("() => switchWs('mine')"); pg.wait_for_timeout(1200) + opts = ev(pg, "[...document.getElementById('fViewType').options].map(o => o.value)") or [] + pg.evaluate("() => { const s = document.getElementById('fViewType'); s.value = 'FOLLOW_UP_DUE'; s.onchange(); }") + wait_api(pg, "viewType=FOLLOW_UP_DUE") + step("03 内置视图下拉五值+切FOLLOW_UP_DUE", len(opts) == 5 and "RECENT" in opts, "opts=%s" % opts) + + # ---- 步 4 阶段筛选 customerStage=3 ---- + pg.evaluate("() => { const s = document.getElementById('fViewType'); s.value = 'ASSIGNED'; s.onchange(); }") + pg.wait_for_timeout(900) + pg.evaluate("() => { const s = document.getElementById('fStage'); s.value = '3'; s.onchange(); }") + ok4 = wait_api(pg, "customerStage=3") + pg.wait_for_timeout(600) + step("04 列筛选阶段=已成交", ok4, "请求参数 customerStage=3 已命中" if ok4 else "未见 customerStage=3") + + # ---- 步 5 归档态开关 ---- + pg.evaluate("() => { const s = document.getElementById('fStage'); s.value = ''; s.onchange(); }") + pg.wait_for_timeout(900) + pg.evaluate("() => { const s = document.getElementById('fArchive'); s.value = '2'; s.onchange(); }") + ok5 = wait_api(pg, "archiveStatus=2") + # 归档客户可能被分页挤出首页 → keyword 收窄到样例再断言 + pg.evaluate("() => { document.getElementById('fKeyword').value = 'e2c-已归档'; S.page = 1; loadList(); }") + pg.wait_for_timeout(1200) + body5 = ev(pg, "document.getElementById('listBody').textContent") or "" + step("05 归档态开关+e2c-已归档可见", ok5 and "e2c-已归档" in body5, + "archiveStatus=2命中=%s;样例可见=%s" % (ok5, "e2c-已归档" in body5)) + + # ---- 步 6 saved-view 全生命周期(JSON body 唯一例外 + prompt 取名) ---- + pg.evaluate("() => { const s = document.getElementById('fArchive'); s.value = '1'; s.onchange(); }") + pg.wait_for_timeout(900) + pg.evaluate("() => { document.getElementById('fKeyword').value = 'e2c'; }") + n0 = len(api_urls) + pg.evaluate("() => svNew()") + wait_api(pg, "view/save"); pg.wait_for_timeout(1000) + sv_opt = ev(pg, "[...document.getElementById('svSel').options].some(o => o.textContent.indexOf('e2c-dr-视图') >= 0)") + save_urls = [u for u in api_urls[n0:] if "view/save" in u] + pick_ok = del_ok = False + if sv_opt: + pg.evaluate("() => { const s = document.getElementById('svSel'); s.value = s.options[1].value; svPick(s.value); }") + pick_ok = wait_api(pg, "savedViewId=") + pg.wait_for_timeout(900) + if pick_ok: + pg.evaluate("() => svDelete()") + del_ok = wait_api(pg, "view/delete"); pg.wait_for_timeout(900) + gone = ev(pg, "![...document.getElementById('svSel').options].some(o => o.textContent.indexOf('e2c-dr-视图') >= 0)") + step("06 saved-view 新建→选中查询→删除", sv_opt and pick_ok and del_ok and gone and bool(save_urls), + "save=%s;选中带savedViewId=%s;删后消失=%s;body=%s" % (sv_opt, pick_ok, gone, (save_urls[0][:150] if save_urls else "无"))) + + # ---- 步 7 形态偏好 board→还原 list ---- + pg.evaluate("() => switchWs('overview')"); pg.wait_for_timeout(1200) + pg.evaluate("() => { const s = document.getElementById('fForm'); s.value = 'board'; saveForm('board'); }") + wait_api(pg, "view-form/save"); wait_api(pg, "board/summary") + pg.wait_for_timeout(1800) + bvis = ev(pg, "document.getElementById('boardBox').style.display !== 'none'") + bcols = ev(pg, "document.getElementById('boardRow').children.length") or 0 + cards_hit = wait_api(pg, "board/cards") + pg.evaluate("() => { const s = document.getElementById('fForm'); s.value = 'list'; saveForm('list'); }") + pg.wait_for_timeout(1100) + restored = ev(pg, "document.getElementById('listTable').style.display !== 'none'") + step("07 形态偏好overview切看板→渲染→还原list", bvis and cards_hit and bcols >= 2 and restored, + "看板列=%s;cards请求=%s;还原=%s" % (bcols, cards_hit, restored)) + shot(pg, "s07-board.png") + + # ---- 步 8 新建表单工商联想 NO_HIT〔D〕 ---- + pg.evaluate("() => switchWs('mine')"); pg.wait_for_timeout(1200) + pg.evaluate("() => dlgCreate()"); pg.wait_for_timeout(400) + pg.evaluate("() => { document.getElementById('cLk').value = '华兴智造科技'; doLookup(); }") + ok8 = wait_api(pg, "company-lookup") + pg.wait_for_timeout(800) + cout = ev(pg, "document.getElementById('cOut').textContent") or "" + stub_n = ev(pg, "document.querySelectorAll('#dlg [data-defect=\"STUB-LOOKUP\"]').length") or 0 + step("08 工商联想(companyName)+NO_HIT现象+STUB-LOOKUP注记[D]", + ok8 and "未查询到匹配企业" in cout and stub_n >= 1, cout[:90]) + + # ---- 步 9 名称查重 needConfirm → confirmSimilar 重发 ---- + pg.evaluate("() => { document.getElementById('cName').value='e2c-dr-恒信达科技有限责任公司';" + "document.getElementById('cType').value='%s'; document.getElementById('cProv').value='440000';" + "document.getElementById('cCity').value='440100'; document.getElementById('cDist').value='440103';" + "document.getElementById('cInd').value='%s'; document.getElementById('cOwner').value='%s'; }" + % (ctype, gov, ADMIN)) + n0 = len(api_urls) + pg.evaluate("() => doCreate('')") + wait_api(pg, "/api/customer/create"); pg.wait_for_timeout(1100) + simbox = ev(pg, "(document.querySelector('#cOut .simbox')||{}).textContent || ''") or "" + confirm_ok = False + if "相似命中" in simbox: + pg.evaluate("() => { const b = [...document.querySelectorAll('#cOut button')].find(x => x.textContent.indexOf('confirmSimilar') >= 0); if (b) b.click(); }") + confirm_ok = wait_api(pg, "confirmSimilar=true"); pg.wait_for_timeout(1300) + toasts9 = read_toast(pg) + row = dbq("SELECT id FROM customer WHERE customer_name LIKE %s AND deleted=0 ORDER BY id DESC LIMIT 1", ("e2c-dr-恒信达%",)) + cid_a = str(row[0]["id"]) if row else "" + step("09 名称查重needConfirm+similarHits→confirmSimilar重发→创建成功", + ("相似命中" in simbox) and confirm_ok and ("创建成功" in toasts9) and bool(cid_a), + "simbox=%s;toast=%s;夹具A=%s" % (simbox[:70].replace(chr(10), ' '), toasts9[:70], cid_a)) + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(400) + + # ---- 步 10 编辑客户(version CAS 回显;L2 相似命中→simbox→confirmSimilar 重发,六跑实链) ---- + pg.evaluate("() => openDetail('%s')" % cid_a); pg.wait_for_timeout(1600) + pg.evaluate("() => dlgEdit()"); pg.wait_for_timeout(1000) + old_name = ev(pg, "document.getElementById('eName').value") or "" + pg.evaluate("() => { document.getElementById('eName').value = document.getElementById('eName').value + '-改'; }") + dlg_btn(pg, "保存") + ok10 = wait_api(pg, "/api/customer/edit?id=") + pg.wait_for_timeout(1000) + sim10 = ev(pg, "(document.querySelector('#eOut .simbox')||{}).textContent || ''") + if sim10: # 后端 L2 查重命中(排除自身后仍有相似行)→ demo 确认重发 confirmSimilar=true + pg.evaluate("() => { const b = [...document.querySelectorAll('#eOut button')].find(x => x.textContent.indexOf('确认保存') >= 0); if (b) b.click(); }") + ok10 = wait_api(pg, "/api/customer/edit?id=") and ok10 + pg.wait_for_timeout(1400) + toasts10 = read_toast(pg) + row = dbq("SELECT customer_name, version FROM customer WHERE id=%s", (int(cid_a),)) if cid_a else [] + step("10 编辑客户回显+CAS保存(含相似确认重发)", ok10 and ("保存成功" in toasts10) and bool(row) and str(row[0]["customer_name"]).endswith("-改"), + "回显名=%s;simbox=%s;toast=%s;db=%s v%s" % (old_name, ("命中" if sim10 else "-"), toasts10[:40], row[0]["customer_name"] if row else "-", row[0]["version"] if row else "-")) + + # ---- 步 11 详情头部金额卡〔D〕 ---- + pg.wait_for_timeout(900) + cards = ev(pg, "[...document.querySelectorAll('#headBox .sumcards .card')].map(c => (c.querySelector('b')||{}).textContent)") or [] + p36 = ev(pg, "document.querySelectorAll('#headBox [data-defect=\"P3-6\"]').length") or 0 + head = ev(pg, "document.getElementById('headBox').textContent") or "" + step("11 详情头部渲染+4金额卡恒--[D]", len(cards) == 4 and all(c in ("--", "-- / --") for c in cards) and p36 >= 1 and "负责人" in head, + "cards=%s;P3-6角标=%s" % (cards, p36)) + shot(pg, "s11-head.png") + + # ---- 步 12 8 页签遍历 + 联系人顶级菜单 ---- + subs = ev(pg, "[...document.querySelectorAll('#detailPanel .subtabs button')].map(b => b.dataset.s)") or [] + errs0 = len(console_errors) + for s in ["info", "contacts", "follow", "opps", "projects", "agreements", "members", "oplog"]: + pg.evaluate("() => switchSub('%s')" % s); pg.wait_for_timeout(700) + pg.evaluate("() => { switchTab('contacts'); loadContactPage(); }") + ok12c = wait_api(pg, "contact/page"); pg.wait_for_timeout(1100) + ct_rows = ev(pg, "document.querySelectorAll('#ctPageBody tr').length") or 0 + pg.evaluate("() => { switchTab('detail'); switchSub('info'); }") + pg.wait_for_timeout(900) + step("12 8页签全遍历+联系人顶级菜单contact/page", len(subs) == 8 and ok12c and ct_rows > 0 and len(console_errors) == errs0, + "subs=%s;contact/page行=%s;新增errs=%s" % (subs, ct_rows, console_errors[errs0:][:2])) + + # ---- 步 13 页签1 信息栅格 + G4〔D〕 + creditCode 明文 ---- + pg.evaluate("() => openDetail('%s')" % SEEDS["full"]); pg.wait_for_timeout(1600) + pg.evaluate("() => switchSub('info')"); pg.wait_for_timeout(900) + kv = ev(pg, "{ const m = {}; document.querySelectorAll('#subBox .kv').forEach(k => { m[k.querySelector('b').textContent] = k.querySelector('span').textContent; }); return m; }") or {} + g4_ok = kv.get("创建人") == "--" and kv.get("更新人") == "--" and kv.get("创建时间", "--") not in ("--", None) and kv.get("更新时间", "--") not in ("--", None) + g4b = ev(pg, "document.querySelectorAll('#subBox [data-defect=\"G4\"]').length") or 0 + step("13 信息栅格16字段+G4创建/更新人--[D]+creditCode明文", + len(kv) >= 16 and g4_ok and g4b >= 1 and kv.get("信用代码") == "91440101E2CTEST001", + "kv=%d;创建人=%s;信用代码=%s" % (len(kv), kv.get("创建人"), kv.get("信用代码"))) + + # ---- 步 14 关联商机 7 列〔D〕+ 关联项目 Noop 空态 + contact/search ---- + pg.evaluate("() => switchSub('opps')"); pg.wait_for_timeout(1000) + opp_heads = ev(pg, "[...document.querySelectorAll('#subBox thead th')].map(t => t.textContent)") or [] + g2b = ev(pg, "document.querySelectorAll('#subBox [data-defect=\"G2\"]').length") or 0 + pg.evaluate("() => switchSub('projects')"); pg.wait_for_timeout(1000) + proj_hit = wait_api(pg, "customer/project/page") + sub14 = ev(pg, "document.getElementById('subBox').textContent") or "" + proj_noop = "Noop" in sub14 # 空态真容=表头+Noop hint(K2 口径非硬占位),非「无数据」文案 + pg.evaluate("() => dlgContactSearch()"); pg.wait_for_timeout(400) + pg.evaluate("() => { document.getElementById('csKw').value = '张关键'; }") + dlg_btn(pg, "搜索") + wait_api(pg, "contact/search"); pg.wait_for_timeout(900) + cs_out = ev(pg, "document.getElementById('csOut').textContent") or "" + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(400) + step("14 商机7列(G2-D)+项目页签Noop空态+contact/search命中", + len(opp_heads) == 7 and g2b >= 1 and proj_hit and proj_noop and "张关键" in cs_out, + "商机列=%s;Noop空态=%s;search=%s" % (opp_heads, proj_noop, cs_out[:60].replace(chr(10), ' '))) + + # ---- 步 15 团队成员:加 BUDDY → 渲染 → 移除(G3〔D〕) ---- + pg.evaluate("() => switchSub('members')"); pg.wait_for_timeout(1000) + mheads = ev(pg, "[...document.querySelectorAll('#subBox thead th')].map(t => t.textContent)") or [] + g3b = ev(pg, "document.querySelectorAll('#subBox [data-defect=\"G3\"]').length") or 0 + pg.evaluate("() => dlgMemberAdd()"); pg.wait_for_timeout(400) + pg.evaluate("() => { document.getElementById('mIds').value = '%s'; }" % BUDDY) + dlg_btn(pg, "添加") + ok15 = wait_api(pg, "member/add") + pg.wait_for_timeout(1000) + mbox = ev(pg, "document.getElementById('subBox').textContent") or "" + m_cnt = dbq("SELECT COUNT(*) AS n FROM customer_team_member WHERE customer_id=%s", (int(SEEDS["full"]),))[0]["n"] + removed = pg.evaluate("() => { const b = [...document.querySelectorAll('#subBox button')].find(x => x.textContent === '移除'); if (b) { b.click(); return true; } return false; }") + wait_api(pg, "member/remove"); pg.wait_for_timeout(1000) + step("15 成员加BUDDY→渲染→移除(G3-D无职务/加入时间列)", + ok15 and (BUDDY in mbox or "协同人" in mbox) and m_cnt >= 1 and removed and len(mheads) == 3 and g3b >= 1, + "列头=%s;DB成员行=%s;memberUserIds重复键=%s" % (mheads, m_cnt, ok15)) + + # ---- 步 16 联系人 quickAdd + G5〔D〕 + 脱敏 + reveal + DB 埋点 ---- + pg.evaluate("() => switchSub('contacts')"); pg.wait_for_timeout(1600) + heads_c = ev(pg, "[...document.querySelectorAll('#contactsShell thead th')].map(t => t.textContent)") or [] + g5b = ev(pg, "document.querySelectorAll('#contactsShell [data-defect=\"G5\"]').length") or 0 + tmask = ev(pg, "document.getElementById('contactTbody').textContent") or "" + masked_ok = "138****0001" in tmask + qa_js = ("fetch('http://localhost:8080/api/customer/contact/quickAdd', {method:'POST', " + "headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'}, " + "body:'customerId=%s&rows[0].name=李冒烟&rows[0].jobTitleCode=%s&rows[0].phone=13800002222&rows[0].source=other&rows[0].isKeyContact=0" + "&rows[1].name=赵冒烟&rows[1].jobTitleCode=%s&rows[1].source=other'}).then(r => r.json()).then(d => { window.__qaRet = d; })" + % (SEEDS["full"], jobc, jobc)) + pg.evaluate("() => %s" % qa_js) + wait_api(pg, "contact/quickAdd"); pg.wait_for_timeout(1400) + # quickAdd 是页面 fetch 直调,不触发 loadContacts → window._contacts 停留旧快照(六跑 lid=None 连锁)→ 显式重拉 + pg.evaluate("() => loadContacts()"); pg.wait_for_timeout(1300) + qa_ret = ev(pg, "JSON.stringify((window.__qaRet||{}).data||{})") or "" + rows2 = dbq("SELECT COUNT(*) AS n FROM customer_contact WHERE customer_id=%s AND deleted=0", (int(SEEDS["full"]),))[0]["n"] + pg.evaluate("() => toggleRevealAll()") + wait_api(pg, "contact/reveal"); pg.wait_for_timeout(1300) + treveal = ev(pg, "document.getElementById('contactTbody').textContent") or "" + zid = ev(pg, "(window._contacts.find(c => c.name === '张关键') || {}).id") + rl = dbq("SELECT COUNT(*) AS n FROM customer_contact_reveal_log WHERE contact_id=%s", (int(zid),))[0]["n"] if zid else 0 + step("16 联系人quickAdd2行+G5无负责人列[D]+电话脱敏+reveal明文+DB埋点", + masked_ok and rows2 >= 4 and rl >= 1 and g5b >= 1 and "13812340001" in treveal and not any(h == "负责人" for h in heads_c), + "脱敏=%s;DB联系人=%s;reveal_log=%s;明文=%s;列头=%s;qaRet=%s" % (masked_ok, rows2, rl, "13812340001" in treveal, heads_c, qa_ret[:80])) + + # ---- 步 17 batchEdit 空串提交〔D-G1〕 + check-phone + 删除双刷 ---- + pg.evaluate("() => editListToggle()"); pg.wait_for_timeout(700) + pg.evaluate("() => { const c = window._contacts.find(x => x.name === '张关键'); c.phone = ''; C.dirtyRows[String(c.id)] = true; renderContactsList(); }") + pg.evaluate("() => saveListAll()") + ok17 = wait_api(pg, "contact/batchEdit"); pg.wait_for_timeout(1100) + ph = dbq("SELECT phone FROM customer_contact WHERE id=%s", (int(zid),))[0]["phone"] if zid else "" + dg1 = ev(pg, "document.querySelectorAll('#contactsShell [data-defect=\"D-G1\"]').length") or 0 + pg.evaluate("() => { if (C.editing) editListToggle(); }"); pg.wait_for_timeout(500) + # check-phone 命中王重复(同号 13812340001) + pg.evaluate("() => dlgCheckPhone('13812340001')"); pg.wait_for_timeout(400) + dlg_btn(pg, "查重") + wait_api(pg, "check-phone"); pg.wait_for_timeout(900) + cp = ev(pg, "document.getElementById('cpOut').textContent") or "" + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(400) + # 删除李冒烟(gConfirm 自绘确认 → contact/delete → 列表+图谱双刷) + lid = ev(pg, "(window._contacts.find(c => c.name === '李冒烟') || {}).id") + names16 = ev(pg, "(window._contacts || []).map(c => c.name).join(',')") or "" + errs0 = len(console_errors) + del_ok = False + if lid: + pg.evaluate("() => delContact('%s')" % lid); pg.wait_for_timeout(600) + del_ok = dlg_btn(pg, "确认") or dlg_btn(pg, "确定") + wait_api(pg, "contact/delete"); pg.wait_for_timeout(1600) + rows3 = dbq("SELECT COUNT(*) AS n FROM customer_contact WHERE customer_id=%s AND deleted=0", (int(SEEDS["full"]),))[0]["n"] + step("17 batchEdit空串=DB不改(D-G1)[D]+check-phone命中+删除双刷", + ok17 and ph == "13812340001" and dg1 >= 1 and bool(cp) and del_ok and rows3 == rows2 - 1 and len(console_errors) == errs0, + "DB phone=%s;D-G1角标=%s;check-phone=%s;删后行=%s(删前%s,del_ok=%s,errs+%s);lid=%s;names=%s" % (ph, dg1, cp[:40].replace(chr(10), ' '), rows3, rows2, del_ok, len(console_errors) - errs0, lid, names16[:60])) + + # ---- 步 18 跟进:写 + 日期分组 + followWay 筛选 ---- + pg.evaluate("() => switchSub('follow')"); pg.wait_for_timeout(1000) + fopts = ev(pg, "[...document.getElementById('fFollowWay').options].map(o => o.value)") or [] + pg.evaluate("() => dlgFollow()"); pg.wait_for_timeout(400) + pg.evaluate("() => { document.getElementById('fContent').value = '冒烟跟进内容-电话沟通'; }") + dlg_btn(pg, "保存") + ok18 = wait_api(pg, "follow/add") + pg.wait_for_timeout(1300) + days = ev(pg, "document.querySelectorAll('#followBox .logday').length") or 0 + pg.evaluate("() => { const s = document.getElementById('fFollowWay'); s.value = 'follow_way_01'; s.onchange(); }") + flt18 = wait_api(pg, "followWay=follow_way_01"); pg.wait_for_timeout(700) + step("18 写跟进+日期分组+followWay筛选", ok18 and len(fopts) == 6 and days >= 1 and flt18, + "way选项=%s(空+5);日期分组=%s;筛选=%s" % (len(fopts), days, flt18)) + + # ---- 步 19 focus/star + oplog 留痕 ---- + pg.evaluate("() => oneBy('focus')"); wait_api(pg, "/focus?id="); pg.wait_for_timeout(700) + pg.evaluate("() => oneBy('star')"); wait_api(pg, "/star?id="); pg.wait_for_timeout(700) + pg.evaluate("() => switchSub('oplog')"); pg.wait_for_timeout(1100) + obox = ev(pg, "document.getElementById('oplogBox').textContent") or "" + pg.evaluate("() => { const s = document.getElementById('fOpAction'); s.value = 'FOLLOW'; s.onchange(); }") + flt19 = wait_api(pg, "action=FOLLOW"); pg.wait_for_timeout(700) + # 创建留痕不在首页(oplog 时间倒序被本轮操作挤掉)→ 用 action=CREATE 筛选强断言 + pg.evaluate("() => { const s = document.getElementById('fOpAction'); s.value = 'CREATE'; s.onchange(); }") + wait_api(pg, "action=CREATE"); pg.wait_for_timeout(800) + obox2 = ev(pg, "document.getElementById('oplogBox').textContent") or "" + f_cnt = dbq("SELECT COUNT(*) AS n FROM customer_follow WHERE customer_id=%s", (int(SEEDS["full"]),))[0]["n"] + step("19 关注/重点标记+oplog留痕+action筛选", + ("新增客户" in obox2) and flt19 and f_cnt >= 1, + "action=CREATE筛选含新增客户=%s;action=FOLLOW筛选=%s;DB跟进=%s" % ("新增客户" in obox2, flt19, f_cnt)) + shot(pg, "s19-oplog.png") + + # ================= B · 重流程(步 20-25) ================= + # ---- 步 20 客户导入三段式(模板已在 build_xlsx 下载改制;UI 上传 → route 分流 → 确认 → 轮询 → 失败明细) ---- + pg.evaluate("() => switchTab('import')"); pg.wait_for_timeout(900) + pg.set_input_files("#impFile", XLSX_CUST) + pg.evaluate("() => { document.getElementById('impMode').value = 'APPEND_ONLY'; document.getElementById('impStrategy').value = 'SKIP'; }") + pg.evaluate("() => impUpload()") + ok20 = wait_api(pg, "customer/import/upload") + pg.wait_for_timeout(1600) + toasts20 = read_toast(pg) + m = re.search(r"t=(\d+) insert=(\d+) update=(\d+) fail=(\d+)", toasts20) + t_total, t_ins, t_fail = (int(m.group(1)), int(m.group(2)), int(m.group(4))) if m else (0, 0, 0) + tid = ev(pg, "{ const b = [...document.querySelectorAll('#impBody button')].find(x => x.textContent === '确认执行');" + "if (!b) return ''; const mm = (b.getAttribute('onclick') || '').match(/'([^']+)'/); return mm ? mm[1] : ''; }") + if tid: pg.evaluate("() => impConfirm('%s')" % tid) + wait_api(pg, "import/confirm"); pg.wait_for_timeout(1500) + res = {} + for _ in range(30): + try: + res = get_json(f"{BASE}/api/customer/import/result?taskId={tid}", tok).get("data") or {} + if res.get("status") in (2, 3): break + except Exception: pass + time.sleep(1) + fails = [] + try: + fd = get_json(f"{BASE}/api/customer/import/failures?taskId={tid}", tok).get("data") + fails = fd if isinstance(fd, list) else ((fd or {}).get("content") or []) + except Exception: pass + step("20 客户导入三段式(缺省份预检FAIL→DONE计数=预检→明细吻合)", + ok20 and bool(tid) and t_ins >= 1 and t_fail >= 1 and res.get("status") == 2 + and int(res.get("insertCount") or 0) == t_ins and int(res.get("failCount") or 0) == t_fail and len(fails) == t_fail, + "预检 t=%s ins=%s fail=%s;taskId=%s;result=%s;明细=%s行" % (t_total, t_ins, t_fail, tid, res, len(fails))) + shot(pg, "s20-import.png") + + # ---- 步 21 任务列表 + status/importMode 过滤 + P3-3〔D〕 ---- + pg.evaluate("() => { const a = document.getElementById('impFStatus'); a.value = '2'; a.onchange(); }") + f21a = wait_api(pg, "import/page"); pg.wait_for_timeout(900) + pg.evaluate("() => { const a = document.getElementById('impFMode'); a.value = 'UPSERT'; a.onchange(); }") + f21b = wait_api(pg, "importMode=UPSERT"); pg.wait_for_timeout(900) + p33 = ev(pg, "document.querySelectorAll('#tab-import [data-defect=\"P3-3\"]').length") or 0 + step("21 导入任务列表+status/importMode过滤+P3-3注记[D]", f21a and f21b and p33 >= 1, + "status过滤=%s;mode过滤=%s;P3-3=%s" % (f21a, f21b, p33)) + + # ---- 步 22 联系人导入三段式(cimp 弹窗;P3-3 无校验复选框〔D〕) ---- + pg.evaluate("() => { switchTab('detail'); openDetail('%s'); }" % cid_a); pg.wait_for_timeout(1600) + pg.evaluate("() => switchSub('contacts')"); pg.wait_for_timeout(1300) + pg.evaluate("() => openCimp()"); pg.wait_for_timeout(700) + cimp_chk = ev(pg, "document.querySelectorAll('#cimpOverlay input[type=checkbox]').length") or 0 + pg.set_input_files("#cimpFile", XLSX_CONT) + pg.evaluate("() => { document.getElementById('cimpMode').value = 'APPEND_ONLY'; document.getElementById('cimpStrategy').value = 'SKIP'; }") + pg.evaluate("() => cimpUpload()") + ok22 = wait_api(pg, "contact/import/upload") + pg.wait_for_timeout(1600) + prev22 = ev(pg, "document.getElementById('cimpPreviewHead').textContent") or "" + pg.evaluate("() => cimpConfirmTask()") + wait_api(pg, "contact/import/confirm"); pg.wait_for_timeout(1500) + ctid = ev(pg, "cimpTaskId") or "" + cres = {} + for _ in range(30): + try: + cres = get_json(f"{BASE}/api/customer/contact/import/result?taskId={ctid}", tok).get("data") or {} + if cres.get("status") in (2, 3): break + except Exception: pass + time.sleep(1) + pg.wait_for_timeout(1200) # demo 自身 1s 轮询同步 + done22 = ev(pg, "document.getElementById('cimpResultHead').textContent") or "" + c_cnt = dbq("SELECT COUNT(*) AS n FROM customer_contact WHERE customer_id=%s AND deleted=0", (int(cid_a),))[0]["n"] if cid_a else 0 + pg.evaluate("() => cimpDone()") + step("22 联系人导入三段式+P3-3无校验复选框[D]", + ok22 and bool(ctid) and cres.get("status") == 2 and "已完成" in done22 and c_cnt >= 2 and cimp_chk == 0, + "预检=%s;result=%s;DB联系人=%s;弹窗checkbox=%s" % (prev22[:60].replace(chr(10), ' '), cres, c_cnt, cimp_chk)) + + # ---- 步 23 商机联动链:UI 建商机 → 抛公海 67007 → API 关商机 → 放行 ---- + pg.evaluate("() => { switchTab('list'); switchWs('mine'); }"); pg.wait_for_timeout(1500) + pg.evaluate("() => { document.getElementById('fKeyword').value = 'e2c-dr-恒信达'; S.page = 1; loadList(); }") + pg.wait_for_timeout(1600) + pg.evaluate("() => dlgOppCreate('%s')" % cid_a); pg.wait_for_timeout(600) + pg.evaluate("() => { document.getElementById('oName').value = 'e2c-dr-演示商机';" + "document.getElementById('oSource').value = 'opp_source_02';" + "document.getElementById('oBid').value = 'bid_form_01';" + "document.getElementById('oLoc').value = 'locality_type_01';" + "document.getElementById('oProv').value = '440000'; document.getElementById('oCity').value = '440100';" + "document.getElementById('oPrimary').value = '1'; document.getElementById('oRole').value = 'customer_role_01'; }") + n0 = len(api_urls) + pg.evaluate("() => { const b = [...document.querySelectorAll('#dlgFoot button')].find(x => x.textContent === '创建商机'); if (b) b.click(); }") + ok23 = wait_api(pg, "POST /api/opportunity") + pg.wait_for_timeout(1400) + toasts23 = read_toast(pg) + opp = dbq("SELECT opportunity_id FROM opportunity_customer WHERE customer_id=%s ORDER BY opportunity_id DESC LIMIT 1", + (int(cid_a),)) if cid_a else [] + opp_id = str(opp[0]["opportunity_id"]) if opp else "" + opp0 = dbq("SELECT opp_status FROM opportunity WHERE id=%s", (int(opp_id),))[0]["opp_status"] if opp_id else None + pg.evaluate("() => { S.picked.clear(); pick('%s'); }" % cid_a) + picked23 = ev(pg, "S.picked.size") or 0 + pg.evaluate("() => batchRelease()") + wait_api(pg, "release-pool-batch"); pg.wait_for_timeout(1300) + t67007 = read_toast(pg) + # 拦截生效的证明=客户仍在名下(批量部分成功语义:67007 映射 failures.POOL_BLOCKED,HTTP 200 无错误码 toast) + cust1 = dbq("SELECT owner_user_id FROM customer WHERE id=%s", (int(cid_a),)) if cid_a else [] + blocked = bool(cust1) and cust1[0]["owner_user_id"] is not None + if opp_id: + try: post(f"{BASE}/api/opportunity/assign?id={opp_id}&userId={ADMIN}", {}, tok) # 新建即推进中(设计),CAS 失败无碍 + except Exception: pass + post(f"{BASE}/api/opportunity/close?id={opp_id}&closeReason={urllib.parse.quote('冒烟演示关闭')}", {}, tok) + opp1 = dbq("SELECT opp_status FROM opportunity WHERE id=%s", (int(opp_id),))[0]["opp_status"] if opp_id else None + pg.evaluate("() => batchRelease()") + wait_api(pg, "release-pool-batch"); pg.wait_for_timeout(1600) + cust_db = dbq("SELECT owner_user_id, enter_pool_time FROM customer WHERE id=%s", (int(cid_a),)) if cid_a else [] + in_pool = bool(cust_db) and cust_db[0]["owner_user_id"] is None and cust_db[0]["enter_pool_time"] is not None + step("23 商机联动链(UI建商机→抛公海拦截→关商机→放行)", + ok23 and bool(opp_id) and picked23 >= 1 and blocked and str(opp1) != str(opp0) and in_pool, + "商机=%s;状态%s→%s;一次release拦截=%s(toast=%s);进公海=%s" % (opp_id, opp0, opp1, blocked, t67007[:60].replace(chr(10), ' '), in_pool)) + + # ---- 步 24 交割两段式(F-13 防线:initiate 圈定=发起人名下全量,先清 BUDDY leftover) ---- + leftovers = dbq("SELECT id, customer_name FROM customer WHERE owner_user_id=%s AND deleted=0 AND customer_name NOT LIKE %s", + (int(BUDDY), PFX + "%")) + moved = 0 + for lo in leftovers: + try: + d = post(f"{BASE}/api/customer/assign-batch?ids={lo['id']}&userId={ADMIN}", {}, tok).get("data") or {} + moved += int(d.get("successCount") or 0) + except Exception as e: + print(" [warn] leftover 回迁失败 %s: %s" % (lo["customer_name"], e)) + post(f"{BASE}/api/customer/claim-batch?ids={cid_a}", {}, tok) # 公海领回(owner=ADMIN) + post(f"{BASE}/api/customer/assign-batch?ids={cid_a}&userId={BUDDY}", {}, tok) # 夹具 A → BUDDY + btok = get_token(BUDDY) + prev24 = get_json(f"{BASE}/api/customer/transfer/preview", btok).get("data") + prev_rows = prev24 if isinstance(prev24, list) else ((prev24 or {}).get("customers") or (prev24 or {}).get("content") or []) + prev_has = any("e2c-dr" in str(c.get("customerName") or c.get("customer_name") or "") for c in prev_rows) + init = (post(f"{BASE}/api/customer/transfer/initiate", {"reason": "resign", "remark": "冒烟交割"}, btok) or {}) + init_d = init.get("data") or {} + if not init_d: + print(" [warn] initiate 完整响应: %s" % str(init)[:240]) + bill_no = str(init_d.get("transferNo") or "") + bill_id = str(init_d.get("id") or init_d.get("transferId") or "") + page24 = get_json(f"{BASE}/api/customer/transfer/page?current=1&size=10", btok).get("data") or {} + page_rows = page24.get("content") or [] + page_hit = any(str(r.get("transferNo")) == bill_no for r in page_rows) + if not bill_id: + for r in page_rows: + if str(r.get("transferNo")) == bill_no: bill_id = str(r.get("id")); break + det = get_json(f"{BASE}/api/customer/transfer/detail?id={bill_id}", btok).get("data") or {} if bill_id else {} + items = det.get("items") or det.get("details") or [] + asg = get_json(f"{BASE}/api/customer/transfer/assignable?id={bill_id}", btok).get("data") if bill_id else None + asg_rows = asg if isinstance(asg, list) else ((asg or {}).get("content") or (asg or {}).get("users") or []) + # 分配对象从 assignable 动态取:后端排除发起人与总监本人(CustomerTransferServiceImpl L132), + # 五跑硬编码 ADMIN=总监本人被拒 → assign_status 不变 + asg_uid = "" + if asg_rows: + asg_uid = str((asg_rows[0] or {}).get("userId") or (asg_rows[0] or {}).get("id") or "") + asg24 = {} + if bill_id and asg_uid: + asg24 = post(f"{BASE}/api/customer/transfer/assign?id={bill_id}&customerIds={cid_a}&assignUserId={asg_uid}", {}, btok) or {} + if asg24 and asg24.get("code") != 0: + print(" [warn] transfer/assign 响应: %s" % str(asg24)[:220], flush=True) + det2 = get_json(f"{BASE}/api/customer/transfer/detail?id={bill_id}", btok).get("data") or {} if bill_id else {} + items2 = det2.get("items") or det2.get("details") or [] + st_change = any(str(it.get("customerId")) == str(cid_a) and int(it.get("assignStatus") or 0) == 1 for it in items2) + db_bill = dbq("SELECT id, transfer_no, status FROM customer_transfer WHERE transfer_no=%s", (bill_no,)) if bill_no else [] + pg.evaluate("() => switchTab('transfer')"); pg.wait_for_timeout(300) + pg.evaluate("() => transferPage(0)") + wait_api(pg, "transfer/page"); pg.wait_for_timeout(1000) + tr_rows = ev(pg, "document.querySelectorAll('#trBody tr').length") or 0 + step("24 交割(preview圈定→initiate→page→detail→assignable→assign明细态变化;F-13清leftover=%s)" % moved, + prev_has and bool(bill_no) and page_hit and bool(items) and bool(asg_rows) and st_change and bool(db_bill), + "单号=%s;圈定含夹具=%s;明细=%s→assign后变化=%s(assign对象=%s);UI行=%s" % (bill_no, prev_has, len(items), st_change, asg_uid, tr_rows)) + shot(pg, "s24-transfer.png") + + # ---- 步 25 归属动作族:导入客户先抛公海 → pool 勾选 → claim → archive → restore → 再 archive + assign ---- + imp_ids = [str(r["id"]) for r in dbq("SELECT id FROM customer WHERE customer_name LIKE %s AND deleted=0", ("e2c-dr-imp%",))] + rel25 = {} + if imp_ids: + # 步 20 导入客户落在 ADMIN 名下 → pool 视图(owner IS NULL)搜不到(五跑「请先勾选客户行」根因)→ 先 release 进公海 + rel25 = post(f"{BASE}/api/customer/release-pool-batch?ids={','.join(imp_ids)}", {}, tok) or {} + if rel25.get("code") != 0: + print(" [warn] release 进公海响应: %s" % str(rel25)[:200], flush=True) + inpool25 = all(r["owner_user_id"] is None for r in dbq( + "SELECT owner_user_id FROM customer WHERE id IN (%s)" % ",".join(imp_ids))) if imp_ids else False + pg.evaluate("() => { switchTab('list'); switchWs('pool'); }"); pg.wait_for_timeout(1500) + # pool+ASSIGNED 组合语义冲突:视图「我负责的」(owner=me) 与公海 (owner IS NULL) 恒互斥 + # (CustomerMapper L83)→ 先按 UI 默认呈现空现象,再清 fViewType 走 pool 基础集(demo 视图条在 pool 页签仍显示) + pg.evaluate("() => { document.getElementById('fKeyword').value = 'e2c-dr-imp'; S.page = 1; loadList(); }") + pg.wait_for_timeout(1600) + rows_def25 = ev(pg, "S.rows.length") or 0 + pg.evaluate("() => { document.getElementById('fViewType').value = ''; S.page = 1; loadList(); }") + pg.wait_for_timeout(1600) + rows25 = ev(pg, "S.rows.length") or 0 + pg.evaluate("() => { S.picked.clear(); S.rows.forEach(r => pick(String(r.id))); }") + picked25 = ev(pg, "S.picked.size") or 0 + pg.evaluate("() => batchClaim()") + ok25a = wait_api(pg, "claim-batch"); pg.wait_for_timeout(1300) + t25a = read_toast(pg) + # batchClaim 内部清空 picked → UI dlgAssign(要求先行勾选)无法衔接 → assign 移到 archive 族后用 API 直调覆盖端点 + pg.evaluate("() => batchArchive()") + ok25c = wait_api(pg, "archive-batch"); pg.wait_for_timeout(1300) + t25c = read_toast(pg) + arch25 = all(str(r["archive_status"]) == "2" for r in dbq( + "SELECT archive_status FROM customer WHERE id IN (%s)" % ",".join(imp_ids))) if imp_ids else False + st1 = st2 = None + if imp_ids: + pg.evaluate("() => openDetail('%s')" % imp_ids[0]); pg.wait_for_timeout(1600) + pg.evaluate("() => oneBy('restore')"); wait_api(pg, "/restore?id="); pg.wait_for_timeout(1000) + st1 = dbq("SELECT archive_status FROM customer WHERE id=%s", (int(imp_ids[0]),))[0]["archive_status"] + pg.evaluate("() => oneBy('archive')"); wait_api(pg, "/archive?id="); pg.wait_for_timeout(1000) + st2 = dbq("SELECT archive_status FROM customer WHERE id=%s", (int(imp_ids[0]),))[0]["archive_status"] + oplog25 = dbq("SELECT COUNT(*) AS n FROM customer_oplog WHERE customer_id=%s AND action IN ('ARCHIVE','RESTORE')", + (int(imp_ids[0]),))[0]["n"] if imp_ids else 0 + asg25 = post(f"{BASE}/api/customer/assign-batch?ids={','.join(imp_ids)}&userId={BUDDY}", {}, tok) if imp_ids else {} + d25 = (asg25.get("data") or {}) if isinstance(asg25, dict) else {} + ok25b = isinstance(asg25, dict) and asg25.get("code") == 0 and int(d25.get("successCount") or 0) >= 1 + as_out = "success=%s fail=%s" % (d25.get("successCount"), d25.get("failCount")) + step("25 归属动作族(release→claim→archive→restore→再archive+oplog+assign)", + ok25a and ok25b and ok25c and picked25 >= 1 and arch25 and st1 == 1 and st2 == 2 and oplog25 >= 2 and inpool25 and rows25 >= 1, + "进公海=%s(pool默认视图行=%s,清视图后行=%s);claim=%s(%s);archive=%s(%s);assign=%s(%s);恢复%s→再归档%s;oplog=%s" % (inpool25, rows_def25, rows25, ok25a, t25a[:40], ok25c, t25c[:40], ok25b, as_out[:40], st1, st2, oplog25)) + + # ================= C · 规则族(步 26-29) ================= + d_orig = get_json(f"{BASE}/api/rule/customer/dedup", tok).get("data") or {} + thr0 = d_orig.get("similarityThreshold") + mode0 = d_orig.get("nameMatchMode") + pg.evaluate("() => switchTab('settings')"); pg.wait_for_timeout(1300) + # saveDedup 从 dpMode 下拉收集:未 loadDedup 时停留 HTML 默认 1 → save 写 1 污染共享库(六跑实锤)→ save 前显式填充 + pg.evaluate("() => loadDedup()"); wait_api(pg, "rule/customer/dedup"); pg.wait_for_timeout(600) + pg.evaluate("() => { document.getElementById('dpThreshold').value = '90'; saveDedup(); }") + wait_api(pg, "dedup/save"); pg.wait_for_timeout(900) + thr1 = (get_json(f"{BASE}/api/rule/customer/dedup", tok).get("data") or {}).get("similarityThreshold") + pg.evaluate("() => { document.getElementById('dpThreshold').value = '%s'; saveDedup(); }" % (thr0 if thr0 is not None else 80)) + wait_api(pg, "dedup/save"); pg.wait_for_timeout(900) + thr2 = (get_json(f"{BASE}/api/rule/customer/dedup", tok).get("data") or {}).get("similarityThreshold") + mode_end = (get_json(f"{BASE}/api/rule/customer/dedup", tok).get("data") or {}).get("nameMatchMode") + step("26 查重设置读→改90→save生效→还原(含匹配方式不被污染)", + thr1 == 90 and thr2 == thr0 and mode_end == mode0, "原=%s→90→还原=%s;mode=%s(原%s)" % (thr0, thr2, mode_end, mode0)) + + # ---- 步 27 check-name 命中 + 信用代码撞码 67003 ---- + pg.evaluate("() => { document.getElementById('ckName').value = 'e2c-dr-恒信达科技有限责任公司'; checkName(); }") + wait_api(pg, "check-name"); pg.wait_for_timeout(900) + ck27 = ev(pg, "document.getElementById('ckOut').textContent") or "" + # check-credit-code L1 直调(REQUIRED 端点矩阵覆盖;撞码占用者=e2c-全字段-科技 seed) + ckc27 = (get_json(f"{BASE}/api/customer/check-credit-code?creditCode=91440101E2CTEST001", tok).get("data") or {}) + pg.evaluate("() => { switchTab('list'); dlgCreate(); }"); pg.wait_for_timeout(600) + pg.evaluate("() => { document.getElementById('cName').value = 'e2c-dr-撞码客户';" + "document.getElementById('cType').value = '%s'; document.getElementById('cProv').value = '440000';" + "document.getElementById('cCity').value = '440100'; document.getElementById('cDist').value = '440103';" + "document.getElementById('cInd').value = '%s'; document.getElementById('cCredit').value = '91440101E2CTEST001'; }" + % (ctype, gov)) + pg.evaluate("() => doCreate('')") + wait_api(pg, "/api/customer/create"); pg.wait_for_timeout(1100) + err27 = ev(pg, "(document.querySelector('#cOut .errbox')||{}).textContent || ''") or "" + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(300) + step("27 check-name命中e2c-恒信达+信用代码撞码67003(L3硬拦)+check-credit-code L1", + "恒信达" in ck27 and "67003" in err27 and bool(ckc27.get("exists")), + "check-name=%s;err=%s;creditCode.exists=%s" % (ck27[:60].replace(chr(10), ' '), err27[:90], ckc27.get("exists"))) + + # ---- 步 28 超期提醒:save 非法 0 → 64023 → 还原 ---- + r_orig = get_json(f"{BASE}/api/rule/customer/reminder", tok).get("data") or {} + f0 = r_orig.get("firstTriggerDays"); s0 = r_orig.get("secondIntervalDays") + pg.evaluate("() => switchTab('settings')"); pg.wait_for_timeout(1300) + pg.evaluate("() => { document.getElementById('rFirstDays').value = '0'; saveReminder(); }") + wait_api(pg, "reminder/save"); pg.wait_for_timeout(900) + got64023 = "64023" in read_toast(pg) + pg.evaluate("() => { document.getElementById('rFirstDays').value = '%s'; document.getElementById('rSecondDays').value = '%s'; saveReminder(); }" + % (f0 if f0 else 30, s0 if s0 else 7)) + wait_api(pg, "reminder/save"); pg.wait_for_timeout(900) + r_end0 = get_json(f"{BASE}/api/rule/customer/reminder", tok).get("data") or {} + step("28 超期提醒save非法0→64023toast→还原30/7", + got64023 and r_end0.get("firstTriggerDays") == f0 and r_end0.get("secondIntervalDays") == s0, + "64023=%s;还原=%s/%s(原%s/%s)" % (got64023, r_end0.get("firstTriggerDays"), r_end0.get("secondIntervalDays"), f0, s0)) + + # ---- 步 29 POOL-CFG 占位卡只读〔D〕 ---- + pool29 = ev(pg, "document.querySelectorAll('#tab-settings [data-defect=\"POOL-CFG\"]').length") or 0 + dis29 = ev(pg, "document.querySelectorAll('#tab-settings input[disabled]').length") or 0 + step("29 公海池配置占位卡只读[D]", pool29 >= 1 and dis29 >= 2, "角标=%s;禁用输入=%s" % (pool29, dis29)) + + # ================= D · 缺陷现象(步 30-36) ================= + pg.evaluate("() => defectPanel()"); pg.wait_for_timeout(800) + decl = ev(pg, "document.querySelectorAll('#dlg [data-defect-decl]').length") or 0 + cnts = ev(pg, "({ a: DEFECT_LEDGER.open.length, b: DEFECT_LEDGER.fixed.length, c: DEFECT_LEDGER.exempt.length, d: DEFECT_LEDGER.env.length })") or {} + rows30 = ev(pg, "document.querySelectorAll('#dlg [data-defect-row]').length") or 0 + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(300) + step("30 缺陷台账面板(A≥14/B4/C14/D1+固定声明)", + decl >= 1 and cnts.get("a", 0) >= 14 and cnts.get("b") == 4 and cnts.get("c") == 14 and cnts.get("d") == 1, + "A=%s B=%s C=%s D=%s;渲染行=%s" % (cnts.get("a"), cnts.get("b"), cnts.get("c"), cnts.get("d"), rows30)) + shot(pg, "s30-ledger.png") + + # 角标互斥分布于各页签/弹窗(G1=follow子页签、G2=opps、G3=members、G5/D-G1=contactsShell、 + # P3-3=import、POOL-CFG=settings、I-06=list、STUB-LOOKUP=建客户弹窗、P3-6/G4=info)—— + # 单页签瞬时统计必然缺类目(五跑 9<12 教训)→ 多页签采样累计 + kinds31, badges31 = set(), 0 + for jmp in ["() => switchTab('settings')", "() => switchTab('import')", + "() => { switchTab('list'); switchWs('pool'); }"]: + pg.evaluate(jmp); pg.wait_for_timeout(1100) + kinds31 |= set(ev(pg, "[...document.querySelectorAll('[data-defect]')].map(x => x.dataset.defect)") or []) + badges31 += ev(pg, "document.querySelectorAll('[data-defect]').length") or 0 + pg.evaluate("() => dlgCreate()"); pg.wait_for_timeout(600) + kinds31 |= set(ev(pg, "[...document.querySelectorAll('[data-defect]')].map(x => x.dataset.defect)") or []) + badges31 += ev(pg, "document.querySelectorAll('[data-defect]').length") or 0 + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(300) + pg.evaluate("() => { switchWs('mine'); switchTab('detail'); openDetail('%s'); }" % cid_a); pg.wait_for_timeout(1600) + for sub in ["info", "follow", "opps", "members", "contacts"]: + pg.evaluate("() => switchSub('%s')" % sub); pg.wait_for_timeout(900) + kinds31 |= set(ev(pg, "[...document.querySelectorAll('[data-defect]')].map(x => x.dataset.defect)") or []) + badges31 += ev(pg, "document.querySelectorAll('[data-defect]').length") or 0 + step("31 data-defect角标≥12且关键类目齐全(多页签累计)", + badges31 >= 12 and all(x in kinds31 for x in ["G1", "G5", "P3-3", "D-G1", "I-06", "POOL-CFG", "STUB-LOOKUP"]), + "累计=%s;类目=%s" % (badges31, sorted(kinds31))) + + pg.evaluate("() => { switchTab('list'); switchWs('pool'); }"); pg.wait_for_timeout(1500) + fopts32 = ev(pg, "[...document.getElementById('fForm').options].map(o => o.value)") or [] + i06v = ev(pg, "document.getElementById('i06Note').textContent") or "" + step("32 I-06双现象(pool无board选项+注记含67001/记忆成功)", + "board" not in fopts32 and "67001" in i06v and "记忆成功" in i06v, "fForm选项=%s" % fopts32) + pg.evaluate("() => switchWs('mine')"); pg.wait_for_timeout(1200) + + exempt_hit = ev(pg, "{ const bad = ['换负责人', '日志导出']; let n = 0; " + "document.querySelectorAll('button').forEach(b => { if (bad.some(x => b.textContent.indexOf(x) >= 0)) n++; }); " + "document.querySelectorAll('input[type=checkbox], input[type=radio]').forEach(c => { " + "const t = (c.previousElementSibling ? c.previousElementSibling.textContent : '') + (c.parentElement ? c.parentElement.textContent : ''); " + "if (t.indexOf('完整金额') >= 0 || t.indexOf('触发校验规则') >= 0) n++; }); return n; }") + step("33 豁免入口不出现(换负责人/日志导出/完整金额开关/导入校验复选框)", exempt_hit == 0, "命中=%s" % exempt_hit) + + pg.evaluate("() => openDetail('%s')" % SEEDS["full"]); pg.wait_for_timeout(1600) + pg.evaluate("() => switchSub('follow')"); pg.wait_for_timeout(1100) + g1_ok = ev(pg, "document.querySelectorAll('#subBox [data-defect=\"G1\"]').length") >= 1 and ev(pg, "document.querySelectorAll('#subBox select').length") == 1 + pg.evaluate("() => switchSub('opps')"); pg.wait_for_timeout(1100) + g2_ok = ev(pg, "document.querySelectorAll('#subBox thead th').length") == 7 + pg.evaluate("() => switchSub('members')"); pg.wait_for_timeout(1100) + g3_ok = ev(pg, "document.querySelectorAll('#subBox thead th').length") == 3 and ev(pg, "document.querySelectorAll('#subBox [data-defect=\"G3\"]').length") >= 1 + pg.evaluate("() => switchSub('info')"); pg.wait_for_timeout(1100) + kv34 = ev(pg, "{ const m = {}; document.querySelectorAll('#subBox .kv').forEach(k => { m[k.querySelector('b').textContent] = k.querySelector('span').textContent; }); return m; }") or {} + g4_ok = kv34.get("创建人") == "--" and kv34.get("更新人") == "--" + pg.evaluate("() => switchSub('contacts')"); pg.wait_for_timeout(1500) + g5_ok = (not ev(pg, "[...document.querySelectorAll('#contactsShell thead th')].some(t => t.textContent === '负责人')") + and ev(pg, "document.querySelectorAll('#contactsShell [data-defect=\"G5\"]').length") >= 1) + zid2 = ev(pg, "(window._contacts[0] || {}).id") + g6_ok = False + if zid2: + pg.evaluate("() => dlgContactDetail('%s')" % zid2); pg.wait_for_timeout(1000) + pg.evaluate("() => ctSubTab(1)"); pg.wait_for_timeout(400) + g6_ok = ev(pg, "document.getElementById('ctPaneLog').style.display !== 'none' && document.getElementById('ctPaneLog').textContent.indexOf('无数据源') >= 0") + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(300) + step("34 G系列合并复核(G1无操作人筛选/G2七列/G3两列缺/G4--[D]/G5无负责人列/G6空态)", + g1_ok and g2_ok and g3_ok and g4_ok and g5_ok and g6_ok, + "G1=%s G2=%s G3=%s G4=%s G5=%s G6=%s" % (g1_ok, g2_ok, g3_ok, g4_ok, g5_ok, g6_ok)) + + cards35 = ev(pg, "[...document.querySelectorAll('#headBox .sumcards .card b')].map(b => b.textContent)") or [] + pg.evaluate("() => switchSub('projects')"); pg.wait_for_timeout(1100) + pr35 = "Noop" in (ev(pg, "document.getElementById('subBox').textContent") or "") + step("35 金额卡P3-6四卡--口径+关联项目Noop空态", + len(cards35) == 4 and all(c in ("--", "-- / --") for c in cards35) and pr35, "cards=%s" % cards35) + + f6_ok = ev(pg, "[...document.querySelectorAll('#tab-list button')].some(b => b.textContent.indexOf('F6 stub') >= 0)") + pg.evaluate("() => dlgCreate()"); pg.wait_for_timeout(500) + pg.evaluate("() => { document.getElementById('cLk').value = '测试联想词'; doLookup(); }") + wait_api(pg, "company-lookup"); pg.wait_for_timeout(900) + nohit36 = "未查询到匹配企业" in (ev(pg, "document.getElementById('cOut').textContent") or "") + pg.evaluate("() => dlgClose()"); pg.wait_for_timeout(300) + step("36 company-lookup NO_HIT+F6 stub文案", nohit36 and f6_ok, "NO_HIT=%s;F6stub=%s" % (nohit36, f6_ok)) + + # ================= E · 网络层全局 + 清理(步 37-40) ================= + step("37 console/pageerror=0", len(console_errors) == 0, + ("; ".join(console_errors[:2]) + " | HTTP4xx: " + "; ".join(http_fails[:3])) if (console_errors or http_fails) else "无错误") + bad_m = [u for u in api_urls if u.startswith("PUT ") or u.startswith("DELETE ")] + step("38 零PUT/DELETE(ADR-0017)", len(bad_m) == 0, "违例=%s" % bad_m[:3]) + + REQUIRED = ["workspace/page", "preference/view/list", "preference/view/save", "preference/view/delete", + "view-form/get", "view-form/save", "board/summary", "board/cards", + "company-lookup", "customer/create", "customer/edit?id=", "customer/detail-head", "customer/detail?id=", + "customer/opportunity/page", "customer/project/page", "contact/page", "contact/detail?id=", "contact/search", + "contact/quickAdd", "contact/reveal", "contact/batchEdit", "contact/check-phone", "contact/delete", + "member/add", "member/remove", "follow/add", "oplog/page", + "import/upload", "import/confirm", "import/page", "contact/import/upload", "contact/import/confirm", + "POST /api/opportunity", "opportunity/assign", "opportunity/close", "release-pool-batch", + "claim-batch", "assign-batch", "archive-batch", "customer/restore?id=", + "transfer/preview", "transfer/initiate", "transfer/page", "transfer/detail", "transfer/assignable", "transfer/assign", + "rule/customer/dedup", "rule/customer/reminder", "check-name", "check-credit-code"] + uniq = len({u.split(" ", 1)[1].split("?")[0] for u in api_urls if " " in u}) + missing = [e for e in REQUIRED if not any(e in u for u in api_urls)] + step("39 端点覆盖广度(唯一路径≥50+矩阵清单%d条)" % len(REQUIRED), uniq >= 50 and not missing, + "唯一路径=%s;缺失=%s" % (uniq, missing)) + + swept = sweep() + left = dbq("SELECT COUNT(*) AS n FROM customer WHERE customer_name LIKE %s AND deleted=0", (PFX + "%",))[0]["n"] + d_end = get_json(f"{BASE}/api/rule/customer/dedup", tok).get("data") or {} + r_end = get_json(f"{BASE}/api/rule/customer/reminder", tok).get("data") or {} + form_end = (get_json(f"{BASE}/api/preference/view-form/get?scopeKey=customer.overview", tok) or {}).get("data") + step("40 夹具正门清扫+规则/形态偏好还原核对", + left == 0 and d_end.get("similarityThreshold") == thr0 and r_end.get("firstTriggerDays") == f0 and form_end in ("list", None, ""), + "清扫=%s行;残留=%s;dedup=%s(原%s);reminder=%s(原%s);overview形态=%s" % + (swept, left, d_end.get("similarityThreshold"), thr0, r_end.get("firstTriggerDays"), f0, form_end)) + shot(pg, "s40-final.png") + + browser.close() + + # ================= 报告落盘 ================= + passed = sum(1 for s in steps if s["ok"]) + failed = len(steps) - passed + dur = round(time.time() - t0, 1) + report = { + "summary": {"total": len(steps), "passed": passed, "failed": failed, + "passRate": ("%d%%" % round(passed * 100 / len(steps))) if steps else "0%", + "startedAt": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t0)), + "durationS": dur, "verdict": "PASS" if failed == 0 else "FAIL", + "verdictRule": "全部步骤 ok 即 PASS,任一 FAIL 即 FAIL"}, + "steps": steps, "errors": console_errors, "http_fails": http_fails, "api_urls": api_urls} + rp = os.path.join(DEMO, "smoke-report.json") + with open(rp, "w", encoding="utf-8") as f: + json.dump(report, f, ensure_ascii=False, indent=1) + print("\n==== summary ==== %d steps, %d failed (%.1fs) → %s" % (len(steps), failed, dur, rp)) + for s in steps: + if not s["ok"]: + print(" FAIL %s | %s" % (s["step"], s["note"][:200])) + print("ALL_PASS: %s" % (failed == 0)) + + +if __name__ == "__main__": + main() + diff --git a/.scratch/customer-demo-ref/demo/tmp_xlsx/cont.xlsx b/.scratch/customer-demo-ref/demo/tmp_xlsx/cont.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..58c4ed48dbaad6b08ac6b3f8e5ac17c962b3d859 GIT binary patch literal 5161 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 Ph&iP&rRl@ZF&f}MsL17F literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/tmp_xlsx/cust.xlsx b/.scratch/customer-demo-ref/demo/tmp_xlsx/cust.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ec30d3d7e0b3e40bfb971d970cf1979f05a61876 GIT binary patch literal 5807 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 CEEdB6 literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/demo/tmp_xlsx/tpl_cust.xlsx b/.scratch/customer-demo-ref/demo/tmp_xlsx/tpl_cust.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..54a17fd54cb0eaa301979af570e3ef8d54fe2002 GIT binary patch literal 4300 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 PAH&WSx#KCz0{r_QOBjn1 literal 0 HcmV?d00001 diff --git a/.scratch/customer-demo-ref/issues/07-field-alignment-checklist.md b/.scratch/customer-demo-ref/issues/07-field-alignment-checklist.md index 902394b..af43c00 100644 --- a/.scratch/customer-demo-ref/issues/07-field-alignment-checklist.md +++ b/.scratch/customer-demo-ref/issues/07-field-alignment-checklist.md @@ -1,7 +1,7 @@ # 07 逐入口字段对齐验收清单 Type: research -Status: open +Status: resolved Blocked by: 01 ## Question @@ -20,3 +20,31 @@ Blocked by: 01 - Bruno 文档仓 `D:\code\crm-api-docs`(按菜单分组的 .bru);`.scratch/customer-module/API-SUMMARY.md`。 - DTO 源码:`crm-customer/src/main/java/com/crm/customer/` 下 dto/vo 包。 - 现有 demo 的渲染口径("--"、脱敏 reveal 按钮)可直接对照。 + +## Answer + +(2026-09-11,AFK 决断。产出:`assets/field-alignment.md`(1091 行)+ 中间分片 `_fa-core.md`/`_fa-flow.md`(已并入正文,收口时删除)。两个抽取代理分工:核心域(矩阵 #1-#49)/ 联系人族+重流程+规则族(#31-#69),逐入口产出请求参数表、出参字段表(路径/类型/文案口径/脱敏)、空值"--"与枚举字典口径,每表附权威出处(.bru 相对路径 + DTO/Param 源码缩写,缩写表见文件头)。) + +### 结构 + +- **头部「跨票校准注记 K1-K11」**:两代理交叉发现统一收敛,**实施/冒烟必须遵守、覆盖矩阵与 AS 旧口径**。 +- **第一部分 · 核心域**(#1-#49):通用口径(BaseParam 分页/Long→str 序列化/时间格式/"--"口径/脱敏总述/seed id)+ 逐入口表 + 字典与枚举专节 + 来源清单。 +- **第二部分 · 联系人族+重流程+规则族**(#31-#69):12 节(联系人菜单/列表/图谱/增强/导入六端点/CRUD/交割五端点/客户导入/规则族/字典/脱敏专节/来源清单)。 + +### K1-K11 校准要点(已回写落地) + +- **K1** G4 收窄为「两件」:detail 实测 `createTime/updateTime` 经 BaseDTO 有值,仅 `creatorId/updaterId` 不暴露 → demo DEFECT_LEDGER G4 条目 + 冒烟步 13/34 已同步改(本票收口动作)。 +- **K2** 关联项目页签有真端点(`CustomerProjectQueryPort`,当前 Noop → 数据空态显"--")→ 票 11 scope 已修(矩阵 #42「无端点」过时),冒烟步 14 同步。 +- **K3** 看板 summary 字段 = `cnt`/`groupValue`(demo 旧读 count/name/key 必显"--");cards 必传 groupValue → 票 10。 +- **K4** oplog action 权威值域 **18 种**(含 GRAPH_EDIT;AS §3「17 种」未同步)→ 票 11 筛选下拉。 +- **K5** projectCount 三方漂移(AS 恒 null / SQL 恒 0 / E2E 序列化 "0"):渲染按实返回,"--"兜底。 +- **K6** contact_source 真值 = group_meeting/group_activity/referral/other(crm-dict DictDataInitializer);demo 硬编码 contact_source_01..04 系字典改版前遗留 → 票 12/13 改字典驱动。 +- **K7** reminder save 控制器实为**表单绑定**(.bru 自称 JSON 例外不实)→ demo form 提交正确,不改。 +- **K8** focus-batch 返回 **Void**(其余批量端点 BatchResult)→ 票 10 toast 自算条数。 +- **K9** quick-create `.bru` 漏 `confirmSimilar`、误标星级选填(DTO 全 7 必填)→ 票 12 以 DTO 为准。 +- **K10** 联系人电话全读路径脱敏 `138****1234`(短号全遮、导出同口径、明文唯一通道 reveal);similarHits/check-phone 行级 masked;核心域 V1 明文(creditCode 明文回显)→ 冒烟脱敏断言。 +- **K11** transfer status 权威 0/1(.bru 示例 2 超值域);reminder 64023 精确条件 = 两天数均非空且 >0 → 冒烟断言。 + +### 验收用法 + +- 冒烟断言与人工验收双用;实施票 10-13 的字段名/枚举/端点路径一律以本清单为准,与矩阵/AS 旧口径冲突时**以 K 注记与本清单覆盖**。 diff --git a/.scratch/customer-demo-ref/issues/10-core-list.md b/.scratch/customer-demo-ref/issues/10-core-list.md index 7ca46ed..4a54d90 100644 --- a/.scratch/customer-demo-ref/issues/10-core-list.md +++ b/.scratch/customer-demo-ref/issues/10-core-list.md @@ -1,7 +1,7 @@ # 10 核心域·列表层改造 Type: task -Status: open +Status: resolved Blocked by: 07, 09 ## Scope @@ -20,3 +20,21 @@ Blocked by: 07, 09 smoke-plan A 段步 2-7/归属动作可过;新增/改造 UI 不引入 console error。 +## Answer + +(2026-09-11,AFK 实施。demo/index.html fork 基线 2350 行 → 2492 行(+142)。字段口径全部按 field-alignment.md K 注记与 #1/#7/#8/#9/#13-19 表。) + +1. **视图下拉五值齐全**(矩阵 #2):补 FOLLOW_UP_DUE/RECENT;pool 越界视图不做禁用特判(SQL 自然空集);RECENT 选中时 svSel 禁用(saved-view 不接 RECENT)。 +2. **列筛选器六参数 + 归档态开关**(#5/#6):第二行 viewbar 增加 archiveStatus(有效/已归档)+ customerStage/customerType(六种字典静态值)/customerStarLevel/relationStarLevel(1-5)/industryCode/provinceCode(code 输入框),loadList 全量携带 + 重置筛选按钮。 +3. **saved-view 四端点接线**(#7,P3-2 翻正):list 载入下拉、存为视图(**save 发 @RequestBody JSON**——唯一例外端点,conditions 本期只提交 1 组 keyword like)、选中→page 带 `savedViewId`、设默认、删除;scopeKey=`customer.mine/overview/pool`。 +4. **形态偏好 + 看板视图**(#8/#9,P3-1 翻正 + K3 落地):view-form/get 载入持久形态、save 发出;list/split/board 三态;**看板=board/summary(显式 groupColumn,字段 `cnt`/`groupValue` 渲染,空列骨架前端补全)+ board/cards(groupValue 必传,卡片=列表行子集,不接 saved-view)**,分组列 stage/star/relation 可切;**汇总卡面板整体移除**(矩阵 #12 二选一取移除:A4 原型列表页无独立统计卡,board/summary 不再被挪用)。 +5. **pool 边界**:形态下拉不给 board 选项;pool workspace 显示 I-06 静态注记(`data-defect="I-06"`,文本含「67001」+「记忆成功」双现象,不实调保 console 干净)。 +6. **分屏占位**(#10):split=列表保留 + 行卡片预览面板(点击客户名称出该行子集卡片,不跳详情页)。 +7. **列表补列**(#11):类型(字典文案)/行业(industry 树字典翻译,ensureDicts 增拉 `tree?groupCode=industry`)/协议等级/VIP 等级(null 显 "--");**pool 列组切换**:无负责人/部门列、加进入公海时间(原型差异口径);表头改 JS 动态渲染(listCols/paintHead)并补勾选列空表头(修复基线 11 th vs 12 td 错位);项目数按 K5 口径改按实返回 "--" 兜底(原硬编码 "--")。 +8. **分配整批化**(#15/#16):dlgAssign 改取全部勾选 ids 走 `assign-batch`,BatchResult 三计数+失败明细表呈现;目标人员校验失败=整批拒绝(顶层非 0 落 errbox+提示预检语义)。 + +### 证据 + +- Playwright 快验(`_quickcheck.py`,无 token 冷载):**pageerror=0**;新表头 15 列渲染;mine 形态下拉 3 选项;切 pool 后 I-06 注记可见、形态下拉仅 list/split。截图 `demo/shots/t10-quick-pool.png`。console 2 条=file:// 直连默认 API 的网络失败(冒烟经 route 反代后为 0,非本次 UI 缺陷)。 +- 完整 40 步冒烟归票 14(A 段步 2-7 断言本票行为)。 + diff --git a/.scratch/customer-demo-ref/issues/11-core-detail.md b/.scratch/customer-demo-ref/issues/11-core-detail.md index d899e25..8d0e044 100644 --- a/.scratch/customer-demo-ref/issues/11-core-detail.md +++ b/.scratch/customer-demo-ref/issues/11-core-detail.md @@ -1,7 +1,7 @@ # 11 核心域·详情层改造 Type: task -Status: open +Status: resolved Blocked by: 07, 09 ## Scope @@ -9,7 +9,7 @@ Blocked by: 07, 09 矩阵 #29/30/40/41/42/44/45: - 详情头部 4 张金额卡(恒"--"+P3-6 角标)。 -- 页签补齐 8 个:页签5 关联项目占位(恒"--")。 +- 页签补齐 8 个:页签5 关联项目接线真端点(`CustomerProjectQueryPort`,当前 Noop 实现 → 数据空态显"--",不做硬占位);端点路径查 `assets/field-alignment.md` 第二部分。 - 关联商机 7 列真名(G2 角标;列名以 field-alignment/opp-deps 为准)。 - 信息页签系统信息区(G4 角标);成员列表(G3 角标)。 - 跟进筛选器(followWay/时间范围);oplog 筛选器(action 17 值/keyword/时间)。 @@ -19,3 +19,22 @@ Blocked by: 07, 09 smoke-plan 步 11-19 可过;8 页签全遍历。 +## Answer + +(2026-09-11,AFK 实施。demo/index.html → 2597 行(票 11 净增约 +105)。契约全部按 field-alignment #29/#30/#40/#41/#42/#44/#45 + K1/K2/K4/K5/K10。) + +1. **详情头部 4 张金额卡**(#29/P3-6):金额汇总区 4 卡(已中标项目总额/跟进中方案预估/进行中商机总额/合同·回款)按契约恒 null 显 "--" 不显 0,挂 P3-6 dbadge;头部「项目计数」去掉旧「(契约恒 null 显 --)」文案改按实返回。 +2. **页签补齐 8 个**:subtabs = 信息/联系人/跟进/关联商机/**关联项目(新)**/战略协议/团队成员/操作日志。 +3. **页签5 关联项目接真端点**(K2):`GET /api/customer/project/page?id=`(CustomerProjectQueryPort 反查,当前 Noop 实现 → 数据空态显 "--",非硬占位);列=ProjectItem 真名 9 字段子集(项目名称/阶段/状态/报备状态/项目金额/负责人/最近更新)。 +4. **关联商机 7 列真名**(#41/G2):修复旧 5 列三处字段名漂移(opportunityName/statusName/ownerUserName 系幻影字段)→ 契约 7 字段列头(商机ID/商机名称/阶段/预计金额/负责人ID/负责人/最近更新),G2 dbadge+缺列说明。 +5. **信息页签**(#30/G4/K1/K10):grid 补「创建人/更新人」两行(creatorId/updaterId 不在 DTO → 恒 "--")+ G4 dbadge 与口径提示(创建/更新时间经 BaseDTO 有值,如实渲染);**修复信用代码字段名漂移 creditCode→unifiedCreditCode**(K10 明文回显,否则冒烟步 13 明文断言必 FAIL)。 +6. **跟进筛选器**(#40/G1):followWay 五值下拉 + 起止日期(补 00:00:00/23:59:59 含端)+ 查询;G1 dbadge 明示操作人筛选豁免(FollowPageParam 无参数);写跟进按钮挪入筛选条;行渲染修正 followWay 字典名(后端不回名→前端 FOLLOW_WAYS 翻译)与 followByName 快照(旧读 createByName 系幻影字段)。 +7. **oplog 筛选器**(#45/K4):action 下拉按**权威 18 种**渲染(含 GRAPH_EDIT,映射中文文案)+ 叙事 keyword + 起止日期;日志行 action 翻译文案。 +8. **成员列表 G3**(#44):添加协同人旁挂 G3 dbadge + 「职务/加入时间两列 DTO 未暴露,缺列不补」提示。 +9. **G5 角标**:联系人页签列表视图条挂静态 `data-defect="G5"`(ContactDTO 未暴露负责人快照)。G6 归票 12 联系人独立菜单。 + +### 证据 + +- Playwright 快验(`_quickcheck.py`):**pageerror=0**;subtabs=8(projects 就位);G5 静态角标存在;缺陷面板 33 行不受影响。截图 `demo/shots/t11-quick-detail.png`。 +- 金额卡/7 列/筛选器/项目页签的**带数据断言**归票 14 冒烟步 11-19(需起服)。 + diff --git a/.scratch/customer-demo-ref/issues/12-contacts-opp-entry.md b/.scratch/customer-demo-ref/issues/12-contacts-opp-entry.md index a8c244e..4917951 100644 --- a/.scratch/customer-demo-ref/issues/12-contacts-opp-entry.md +++ b/.scratch/customer-demo-ref/issues/12-contacts-opp-entry.md @@ -1,7 +1,7 @@ # 12 联系人独立菜单 + 商机侧演示入口 Type: task -Status: open +Status: resolved Blocked by: 07, 09 ## Scope @@ -15,3 +15,18 @@ Blocked by: 07, 09 smoke-plan 步 23(商机联动链)与联系人菜单相关步可过。 +## Answer + +**全部落地,Playwright 快验 pageerror=0(登录态走远程 debug token,真数据)。demo/index.html 2620→2852 行。** + +1. **新页签「联系人」**(nav 第 3 位,`tab-contacts`):contact/page 真端点列表(GET,BaseParam+keyword 匹配姓名/电话/所属客户名)——真数据 10 行/共 22 条;表头=姓名(固定列)+7 可隐藏列(职务/电话/关键联系人/内线/来源/礼品备注/所属客户)+操作;分页。工具栏摆 **G5 dbadge**(ContactDTO 无 owner 字段,07 票定稿口径)。 +2. **K10 脱敏直显**:列表/详情电话列服务端已脱敏(真值实测 `138****0001`),前端直显不做二次加工。 +3. **K6 字典驱动**:来源列经 `sourceName()`(SOURCE_DICT=enabled-list contact_source)翻译;新数据正常翻名。 +4. **contact.list 偏好接线**:形态偏好 view-form/get|save(联系人菜单仅 list 单项,读写闭环);列偏好 preference/get|save(visibleKeys 重复键,`dlgCpEdit()` 勾选保存后 ctVisibleKeys 即时生效,姓名列固定不参与隐显)。 +5. **行点开 contact/detail 弹窗回显**(#51:明细行级最新值;phone 脱敏形态提交=不改号提示):12 个 kv(姓名/职务三件/电话/关键/内线/来源/礼品/所属客户三件)+ 子页签「操作日志」**空态+G6 dbadge**(#53:后端无联系人级 oplog 端点,07 票豁免记档)。 +6. **全局搜索演示入口**(#52):`dlgContactSearch()` GET keyword=&limit=(默认 20),场景文案=商机表单「关键联系人」数据源;真名回查 n=1 ✅。 +7. **商机侧三入口**(按 opp-deps §4):客户列表新增「商机侧演示入口」panel——①快建客户 `dlgQuickCreate()`(POST /api/customer/quick-create,**K9:DTO 全 7 必填**+confirmSimilar 默认 false、needConfirm→similarHits 列表→确认后 true 重发链);②候选客户三维搜索 `dlgCustSearch()`(POST /api/customer/search:keyword 三维模糊+customerType+archiveStatus+excludeCustomerIds 重复键,9 字段出参);③「从客户发起建商机」行操作 `dlgOppCreate(id)`(POST /api/opportunity 预填 customerId/customerName+isPrimaryIntended+customerRole;核心 6 必填 D-14、66001 提示;**写操作留冒烟步 23 真跑**)。 +8. **K6 顺手修正**:详情页签 dlgContact 的 source 下拉由硬编码 contact_source_01..04(字典改版前遗留)改为 SOURCE_DICT 动态渲染(dlgContact 改 async+幂等 ensureDicts)。 +9. **快验结果**(_quickcheck12*.py):tabs=6、section 切换可见、G5=1、cform 渲染、未登录 hint「请先登录」→登录后真数据;详情弹窗 12kv+G6 空态;quick-create 7 控件齐;三搜索弹窗开合正常。**customer/search 三维真验证**:客户名「佛山季华铝业」total=1、联系人名「梁诗敏」命中其所属客户(三维模糊实证)、excludeCustomerIds 重复键 before "1"→after "0" ✅。 +10. **环境观察(票 14 冒烟注意)**:①共享库存量数据 source 仍是旧 code(contact_source_02/03)——字典改版后存量未迁移,demo sourceName() 回退显原 code(按实返回口径,非 demo 缺陷);②seed 张关键/e2c-* 不在远程共享库(现为佛山季华铝业等另一批 demo 数据),冒烟步 13/23 的 seed 断言须先重建 seed 夹具或改用库内真值。 + diff --git a/.scratch/customer-demo-ref/issues/13-flow-rules-tail.md b/.scratch/customer-demo-ref/issues/13-flow-rules-tail.md index 70d6628..a3032ed 100644 --- a/.scratch/customer-demo-ref/issues/13-flow-rules-tail.md +++ b/.scratch/customer-demo-ref/issues/13-flow-rules-tail.md @@ -1,7 +1,7 @@ # 13 重流程 + 规则族收尾 Type: task -Status: open +Status: resolved Blocked by: 07, 09 ## Scope @@ -17,3 +17,15 @@ Blocked by: 07, 09 smoke-plan B/C/D 段相应步可过。 +## Answer + +**五项全部落地(I-06 票 10 已覆盖跳过),Playwright 快验 pageerror=0(登录态真请求)。demo/index.html 2852→2925 行。** + +1. **工商联想接线(#24)**:dlgCreate 客户名称行下加「工商联想」控件(input cLk+联想按钮+`data-defect="STUB-LOOKUP"` 注记)——`doLookup()` GET `/api/customer/company-lookup?companyName=`(参数名 companyName 非 name);真请求实证**stub 恒空数组 `[]`** → UI 显「未查询到匹配企业(一期 stub 恒 NO_HIT,可手工录入)」+ 注记(①+②双呈现)。有结果时(真实源接入后自动激活)候选 9 字段渲染、`applyLookup(i)` **只回填当前为空的字段**(bizName→cName、unifiedCreditCode→cCredit,已填不覆盖)且回填后立即调 check-credit-code(#24 前端职责三项)。无结果/失败均不阻断手工提交。 +2. **F6 按钮明示文案**:`批量工商更新` 按钮文字改「F6 stub」+ 按钮挂 `data-defect="STUB-LOOKUP"` 冒烟钩子 + title 补豁免口径;结果弹窗尾部 stub hint 原已有(票 05 遗产)。 +3. **导入任务列表过滤(#63)**:任务 panel 加 status(0 待确认/1 处理中/2 已完成/3 已失败)与 importMode(APPEND_ONLY/UPDATE_ONLY/UPSERT)两下拉(id=impFStatus/impFMode,避开上传工具栏已有 impMode),`loadImportPage()` 拼接查询参数(空值不传)。真请求验证:全量 1 条 → status=2 过滤 allDone ✅、importMode=UPSERT 过滤 allUpsert ✅。 +4. **POOL-CFG 只读禁用占位卡(#69)**:tab-settings 查重设置 panel 后新增 panel——准入/回收两 input 均 `readonly disabled`(灰底),dbadge 文案引决策票 02 结论(后端无端点、v29 原型无此页、客户公海=固定准入规则虚拟池、线索域 /api/rule/pool 不得混入)。快验 panel inputs 全部 disabled+readOnly ✅。 +5. **注记类**:导入 panel 尾部 **P3-3** dbadge(「触发校验规则后确认执行」=原型幻影控件,实现语义=确认即执行,矩阵 #64 豁免);详情页签联系人工具栏 **D-G1** dbadge(batchEdit 空串绑定 null=不修改,清空语义豁免)。 +6. **快验汇总**(_quickcheck13.py):lookup_raw=[]、lookup_no_hit=true、stub_note=1、P3-3=1、POOL-CFG=1+disabled、D-G1=1、F6 钩子≥1、pageerror=[]。 + + diff --git a/.scratch/customer-demo-ref/issues/14-smoke-script.md b/.scratch/customer-demo-ref/issues/14-smoke-script.md index fe0ffc5..0ec1f63 100644 --- a/.scratch/customer-demo-ref/issues/14-smoke-script.md +++ b/.scratch/customer-demo-ref/issues/14-smoke-script.md @@ -1,7 +1,7 @@ # 14 Playwright 冒烟脚本 Type: task -Status: open +Status: resolved Blocked by: 10, 11, 12, 13 ## Scope @@ -16,3 +16,23 @@ Blocked by: 10, 11, 12, 13 40 步 ALL_PASS=true,console error=0,零 PUT/DELETE。 +## Answer + +**达成**:第八跑 `40 steps, 0 failed (176.4s)`,ALL_PASS=true;GET 147 + POST 79(零 PUT/DELETE);console_errors=0、http_fails=0;唯一路径 91≥50。报告 `demo/smoke-report.json`,截图 `demo/shots/`。 + +**八轮迭代轨迹**(崩溃轮 1-4 → 全量轮 5-8): + +- 第 1-4 轮:delete_key 崩溃 / 输出缓冲卡死 / 步 23 中文 URL 未 quote 崩(两次同因)/ 步 30 对象字面量缺括号崩。 +- 第 5 轮(首次全量 29/11):定位出李普通撞号(seed 预置联系人 13812340002 与步 16 夹具撞号→failedRows 未落库连锁)、`ensure_seeds 在 sweep 之前`(上轮 seed 被 find 命中不重建→随即被 sweep 清掉→整轮查重基线缺失)、transfer 明细列=assign_status 非 status、assignableUsers 排除发起人与总监本人(assign 目标改动态取 assignable[0])。 +- 第 6 轮(31/9):新增 http_fails 捕获(page.on response status≥400)→ 定位 404 project/page = 运行 jar 旧于源码(票 07 后源码加了端点);步 26 save 从 dpMode 收集把共享库 nameMatchMode 写成 1(EXACT 污染,出厂 FUZZY=2)。 +- 第 7 轮(39/1):jar 重建重启(project/page 200);seed 2f 修旧联系人职务(张关键 job_title_id=NULL+名字不在字典→loadContacts 的 _jobCode 反查空→saveListAll「职务必填」拦截 batchEdit,六跑步 17/39 缺失实锤);quickAdd 后显式 loadContacts() 重拉(fetch 直调不刷新 _contacts→lid=None 连锁);步 26 save 前显式 loadDedup() 填充;pool+ASSIGNED 组合互斥呈现(Mapper L83 owner=me 与公海 owner IS NULL 恒冲突→先呈现默认视图空现象再清 fViewType 走基础集)。 +- 第 8 轮(40/0 全绿):最后一项步 10 实锤 **demo onclick 陷阱**——`dlgOpen` 把 fn 直接挂 `btn.onclick`(浏览器传 PointerEvent 作首参),doEdit 首次带 confirmSimilar 形参后序列化出 `confirmSimilar=[object PointerEvent]`→后端 400;且 doEdit 原不处理 edit 的 L2 needConfirm 响应(六跑「toast 保存成功但 DB 没变」假成功实锤)。修复:doEdit/doCreate 首参防御(非显式 'true' 一律 undefined,qs 跳过)+ doEdit 增加 needConfirm simbox 分支(同 doCreate 契约)。第八跑步 10 全链 PASS:simbox=命中→确认保存→db v0→v1 名字-改。 + +**demo 侧修复**(demo 为本 effort fork,属票 11 详情层范畴的缺陷修复):doEdit needConfirm 分支+confirmSimilar 参数防御、doCreate 同防御(onclick 陷阱消除)、loadContacts 由 quickAdd 冒烟后显式重拉(demo 本身行为未改)。 + +**seed/环境修复**(纪律允许范围):main 调序 sweep 先于 ensure_seeds+查重基线自检行;ensure_seeds 2d 查重模式幂等归位 FUZZY(2)/2e 冒烟联系人清扫/2f 旧 seed 联系人职务按 dict_item 归位;sweep 覆盖 e2c-dr 客户+联系人+导入任务+交割单(2 小时窗);重建 fat jar(corretto-17+IDEA bundled mvn,先杀 8080 旧进程解文件锁)并重启 verify+MinIO。 + +**后端行为甄别(只测不修,均如实呈现)**:edit L2 相似命中返回 needConfirm 不落库(demo 已补确认分支后通过);pool 工作台带 ASSIGNED 视图恒空(视图条件与公海口径互斥,冒烟 note 记录默认视图行=0 现象);步 26 断言「匹配方式不被污染」作共享库保护。 + +取证:`demo/_t14d7.py`(DB 联系人职务+pool 复现+edit CAS 复现)、`demo/_run7.log`/`_run8.log`、`demo/_jarbuild.log`。 + diff --git a/.scratch/customer-demo-ref/issues/15-report-handover.md b/.scratch/customer-demo-ref/issues/15-report-handover.md index ecc7bd3..5e11d95 100644 --- a/.scratch/customer-demo-ref/issues/15-report-handover.md +++ b/.scratch/customer-demo-ref/issues/15-report-handover.md @@ -1,7 +1,7 @@ # 15 报告 + 双仓未提交变更清单 + 交付收尾 Type: task -Status: open +Status: resolved Blocked by: 14 ## Scope @@ -14,3 +14,11 @@ Blocked by: 14 四标准自检表 + 双仓清单落盘,map 可关。 +## Answer + +**全部达成,map 已关(Status: done)**。 + +1. **四标准自检表**:`assets/acceptance-selfcheck.md`——功能覆盖(69 入口对账零缺口+冒烟唯一路径 91)/ 字段对齐(field-alignment #1-#69+K1-K11 全落)/ 流程闭环(冒烟步 9-25 全链+商机联动 67007 阻断链+oplog 留痕+规则族还原)/ 齐备(demo+smoke.py+report+4 assets+shots 9 张)——四项全达标,证据均落盘。 +2. **双仓清单**:`assets/uncommitted-changes.md`——backend 51 行全部属本 effort(M 10 + ?? 37:交付物/诊断脚本/日志,前序 java 变更已不在工作区=用户已提交);**文档仓实测在 `E:\code\crm-api-docs`(票面 D:\ 为换机前旧路径,清单已勘误)**,仅 2 个 untracked 目录(战略协议/、联系人导入/=前序 frontend-handover 迁移遗留,本 effort 未动文档仓)。agent 未提交 git。 +3. **map 收口**:Status→done;Destination 增验收对照块(四标准 ✓);Not yet specified 三条全部收口划线。 + diff --git a/.scratch/customer-demo-ref/map.md b/.scratch/customer-demo-ref/map.md index 3a609e2..795a33b 100644 --- a/.scratch/customer-demo-ref/map.md +++ b/.scratch/customer-demo-ref/map.md @@ -1,13 +1,22 @@ # 客户模块全功能单文件 Demo「正确传参照」— wayfinder map Labels: wayfinder:map -Status: open +Status: done Created: 2026-09-11 ## Destination 交付一个零构建的单文件静态前端 Demo(HTML+JS,纯 fetch 直连后端),覆盖客户模块全功能(核心域 + 重流程 + 规则族),作为联调与用户验收的「正确传参照」;随附 Playwright UI 冒烟脚本(≥30 步)与 PASS/FAIL 报告。验收四标准:功能覆盖(原型可见入口全部可点且触发对应端点)、字段对齐(与 Bruno 出参一致,含脱敏与 "--" 口径)、流程闭环(新增→归档/抛公海全链路 + 操作日志留痕)、交付物齐备。已知 P1/P2 缺陷只展示现象不修代码;双仓未提交变更清单留待用户审查。 +**验收对照(2026-09-12,票 15;详见 assets/acceptance-selfcheck.md)**: + +- ✅ 功能覆盖:69 入口对账零缺口(33+9 新增+16 改造+14 豁免全落地);冒烟唯一路径 91。 +- ✅ 字段对齐:field-alignment.md #1-#69 + K1-K11 校准全落 demo;40 步 note 字段级实证。 +- ✅ 流程闭环:冒烟步 9-25 全链 PASS(含商机 67007 阻断链、交割 assignStatus、oplog 留痕、规则族还原)。 +- ✅ 齐备:demo/index.html + smoke.py + smoke-report.json(40/0 ALL_PASS,176.4s)+ 5 assets + shots 9 张。 +- 纪律达成:GET 147+POST 79 零 PUT/DELETE;console error=0;http_fails=0;缺陷只呈现不修(14 现象三档呈现+冒烟断言)。 +- 遗留移交:双仓未提交变更清单 assets/uncommitted-changes.md(agent 不提交 git,待用户审查)。 + ## Notes - **第一依据**:蓝湖 v29 原型 A4 页族(`.scratch/api-docs-reorg/lanhu-tree-v29.md`)决定功能逻辑与字段回显;不追求样式高保真。 @@ -36,13 +45,28 @@ Created: 2026-09-11 - [06 缺陷展示设计](issues/06-defect-phenomenon-design.md) — 三档呈现全用:**①渲染即现象**(默认,缺列/恒 null/空态如实渲染)+ **②角标** `data-defect=""` 原生 title 悬浮(只加在易误读处)+ **③顶栏「已知缺陷」面板**(DEFECT_LEDGER 常量纯静态渲染,零网络请求)。面板四分区:A 开放现象 14 条(G1-G6/P3-3/4/5/6/D-G1/I-06 双现象静态注记/公海池只读占位卡 POOL-CFG/工商 stub STUB-LOOKUP)、B 已修复与本次接线 4 条、C 豁免清单 14 项、D 环境观察(F-15)。文案中性纪律(漂移/未实现/环境观察,不写 bug);全部带 data-defect 断言钩子供冒烟。 +- [07 逐入口字段对齐清单](issues/07-field-alignment-checklist.md) — 产出 `assets/field-alignment.md`(1091 行两部分:核心域 #1-#49 / 联系人族+重流程+规则族 #31-#69),逐入口请求参数/出参字段/空值"--"与枚举字典口径三表 + .bru/DTO 权威出处;**头部 K1-K11 校准注记覆盖矩阵与 AS 旧口径**(G4 收窄两件、关联项目真端点 CustomerProjectQueryPort·Noop、看板 summary=cnt/groupValue、oplog action 18 种、contact_source 字典真值、focus-batch Void、quick-create DTO 七必填、联系人电话全读路径脱敏 138****1234、transfer status 0/1 等)。收口回写:demo G4 条目文案、冒烟步 13/14/34、票 11 scope 均已按 K 口径校准。 + - [08 冒烟步骤表](issues/08-smoke-step-plan.md) — **40 步**(assets/smoke-plan.md):A 核心域 19 + B 重流程 6(含商机联动链 67007 阻断→关闭→放行、交割两段式)+ C 规则族 4 + D 缺陷现象 7(data-defect 钩子断言,FAIL=Demo 缺陷非后端缺陷)+ E 全局 4(console=0/零 PUT-DELETE/端点广度≥50/清扫还原)。4xx 弹窗通道用真实业务拒绝三处验证(67007/67003/64023)。seed:写夹具 e2c-dr-* 用后正门硬删、e2c- 只读、偏好/规则写后 API 正门还原、交割只动夹具无 F-13 负担。报告=demo/smoke-report.json(t04 形态+summary.verdict,全 ok 即 PASS)。 +- [12 联系人独立菜单+商机侧入口](issues/12-contacts-opp-entry.md) — nav 第 3 位顶级「联系人」页签:contact/page 真端点(姓名固定+7 可隐藏列,K10 服务端脱敏直显、K6 source 字典驱动)+ contact.list 形态/列偏好双接线(列偏好 preference/get|save visibleKeys 重复键)+ 行点开 contact/detail 弹窗回显(子页签日志空态 G6)+ contact/search 演示入口;商机侧三入口 panel:quick-create(K9 七必填+needConfirm→confirmSimilar=true 重发)、customer/search(三维模糊+excludeCustomerIds 重复键,真请求实证三维度+排除生效)、「从客户发起建商机」dlgOppCreate(POST /api/opportunity 预填 customerId,写操作留冒烟步 23);K6 顺手修正 dlgContact source 硬编码→字典驱动。**环境观察**:共享库存量 source=旧 code 未迁移(sourceName 回退显 code);张关键/e2c seed 不在共享库,冒烟须重建 seed(票 14)。 + +- [13 重流程+规则族收尾](issues/13-flow-rules-tail.md) — #24 工商联想接线(companyName 参数;stub 恒 `[]` 实证→NO_HIT 现象+STUB-LOOKUP 注记;applyLookup 只回填空字段+回填即 check-credit-code);F6 按钮明示「F6 stub」+钩子;#63 导入任务列表 status/importMode 过滤(真请求过滤命中);#69 POOL-CFG 只读禁用占位卡(readonly+disabled,文案引票 02);P3-3 导入注记+D-G1 批量编辑注记落 UI。至此矩阵改造/新增入口全部出票完成,I-06 由票 10 覆盖。 + +- [09 缺陷呈现基建](issues/09-defect-infra.md) — DEFECT_LEDGER 常量 + 顶栏「已知缺陷」面板四分区(A 开放现象/B 已修复/C 豁免/D 环境观察)+ `data-defect` 角标钩子落 demo;面板纯静态渲染零网络请求,文案中性(漂移/未实现/环境观察),全部钩子供冒烟断言(票 14 步 31 采样累计 11 类目 87 角标)。 + +- [10 核心域·列表层](issues/10-core-list.md) — fork 基线 2350→2492 行:workspace/page POST 全参数接线(五视图+savedViewId+pool 无负责人列+进入公海时间列)、列形态/字段口径全按 field-alignment K 注记(星级--口径、枚举字典翻译、脱敏直显)、I-06 双现象静态注记、claim/release/archive/restore/assign 扁平动作接线;快验 pageerror=0。 + +- [11 核心域·详情层](issues/11-core-detail.md) — demo/index.html → 2597 行:详情头部 4 金额卡恒 "--"〔P3-6〕+ 8 页签(补关联项目 project/page 真端点恒空 Noop)、联系人列表/图谱双视图(编辑态 batchEdit 原子批+quickAdd 查重确认)、跟进/商机/项目/协议/成员/oplog 子页签接线;K1/K2/K4/K5/K10 校准全落;快验 pageerror=0。 + +- [14 Playwright 冒烟](issues/14-smoke-script.md) — demo/smoke.py 40 步八轮迭代全绿:**第八跑 40/0(176.4s)ALL_PASS=true,GET 147+POST 79 零 PUT/DELETE,console=0,http_fails=0,唯一路径 91**。关键根因与修法:ensure_seeds 必须先 sweep 后自举(否则查重基线被 sweep 清掉);共享库查重模式被步 26 写成 EXACT→2d 幂等归位 FUZZY(2)+save 前 loadDedup 填充 dpMode;旧 seed 联系人职务不在字典→saveListAll「职务必填」拦截 batchEdit→2f 按 dict_item 归位;quickAdd 后显式 loadContacts 重拉;pool+ASSIGNED 视图与公海口径恒互斥(Mapper L83)→冒烟呈现默认视图空现象后清 fViewType;404 project/page=jar 旧于源码→重建 fat jar 重启;**demo onclick 陷阱**(dlgOpen 把 fn 挂 btn.onclick,事件对象作首参)→doEdit/doCreate 首参防御+doEdit 补 L2 needConfirm simbox 分支(六跑「toast 保存成功 DB 没变」假成功实锤)。后端行为只呈现不修。 + ## Not yet specified -- ~~构建实施拆票~~ **已落票(09-15)**:09 缺陷呈现基建(DEFECT_LEDGER/面板/角标)→ 10 核心域·列表层 → 11 核心域·详情层 → 12 联系人菜单+商机侧入口 → 13 重流程+规则族收尾 → 14 冒烟脚本(40 步)→ 15 报告+双仓清单+收尾。依赖链:10/11/12/13 blocked by 07+09;14 blocked by 10-13;15 blocked by 14。fork 基线已复制(demo/index.html,2268 行含 4 行头注,原行号 +4 平移)。 -- ~~双仓未提交变更清单~~ 随 15 号票(格式已定:assets/uncommitted-changes.md,分「本 effort / 前序遗留」两区;摸底:backend 20 java 改+若干 untracked、api-docs 大量 .bru 改,均前序遗留)。 -- ~~PASS/FAIL 报告~~ 已随 08 定(demo/smoke-report.json,summary.verdict)。 +- ~~构建实施拆票~~ **已落票(09-15)并全部 resolved**:09 缺陷呈现基建 → 10 核心域·列表层 → 11 核心域·详情层 → 12 联系人菜单+商机侧入口 → 13 重流程+规则族收尾 → 14 冒烟脚本(40 步,八轮迭代全绿 40/0)→ 15 报告+双仓清单+收尾。 +- ~~双仓未提交变更清单~~ 已随 15 号票落盘:assets/uncommitted-changes.md(backend 全属本 effort;文档仓 E:\code\crm-api-docs 仅 2 个前序迁移遗留目录)。 +- ~~PASS/FAIL 报告~~ 已交付:demo/smoke-report.json(第八跑 40/0 ALL_PASS=true)。 +- ~~四标准自检~~ 已交付:assets/acceptance-selfcheck.md(四项全达标,map 已关)。 ## Out of scope diff --git a/logs/crm-app.log b/logs/crm-app.log index c8c6342..de1f171 100644 --- a/logs/crm-app.log +++ b/logs/crm-app.log @@ -1,6132 +1,4 @@ -2026-09-11T00:00:06.188+08:00 INFO 32332 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T00:00:06.600+08:00 WARN 32332 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:00:06.600+08:00 WARN 32332 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T00:00:06.601+08:00 WARN 32332 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T00:00:06.601+08:00 WARN 32332 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T00:00:06.601+08:00 WARN 32332 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:00:08.973+08:00 INFO 32332 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T00:00:08.976+08:00 INFO 32332 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T00:00:09.295+08:00 INFO 32332 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T00:00:09.790+08:00 INFO 32332 --- [crm-app] [main] c.c.c.p.i.NoopProjectOwnerSyncPortImpl : ProjectOwnerSyncPort no-op Ĭʵװ䣨A5 Ŀģδowner ͬ -2026-09-11T00:00:09.877+08:00 INFO 32332 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T00:00:09.878+08:00 INFO 32332 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T00:00:10.214+08:00 WARN 32332 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: f095df80-2e23-4a7e-8e7f-f431b542b4ae - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T00:00:10.232+08:00 INFO 32332 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T00:00:11.372+08:00 INFO 32332 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T00:00:11.402+08:00 INFO 32332 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T00:00:11.429+08:00 INFO 32332 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 32.323 seconds (process running for 32.901) -2026-09-11T00:00:11.434+08:00 INFO 32332 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T00:00:11.601+08:00 INFO 32332 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T00:00:11.602+08:00 INFO 32332 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T00:00:11.604+08:00 INFO 32332 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms -2026-09-11T00:00:12.153+08:00 INFO 32332 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T00:00:12.154+08:00 INFO 32332 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T00:00:12.548+08:00 INFO 32332 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T00:00:12.548+08:00 INFO 32332 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:00:12.583+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T00:00:12.653+08:00 INFO 32332 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T00:00:12.653+08:00 INFO 32332 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:00:13.067+08:00 INFO 32332 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T00:00:13.067+08:00 INFO 32332 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T00:00:13.965+08:00 INFO 32332 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T00:00:13.966+08:00 INFO 32332 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T00:00:14.067+08:00 INFO 32332 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T00:00:14.067+08:00 INFO 32332 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T00:00:14.166+08:00 INFO 32332 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T00:00:14.166+08:00 INFO 32332 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T00:00:14.265+08:00 INFO 32332 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T00:00:14.265+08:00 INFO 32332 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T00:00:14.279+08:00 INFO 32332 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T00:00:14.295+08:00 INFO 32332 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T00:00:14.296+08:00 INFO 32332 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T00:00:14.398+08:00 INFO 32332 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T00:00:14.412+08:00 INFO 32332 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T00:00:14.425+08:00 INFO 32332 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T00:00:14.425+08:00 INFO 32332 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T00:00:14.523+08:00 INFO 32332 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T00:00:14.535+08:00 INFO 32332 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T00:00:14.535+08:00 INFO 32332 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T00:00:14.637+08:00 INFO 32332 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T00:00:14.637+08:00 INFO 32332 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T00:00:14.736+08:00 INFO 32332 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T00:00:14.749+08:00 INFO 32332 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T00:00:14.749+08:00 INFO 32332 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T00:00:14.849+08:00 INFO 32332 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T00:00:14.849+08:00 INFO 32332 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T00:00:14.947+08:00 INFO 32332 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T00:00:14.947+08:00 INFO 32332 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T00:00:15.045+08:00 INFO 32332 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T00:00:15.129+08:00 INFO 32332 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 3 -2026-09-11T00:00:15.147+08:00 INFO 32332 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T00:00:15.159+08:00 INFO 32332 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T00:00:15.354+08:00 INFO 32332 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T00:00:26.187+08:00 INFO 32332 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T00:00:41.804+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T00:00:41.858+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T00:00:50.033+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T00:00:50.454+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67005, msg=ȱֹ汾 -2026-09-11T00:00:51.155+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T00:00:51.333+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ϵ绰ΪֻŸʽ -2026-09-11T00:00:51.508+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻȨ -2026-09-11T00:00:54.218+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻѱɾ -2026-09-11T00:00:54.627+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=ʽݱ -2026-09-11T00:00:54.836+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=´θʱ䲻ڵǰʱ -2026-09-11T00:00:55.866+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=ظύͬĸ -2026-09-11T00:01:00.713+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=ԱΪ -2026-09-11T00:01:00.929+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=۸˲ͬʱΪЭͬˣ739564171091247104 -2026-09-11T00:01:01.521+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=ûЭͬˣ744842318024015872 -2026-09-11T00:01:03.511+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67004, msg=ͻѱȡڹ -2026-09-11T00:01:03.686+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67004, msg=ͻѱȡڹ -2026-09-11T00:01:03.900+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67012, msg=ܷǰ -2026-09-11T00:01:04.682+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67007, msg=ͻڽ̻빫 -2026-09-11T00:01:05.769+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67006, msg=ͻڽ̻ɹ鵵 -2026-09-11T00:01:05.978+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67006, msg=ͻڽ̻ɹ鵵 -2026-09-11T00:02:50.087+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T00:02:59.218+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T00:02:59.246+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T00:03:07.051+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T00:03:07.449+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67005, msg=ȱֹ汾 -2026-09-11T00:03:08.131+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T00:03:08.304+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ϵ绰ΪֻŸʽ -2026-09-11T00:03:08.458+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻȨ -2026-09-11T00:03:11.051+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻѱɾ -2026-09-11T00:03:11.409+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=ʽݱ -2026-09-11T00:03:11.613+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=´θʱ䲻ڵǰʱ -2026-09-11T00:03:12.619+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=ظύͬĸ -2026-09-11T00:03:17.416+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=ԱΪ -2026-09-11T00:03:17.606+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=۸˲ͬʱΪЭͬˣ739564171091247104 -2026-09-11T00:03:18.219+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=ûЭͬˣ744842318024015872 -2026-09-11T00:03:20.171+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67004, msg=ͻѱȡڹ -2026-09-11T00:03:20.323+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67004, msg=ͻѱȡڹ -2026-09-11T00:03:20.538+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67012, msg=ܷǰ -2026-09-11T00:03:21.355+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67007, msg=ͻڽ̻빫 -2026-09-11T00:03:22.404+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67006, msg=ͻڽ̻ɹ鵵 -2026-09-11T00:03:22.612+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67006, msg=ͻڽ̻ɹ鵵 -2026-09-11T00:08:31.084+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T00:08:31.129+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T00:08:33.130+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67011, msg=ԭ -2026-09-11T00:08:33.326+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67011, msg=ܼ಻ڿɽӷΧ -2026-09-11T00:08:34.280+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67010, msg=δɵĽӵظ -2026-09-11T00:08:36.546+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67012, msg=󲻴ڡͣûְ -2026-09-11T00:08:40.907+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=뷽ʽǷ//£ -2026-09-11T00:08:41.286+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=ģ汾ƥ䣬µģ壨 2 бͷ -2026-09-11T00:08:41.505+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=ļ -2026-09-11T00:08:42.001+08:00 ERROR 32332 --- [crm-app] [task-1] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753406561438662656, thumbKey=thumbnails/753406561438662656.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:499) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T00:08:42.312+08:00 ERROR 32332 --- [crm-app] [task-2] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753406562957000704, thumbKey=thumbnails/753406562957000704.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:499) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T00:08:42.703+08:00 ERROR 32332 --- [crm-app] [task-3] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753406564605362176, thumbKey=thumbnails/753406564605362176.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:499) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T00:08:43.096+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67014, msg=ȷϣظύ -2026-09-11T00:08:43.413+08:00 INFO 32332 --- [crm-app] [task-4] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753406561740652544, insert=2, update=0, unchanged=0, fail=7, suspect=1 -2026-09-11T00:08:44.911+08:00 INFO 32332 --- [crm-app] [task-5] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753406563141550080, insert=0, update=2, unchanged=1, fail=7, suspect=0 -2026-09-11T00:08:46.393+08:00 INFO 32332 --- [crm-app] [http-nio-8080-exec-1] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=1, firstTrigger=1/1, secondInterval=1/1 -2026-09-11T00:08:46.600+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=״δѼΪ -2026-09-11T00:08:46.761+08:00 WARN 32332 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=״δѼΪ -2026-09-11T00:08:47.019+08:00 INFO 32332 --- [crm-app] [http-nio-8080-exec-5] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=0, firstTrigger=0/2, secondInterval=0/2 -2026-09-11T00:08:47.217+08:00 INFO 32332 --- [crm-app] [http-nio-8080-exec-6] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=1, firstTrigger=1/1, secondInterval=1/1 -2026-09-11T00:08:50.114+08:00 INFO 19872 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 21.0.7 with PID 19872 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in e:\code\crm-backend-matt) -2026-09-11T00:08:50.116+08:00 INFO 19872 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T00:08:51.687+08:00 INFO 19872 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:08:51.688+08:00 INFO 19872 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T00:08:51.717+08:00 INFO 19872 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 21 ms. Found 0 JPA repository interfaces. -2026-09-11T00:08:51.739+08:00 INFO 19872 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:08:51.740+08:00 INFO 19872 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T00:08:51.754+08:00 INFO 19872 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces. -2026-09-11T00:08:51.980+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.981+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.982+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.983+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.984+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.985+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.986+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.987+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.988+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:08:51.995+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.995+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.995+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.996+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.997+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.998+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:51.999+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.000+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.001+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.002+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:08:52.002+08:00 WARN 19872 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:08:53.286+08:00 INFO 19872 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T00:08:53.309+08:00 INFO 19872 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T00:08:53.310+08:00 INFO 19872 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T00:08:53.367+08:00 INFO 19872 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T00:08:53.368+08:00 INFO 19872 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3189 ms -2026-09-11T00:08:54.029+08:00 INFO 19872 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : 数据权限受控表扫描完成:0 张 -2026-09-11T00:08:54.191+08:00 INFO 19872 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : 雪花ID生成器初始化完成,workerId=0, datacenterId=0 -2026-09-11T00:08:55.310+08:00 INFO 19872 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T00:08:55.380+08:00 INFO 19872 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T00:08:55.428+08:00 INFO 19872 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T00:08:55.818+08:00 INFO 19872 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T00:08:55.848+08:00 INFO 19872 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T00:08:56.335+08:00 INFO 19872 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@670199c5 -2026-09-11T00:08:56.337+08:00 INFO 19872 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T00:08:56.402+08:00 WARN 19872 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T00:08:57.980+08:00 INFO 19872 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T00:09:15.073+08:00 INFO 19872 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T00:09:15.677+08:00 WARN 19872 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:09:15.677+08:00 WARN 19872 --- [crm-app] [main] c.c.a.controller.DebugTokenController : 调试 token 接口 /api/auth/debug/token 已启用(verify profile) -2026-09-11T00:09:15.677+08:00 WARN 19872 --- [crm-app] [main] c.c.a.controller.DebugTokenController : 严禁用于生产环境!任何知道 userId 的人可冒充该用户。 -2026-09-11T00:09:15.677+08:00 WARN 19872 --- [crm-app] [main] c.c.a.controller.DebugTokenController : 参见 docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T00:09:15.677+08:00 WARN 19872 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:09:18.785+08:00 INFO 19872 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort 一期实现就绪(预筛模式:FULLTEXT ngram) -2026-09-11T00:09:18.788+08:00 INFO 19872 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort 一期 stub 已装配(企查查未接入,工商候选返回空) -2026-09-11T00:09:19.304+08:00 INFO 19872 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort 桩已装配(A5 项目模块未接线,PROJECT 归属方案卡保存拒绝) -2026-09-11T00:09:19.930+08:00 INFO 19872 --- [crm-app] [main] c.c.c.p.i.NoopProjectOwnerSyncPortImpl : ProjectOwnerSyncPort no-op 默认实现已装配(A5 项目模块未建,owner 同步跳过) -2026-09-11T00:09:20.037+08:00 INFO 19872 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op 默认实现已装配(票 11 接商机真源后替换) -2026-09-11T00:09:20.038+08:00 INFO 19872 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector 桩已装配(冲突检测留桩恒无冲突,spec §8/grill#7 选甲) -2026-09-11T00:09:20.341+08:00 WARN 19872 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 1dab9af5-03c0-4b98-9a0c-2efa968ce849 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T00:09:20.357+08:00 INFO 19872 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T00:09:21.671+08:00 INFO 19872 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : 数据权限模块校验通过:0 张受控表,4 个注册模块 -2026-09-11T00:09:21.707+08:00 INFO 19872 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T00:09:21.779+08:00 INFO 19872 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T00:09:21.779+08:00 INFO 19872 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T00:09:21.780+08:00 INFO 19872 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 32.09 seconds (process running for 33.032) -2026-09-11T00:09:21.780+08:00 INFO 19872 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T00:09:21.784+08:00 INFO 19872 --- [crm-app] [main] com.crm.auth.config.DataInitializer : 执行权限数据初始化检查... -2026-09-11T00:09:22.498+08:00 INFO 19872 --- [crm-app] [main] com.crm.auth.config.DataInitializer : 权限数据初始化检查完成 -2026-09-11T00:09:22.498+08:00 INFO 19872 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : 执行数据字典权限种子化检查... -2026-09-11T00:09:22.867+08:00 INFO 19872 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : 数据字典权限种子化检查完成:10 个权限点 -2026-09-11T00:09:22.868+08:00 INFO 19872 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : 执行线索规则权限种子化检查(仅菜单)... -2026-09-11T00:09:22.957+08:00 INFO 19872 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : 线索规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:22.958+08:00 INFO 19872 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : 执行行政区划全量种子导入检查... -2026-09-11T00:09:23.798+08:00 INFO 19872 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : 行政区划种子导入完成:对账 3432 行(省 34 / 市 342 / 区 3056),存量 3432 行,新增 0 行 -2026-09-11T00:09:23.799+08:00 INFO 19872 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : 执行线索管理权限种子化检查(仅菜单)... -2026-09-11T00:09:24.147+08:00 INFO 19872 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : 线索管理权限种子化检查完成:4 个菜单(0 个 button) -2026-09-11T00:09:24.147+08:00 INFO 19872 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : 执行商机规则权限种子化检查(仅菜单)... -2026-09-11T00:09:24.234+08:00 INFO 19872 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : 商机规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.234+08:00 INFO 19872 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : 执行商机阶段模板权限种子化检查(仅菜单)... -2026-09-11T00:09:24.320+08:00 INFO 19872 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : 商机阶段模板权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.320+08:00 INFO 19872 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : 执行客户提醒规则权限种子化检查(仅菜单)... -2026-09-11T00:09:24.410+08:00 INFO 19872 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : 客户提醒规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.410+08:00 INFO 19872 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : 执行方案卡系统字段库种子化检查... -2026-09-11T00:09:24.423+08:00 INFO 19872 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : 方案卡系统字段库种子化检查完成:现存 16 个,新增 0 个 -2026-09-11T00:09:24.437+08:00 INFO 19872 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : 方案卡兜底模板已存在(code=OPP_SCHEME_TPL_01,含已停用),跳过种子化 -2026-09-11T00:09:24.437+08:00 INFO 19872 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : 执行方案卡模板权限种子化检查(仅菜单)... -2026-09-11T00:09:24.520+08:00 INFO 19872 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : 方案卡模板权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.533+08:00 INFO 19872 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : 默认阶段模板已存在(code=OPP_STAGE_TPL_01,含已停用),跳过种子化 -2026-09-11T00:09:24.545+08:00 INFO 19872 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : 客户提醒规则单例已存在(id=1),跳过种子化 -2026-09-11T00:09:24.545+08:00 INFO 19872 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : 执行客户查重设置权限种子化检查(仅菜单)... -2026-09-11T00:09:24.631+08:00 INFO 19872 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : 客户查重设置权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.643+08:00 INFO 19872 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : 客户查重设置单例已存在(id=1),跳过种子化 -2026-09-11T00:09:24.643+08:00 INFO 19872 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : 执行方案推送规则权限种子化检查(仅菜单)... -2026-09-11T00:09:24.727+08:00 INFO 19872 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : 方案推送规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.727+08:00 INFO 19872 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : 执行项目查重规则权限种子化检查(仅菜单)... -2026-09-11T00:09:24.811+08:00 INFO 19872 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : 项目查重规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.823+08:00 INFO 19872 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : 项目规则单例已存在(id=1),跳过种子化 -2026-09-11T00:09:24.823+08:00 INFO 19872 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : 执行项目规则权限种子化检查(仅菜单)... -2026-09-11T00:09:24.904+08:00 INFO 19872 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : 项目规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.904+08:00 INFO 19872 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : 执行同步任务权限种子化检查(仅菜单)... -2026-09-11T00:09:24.984+08:00 INFO 19872 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : 同步任务权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:24.985+08:00 INFO 19872 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : 执行日志管理权限种子化检查(仅菜单)... -2026-09-11T00:09:25.068+08:00 INFO 19872 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : 日志管理权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:09:25.146+08:00 INFO 19872 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] 存量方案卡回填商机归属 0 行 -2026-09-11T00:09:25.156+08:00 INFO 19872 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] 完成(ADR-0041) -2026-09-11T00:09:25.156+08:00 INFO 19872 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : 执行内置字典幂等初始化检查... -2026-09-11T00:09:30.019+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:09:30.019211 -2026-09-11T00:09:31.058+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 34 条,旧锚点失效 0 条 -2026-09-11T00:09:33.995+08:00 INFO 19872 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : 内置字典幂等初始化检查完成:27 个分组 -2026-09-11T00:09:34.191+08:00 INFO 19872 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT 索引 idx_name_fulltext 已存在,跳过 -2026-09-11T00:10:00.039+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:10:00.039339900 -2026-09-11T00:10:01.047+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 34 条,旧锚点失效 0 条 -2026-09-11T00:10:30.015+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:10:30.015431700 -2026-09-11T00:10:31.038+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 34 条,旧锚点失效 0 条 -2026-09-11T00:11:00.004+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:11:00.004643100 -2026-09-11T00:11:01.029+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 34 条,旧锚点失效 0 条 -2026-09-11T00:11:30.009+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:11:30.009619300 -2026-09-11T00:11:31.058+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 34 条,旧锚点失效 0 条 -2026-09-11T00:12:00.011+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:12:00.011232700 -2026-09-11T00:12:00.117+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 0 条,旧锚点失效 5 条 -2026-09-11T00:12:30.008+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 开始,now=2026-09-11T00:12:30.008160100 -2026-09-11T00:12:30.085+08:00 INFO 19872 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [客户提醒Job] 完成:新增待发 0 条,旧锚点失效 0 条 -2026-09-11T00:12:54.551+08:00 INFO 19872 --- [crm-app] [http-nio-8080-exec-5] .c.r.s.i.CustomerReminderRuleServiceImpl : [客户提醒规则] 全量覆盖保存:operator=739564171091247104, masterEnabled=1, firstTrigger=1/30天, secondInterval=1/7天 -2026-09-11T00:12:56.715+08:00 INFO 17316 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 21.0.7 with PID 17316 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in e:\code\crm-backend-matt) -2026-09-11T00:12:56.718+08:00 INFO 17316 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T00:12:57.972+08:00 INFO 17316 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:12:57.974+08:00 INFO 17316 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T00:12:58.001+08:00 INFO 17316 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 21 ms. Found 0 JPA repository interfaces. -2026-09-11T00:12:58.022+08:00 INFO 17316 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:12:58.023+08:00 INFO 17316 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T00:12:58.036+08:00 INFO 17316 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces. -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.196+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.197+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.198+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.199+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.200+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:12:58.204+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.205+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.206+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.207+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:12:58.208+08:00 WARN 17316 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:12:59.041+08:00 INFO 17316 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T00:12:59.058+08:00 INFO 17316 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T00:12:59.058+08:00 INFO 17316 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T00:12:59.106+08:00 INFO 17316 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T00:12:59.107+08:00 INFO 17316 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2345 ms -2026-09-11T00:12:59.687+08:00 INFO 17316 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : 数据权限受控表扫描完成:0 张 -2026-09-11T00:12:59.848+08:00 INFO 17316 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : 雪花ID生成器初始化完成,workerId=0, datacenterId=0 -2026-09-11T00:13:00.804+08:00 INFO 17316 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T00:13:00.875+08:00 INFO 17316 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T00:13:00.930+08:00 INFO 17316 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T00:13:01.321+08:00 INFO 17316 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T00:13:01.356+08:00 INFO 17316 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T00:13:01.935+08:00 INFO 17316 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@29aa29f5 -2026-09-11T00:13:01.937+08:00 INFO 17316 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T00:13:02.013+08:00 WARN 17316 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T00:13:04.064+08:00 INFO 17316 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T00:13:24.718+08:00 INFO 17316 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T00:13:25.323+08:00 WARN 17316 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:13:25.324+08:00 WARN 17316 --- [crm-app] [main] c.c.a.controller.DebugTokenController : 调试 token 接口 /api/auth/debug/token 已启用(verify profile) -2026-09-11T00:13:25.325+08:00 WARN 17316 --- [crm-app] [main] c.c.a.controller.DebugTokenController : 严禁用于生产环境!任何知道 userId 的人可冒充该用户。 -2026-09-11T00:13:25.325+08:00 WARN 17316 --- [crm-app] [main] c.c.a.controller.DebugTokenController : 参见 docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T00:13:25.325+08:00 WARN 17316 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:13:28.226+08:00 INFO 17316 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort 一期实现就绪(预筛模式:FULLTEXT ngram) -2026-09-11T00:13:28.229+08:00 INFO 17316 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort 一期 stub 已装配(企查查未接入,工商候选返回空) -2026-09-11T00:13:28.557+08:00 INFO 17316 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort 桩已装配(A5 项目模块未接线,PROJECT 归属方案卡保存拒绝) -2026-09-11T00:13:29.012+08:00 INFO 17316 --- [crm-app] [main] c.c.c.p.i.NoopProjectOwnerSyncPortImpl : ProjectOwnerSyncPort no-op 默认实现已装配(A5 项目模块未建,owner 同步跳过) -2026-09-11T00:13:29.097+08:00 INFO 17316 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op 默认实现已装配(票 11 接商机真源后替换) -2026-09-11T00:13:29.098+08:00 INFO 17316 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector 桩已装配(冲突检测留桩恒无冲突,spec §8/grill#7 选甲) -2026-09-11T00:13:29.366+08:00 WARN 17316 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: c0807f54-75ee-4743-ab25-4647330bbc07 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T00:13:29.381+08:00 INFO 17316 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T00:13:30.275+08:00 INFO 17316 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : 数据权限模块校验通过:0 张受控表,4 个注册模块 -2026-09-11T00:13:30.292+08:00 INFO 17316 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T00:13:30.309+08:00 INFO 17316 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 33.989 seconds (process running for 34.453) -2026-09-11T00:13:30.312+08:00 INFO 17316 --- [crm-app] [main] com.crm.auth.config.DataInitializer : 执行权限数据初始化检查... -2026-09-11T00:13:30.606+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T00:13:30.606+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T00:13:30.607+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T00:13:31.015+08:00 INFO 17316 --- [crm-app] [main] com.crm.auth.config.DataInitializer : 权限数据初始化检查完成 -2026-09-11T00:13:31.016+08:00 INFO 17316 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : 执行数据字典权限种子化检查... -2026-09-11T00:13:31.437+08:00 INFO 17316 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : 数据字典权限种子化检查完成:10 个权限点 -2026-09-11T00:13:31.437+08:00 INFO 17316 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : 执行线索规则权限种子化检查(仅菜单)... -2026-09-11T00:13:31.553+08:00 INFO 17316 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : 线索规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:31.553+08:00 INFO 17316 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : 执行线索管理权限种子化检查(仅菜单)... -2026-09-11T00:13:31.970+08:00 INFO 17316 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : 线索管理权限种子化检查完成:4 个菜单(0 个 button) -2026-09-11T00:13:31.971+08:00 INFO 17316 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : 执行行政区划全量种子导入检查... -2026-09-11T00:13:32.477+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67003, msg=统一社会信用代码已被占用:系统已存在该企业 -2026-09-11T00:13:32.771+08:00 INFO 17316 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : 行政区划种子导入完成:对账 3432 行(省 34 / 市 342 / 区 3056),存量 3432 行,新增 0 行 -2026-09-11T00:13:32.771+08:00 INFO 17316 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : 执行商机规则权限种子化检查(仅菜单)... -2026-09-11T00:13:32.875+08:00 INFO 17316 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : 商机规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:32.875+08:00 INFO 17316 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : 执行商机阶段模板权限种子化检查(仅菜单)... -2026-09-11T00:13:32.976+08:00 INFO 17316 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : 商机阶段模板权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:32.976+08:00 INFO 17316 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : 执行客户提醒规则权限种子化检查(仅菜单)... -2026-09-11T00:13:33.079+08:00 INFO 17316 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : 客户提醒规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.079+08:00 INFO 17316 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : 执行方案卡系统字段库种子化检查... -2026-09-11T00:13:33.093+08:00 INFO 17316 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : 方案卡系统字段库种子化检查完成:现存 16 个,新增 0 个 -2026-09-11T00:13:33.108+08:00 INFO 17316 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : 方案卡兜底模板已存在(code=OPP_SCHEME_TPL_01,含已停用),跳过种子化 -2026-09-11T00:13:33.108+08:00 INFO 17316 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : 执行方案卡模板权限种子化检查(仅菜单)... -2026-09-11T00:13:33.211+08:00 INFO 17316 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : 方案卡模板权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.226+08:00 INFO 17316 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : 默认阶段模板已存在(code=OPP_STAGE_TPL_01,含已停用),跳过种子化 -2026-09-11T00:13:33.239+08:00 INFO 17316 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : 客户提醒规则单例已存在(id=1),跳过种子化 -2026-09-11T00:13:33.239+08:00 INFO 17316 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : 执行客户查重设置权限种子化检查(仅菜单)... -2026-09-11T00:13:33.341+08:00 INFO 17316 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : 客户查重设置权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.355+08:00 INFO 17316 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : 客户查重设置单例已存在(id=1),跳过种子化 -2026-09-11T00:13:33.355+08:00 INFO 17316 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : 执行方案推送规则权限种子化检查(仅菜单)... -2026-09-11T00:13:33.460+08:00 INFO 17316 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : 方案推送规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.460+08:00 INFO 17316 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : 执行项目查重规则权限种子化检查(仅菜单)... -2026-09-11T00:13:33.562+08:00 INFO 17316 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : 项目查重规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.575+08:00 INFO 17316 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : 项目规则单例已存在(id=1),跳过种子化 -2026-09-11T00:13:33.575+08:00 INFO 17316 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : 执行项目规则权限种子化检查(仅菜单)... -2026-09-11T00:13:33.680+08:00 INFO 17316 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : 项目规则权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.680+08:00 INFO 17316 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : 执行同步任务权限种子化检查(仅菜单)... -2026-09-11T00:13:33.784+08:00 INFO 17316 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : 同步任务权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.784+08:00 INFO 17316 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : 执行日志管理权限种子化检查(仅菜单)... -2026-09-11T00:13:33.887+08:00 INFO 17316 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : 日志管理权限种子化检查完成:仅菜单(0 个 button) -2026-09-11T00:13:33.965+08:00 INFO 17316 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] 存量方案卡回填商机归属 0 行 -2026-09-11T00:13:33.978+08:00 INFO 17316 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] 完成(ADR-0041) -2026-09-11T00:13:34.169+08:00 INFO 17316 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT 索引 idx_name_fulltext 已存在,跳过 -2026-09-11T00:13:34.169+08:00 INFO 17316 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : 执行内置字典幂等初始化检查... -2026-09-11T00:13:45.652+08:00 INFO 17316 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : 内置字典幂等初始化检查完成:27 个分组 -2026-09-11T00:15:15.437+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:15:25.510+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:15:25.536+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] 为 userId=744842318024015872 签发调试 token -2026-09-11T00:15:27.384+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67001, msg=所属客户必填 -2026-09-11T00:15:27.543+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67002, msg=客户不存在或无权访问 -2026-09-11T00:15:27.687+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67017, msg=战略协议等级必填且为 1~3 -2026-09-11T00:15:27.832+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67017, msg=战略协议等级必填且为 1~3 -2026-09-11T00:15:29.818+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67017, msg=签订金额超长 -2026-09-11T00:15:29.925+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67017, msg=协议不存在或无权访问 -2026-09-11T00:15:30.066+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67017, msg=协议不存在或无权访问 -2026-09-11T00:15:30.213+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67017, msg=协议不存在或无权访问 -2026-09-11T00:15:32.340+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-3] c.c.r.s.i.CustomerDedupRuleServiceImpl : [客户查重设置] 全量覆盖保存:operator=739564171091247104, master=1, name=1/1模式阈值60%, phone=1 -2026-09-11T00:15:32.617+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-5] c.c.r.s.i.CustomerDedupRuleServiceImpl : [客户查重设置] 全量覆盖保存:operator=739564171091247104, master=0, name=0/2模式阈值90%, phone=0 -2026-09-11T00:15:32.778+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.r.s.i.CustomerDedupRuleServiceImpl : [客户查重设置] 全量覆盖保存:operator=739564171091247104, master=0, name=0/1模式阈值80%, phone=0 -2026-09-11T00:15:32.954+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=64023, msg=名称匹配方式必须为 1(精确)/2(模糊),相似度阈值必须为 0~100 的整数 -2026-09-11T00:15:33.133+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=64023, msg=名称匹配方式必须为 1(精确)/2(模糊),相似度阈值必须为 0~100 的整数 -2026-09-11T00:15:33.302+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=64023, msg=名称匹配方式必须为 1(精确)/2(模糊),相似度阈值必须为 0~100 的整数 -2026-09-11T00:15:33.539+08:00 INFO 17316 --- [crm-app] [http-nio-8080-exec-1] c.c.r.s.i.CustomerDedupRuleServiceImpl : [客户查重设置] 全量覆盖保存:operator=739564171091247104, master=1, name=1/2模式阈值80%, phone=1 -2026-09-11T00:15:34.487+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : 缺少请求参数:ids -2026-09-11T00:15:34.641+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67001, msg=单次最多批量更新 100 个客户 -2026-09-11T00:15:37.945+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=68001, msg=视图形态非法,仅支持 list/split/board -2026-09-11T00:15:39.717+08:00 ERROR 17316 --- [crm-app] [task-1] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753408313512689664, thumbKey=thumbnails/753408313512689664.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:15:39.942+08:00 ERROR 17316 --- [crm-app] [task-2] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753408314653540352, thumbKey=thumbnails/753408314653540352.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:15:40.090+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67013, msg=重复策略非法(数据重复时覆盖导入/不导入) -2026-09-11T00:15:40.425+08:00 INFO 17316 --- [crm-app] [task-3] c.c.c.task.CustomerImportExecutor : 客户导入任务完成:taskId=753408313772736512, insert=0, update=0, unchanged=0, fail=2, suspect=0 -2026-09-11T00:15:41.914+08:00 INFO 17316 --- [crm-app] [task-4] c.c.c.task.CustomerImportExecutor : 客户导入任务完成:taskId=753408314808729600, insert=0, update=1, unchanged=0, fail=1, suspect=0 -2026-09-11T00:18:57.446+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:18:57.494+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] 为 userId=744842318024015872 签发调试 token -2026-09-11T00:19:01.178+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67019, msg=边不允许自连:753409150666407936 -2026-09-11T00:19:01.701+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67019, msg=快照内边重复:753409150540578816 → 753409150666407936 -2026-09-11T00:19:02.167+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67019, msg=等级倒挂:上级等级须严格高于下级(3 ≤ 10) -2026-09-11T00:19:02.589+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67019, msg=未定级节点不得作为边端点(先拖格子定级):753409150540578816/753409150918066176 -2026-09-11T00:19:03.074+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67019, msg=边端点不在快照节点集内 -2026-09-11T00:19:03.577+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67020, msg=单父违反:下级 753409150792237056 出现多条上级边 -2026-09-11T00:19:04.388+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67018, msg=图谱已被他人修改(版本冲突),请刷新后重试 -2026-09-11T00:19:06.989+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67021, msg=快速添加行集为空 -2026-09-11T00:19:09.966+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67022, msg=批量编辑行集为空 -2026-09-11T00:19:11.778+08:00 ERROR 17316 --- [crm-app] [task-5] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753409203044876288, thumbKey=thumbnails/753409203044876288.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:19:13.081+08:00 ERROR 17316 --- [crm-app] [task-6] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753409208564580352, thumbKey=thumbnails/753409208564580352.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:19:13.258+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67023, msg=模板版本不匹配,请下载最新导入模板(第 1 列表头不符) -2026-09-11T00:19:13.727+08:00 INFO 17316 --- [crm-app] [task-7] c.c.customer.task.ContactImportExecutor : 联系人导入任务完成:taskId=753409208732352512, insert=3, update=0, unchanged=0, fail=2, suspect=0 -2026-09-11T00:19:15.104+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67024, msg=任务已确认,请勿重复提交 -2026-09-11T00:19:15.127+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:19:16.196+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : 业务异常:code=67018, msg=图谱已被他人修改(版本冲突),请刷新后重试 -2026-09-11T00:19:52.593+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:24:04.430+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:26:46.506+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:31:16.113+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:31:45.740+08:00 ERROR 17316 --- [crm-app] [task-8] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753412365411680256, thumbKey=thumbnails/753412365411680256.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:31:47.608+08:00 INFO 17316 --- [crm-app] [task-9] c.c.customer.task.ContactImportExecutor : 联系人导入任务完成:taskId=753412365617201152, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T00:31:49.196+08:00 ERROR 17316 --- [crm-app] [task-10] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753412379957526528, thumbKey=thumbnails/753412379957526528.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:31:49.209+08:00 WARN 17316 --- [crm-app] [task-10] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@25a2ba22 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T00:34:22.954+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] 为 userId=739564171091247104 签发调试 token -2026-09-11T00:34:49.386+08:00 ERROR 17316 --- [crm-app] [task-11] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753413135695609856, thumbKey=thumbnails/753413135695609856.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:34:51.282+08:00 INFO 17316 --- [crm-app] [task-12] c.c.customer.task.ContactImportExecutor : 联系人导入任务完成:taskId=753413135917907968, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T00:34:53.615+08:00 ERROR 17316 --- [crm-app] [task-13] c.crm.file.task.ThumbnailGenerationTask : 缩略图生成失败:fileId=753413153462681600, thumbKey=thumbnails/753413153462681600.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。 - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:506) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126) ~[na:na] - ... 17 common frames omitted - -2026-09-11T00:34:53.629+08:00 WARN 17316 --- [crm-app] [http-nio-8080-exec-8] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@1ff5c9f5 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T00:35:54.710+08:00 INFO 13908 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.13 with PID 13908 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in E:\code\crm-backend-matt) -2026-09-11T00:35:54.713+08:00 INFO 13908 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T00:35:56.299+08:00 INFO 13908 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:35:56.301+08:00 INFO 13908 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T00:35:56.332+08:00 INFO 13908 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 21 ms. Found 0 JPA repository interfaces. -2026-09-11T00:35:56.358+08:00 INFO 13908 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:35:56.360+08:00 INFO 13908 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T00:35:56.373+08:00 INFO 13908 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 2 ms. Found 0 Redis repository interfaces. -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.535+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.536+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.537+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.538+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.539+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.540+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.540+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.540+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.540+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.540+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.540+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:35:56.544+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.544+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.544+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.544+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.544+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.544+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.545+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.546+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.547+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.548+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:35:56.549+08:00 WARN 13908 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:35:57.594+08:00 INFO 13908 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T00:35:57.615+08:00 INFO 13908 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T00:35:57.615+08:00 INFO 13908 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T00:35:57.663+08:00 INFO 13908 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T00:35:57.664+08:00 INFO 13908 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2896 ms -2026-09-11T00:35:58.223+08:00 INFO 13908 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T00:35:58.365+08:00 INFO 13908 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T00:35:59.182+08:00 INFO 13908 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T00:35:59.258+08:00 INFO 13908 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T00:35:59.301+08:00 INFO 13908 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T00:35:59.645+08:00 INFO 13908 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T00:35:59.681+08:00 INFO 13908 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T00:36:00.292+08:00 INFO 13908 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@213a2fe3 -2026-09-11T00:36:00.294+08:00 INFO 13908 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T00:36:00.375+08:00 WARN 13908 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T00:36:02.150+08:00 INFO 13908 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T00:36:22.961+08:00 INFO 13908 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T00:36:23.520+08:00 WARN 13908 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:36:23.521+08:00 WARN 13908 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T00:36:23.521+08:00 WARN 13908 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T00:36:23.521+08:00 WARN 13908 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T00:36:23.522+08:00 WARN 13908 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:36:26.354+08:00 INFO 13908 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T00:36:26.356+08:00 INFO 13908 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T00:36:26.739+08:00 INFO 13908 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T00:36:27.301+08:00 INFO 13908 --- [crm-app] [main] c.c.c.p.i.NoopProjectOwnerSyncPortImpl : ProjectOwnerSyncPort no-op Ĭʵװ䣨A5 Ŀģδowner ͬ -2026-09-11T00:36:27.414+08:00 INFO 13908 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T00:36:27.415+08:00 INFO 13908 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T00:36:27.706+08:00 WARN 13908 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: c6635880-6c8e-4317-8ae1-f7fac5075c7b - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T00:36:27.727+08:00 INFO 13908 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T00:36:29.044+08:00 INFO 13908 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T00:36:29.078+08:00 INFO 13908 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T00:36:29.117+08:00 INFO 13908 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 34.909 seconds (process running for 35.487) -2026-09-11T00:36:29.121+08:00 INFO 13908 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T00:36:29.900+08:00 INFO 13908 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T00:36:29.901+08:00 INFO 13908 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T00:36:30.320+08:00 INFO 13908 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T00:36:30.320+08:00 INFO 13908 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:36:30.429+08:00 INFO 13908 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T00:36:30.429+08:00 INFO 13908 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T00:36:31.314+08:00 INFO 13908 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T00:36:31.314+08:00 INFO 13908 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:36:31.741+08:00 INFO 13908 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T00:36:31.741+08:00 INFO 13908 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T00:36:31.850+08:00 INFO 13908 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T00:36:31.850+08:00 INFO 13908 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T00:36:31.954+08:00 INFO 13908 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T00:36:31.955+08:00 INFO 13908 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T00:36:32.058+08:00 INFO 13908 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T00:36:32.059+08:00 INFO 13908 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T00:36:32.074+08:00 INFO 13908 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T00:36:32.089+08:00 INFO 13908 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T00:36:32.089+08:00 INFO 13908 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T00:36:32.196+08:00 INFO 13908 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T00:36:32.211+08:00 INFO 13908 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T00:36:32.225+08:00 INFO 13908 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T00:36:32.225+08:00 INFO 13908 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T00:36:32.332+08:00 INFO 13908 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T00:36:32.347+08:00 INFO 13908 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T00:36:32.347+08:00 INFO 13908 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T00:36:32.455+08:00 INFO 13908 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T00:36:32.455+08:00 INFO 13908 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T00:36:32.561+08:00 INFO 13908 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T00:36:32.574+08:00 INFO 13908 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T00:36:32.574+08:00 INFO 13908 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T00:36:32.678+08:00 INFO 13908 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T00:36:32.679+08:00 INFO 13908 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T00:36:32.784+08:00 INFO 13908 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T00:36:32.784+08:00 INFO 13908 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T00:36:32.892+08:00 INFO 13908 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T00:36:32.979+08:00 INFO 13908 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T00:36:32.992+08:00 INFO 13908 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T00:36:32.992+08:00 INFO 13908 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T00:36:44.680+08:00 INFO 13908 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T00:36:44.693+08:00 INFO 13908 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T00:37:18.361+08:00 INFO 13908 --- [crm-app] [http-nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T00:37:18.362+08:00 INFO 13908 --- [crm-app] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T00:37:18.363+08:00 INFO 13908 --- [crm-app] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T00:37:18.459+08:00 WARN 13908 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : Դڣcode=40401, msg=Դ[99021002]ڻѱɾ -2026-09-11T00:42:22.478+08:00 INFO 7348 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.13 with PID 7348 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in E:\code\crm-backend-matt) -2026-09-11T00:42:22.480+08:00 INFO 7348 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T00:42:23.864+08:00 INFO 7348 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:42:23.866+08:00 INFO 7348 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T00:42:23.904+08:00 INFO 7348 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 30 ms. Found 0 JPA repository interfaces. -2026-09-11T00:42:23.921+08:00 INFO 7348 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:42:23.923+08:00 INFO 7348 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T00:42:23.934+08:00 INFO 7348 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 2 ms. Found 0 Redis repository interfaces. -2026-09-11T00:42:24.077+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.078+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.079+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.080+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.081+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.082+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.083+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.084+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.085+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:42:24.089+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.089+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.090+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.091+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.092+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.093+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.094+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.095+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.096+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.096+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:42:24.096+08:00 WARN 7348 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:42:25.024+08:00 INFO 7348 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T00:42:25.041+08:00 INFO 7348 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T00:42:25.042+08:00 INFO 7348 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T00:42:25.090+08:00 INFO 7348 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T00:42:25.091+08:00 INFO 7348 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2560 ms -2026-09-11T00:42:25.598+08:00 INFO 7348 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T00:42:25.734+08:00 INFO 7348 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T00:42:26.409+08:00 INFO 7348 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T00:42:26.466+08:00 INFO 7348 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T00:42:26.505+08:00 INFO 7348 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T00:42:26.784+08:00 INFO 7348 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T00:42:26.814+08:00 INFO 7348 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T00:42:27.252+08:00 INFO 7348 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@7b57587e -2026-09-11T00:42:27.253+08:00 INFO 7348 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T00:42:27.330+08:00 WARN 7348 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T00:42:28.995+08:00 INFO 7348 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T00:42:49.321+08:00 INFO 7348 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T00:42:49.712+08:00 WARN 7348 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:42:49.712+08:00 WARN 7348 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T00:42:49.712+08:00 WARN 7348 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T00:42:49.712+08:00 WARN 7348 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T00:42:49.712+08:00 WARN 7348 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:42:52.212+08:00 INFO 7348 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T00:42:52.214+08:00 INFO 7348 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T00:42:52.537+08:00 INFO 7348 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T00:42:53.036+08:00 INFO 7348 --- [crm-app] [main] c.c.c.p.i.NoopProjectOwnerSyncPortImpl : ProjectOwnerSyncPort no-op Ĭʵװ䣨A5 Ŀģδowner ͬ -2026-09-11T00:42:53.139+08:00 INFO 7348 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T00:42:53.141+08:00 INFO 7348 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T00:42:53.422+08:00 WARN 7348 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 9c6d8d1a-865e-4c85-a36e-c3b07a9dda34 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T00:42:53.439+08:00 INFO 7348 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T00:42:54.526+08:00 INFO 7348 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T00:42:54.550+08:00 INFO 7348 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T00:42:54.575+08:00 INFO 7348 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 32.584 seconds (process running for 33.131) -2026-09-11T00:42:54.580+08:00 INFO 7348 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T00:42:55.314+08:00 INFO 7348 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T00:42:55.314+08:00 INFO 7348 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T00:42:55.707+08:00 INFO 7348 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T00:42:55.707+08:00 INFO 7348 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:42:55.809+08:00 INFO 7348 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T00:42:55.809+08:00 INFO 7348 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:42:56.219+08:00 INFO 7348 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T00:42:56.219+08:00 INFO 7348 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T00:42:57.215+08:00 INFO 7348 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T00:42:57.215+08:00 INFO 7348 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T00:42:57.321+08:00 INFO 7348 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T00:42:57.321+08:00 INFO 7348 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T00:42:57.422+08:00 INFO 7348 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T00:42:57.422+08:00 INFO 7348 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T00:42:57.522+08:00 INFO 7348 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T00:42:57.522+08:00 INFO 7348 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T00:42:57.537+08:00 INFO 7348 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T00:42:57.551+08:00 INFO 7348 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T00:42:57.552+08:00 INFO 7348 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T00:42:57.652+08:00 INFO 7348 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T00:42:57.667+08:00 INFO 7348 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T00:42:57.681+08:00 INFO 7348 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T00:42:57.681+08:00 INFO 7348 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T00:42:57.782+08:00 INFO 7348 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T00:42:57.795+08:00 INFO 7348 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T00:42:57.795+08:00 INFO 7348 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T00:42:57.898+08:00 INFO 7348 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T00:42:57.898+08:00 INFO 7348 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T00:42:57.999+08:00 INFO 7348 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T00:42:58.013+08:00 INFO 7348 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T00:42:58.013+08:00 INFO 7348 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T00:42:58.113+08:00 INFO 7348 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T00:42:58.113+08:00 INFO 7348 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T00:42:58.212+08:00 INFO 7348 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T00:42:58.212+08:00 INFO 7348 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T00:42:58.310+08:00 INFO 7348 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T00:42:58.388+08:00 INFO 7348 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T00:42:58.401+08:00 INFO 7348 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T00:42:58.414+08:00 INFO 7348 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T00:42:58.584+08:00 INFO 7348 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T00:43:09.653+08:00 INFO 7348 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T00:43:40.778+08:00 INFO 7348 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T00:43:40.779+08:00 INFO 7348 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T00:43:40.780+08:00 INFO 7348 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T00:43:41.653+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T00:48:09.494+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T00:48:26.086+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T00:48:31.145+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-5] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@76e4201d (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T00:48:31.158+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-5] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@5a07e195 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T00:49:03.529+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T00:49:16.235+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T00:51:18.620+08:00 WARN 7348 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T00:58:33.678+08:00 INFO 22464 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.13 with PID 22464 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in E:\code\crm-backend-matt) -2026-09-11T00:58:33.680+08:00 INFO 22464 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T00:58:35.117+08:00 INFO 22464 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:58:35.119+08:00 INFO 22464 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T00:58:35.154+08:00 INFO 22464 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 28 ms. Found 0 JPA repository interfaces. -2026-09-11T00:58:35.173+08:00 INFO 22464 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T00:58:35.175+08:00 INFO 22464 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T00:58:35.187+08:00 INFO 22464 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2026-09-11T00:58:35.353+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.354+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.355+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.356+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.357+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.358+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.359+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.360+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.361+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.362+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.366+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.367+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.368+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.369+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.370+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.371+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T00:58:35.372+08:00 WARN 22464 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T00:58:36.376+08:00 INFO 22464 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T00:58:36.396+08:00 INFO 22464 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T00:58:36.397+08:00 INFO 22464 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T00:58:36.444+08:00 INFO 22464 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T00:58:36.444+08:00 INFO 22464 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2710 ms -2026-09-11T00:58:36.965+08:00 INFO 22464 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T00:58:37.117+08:00 INFO 22464 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T00:58:37.874+08:00 INFO 22464 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T00:58:37.933+08:00 INFO 22464 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T00:58:37.966+08:00 INFO 22464 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T00:58:38.272+08:00 INFO 22464 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T00:58:38.304+08:00 INFO 22464 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T00:58:38.899+08:00 INFO 22464 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@2c78771b -2026-09-11T00:58:38.901+08:00 INFO 22464 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T00:58:38.977+08:00 WARN 22464 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T00:58:40.661+08:00 INFO 22464 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T00:59:01.831+08:00 INFO 22464 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T00:59:02.302+08:00 WARN 22464 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:59:02.303+08:00 WARN 22464 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T00:59:02.303+08:00 WARN 22464 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T00:59:02.303+08:00 WARN 22464 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T00:59:02.303+08:00 WARN 22464 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T00:59:04.850+08:00 INFO 22464 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T00:59:04.852+08:00 INFO 22464 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T00:59:05.188+08:00 INFO 22464 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T00:59:05.823+08:00 INFO 22464 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T00:59:05.825+08:00 INFO 22464 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T00:59:06.209+08:00 WARN 22464 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: f20daa28-7b7a-445e-904f-ba5d33bc8410 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T00:59:06.228+08:00 INFO 22464 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T00:59:07.385+08:00 INFO 22464 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T00:59:07.421+08:00 INFO 22464 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T00:59:07.447+08:00 INFO 22464 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 34.231 seconds (process running for 34.848) -2026-09-11T00:59:07.452+08:00 INFO 22464 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T00:59:08.195+08:00 INFO 22464 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T00:59:08.195+08:00 INFO 22464 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T00:59:08.606+08:00 INFO 22464 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T00:59:08.606+08:00 INFO 22464 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:59:08.712+08:00 INFO 22464 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T00:59:08.713+08:00 INFO 22464 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T00:59:09.150+08:00 INFO 22464 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T00:59:09.151+08:00 INFO 22464 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T00:59:10.004+08:00 INFO 22464 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T00:59:10.004+08:00 INFO 22464 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T00:59:10.112+08:00 INFO 22464 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T00:59:10.112+08:00 INFO 22464 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T00:59:10.221+08:00 INFO 22464 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T00:59:10.221+08:00 INFO 22464 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T00:59:10.328+08:00 INFO 22464 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T00:59:10.328+08:00 INFO 22464 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T00:59:10.343+08:00 INFO 22464 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T00:59:10.358+08:00 INFO 22464 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T00:59:10.358+08:00 INFO 22464 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T00:59:10.465+08:00 INFO 22464 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T00:59:10.480+08:00 INFO 22464 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T00:59:10.495+08:00 INFO 22464 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T00:59:10.495+08:00 INFO 22464 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T00:59:10.600+08:00 INFO 22464 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T00:59:10.615+08:00 INFO 22464 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T00:59:10.615+08:00 INFO 22464 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T00:59:10.720+08:00 INFO 22464 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T00:59:10.721+08:00 INFO 22464 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T00:59:10.828+08:00 INFO 22464 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T00:59:10.842+08:00 INFO 22464 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T00:59:10.843+08:00 INFO 22464 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T00:59:10.950+08:00 INFO 22464 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T00:59:10.950+08:00 INFO 22464 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T00:59:11.057+08:00 INFO 22464 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T00:59:11.057+08:00 INFO 22464 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T00:59:11.163+08:00 INFO 22464 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T00:59:11.249+08:00 INFO 22464 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T00:59:11.263+08:00 INFO 22464 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T00:59:11.446+08:00 INFO 22464 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T00:59:11.446+08:00 INFO 22464 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T00:59:23.210+08:00 INFO 22464 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T00:59:48.061+08:00 INFO 22464 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T00:59:48.061+08:00 INFO 22464 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T00:59:48.062+08:00 INFO 22464 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T00:59:48.852+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:00:00.971+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:00:14.392+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T01:00:39.669+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:00:40.508+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T01:09:05.489+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@2fdcc34 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:09:05.525+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:09:05.604+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:09:05.687+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@3c37f65d (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:11:03.269+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:11:03.321+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:11:03.741+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ĿƱ -2026-09-11T01:11:03.912+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻӿͻĿ¼ѡ񣬲ֳ֧½ -2026-09-11T01:11:04.084+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ѡÿͻķ -2026-09-11T01:11:04.268+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻãͻ: 99999001 -2026-09-11T01:11:04.459+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻãͻ: 88888888 -2026-09-11T01:11:04.654+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68007, msg=ڻѱɾ -2026-09-11T01:11:05.574+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ʽRequest method 'PUT' is not supported -2026-09-11T01:11:05.648+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ʽRequest method 'DELETE' is not supported -2026-09-11T01:11:06.586+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=Ŀ׶ɸѡǷ 7 ֵ 0~6״̬öɸѡ filingStatus -2026-09-11T01:11:07.800+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68002, msg=Ŀڻѱɾ -2026-09-11T01:11:10.092+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68006, msg=ĿΪǰѾĽڵҲڷƣstage1ɻ˵ǰδڵ -2026-09-11T01:11:10.290+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T01:11:10.464+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68009, msg=bidResult Ϊ 1Ӯ 2䵥 -2026-09-11T01:11:11.021+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T01:11:11.200+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68009, msg=ĿѱӮ/䵥ظ -2026-09-11T01:11:13.212+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɻ -2026-09-11T01:11:13.400+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѽ̬ɹر -2026-09-11T01:11:13.927+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=Ŀ idݡʱ -2026-09-11T01:13:42.850+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:13:42.878+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:13:43.629+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68008, msg=ͻ׶Σstage0ɽͻ/˽ -2026-09-11T01:13:46.930+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68004, msg=Ӯ/䵥׶ʹáӮ/䵥ֱƽ -2026-09-11T01:13:47.617+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T01:13:48.371+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=رͷǷMANUAL/CUSTOMER_CANCEL/LOST_CONTACT/OTHER -2026-09-11T01:13:48.826+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹرգظر -2026-09-11T01:13:48.988+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ƽ -2026-09-11T01:13:49.163+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɱӮ/䵥 -2026-09-11T01:13:49.229+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ȱscope -2026-09-11T01:13:49.312+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=scope Ϊ manage mine -2026-09-11T01:13:49.390+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T01:13:49.486+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68002, msg=Ŀڻѱɾ -2026-09-11T01:14:07.635+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:14:07.674+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:14:08.434+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68008, msg=ͻ׶Σstage0ɽͻ/˽ -2026-09-11T01:14:11.853+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68004, msg=Ӯ/䵥׶ʹáӮ/䵥ֱƽ -2026-09-11T01:14:12.536+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T01:14:13.287+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=رͷǷMANUAL/CUSTOMER_CANCEL/LOST_CONTACT/OTHER -2026-09-11T01:14:13.729+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹرգظر -2026-09-11T01:14:13.909+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ƽ -2026-09-11T01:14:14.095+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɱӮ/䵥 -2026-09-11T01:14:14.183+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ȱscope -2026-09-11T01:14:14.260+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=scope Ϊ manage mine -2026-09-11T01:14:14.336+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T01:14:14.429+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68002, msg=Ŀڻѱɾ -2026-09-11T01:14:28.318+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:14:28.345+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:14:29.108+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68008, msg=ͻ׶Σstage0ɽͻ/˽ -2026-09-11T01:14:32.712+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68004, msg=Ӯ/䵥׶ʹáӮ/䵥ֱƽ -2026-09-11T01:14:33.353+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T01:14:34.046+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=رͷǷMANUAL/CUSTOMER_CANCEL/LOST_CONTACT/OTHER -2026-09-11T01:14:34.490+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹرգظر -2026-09-11T01:14:34.679+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ƽ -2026-09-11T01:14:34.864+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɱӮ/䵥 -2026-09-11T01:14:34.937+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ȱscope -2026-09-11T01:14:35.014+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=scope Ϊ manage mine -2026-09-11T01:14:35.091+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T01:14:35.182+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68002, msg=Ŀڻѱɾ -2026-09-11T01:14:42.619+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:14:42.668+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:14:43.413+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68008, msg=ͻ׶Σstage0ɽͻ/˽ -2026-09-11T01:14:47.217+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68004, msg=Ӯ/䵥׶ʹáӮ/䵥ֱƽ -2026-09-11T01:14:47.876+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T01:14:48.600+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=رͷǷMANUAL/CUSTOMER_CANCEL/LOST_CONTACT/OTHER -2026-09-11T01:14:49.052+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹرգظر -2026-09-11T01:14:49.216+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ƽ -2026-09-11T01:14:49.395+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɱӮ/䵥 -2026-09-11T01:14:49.483+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ȱscope -2026-09-11T01:14:49.546+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=scope Ϊ manage mine -2026-09-11T01:14:49.622+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T01:14:49.712+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68002, msg=Ŀڻѱɾ -2026-09-11T01:14:50.205+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : УʧܣfollowTime: Failed to convert property value of type 'java.lang.String' to required type 'java.time.LocalDateTime' for property 'followTime'; Failed to convert from type [java.lang.String] to type [@io.swagger.v3.oas.annotations.media.Schema @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime] for value [ʱ] -2026-09-11T01:18:57.596+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:18:57.749+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4c7225e5 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.760+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@3e89cf2a (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.773+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4beea4ff (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.782+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@16eefd6a (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.793+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6bc81044 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.802+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@1b486288 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.811+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@25bfe442 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.820+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@44db5832 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:18:57.829+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6f3a3add (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:19:02.933+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ĿƱ -2026-09-11T01:19:03.781+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻӿͻĿ¼ѡ񣬲ֳ֧½ -2026-09-11T01:19:04.544+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻãͻ: 99999001 -2026-09-11T01:19:41.819+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:22:02.219+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:22:08.097+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:23:00.680+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:24:08.365+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:25:12.886+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:25:58.877+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:26:04.215+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ĿƱ -2026-09-11T01:26:05.015+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻӿͻĿ¼ѡ񣬲ֳ֧½ -2026-09-11T01:26:05.763+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͻãͻ: 99999001 -2026-09-11T01:26:42.906+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:27:45.433+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:27:48.637+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T01:28:03.218+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:28:04.290+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:28:07.377+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T01:28:58.805+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T01:29:41.655+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68007, msg=ͻĿͻһ£һĿһͻһ -2026-09-11T01:29:41.851+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68007, msg=ͻĿͻһ£һĿһͻһ -2026-09-11T01:29:42.045+08:00 WARN 22464 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68007, msg=ͻĿͻһ£һĿһͻһ -2026-09-11T01:47:38.670+08:00 INFO 15484 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.13 with PID 15484 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in E:\code\crm-backend-matt) -2026-09-11T01:47:38.673+08:00 INFO 15484 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T01:47:40.075+08:00 INFO 15484 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T01:47:40.077+08:00 INFO 15484 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T01:47:40.103+08:00 INFO 15484 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 20 ms. Found 0 JPA repository interfaces. -2026-09-11T01:47:40.124+08:00 INFO 15484 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T01:47:40.125+08:00 INFO 15484 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T01:47:40.136+08:00 INFO 15484 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.289+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.290+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.291+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.292+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.293+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.294+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.295+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.296+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.300+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.301+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.302+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.303+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.304+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.305+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T01:47:40.306+08:00 WARN 15484 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T01:47:41.198+08:00 INFO 15484 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T01:47:41.216+08:00 INFO 15484 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T01:47:41.217+08:00 INFO 15484 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T01:47:41.260+08:00 INFO 15484 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T01:47:41.260+08:00 INFO 15484 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2535 ms -2026-09-11T01:47:41.759+08:00 INFO 15484 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T01:47:41.899+08:00 INFO 15484 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T01:47:42.606+08:00 INFO 15484 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T01:47:42.665+08:00 INFO 15484 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T01:47:42.699+08:00 INFO 15484 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T01:47:43.004+08:00 INFO 15484 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T01:47:43.041+08:00 INFO 15484 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T01:47:43.570+08:00 INFO 15484 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@33224703 -2026-09-11T01:47:43.572+08:00 INFO 15484 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T01:47:43.638+08:00 WARN 15484 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T01:47:45.377+08:00 INFO 15484 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T01:48:04.949+08:00 INFO 15484 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T01:48:05.348+08:00 WARN 15484 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T01:48:05.348+08:00 WARN 15484 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T01:48:05.348+08:00 WARN 15484 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T01:48:05.348+08:00 WARN 15484 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T01:48:05.348+08:00 WARN 15484 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T01:48:07.620+08:00 INFO 15484 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T01:48:07.622+08:00 INFO 15484 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T01:48:07.923+08:00 INFO 15484 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T01:48:08.501+08:00 INFO 15484 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T01:48:08.503+08:00 INFO 15484 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T01:48:08.865+08:00 WARN 15484 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 868ea272-75d8-4353-ab0e-e0f4dfd4c771 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T01:48:08.883+08:00 INFO 15484 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T01:48:09.938+08:00 INFO 15484 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T01:48:09.971+08:00 INFO 15484 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T01:48:09.991+08:00 INFO 15484 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 31.789 seconds (process running for 32.228) -2026-09-11T01:48:09.996+08:00 INFO 15484 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T01:48:10.665+08:00 INFO 15484 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T01:48:10.665+08:00 INFO 15484 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T01:48:11.033+08:00 INFO 15484 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T01:48:11.033+08:00 INFO 15484 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T01:48:11.130+08:00 INFO 15484 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T01:48:11.130+08:00 INFO 15484 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T01:48:11.934+08:00 INFO 15484 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T01:48:11.935+08:00 INFO 15484 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T01:48:12.319+08:00 INFO 15484 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T01:48:12.319+08:00 INFO 15484 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T01:48:12.413+08:00 INFO 15484 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T01:48:12.413+08:00 INFO 15484 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T01:48:12.510+08:00 INFO 15484 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T01:48:12.510+08:00 INFO 15484 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T01:48:12.602+08:00 INFO 15484 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T01:48:12.602+08:00 INFO 15484 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T01:48:12.616+08:00 INFO 15484 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T01:48:12.629+08:00 INFO 15484 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T01:48:12.629+08:00 INFO 15484 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T01:48:12.722+08:00 INFO 15484 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T01:48:12.736+08:00 INFO 15484 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T01:48:12.749+08:00 INFO 15484 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T01:48:12.749+08:00 INFO 15484 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T01:48:12.845+08:00 INFO 15484 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T01:48:12.858+08:00 INFO 15484 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T01:48:12.858+08:00 INFO 15484 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T01:48:12.954+08:00 INFO 15484 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T01:48:12.954+08:00 INFO 15484 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T01:48:13.050+08:00 INFO 15484 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T01:48:13.063+08:00 INFO 15484 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T01:48:13.063+08:00 INFO 15484 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T01:48:13.156+08:00 INFO 15484 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T01:48:13.156+08:00 INFO 15484 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T01:48:13.250+08:00 INFO 15484 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T01:48:13.251+08:00 INFO 15484 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T01:48:13.345+08:00 INFO 15484 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T01:48:13.418+08:00 INFO 15484 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T01:48:13.448+08:00 INFO 15484 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] opp_id ѷſΪɿ -2026-09-11T01:48:13.460+08:00 INFO 15484 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T01:48:13.460+08:00 INFO 15484 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T01:48:23.848+08:00 INFO 15484 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T01:48:24.028+08:00 INFO 15484 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T01:49:00.771+08:00 INFO 15484 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T01:49:00.771+08:00 INFO 15484 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T01:49:00.772+08:00 INFO 15484 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T01:49:01.579+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:49:12.927+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:49:27.105+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T01:50:34.345+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:50:48.058+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T01:51:59.100+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:52:12.616+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T01:52:36.789+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:52:37.636+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T01:52:37.696+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:52:38.340+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T01:52:38.500+08:00 ERROR 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:415) ~[spring-web-6.1.14.jar!/:6.1.14] - at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:153) ~[na:na] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1207) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:136) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:524) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:412) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 106 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:728) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:712) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:574) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:156) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1252) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 110 common frames omitted - -2026-09-11T01:54:34.656+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T01:54:48.170+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T01:55:00.022+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@28efda9f (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T01:55:12.124+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:55:12.943+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T01:55:13.008+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T01:55:13.660+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:00:00.111+08:00 INFO 15484 --- [crm-app] [scheduling-1] com.crm.auth.job.DtSyncScheduleJob : [ԶͬJob] Ѱͬ÷Զͬ -2026-09-11T02:00:00.111+08:00 INFO 15484 --- [crm-app] [scheduling-1] com.crm.lead.job.LeadMaintenanceJob : [άJob] ʼֹʱ=2026-09-11T02:00:00.111076300 -2026-09-11T02:00:00.154+08:00 INFO 15484 --- [crm-app] [scheduling-1] com.crm.lead.job.LeadMaintenanceJob : [άJob] ʧЧɣ0 ʧЧ -2026-09-11T02:00:00.187+08:00 INFO 15484 --- [crm-app] [scheduling-1] com.crm.lead.job.LeadMaintenanceJob : [άJob] ɣ0 ѻ -2026-09-11T02:00:00.187+08:00 INFO 15484 --- [crm-app] [scheduling-1] com.crm.lead.job.LeadMaintenanceJob : [άJob] ȫ -2026-09-11T02:00:01.876+08:00 ERROR 15484 --- [crm-app] [dt-sync-task] c.c.a.service.client.DingTalkOrgSource : ֯ͬȡûʧܣdeptId=641717583, body={"errcode":88,"sub_code":"90002","sub_msg":"ǰжӦõøýӿڴ࣬˸ýӿڳܵqpsʱˣʱ̵øýӿ, apiPath(dingtalk.oapi.v2.user.list), 2026-09-11 02:00:00 2026-09-11 02:00:00 ܴ 1000 , ƽ 2026-09-11 02:00:01 .","errmsg":"ding talk error[subcode=90002,submsg=ǰжӦõøýӿڴ࣬˸ýӿڳܵqpsʱˣʱ̵øýӿ, apiPath(dingtalk.oapi.v2.user.list), 2026-09-11 02:00:00 2026-09-11 02:00:00 ܴ 1000 , ƽ 2026-09-11 02:00:01 .]","request_id":"15rt5pk5aqqo5"} -2026-09-11T02:00:01.929+08:00 ERROR 15484 --- [crm-app] [dt-sync-task] c.c.a.s.impl.DtSyncTaskServiceImpl : ͬ SYNC-0911-01 ִʧܣ֯ͬʧܣȡûʧܣerrcode=88 - -com.crm.base.domain.exception.BusinessErrorException: ֯ͬʧܣȡûʧܣerrcode=88 - at com.crm.auth.service.client.DingTalkOrgSource.fetchDeptUsersPage(DingTalkOrgSource.java:120) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.auth.service.client.DingTalkOrgSource.fetchDeptUsers(DingTalkOrgSource.java:88) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.auth.service.impl.DtOrgSyncServiceImpl.syncUsers(DtOrgSyncServiceImpl.java:231) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.auth.service.impl.DtOrgSyncServiceImpl.syncOrg(DtOrgSyncServiceImpl.java:89) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) ~[spring-tx-6.1.14.jar!/:6.1.14] - at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) ~[spring-aop-6.1.14.jar!/:6.1.14] - at com.crm.auth.service.impl.DtOrgSyncServiceImpl$$SpringCGLIB$$0.syncOrg() ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.auth.service.impl.DtSyncTaskServiceImpl.runTask(DtSyncTaskServiceImpl.java:126) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.auth.service.impl.DtSyncTaskServiceImpl.lambda$launch$1(DtSyncTaskServiceImpl.java:107) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] - -2026-09-11T02:01:05.952+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:01:05.975+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:01:08.786+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:01:14.194+08:00 ERROR 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:415) ~[spring-web-6.1.14.jar!/:6.1.14] - at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:153) ~[na:na] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1207) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:136) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:524) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:412) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 106 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:728) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:712) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:574) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:156) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1252) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 110 common frames omitted - -2026-09-11T02:01:14.696+08:00 ERROR 15484 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:415) ~[spring-web-6.1.14.jar!/:6.1.14] - at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:153) ~[na:na] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1207) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:136) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:524) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:412) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 106 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:728) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:712) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:574) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:156) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1252) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 110 common frames omitted - -2026-09-11T02:01:48.623+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:01:48.669+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:01:49.316+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:02:54.991+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:02:55.051+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:02:55.699+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:03:06.333+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T02:03:13.333+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ȱprojectId -2026-09-11T02:03:13.368+08:00 ERROR 15484 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:415) ~[spring-web-6.1.14.jar!/:6.1.14] - at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:153) ~[na:na] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1207) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:136) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:524) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:412) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 106 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:728) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:712) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:574) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:156) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1252) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 110 common frames omitted - -2026-09-11T02:03:28.803+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:03:28.906+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ȱprojectId -2026-09-11T02:03:38.716+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:03:38.750+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:03:39.380+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:03:50.145+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T02:04:05.286+08:00 ERROR 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:415) ~[spring-web-6.1.14.jar!/:6.1.14] - at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:153) ~[na:na] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1207) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:136) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:524) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:412) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 106 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:728) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:712) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:574) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:156) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1252) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 110 common frames omitted - -2026-09-11T02:04:05.791+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:05.983+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:06.180+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:06.373+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:07.517+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:24.438+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:04:24.486+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:04:25.144+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:04:35.999+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T02:04:50.624+08:00 ERROR 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to flush: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:415) ~[spring-web-6.1.14.jar!/:6.1.14] - at java.base/java.io.FilterOutputStream.flush(FilterOutputStream.java:153) ~[na:na] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1207) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:136) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:524) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.flush(StandardServletAsyncWebRequest.java:412) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 106 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:728) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:712) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:574) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:156) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:216) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1252) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.action(Response.java:208) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 110 common frames omitted - -2026-09-11T02:04:51.251+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:51.437+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:51.588+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:51.741+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:04:52.923+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:08:22.438+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:08:22.497+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:08:25.858+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : УʧܣfollowTime: Failed to convert property value of type 'java.lang.String' to required type 'java.time.LocalDateTime' for property 'followTime'; Failed to convert from type [java.lang.String] to type [@io.swagger.v3.oas.annotations.media.Schema @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime] for value [ʱ] -2026-09-11T02:08:26.668+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:08:33.797+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:08:35.540+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T02:09:03.928+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:09:03.979+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:09:07.577+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : УʧܣfollowTime: Failed to convert property value of type 'java.lang.String' to required type 'java.time.LocalDateTime' for property 'followTime'; Failed to convert from type [java.lang.String] to type [@io.swagger.v3.oas.annotations.media.Schema @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime] for value [ʱ] -2026-09-11T02:09:08.354+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:09:15.284+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:09:16.931+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T02:10:04.952+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:10:08.010+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T02:10:08.169+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջƽ -2026-09-11T02:10:08.514+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɱӮ/䵥 -2026-09-11T02:10:08.685+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɳͻ˻ -2026-09-11T02:13:18.960+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:13:21.950+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T02:13:22.121+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջƽ -2026-09-11T02:13:22.243+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68009, msg=ĿѱӮ/䵥ظ -2026-09-11T02:13:22.386+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68008, msg=ͻ׶Σstage0ɽͻ/˽ -2026-09-11T02:13:22.899+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ƽ -2026-09-11T02:13:23.060+08:00 WARN 15484 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=Ŀѹر/ѽ̬ɱӮ/䵥 -2026-09-11T02:18:00.013+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4fd7089d (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:47:00.012+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@30f73d40 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:47:00.024+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@5bf00501 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:47:00.033+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@42f827f2 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:47:00.042+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@553d568c (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:47:00.055+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@5ca97c56 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:47:00.066+08:00 WARN 15484 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@72ab2cf (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T02:50:51.605+08:00 INFO 27784 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.13 with PID 27784 (E:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by Administrator in E:\code\crm-backend-matt) -2026-09-11T02:50:51.607+08:00 INFO 27784 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T02:50:53.071+08:00 INFO 27784 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T02:50:53.075+08:00 INFO 27784 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T02:50:53.110+08:00 INFO 27784 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 27 ms. Found 0 JPA repository interfaces. -2026-09-11T02:50:53.130+08:00 INFO 27784 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T02:50:53.131+08:00 INFO 27784 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T02:50:53.142+08:00 INFO 27784 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2026-09-11T02:50:53.304+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.304+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.304+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.304+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.304+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.305+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.306+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.307+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.308+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.309+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.310+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.316+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.316+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.317+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.318+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T02:50:53.321+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.322+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.323+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.324+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.325+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.326+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.327+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.328+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.328+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.328+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.328+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.328+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T02:50:53.328+08:00 WARN 27784 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T02:50:54.214+08:00 INFO 27784 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T02:50:54.231+08:00 INFO 27784 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T02:50:54.231+08:00 INFO 27784 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T02:50:54.274+08:00 INFO 27784 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T02:50:54.275+08:00 INFO 27784 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2616 ms -2026-09-11T02:50:54.773+08:00 INFO 27784 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T02:50:54.897+08:00 INFO 27784 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T02:50:55.612+08:00 INFO 27784 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T02:50:55.668+08:00 INFO 27784 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T02:50:55.701+08:00 INFO 27784 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T02:50:55.977+08:00 INFO 27784 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T02:50:56.009+08:00 INFO 27784 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T02:50:56.403+08:00 INFO 27784 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@7720334e -2026-09-11T02:50:56.405+08:00 INFO 27784 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T02:50:56.474+08:00 WARN 27784 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T02:50:58.151+08:00 INFO 27784 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T02:51:16.074+08:00 INFO 27784 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T02:51:16.467+08:00 WARN 27784 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T02:51:16.467+08:00 WARN 27784 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T02:51:16.467+08:00 WARN 27784 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T02:51:16.467+08:00 WARN 27784 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T02:51:16.467+08:00 WARN 27784 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T02:51:18.796+08:00 INFO 27784 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T02:51:18.798+08:00 INFO 27784 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T02:51:19.142+08:00 INFO 27784 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T02:51:19.758+08:00 INFO 27784 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T02:51:19.760+08:00 INFO 27784 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T02:51:20.098+08:00 WARN 27784 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: e24f24d1-7936-4432-b2c3-414a74dd9821 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T02:51:20.115+08:00 INFO 27784 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T02:51:21.222+08:00 INFO 27784 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T02:51:21.243+08:00 INFO 27784 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T02:51:21.263+08:00 INFO 27784 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 30.113 seconds (process running for 30.562) -2026-09-11T02:51:21.267+08:00 INFO 27784 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T02:51:21.908+08:00 INFO 27784 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T02:51:21.908+08:00 INFO 27784 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T02:51:22.241+08:00 INFO 27784 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T02:51:22.241+08:00 INFO 27784 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T02:51:22.324+08:00 INFO 27784 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T02:51:22.324+08:00 INFO 27784 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T02:51:22.660+08:00 INFO 27784 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T02:51:22.660+08:00 INFO 27784 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T02:51:23.406+08:00 INFO 27784 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T02:51:23.406+08:00 INFO 27784 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T02:51:23.489+08:00 INFO 27784 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T02:51:23.489+08:00 INFO 27784 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T02:51:23.568+08:00 INFO 27784 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T02:51:23.569+08:00 INFO 27784 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T02:51:23.649+08:00 INFO 27784 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T02:51:23.649+08:00 INFO 27784 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T02:51:23.661+08:00 INFO 27784 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T02:51:23.674+08:00 INFO 27784 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T02:51:23.674+08:00 INFO 27784 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T02:51:23.756+08:00 INFO 27784 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T02:51:23.768+08:00 INFO 27784 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T02:51:23.780+08:00 INFO 27784 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T02:51:23.780+08:00 INFO 27784 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T02:51:23.861+08:00 INFO 27784 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T02:51:23.872+08:00 INFO 27784 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T02:51:23.872+08:00 INFO 27784 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T02:51:23.954+08:00 INFO 27784 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T02:51:23.955+08:00 INFO 27784 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T02:51:24.035+08:00 INFO 27784 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T02:51:24.046+08:00 INFO 27784 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T02:51:24.046+08:00 INFO 27784 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T02:51:24.127+08:00 INFO 27784 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T02:51:24.127+08:00 INFO 27784 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T02:51:24.208+08:00 INFO 27784 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T02:51:24.208+08:00 INFO 27784 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T02:51:24.289+08:00 INFO 27784 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T02:51:24.359+08:00 INFO 27784 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T02:51:24.382+08:00 INFO 27784 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T02:51:24.553+08:00 INFO 27784 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T02:51:33.417+08:00 INFO 27784 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T02:51:33.428+08:00 INFO 27784 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T02:52:17.401+08:00 INFO 27784 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T02:52:17.401+08:00 INFO 27784 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T02:52:17.402+08:00 INFO 27784 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T02:52:18.141+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:52:21.695+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021002 ǩ token -2026-09-11T02:52:35.186+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68003, msg=ӮĿstage5 ջ״̬ɻ -2026-09-11T02:52:58.693+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:52:59.511+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68005, msg=׶λ˽Աܼɲ -2026-09-11T02:52:59.567+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=99021003 ǩ token -2026-09-11T02:53:00.198+08:00 WARN 27784 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68010, msg=ĿˡԱִܼи״̬ -2026-09-11T02:53:00.281+08:00 ERROR 27784 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.web.context.request.async.AsyncRequestNotUsableException: ServletOutputStream failed to write: java.io.IOException: еֹһѽӡ - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleHttpServletResponse.handleIOException(StandardServletAsyncWebRequest.java:343) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.write(StandardServletAsyncWebRequest.java:401) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:261) ~[spring-core-6.1.14.jar!/:6.1.14] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2210) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1204) ~[jackson-core-2.17.2.jar!/:2.17.2] - at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1063) ~[jackson-databind-2.17.2.jar!/:2.17.2] - at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:483) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:114) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:297) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:192) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:136) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: еֹһѽӡ - at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:341) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:776) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:673) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:376) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:354) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:103) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:639) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.context.request.async.StandardServletAsyncWebRequest$LifecycleServletOutputStream.write(StandardServletAsyncWebRequest.java:398) ~[spring-web-6.1.14.jar!/:6.1.14] - ... 107 common frames omitted -Caused by: java.io.IOException: еֹһѽӡ - at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:na] - at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) ~[na:na] - at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:132) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:97) ~[na:na] - at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:53) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:532) ~[na:na] - at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:122) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1378) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:589) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:533) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:548) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:111) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.Response.doWrite(Response.java:633) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:329) ~[tomcat-embed-core-10.1.31.jar!/:na] - ... 114 common frames omitted - -2026-09-11T03:00:00.048+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.crm.file.task.OrphanChunkCleanupTask : ¶ʱƬɣɾ 0 -2026-09-11T03:00:00.048+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.c.o.job.OpportunityMaintenanceJob : [̻άJob] ʼnow=2026-09-11T03:00:00.048295200 -2026-09-11T03:00:00.091+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.c.o.job.OpportunityMaintenanceJob : [̻άJob] ɣ0 ¼ -2026-09-11T03:00:00.091+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.c.o.job.OpportunityMaintenanceJob : [̻άJob] ɣ0 ̻ -2026-09-11T03:00:00.091+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.c.o.job.OpportunityMaintenanceJob : [̻άJob] ȫ -2026-09-11T03:30:00.037+08:00 INFO 27784 --- [crm-app] [scheduling-1] com.crm.log.task.LogFileCleanupTask : ־ļɣ 0 -2026-09-11T03:50:00.024+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@3c5d5487 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T03:50:00.037+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@53e3d233 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T03:50:00.048+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@43ef9071 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T03:50:00.058+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@523f4cd1 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T03:50:00.069+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@490c37d (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T03:50:00.078+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@492feb96 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T03:50:00.087+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@767c96da (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:00:00.027+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T04:00:00.027052700 -2026-09-11T04:00:00.105+08:00 INFO 27784 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T04:49:00.010+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4ff18469 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:49:00.023+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@677a6b46 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:49:00.035+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@2494f26f (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:49:00.047+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@18b7ad4e (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:49:00.059+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@5b26a0fd (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:49:00.067+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6f32c084 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T04:49:00.079+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6c365087 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:18:00.021+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@1c79eeeb (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:18:00.033+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@3d56463 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:18:47.776+08:00 ERROR 27784 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ȫ쳣 - -org.springframework.data.redis.RedisSystemException: Redis exception - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:72) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:673) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$DefaultSingleInvocationSpec.get(LettuceInvoker.java:589) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.setEx(LettuceStringCommands.java:134) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.DefaultedRedisConnection.setEx(DefaultedRedisConnection.java:340) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.connection.DefaultStringRedisConnection.setEx(DefaultStringRedisConnection.java:785) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:265) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:258) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:253) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - at com.crm.auth.security.impl.SessionStoreImpl.openSession(SessionStoreImpl.java:38) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.auth.controller.DebugTokenController.token(DebugTokenController.java:67) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) ~[spring-aop-6.1.14.jar!/:6.1.14] - at com.crm.auth.controller.DebugTokenController$$SpringCGLIB$$0.token() ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at com.crm.auth.security.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) ~[crm-auth-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) ~[spring-security-web-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) ~[spring-webmvc-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) ~[spring-security-config-6.3.4.jar!/:6.3.4] - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at com.crm.base.filter.TraceIdFilter.doFilterInternal(TraceIdFilter.java:39) ~[crm-base-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.14.jar!/:6.1.14] - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.31.jar!/:na] - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.31.jar!/:na] - at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] -Caused by: io.lettuce.core.RedisException: java.net.SocketException: Connection reset - at io.lettuce.core.internal.Exceptions.bubble(Exceptions.java:83) ~[lettuce-core-6.3.2.RELEASE.jar!/:6.3.2.RELEASE/8941aea] - at io.lettuce.core.internal.Futures.awaitOrCancel(Futures.java:250) ~[lettuce-core-6.3.2.RELEASE.jar!/:6.3.2.RELEASE/8941aea] - at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:74) ~[lettuce-core-6.3.2.RELEASE.jar!/:6.3.2.RELEASE/8941aea] - at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1010) ~[spring-data-redis-3.3.5.jar!/:3.3.5] - ... 137 common frames omitted -Caused by: java.net.SocketException: Connection reset - at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[na:na] - at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[na:na] - at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) ~[netty-buffer-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) ~[netty-buffer-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final] - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final] - ... 1 common frames omitted - -2026-09-11T06:18:47.838+08:00 INFO 27784 --- [crm-app] [lettuce-eventExecutorLoop-1-1] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was /8.129.84.155:6379 -2026-09-11T06:18:47.882+08:00 INFO 27784 --- [crm-app] [lettuce-nioEventLoop-4-2] i.l.core.protocol.ReconnectionHandler : Reconnected to 8.129.84.155/:6379 -2026-09-11T06:47:00.015+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@255ac93 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.027+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@245edac2 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.037+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@56eda5af (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.048+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@5669e076 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.060+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@7977ff1c (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.069+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@2bada23a (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.078+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@10d6aa3d (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T06:47:00.086+08:00 WARN 27784 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@9259201 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T11:42:28.620+08:00 INFO 10452 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.15 with PID 10452 (D:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by luowj in D:\code\crm-backend-matt) -2026-09-11T11:42:28.647+08:00 INFO 10452 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T11:42:31.162+08:00 INFO 10452 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T11:42:31.165+08:00 INFO 10452 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T11:42:31.219+08:00 INFO 10452 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 38 ms. Found 0 JPA repository interfaces. -2026-09-11T11:42:31.255+08:00 INFO 10452 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T11:42:31.259+08:00 INFO 10452 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T11:42:31.280+08:00 INFO 10452 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 8 ms. Found 0 Redis repository interfaces. -2026-09-11T11:42:31.570+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.571+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.571+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.571+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.572+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.572+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.572+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.572+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.572+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.572+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.573+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.573+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.573+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.574+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.575+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.576+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.576+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.577+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.577+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.577+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.577+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.577+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.577+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.578+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.579+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.580+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.581+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.581+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.581+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.581+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.581+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.581+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.582+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.582+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.582+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.582+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.582+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.583+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.583+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.583+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.583+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.583+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.583+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.584+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.585+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.586+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.587+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.587+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T11:42:31.592+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.593+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.593+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.593+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.593+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.593+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.594+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.595+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.596+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.596+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.596+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.596+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.596+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.596+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.597+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.597+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.597+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.597+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.597+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.597+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.598+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.599+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.600+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.601+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.602+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.603+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.603+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:42:31.603+08:00 WARN 10452 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T11:42:33.237+08:00 INFO 10452 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T11:42:33.265+08:00 INFO 10452 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T11:42:33.266+08:00 INFO 10452 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T11:42:33.352+08:00 INFO 10452 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T11:42:33.353+08:00 INFO 10452 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4613 ms -2026-09-11T11:42:34.237+08:00 INFO 10452 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T11:42:34.459+08:00 INFO 10452 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T11:42:35.602+08:00 INFO 10452 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T11:42:35.700+08:00 INFO 10452 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T11:42:35.750+08:00 INFO 10452 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T11:42:36.302+08:00 INFO 10452 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T11:42:36.355+08:00 INFO 10452 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T11:42:37.282+08:00 INFO 10452 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@46977829 -2026-09-11T11:42:37.284+08:00 INFO 10452 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T11:42:37.442+08:00 WARN 10452 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T11:42:39.935+08:00 INFO 10452 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T11:43:00.191+08:00 INFO 10452 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T11:43:00.949+08:00 WARN 10452 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T11:43:00.949+08:00 WARN 10452 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T11:43:00.950+08:00 WARN 10452 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T11:43:00.950+08:00 WARN 10452 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T11:43:00.950+08:00 WARN 10452 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T11:43:05.896+08:00 INFO 10452 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T11:43:05.899+08:00 INFO 10452 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T11:43:06.866+08:00 INFO 10452 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T11:43:08.335+08:00 INFO 10452 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T11:43:08.338+08:00 INFO 10452 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T11:43:09.027+08:00 WARN 10452 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 601d8d53-38d6-445d-b5a1-2033227ee02f - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T11:43:09.076+08:00 INFO 10452 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T11:43:11.724+08:00 INFO 10452 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T11:43:11.799+08:00 INFO 10452 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T11:43:11.847+08:00 INFO 10452 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 44.184 seconds (process running for 45.144) -2026-09-11T11:43:11.853+08:00 INFO 10452 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T11:43:12.159+08:00 INFO 10452 --- [crm-app] [http-nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T11:43:12.159+08:00 INFO 10452 --- [crm-app] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T11:43:12.163+08:00 INFO 10452 --- [crm-app] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 3 ms -2026-09-11T11:43:12.843+08:00 INFO 10452 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T11:43:12.843+08:00 INFO 10452 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T11:43:13.435+08:00 INFO 10452 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T11:43:13.436+08:00 INFO 10452 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T11:43:13.539+08:00 INFO 10452 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T11:43:13.539+08:00 INFO 10452 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T11:43:13.930+08:00 INFO 10452 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T11:43:13.931+08:00 INFO 10452 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T11:43:14.804+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:43:15.399+08:00 INFO 10452 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T11:43:15.399+08:00 INFO 10452 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T11:43:15.498+08:00 INFO 10452 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T11:43:15.498+08:00 INFO 10452 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T11:43:15.605+08:00 INFO 10452 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T11:43:15.605+08:00 INFO 10452 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T11:43:15.702+08:00 INFO 10452 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T11:43:15.702+08:00 INFO 10452 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T11:43:15.715+08:00 INFO 10452 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T11:43:15.729+08:00 INFO 10452 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T11:43:15.729+08:00 INFO 10452 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T11:43:15.822+08:00 INFO 10452 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T11:43:15.836+08:00 INFO 10452 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T11:43:15.858+08:00 INFO 10452 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T11:43:15.858+08:00 INFO 10452 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T11:43:15.946+08:00 INFO 10452 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T11:43:15.958+08:00 INFO 10452 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T11:43:15.958+08:00 INFO 10452 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T11:43:16.049+08:00 INFO 10452 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T11:43:16.049+08:00 INFO 10452 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T11:43:16.137+08:00 INFO 10452 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T11:43:16.149+08:00 INFO 10452 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T11:43:16.149+08:00 INFO 10452 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T11:43:16.250+08:00 INFO 10452 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T11:43:16.250+08:00 INFO 10452 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T11:43:16.337+08:00 INFO 10452 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T11:43:16.338+08:00 INFO 10452 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T11:43:16.428+08:00 INFO 10452 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T11:43:16.508+08:00 INFO 10452 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T11:43:16.533+08:00 INFO 10452 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T11:43:16.534+08:00 INFO 10452 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T11:43:27.215+08:00 INFO 10452 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T11:43:27.689+08:00 INFO 10452 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T11:45:18.206+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:45:18.249+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T11:45:28.531+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T11:45:28.980+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67005, msg=ȱֹ汾 -2026-09-11T11:45:29.646+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T11:45:29.811+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ϵ绰ΪֻŸʽ -2026-09-11T11:45:29.986+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻȨ -2026-09-11T11:45:32.630+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻѱɾ -2026-09-11T11:45:33.181+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=ʽݱ -2026-09-11T11:45:33.405+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=´θʱ䲻ڵǰʱ -2026-09-11T11:45:34.623+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67009, msg=ظύͬĸ -2026-09-11T11:45:40.902+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=ԱΪ -2026-09-11T11:45:41.092+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=۸˲ͬʱΪЭͬˣ739564171091247104 -2026-09-11T11:45:41.800+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67016, msg=ûЭͬˣ744842318024015872 -2026-09-11T11:45:44.303+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67004, msg=ͻѱȡڹ -2026-09-11T11:45:44.473+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67004, msg=ͻѱȡڹ -2026-09-11T11:45:44.667+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67012, msg=ܷǰ -2026-09-11T11:45:45.709+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67007, msg=ͻڽ̻빫 -2026-09-11T11:45:46.817+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67006, msg=ͻڽ̻ɹ鵵 -2026-09-11T11:45:47.015+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67006, msg=ͻڽ̻ɹ鵵 -2026-09-11T11:46:35.241+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:46:35.302+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T11:46:39.698+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67011, msg=ԭ -2026-09-11T11:46:39.877+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67011, msg=ܼ಻ڿɽӷΧ -2026-09-11T11:46:41.585+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67010, msg=δɵĽӵظ -2026-09-11T11:46:45.821+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67012, msg=󲻴ڡͣûְ -2026-09-11T11:46:52.661+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=뷽ʽǷ//£ -2026-09-11T11:46:53.224+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=ģ汾ƥ䣬µģ壨 2 бͷ -2026-09-11T11:46:53.469+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=ļ -2026-09-11T11:46:55.337+08:00 ERROR 10452 --- [crm-app] [task-1] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753582269339271168, thumbKey=thumbnails/753582269339271168.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:46:55.852+08:00 ERROR 10452 --- [crm-app] [task-2] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753582271583223808, thumbKey=thumbnails/753582271583223808.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:46:55.904+08:00 ERROR 10452 --- [crm-app] [task-3] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753582275588784128, thumbKey=thumbnails/753582275588784128.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:46:55.945+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67014, msg=ȷϣظύ -2026-09-11T11:46:56.775+08:00 INFO 10452 --- [crm-app] [task-4] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753582270069080064, insert=2, update=0, unchanged=0, fail=7, suspect=1 -2026-09-11T11:46:58.425+08:00 INFO 10452 --- [crm-app] [task-5] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753582271830687744, insert=0, update=2, unchanged=1, fail=7, suspect=0 -2026-09-11T11:47:00.369+08:00 INFO 10452 --- [crm-app] [http-nio-8080-exec-1] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=1, firstTrigger=1/1, secondInterval=1/1 -2026-09-11T11:47:00.560+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=״δѼΪ -2026-09-11T11:47:00.699+08:00 WARN 10452 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=״δѼΪ -2026-09-11T11:47:00.953+08:00 INFO 10452 --- [crm-app] [http-nio-8080-exec-9] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=0, firstTrigger=0/2, secondInterval=0/2 -2026-09-11T11:47:01.130+08:00 INFO 10452 --- [crm-app] [http-nio-8080-exec-10] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=1, firstTrigger=1/1, secondInterval=1/1 -2026-09-11T11:47:07.854+08:00 INFO 33060 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.15 with PID 33060 (D:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by luowj in D:\code\crm-backend-matt) -2026-09-11T11:47:07.857+08:00 INFO 33060 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T11:47:10.940+08:00 INFO 33060 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T11:47:10.955+08:00 INFO 33060 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T11:47:10.992+08:00 INFO 33060 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 28 ms. Found 0 JPA repository interfaces. -2026-09-11T11:47:11.018+08:00 INFO 33060 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T11:47:11.020+08:00 INFO 33060 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T11:47:11.039+08:00 INFO 33060 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces. -2026-09-11T11:47:11.328+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.328+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.328+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.329+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.329+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.329+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.329+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.329+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.329+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.331+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.331+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.332+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.333+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.334+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.335+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.336+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.337+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.338+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.339+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.340+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.340+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.340+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.340+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.342+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T11:47:11.349+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.349+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.349+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.349+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.349+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.350+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.351+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.352+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.353+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.354+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.355+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.355+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.355+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.355+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.355+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.355+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.356+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.357+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.358+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.358+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.358+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.359+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.360+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:47:11.361+08:00 WARN 33060 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T11:47:13.169+08:00 INFO 33060 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T11:47:13.196+08:00 INFO 33060 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T11:47:13.196+08:00 INFO 33060 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T11:47:13.309+08:00 INFO 33060 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T11:47:13.309+08:00 INFO 33060 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5357 ms -2026-09-11T11:47:14.243+08:00 INFO 33060 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T11:47:14.455+08:00 INFO 33060 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T11:47:15.658+08:00 INFO 33060 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T11:47:15.809+08:00 INFO 33060 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T11:47:15.895+08:00 INFO 33060 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T11:47:16.588+08:00 INFO 33060 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T11:47:16.698+08:00 INFO 33060 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T11:47:17.346+08:00 INFO 33060 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@1a56cb99 -2026-09-11T11:47:17.347+08:00 INFO 33060 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T11:47:17.448+08:00 WARN 33060 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T11:47:21.071+08:00 INFO 33060 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T11:47:40.298+08:00 INFO 33060 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T11:47:41.119+08:00 WARN 33060 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T11:47:41.119+08:00 WARN 33060 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T11:47:41.119+08:00 WARN 33060 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T11:47:41.119+08:00 WARN 33060 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T11:47:41.119+08:00 WARN 33060 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T11:47:45.218+08:00 INFO 33060 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T11:47:45.221+08:00 INFO 33060 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T11:47:45.710+08:00 INFO 33060 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T11:47:46.733+08:00 INFO 33060 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T11:47:46.736+08:00 INFO 33060 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T11:47:47.377+08:00 WARN 33060 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 8604c057-3c81-4928-a405-d5309043ef95 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T11:47:47.419+08:00 INFO 33060 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T11:47:49.184+08:00 INFO 33060 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T11:47:49.230+08:00 INFO 33060 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T11:47:49.265+08:00 INFO 33060 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 42.393 seconds (process running for 43.915) -2026-09-11T11:47:49.278+08:00 INFO 33060 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T11:47:49.651+08:00 INFO 33060 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T11:47:49.652+08:00 INFO 33060 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T11:47:49.653+08:00 INFO 33060 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms -2026-09-11T11:47:49.950+08:00 INFO 33060 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T11:47:49.951+08:00 INFO 33060 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T11:47:50.313+08:00 INFO 33060 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T11:47:50.314+08:00 INFO 33060 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T11:47:50.405+08:00 INFO 33060 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T11:47:50.405+08:00 INFO 33060 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T11:47:51.470+08:00 INFO 33060 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T11:47:51.470+08:00 INFO 33060 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T11:47:51.831+08:00 INFO 33060 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T11:47:51.831+08:00 INFO 33060 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T11:47:51.922+08:00 INFO 33060 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T11:47:51.922+08:00 INFO 33060 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T11:47:52.007+08:00 INFO 33060 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T11:47:52.007+08:00 INFO 33060 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T11:47:52.101+08:00 INFO 33060 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T11:47:52.102+08:00 INFO 33060 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T11:47:52.116+08:00 INFO 33060 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T11:47:52.129+08:00 INFO 33060 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T11:47:52.130+08:00 INFO 33060 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T11:47:52.223+08:00 INFO 33060 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T11:47:52.236+08:00 INFO 33060 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T11:47:52.254+08:00 INFO 33060 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T11:47:52.254+08:00 INFO 33060 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T11:47:52.337+08:00 INFO 33060 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T11:47:52.346+08:00 INFO 33060 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T11:47:52.347+08:00 INFO 33060 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T11:47:52.436+08:00 INFO 33060 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T11:47:52.437+08:00 INFO 33060 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T11:47:52.525+08:00 INFO 33060 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T11:47:52.537+08:00 INFO 33060 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T11:47:52.538+08:00 INFO 33060 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T11:47:52.623+08:00 INFO 33060 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T11:47:52.624+08:00 INFO 33060 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T11:47:52.715+08:00 INFO 33060 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T11:47:52.716+08:00 INFO 33060 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T11:47:52.796+08:00 INFO 33060 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T11:47:52.859+08:00 INFO 33060 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T11:47:52.883+08:00 INFO 33060 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T11:47:52.883+08:00 INFO 33060 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T11:48:00.018+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:48:00.018209400 -2026-09-11T11:48:00.183+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 3 êʧЧ 0 -2026-09-11T11:48:02.280+08:00 INFO 33060 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T11:48:02.507+08:00 INFO 33060 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T11:48:30.010+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:48:30.010889800 -2026-09-11T11:48:30.181+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T11:49:00.055+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:49:00.055965200 -2026-09-11T11:49:00.153+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T11:49:30.004+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:49:30.004078300 -2026-09-11T11:49:30.137+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T11:50:00.057+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:50:00.057743600 -2026-09-11T11:50:00.133+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T11:50:30.002+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:50:30.002966 -2026-09-11T11:50:30.083+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T11:51:00.001+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ʼnow=2026-09-11T11:51:00.001704100 -2026-09-11T11:51:00.071+08:00 INFO 33060 --- [crm-app] [scheduling-1] c.crm.customer.job.CustomerReminderJob : [ͻJob] ɣ 0 êʧЧ 0 -2026-09-11T11:51:24.578+08:00 INFO 33060 --- [crm-app] [http-nio-8080-exec-5] .c.r.s.i.CustomerReminderRuleServiceImpl : [ͻѹ] ȫDZ棺operator=739564171091247104, masterEnabled=1, firstTrigger=1/30, secondInterval=1/7 -2026-09-11T11:51:29.150+08:00 INFO 8720 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.15 with PID 8720 (D:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by luowj in D:\code\crm-backend-matt) -2026-09-11T11:51:29.153+08:00 INFO 8720 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T11:51:31.729+08:00 INFO 8720 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T11:51:31.730+08:00 INFO 8720 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T11:51:31.775+08:00 INFO 8720 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 34 ms. Found 0 JPA repository interfaces. -2026-09-11T11:51:31.799+08:00 INFO 8720 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T11:51:31.800+08:00 INFO 8720 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T11:51:31.817+08:00 INFO 8720 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 Redis repository interfaces. -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.073+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.074+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.075+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.076+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.076+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.076+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.076+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.076+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.076+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.077+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.078+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.079+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.080+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.080+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.080+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.080+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.080+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.080+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.081+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.082+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.082+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.082+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.082+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.082+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.082+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.083+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.083+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.083+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.084+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T11:51:32.089+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.089+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.089+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.090+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.091+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.092+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.093+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.094+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.095+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.096+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.097+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T11:51:32.097+08:00 WARN 8720 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T11:51:33.819+08:00 INFO 8720 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T11:51:33.842+08:00 INFO 8720 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T11:51:33.842+08:00 INFO 8720 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T11:51:33.943+08:00 INFO 8720 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T11:51:33.944+08:00 INFO 8720 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4697 ms -2026-09-11T11:51:34.677+08:00 INFO 8720 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T11:51:34.845+08:00 INFO 8720 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T11:51:35.881+08:00 INFO 8720 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T11:51:35.961+08:00 INFO 8720 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T11:51:36.008+08:00 INFO 8720 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T11:51:36.458+08:00 INFO 8720 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T11:51:36.505+08:00 INFO 8720 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T11:51:37.111+08:00 INFO 8720 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@262ea940 -2026-09-11T11:51:37.115+08:00 INFO 8720 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T11:51:37.232+08:00 WARN 8720 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T11:51:39.942+08:00 INFO 8720 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T11:52:02.450+08:00 INFO 8720 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T11:52:03.100+08:00 WARN 8720 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T11:52:03.100+08:00 WARN 8720 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T11:52:03.100+08:00 WARN 8720 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T11:52:03.101+08:00 WARN 8720 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T11:52:03.101+08:00 WARN 8720 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T11:52:06.760+08:00 INFO 8720 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T11:52:06.763+08:00 INFO 8720 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T11:52:07.370+08:00 INFO 8720 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T11:52:08.652+08:00 INFO 8720 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T11:52:08.655+08:00 INFO 8720 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T11:52:09.285+08:00 WARN 8720 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 1a232a23-4d59-4cf9-b51e-c95bc3b749b9 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T11:52:09.332+08:00 INFO 8720 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T11:52:11.011+08:00 INFO 8720 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T11:52:11.045+08:00 INFO 8720 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T11:52:11.075+08:00 INFO 8720 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 42.76 seconds (process running for 43.993) -2026-09-11T11:52:11.079+08:00 INFO 8720 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T11:52:11.490+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' -2026-09-11T11:52:11.491+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T11:52:11.495+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 4 ms -2026-09-11T11:52:11.921+08:00 INFO 8720 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T11:52:11.922+08:00 INFO 8720 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T11:52:12.343+08:00 INFO 8720 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T11:52:12.343+08:00 INFO 8720 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T11:52:12.448+08:00 INFO 8720 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T11:52:12.449+08:00 INFO 8720 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T11:52:13.205+08:00 INFO 8720 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T11:52:13.206+08:00 INFO 8720 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T11:52:14.954+08:00 INFO 8720 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T11:52:14.955+08:00 INFO 8720 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T11:52:15.293+08:00 INFO 8720 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T11:52:15.293+08:00 INFO 8720 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T11:52:15.391+08:00 INFO 8720 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T11:52:15.392+08:00 INFO 8720 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T11:52:15.393+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67003, msg=ͳһôѱռãϵͳѴڸҵ -2026-09-11T11:52:15.525+08:00 INFO 8720 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T11:52:15.525+08:00 INFO 8720 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T11:52:15.542+08:00 INFO 8720 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T11:52:15.559+08:00 INFO 8720 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T11:52:15.559+08:00 INFO 8720 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T11:52:15.674+08:00 INFO 8720 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T11:52:15.695+08:00 INFO 8720 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T11:52:15.712+08:00 INFO 8720 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T11:52:15.712+08:00 INFO 8720 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T11:52:15.848+08:00 INFO 8720 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T11:52:15.861+08:00 INFO 8720 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T11:52:15.861+08:00 INFO 8720 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T11:52:15.962+08:00 INFO 8720 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T11:52:15.962+08:00 INFO 8720 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T11:52:16.056+08:00 INFO 8720 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T11:52:16.070+08:00 INFO 8720 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T11:52:16.070+08:00 INFO 8720 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T11:52:16.160+08:00 INFO 8720 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T11:52:16.161+08:00 INFO 8720 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T11:52:16.274+08:00 INFO 8720 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T11:52:16.274+08:00 INFO 8720 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T11:52:16.399+08:00 INFO 8720 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T11:52:16.485+08:00 INFO 8720 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T11:52:16.523+08:00 INFO 8720 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T11:52:16.523+08:00 INFO 8720 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T11:52:29.754+08:00 INFO 8720 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T11:52:29.768+08:00 INFO 8720 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T11:53:42.825+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:53:42.869+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T11:53:45.853+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻ -2026-09-11T11:53:46.040+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻȨ -2026-09-11T11:53:46.230+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67017, msg=սЭȼΪ 1~3 -2026-09-11T11:53:46.406+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67017, msg=սЭȼΪ 1~3 -2026-09-11T11:53:50.191+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67017, msg=ǩ -2026-09-11T11:53:50.319+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67017, msg=Э鲻ڻȨ -2026-09-11T11:53:50.536+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67017, msg=Э鲻ڻȨ -2026-09-11T11:53:50.689+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67017, msg=Э鲻ڻȨ -2026-09-11T11:53:53.950+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.r.s.i.CustomerDedupRuleServiceImpl : [ͻ] ȫDZ棺operator=739564171091247104, master=1, name=1/1ģʽֵ60%, phone=1 -2026-09-11T11:53:54.244+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.r.s.i.CustomerDedupRuleServiceImpl : [ͻ] ȫDZ棺operator=739564171091247104, master=0, name=0/2ģʽֵ90%, phone=0 -2026-09-11T11:53:54.419+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.r.s.i.CustomerDedupRuleServiceImpl : [ͻ] ȫDZ棺operator=739564171091247104, master=0, name=0/1ģʽֵ80%, phone=0 -2026-09-11T11:53:54.638+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=ƥ䷽ʽΪ 1(ȷ)/2(ģ)ƶֵΪ 0~100 -2026-09-11T11:53:54.791+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=ƥ䷽ʽΪ 1(ȷ)/2(ģ)ƶֵΪ 0~100 -2026-09-11T11:53:54.935+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=64023, msg=ƥ䷽ʽΪ 1(ȷ)/2(ģ)ƶֵΪ 0~100 -2026-09-11T11:53:55.194+08:00 INFO 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.r.s.i.CustomerDedupRuleServiceImpl : [ͻ] ȫDZ棺operator=739564171091247104, master=1, name=1/2ģʽֵ80%, phone=1 -2026-09-11T11:53:56.685+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ȱids -2026-09-11T11:53:56.869+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg= 100 ͻ -2026-09-11T11:54:00.880+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=68001, msg=ͼ̬Ƿ֧ list/split/board -2026-09-11T11:54:08.153+08:00 ERROR 8720 --- [crm-app] [task-1] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753584089071616000, thumbKey=thumbnails/753584089071616000.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:54:08.497+08:00 ERROR 8720 --- [crm-app] [task-2] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753584091172962304, thumbKey=thumbnails/753584091172962304.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:54:08.609+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=ظԷǷظʱǵ/룩 -2026-09-11T11:54:09.012+08:00 INFO 8720 --- [crm-app] [task-3] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753584089704955904, insert=0, update=0, unchanged=0, fail=2, suspect=0 -2026-09-11T11:54:10.862+08:00 INFO 8720 --- [crm-app] [task-4] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753584091592392704, insert=0, update=1, unchanged=0, fail=1, suspect=0 -2026-09-11T11:55:33.024+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:55:33.062+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T11:55:37.892+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=߲753584456966602752 -2026-09-11T11:55:38.376+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ڱظ753584456819802112 753584456966602752 -2026-09-11T11:55:38.876+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ȼңϼȼϸ¼3 10 -2026-09-11T11:55:39.359+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=δڵ㲻Ϊ߶˵㣨ϸӶ753584456819802112/753584457247621120 -2026-09-11T11:55:39.858+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=߶˵㲻ڿսڵ㼯 -2026-09-11T11:55:40.337+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67020, msg=Υ¼ 753584457100820480 ֶϼ -2026-09-11T11:55:41.279+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T11:55:44.530+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67021, msg=мΪ -2026-09-11T11:55:48.416+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67022, msg=༭мΪ -2026-09-11T11:55:49.659+08:00 ERROR 8720 --- [crm-app] [task-5] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753584515766550528, thumbKey=thumbnails/753584515766550528.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:55:50.888+08:00 ERROR 8720 --- [crm-app] [task-6] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753584521118482432, thumbKey=thumbnails/753584521118482432.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:55:51.106+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67023, msg=ģ汾ƥ䣬µģ壨 1 бͷ -2026-09-11T11:55:51.550+08:00 INFO 8720 --- [crm-app] [task-7] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753584521315614720, insert=3, update=0, unchanged=0, fail=2, suspect=0 -2026-09-11T11:55:53.061+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67024, msg=ȷϣظύ -2026-09-11T11:55:53.088+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:55:54.208+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T11:57:25.583+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:57:49.600+08:00 ERROR 8720 --- [crm-app] [task-8] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753585018948812800, thumbKey=thumbnails/753585018948812800.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:57:51.371+08:00 ERROR 8720 --- [crm-app] [task-9] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753585025911357440, thumbKey=thumbnails/753585025911357440.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T11:57:51.848+08:00 INFO 8720 --- [crm-app] [task-10] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753585026179792896, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T11:59:14.790+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T11:59:17.313+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:01:06.827+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:03:17.595+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:03:49.022+08:00 ERROR 8720 --- [crm-app] [task-11] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753586526318755840, thumbKey=thumbnails/753586526318755840.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:03:51.088+08:00 INFO 8720 --- [crm-app] [task-12] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753586526553636864, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T12:03:53.646+08:00 ERROR 8720 --- [crm-app] [task-13] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753586545948098560, thumbKey=thumbnails/753586545948098560.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:21:21.278+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:21:21.900+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:22:50.074+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:22:50.503+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:19.938+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:20.294+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:20.716+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:20.880+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:21.044+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:21.398+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:21.580+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:22.046+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:22.341+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:22.508+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:22.699+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67008, msg=ϵ˲ڻȨ -2026-09-11T12:23:23.422+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:23.530+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ȱimportMode -2026-09-11T12:23:52.319+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:52.714+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:53.277+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:53.475+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:53.645+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:54.039+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:54.213+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:54.366+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:54.665+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:54.816+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:55.713+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:23:55.914+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67013, msg=ģ汾ƥ䣬µģ壨 1 бͷ -2026-09-11T12:25:12.495+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:12.834+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:13.235+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:13.402+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:13.560+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:13.932+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:14.086+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:14.232+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:14.556+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:14.955+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:15.862+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:16.323+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:16.372+08:00 ERROR 8720 --- [crm-app] [task-14] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753591925629517824, thumbKey=thumbnails/753591925629517824.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:25:16.525+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:16.957+08:00 INFO 8720 --- [crm-app] [task-15] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753591926048948224, insert=1, update=0, unchanged=0, fail=1, suspect=1 -2026-09-11T12:25:40.200+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:40.566+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:41.110+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:41.275+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:41.440+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:41.827+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:42.001+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:42.151+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:42.461+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:42.646+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:43.509+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:43.948+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:43.957+08:00 ERROR 8720 --- [crm-app] [task-16] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753592041438445568, thumbKey=thumbnails/753592041438445568.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:25:44.166+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:44.452+08:00 INFO 8720 --- [crm-app] [task-17] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753592041887236096, insert=1, update=0, unchanged=0, fail=1, suspect=1 -2026-09-11T12:25:45.302+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:45.440+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:45.584+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:45.737+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:45.903+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:46.244+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:46.271+08:00 ERROR 8720 --- [crm-app] [task-18] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753592051244728320, thumbKey=thumbnails/753592051244728320.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:25:46.453+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:46.558+08:00 INFO 8720 --- [crm-app] [task-19] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753592051546718208, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T12:25:46.612+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:46.811+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:46.943+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:25:47.135+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:13.059+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:13.410+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:13.850+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:14.035+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:14.193+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:14.555+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:14.733+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:14.910+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:15.211+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:15.378+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:16.208+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:16.603+08:00 ERROR 8720 --- [crm-app] [task-20] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753592178625740800, thumbKey=thumbnails/753592178625740800.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:26:16.608+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:16.818+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:17.117+08:00 INFO 8720 --- [crm-app] [task-21] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753592178873204736, insert=1, update=0, unchanged=0, fail=1, suspect=1 -2026-09-11T12:26:17.967+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:18.095+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:18.247+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:18.414+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:18.838+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:19.157+08:00 ERROR 8720 --- [crm-app] [task-22] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753592189392519168, thumbKey=thumbnails/753592189392519168.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T12:26:19.161+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:19.373+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:19.483+08:00 INFO 8720 --- [crm-app] [task-23] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753592189585457152, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T12:26:19.518+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:19.723+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:19.878+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:20.090+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:20.216+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:20.421+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:20.804+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:21.022+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:21.344+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:21.566+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:21.905+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:22.403+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:22.794+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:23.139+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T12:26:23.223+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T12:26:23.380+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67011, msg=δҵõֱܼ࣬ϵԱά֯ϵ -2026-09-11T12:26:23.403+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:26:23.565+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻͲΪ -2026-09-11T12:27:10.910+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:27:11.506+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ʡݲΪ -2026-09-11T12:27:11.537+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:27:11.737+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ʡݲΪ -2026-09-11T12:27:11.759+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:27:11.888+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ʽRequest method 'GET' is not supported -2026-09-11T12:28:04.830+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T12:28:05.100+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T12:28:05.260+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67011, msg=δҵõֱܼ࣬ϵԱά֯ϵ -2026-09-11T13:37:42.344+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:23.453+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:23.877+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:24.349+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:24.545+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:24.719+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:25.105+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:25.272+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:25.441+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:25.761+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:25.920+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:27.401+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:28.041+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:28.205+08:00 ERROR 8720 --- [crm-app] [task-24] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753611351905009664, thumbKey=thumbnails/753611351905009664.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T13:42:28.286+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:28.701+08:00 INFO 8720 --- [crm-app] [task-25] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753611352894865408, insert=1, update=0, unchanged=0, fail=1, suspect=1 -2026-09-11T13:42:29.459+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:29.622+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:29.773+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:29.927+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:30.132+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:30.482+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:30.534+08:00 ERROR 8720 --- [crm-app] [task-26] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753611362755674112, thumbKey=thumbnails/753611362755674112.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T13:42:30.672+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:30.808+08:00 INFO 8720 --- [crm-app] [task-27] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753611363099607040, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T13:42:30.841+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:31.029+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:31.172+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:31.371+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:31.501+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:31.689+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:32.055+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:32.275+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:32.630+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:32.890+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:33.236+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:33.710+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:34.077+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:35.566+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:42:35.659+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:42:36.261+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:42:36.688+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:42:37.546+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:42:37.732+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻͲΪ -2026-09-11T13:45:42.835+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:43.221+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:43.652+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:43.814+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:44.001+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:44.386+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:44.568+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:44.756+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:45.082+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:45.251+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:46.456+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:46.901+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:46.916+08:00 ERROR 8720 --- [crm-app] [task-28] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753612186726694912, thumbKey=thumbnails/753612186726694912.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T13:45:47.089+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:47.451+08:00 INFO 8720 --- [crm-app] [task-29] c.c.c.task.CustomerImportExecutor : ͻɣtaskId=753612186940604416, insert=1, update=0, unchanged=0, fail=1, suspect=1 -2026-09-11T13:45:48.248+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:48.391+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:48.544+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:48.708+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:48.890+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:49.214+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:49.240+08:00 ERROR 8720 --- [crm-app] [task-30] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753612196398759936, thumbKey=thumbnails/753612196398759936.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at jdk.internal.reflect.GeneratedMethodAccessor731.invoke(Unknown Source) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 18 common frames omitted - -2026-09-11T13:45:49.417+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:49.541+08:00 INFO 8720 --- [crm-app] [task-31] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753612196587503616, insert=1, update=0, unchanged=0, fail=1, suspect=0 -2026-09-11T13:45:49.587+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:49.810+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:49.943+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:50.185+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:50.490+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:50.909+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:51.277+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:51.521+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:51.911+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:52.146+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:52.498+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:53.142+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:53.529+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-4] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:55.074+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:45:55.170+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:45:55.874+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:45:56.382+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T13:45:57.872+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T13:45:58.035+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻͲΪ -2026-09-11T14:19:32.799+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T14:19:33.254+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T14:19:33.477+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T14:19:33.704+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ʡݲΪ -2026-09-11T14:19:33.753+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T14:19:33.990+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ʡݲΪ -2026-09-11T14:20:17.234+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T14:20:17.678+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T14:20:17.908+08:00 WARN 8720 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:14:41.643+08:00 INFO 9156 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.15 with PID 9156 (D:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by luowj in D:\code\crm-backend-matt) -2026-09-11T15:14:41.657+08:00 INFO 9156 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T15:14:44.814+08:00 INFO 9156 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T15:14:44.816+08:00 INFO 9156 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T15:14:44.864+08:00 INFO 9156 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 36 ms. Found 0 JPA repository interfaces. -2026-09-11T15:14:44.894+08:00 INFO 9156 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T15:14:44.896+08:00 INFO 9156 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T15:14:44.921+08:00 INFO 9156 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. -2026-09-11T15:14:45.230+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.230+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.231+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.231+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.231+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.231+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.231+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.231+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.232+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.233+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.233+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.233+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.233+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.233+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.233+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.234+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.234+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.234+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.234+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.234+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.235+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.236+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.237+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.238+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.239+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.240+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.241+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.242+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.243+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.244+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.245+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.246+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.247+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.248+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.249+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.249+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.250+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.251+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.252+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.253+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.254+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.255+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T15:14:45.261+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.262+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.262+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.262+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.262+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.262+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.263+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.264+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.265+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.266+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.267+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.267+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.297+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.298+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.299+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.300+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:14:45.301+08:00 WARN 9156 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T15:14:47.045+08:00 INFO 9156 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T15:14:47.092+08:00 INFO 9156 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T15:14:47.093+08:00 INFO 9156 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T15:14:47.209+08:00 INFO 9156 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T15:14:47.209+08:00 INFO 9156 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5468 ms -2026-09-11T15:14:48.112+08:00 INFO 9156 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T15:14:48.356+08:00 INFO 9156 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T15:14:50.017+08:00 INFO 9156 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T15:14:50.179+08:00 INFO 9156 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T15:14:50.252+08:00 INFO 9156 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T15:14:50.941+08:00 INFO 9156 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T15:14:50.995+08:00 INFO 9156 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T15:14:53.810+08:00 INFO 9156 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@16750a5e -2026-09-11T15:14:53.827+08:00 INFO 9156 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T15:14:54.204+08:00 WARN 9156 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T15:14:59.233+08:00 INFO 9156 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T15:15:23.034+08:00 INFO 9156 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T15:15:24.272+08:00 WARN 9156 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T15:15:24.273+08:00 WARN 9156 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T15:15:24.273+08:00 WARN 9156 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T15:15:24.273+08:00 WARN 9156 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T15:15:24.273+08:00 WARN 9156 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T15:15:28.666+08:00 INFO 9156 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T15:15:28.670+08:00 INFO 9156 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T15:15:29.625+08:00 INFO 9156 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T15:15:30.985+08:00 INFO 9156 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T15:15:30.994+08:00 INFO 9156 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T15:15:32.904+08:00 WARN 9156 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 36a36403-b0d4-4b2c-a271-70665a11bb56 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T15:15:33.041+08:00 INFO 9156 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T15:15:37.536+08:00 INFO 9156 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T15:15:37.864+08:00 INFO 9156 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T15:15:37.998+08:00 INFO 9156 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 57.647 seconds (process running for 58.813) -2026-09-11T15:15:38.018+08:00 INFO 9156 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T15:15:40.769+08:00 INFO 9156 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T15:15:40.769+08:00 INFO 9156 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T15:15:41.139+08:00 INFO 9156 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T15:15:41.140+08:00 INFO 9156 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T15:15:41.228+08:00 INFO 9156 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T15:15:41.228+08:00 INFO 9156 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T15:15:41.616+08:00 INFO 9156 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T15:15:41.616+08:00 INFO 9156 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T15:15:43.966+08:00 INFO 9156 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T15:15:43.966+08:00 INFO 9156 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T15:15:44.061+08:00 INFO 9156 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T15:15:44.062+08:00 INFO 9156 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T15:15:44.155+08:00 INFO 9156 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T15:15:44.156+08:00 INFO 9156 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T15:15:44.247+08:00 INFO 9156 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T15:15:44.247+08:00 INFO 9156 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T15:15:44.266+08:00 INFO 9156 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T15:15:44.282+08:00 INFO 9156 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T15:15:44.282+08:00 INFO 9156 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T15:15:44.394+08:00 INFO 9156 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T15:15:44.414+08:00 INFO 9156 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T15:15:44.434+08:00 INFO 9156 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T15:15:44.434+08:00 INFO 9156 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T15:15:44.573+08:00 INFO 9156 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T15:15:44.589+08:00 INFO 9156 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T15:15:44.589+08:00 INFO 9156 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T15:15:44.685+08:00 INFO 9156 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T15:15:44.685+08:00 INFO 9156 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T15:15:44.777+08:00 INFO 9156 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T15:15:44.789+08:00 INFO 9156 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T15:15:44.789+08:00 INFO 9156 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T15:15:44.886+08:00 INFO 9156 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T15:15:44.886+08:00 INFO 9156 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T15:15:44.976+08:00 INFO 9156 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T15:15:44.976+08:00 INFO 9156 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T15:15:45.088+08:00 INFO 9156 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T15:15:45.236+08:00 INFO 9156 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T15:15:45.260+08:00 INFO 9156 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T15:15:45.260+08:00 INFO 9156 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T15:15:55.581+08:00 INFO 9156 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T15:15:55.592+08:00 INFO 9156 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T15:16:18.832+08:00 INFO 9156 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T15:16:18.847+08:00 INFO 9156 --- [crm-app] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 15 ms -2026-09-11T15:16:22.928+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:16:31.711+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:17:04.443+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:17:05.133+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:17:05.736+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:18:06.294+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:18:06.335+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=744842318024015872 ǩ token -2026-09-11T15:18:13.905+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=߲753635437741867008 -2026-09-11T15:18:14.632+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ڱظ753635437586677760 753635437741867008 -2026-09-11T15:18:15.361+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ȼңϼȼϸ¼3 10 -2026-09-11T15:18:15.974+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=δڵ㲻Ϊ߶˵㣨ϸӶ753635437586677760/753635438148714496 -2026-09-11T15:18:16.609+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=߶˵㲻ڿսڵ㼯 -2026-09-11T15:18:17.176+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67020, msg=Υ¼ 753635437930610688 ֶϼ -2026-09-11T15:18:18.299+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T15:18:22.107+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67021, msg=мΪ -2026-09-11T15:18:26.871+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67022, msg=༭мΪ -2026-09-11T15:18:31.198+08:00 ERROR 9156 --- [crm-app] [task-1] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753635521460174848, thumbKey=thumbnails/753635521460174848.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T15:18:34.191+08:00 ERROR 9156 --- [crm-app] [task-2] c.crm.file.task.ThumbnailGenerationTask : ͼʧܣfileId=753635537494999040, thumbKey=thumbnails/753635537494999040.jpg - -java.io.IOException: Cannot run program "soffice": CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na] - at com.crm.file.service.impl.OfficeThumbnailRenderer.runConversion(OfficeThumbnailRenderer.java:110) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.service.impl.OfficeThumbnailRenderer.render(OfficeThumbnailRenderer.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateSync(ThumbnailGenerationTask.java:140) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generateWithLock(ThumbnailGenerationTask.java:102) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at com.crm.file.task.ThumbnailGenerationTask.generate(ThumbnailGenerationTask.java:70) ~[crm-file-1.0.0-SNAPSHOT.jar!/:1.0.0-SNAPSHOT] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14] - at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:113) ~[spring-aop-6.1.14.jar!/:6.1.14] - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] - at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] -Caused by: java.io.IOException: CreateProcess error=2, ϵͳҲָļ - at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na] - at java.base/java.lang.ProcessImpl.(ProcessImpl.java:505) ~[na:na] - at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[na:na] - at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na] - ... 19 common frames omitted - -2026-09-11T15:18:34.523+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67023, msg=ģ汾ƥ䣬µģ壨 1 бͷ -2026-09-11T15:18:35.021+08:00 INFO 9156 --- [crm-app] [task-3] c.c.customer.task.ContactImportExecutor : ϵ˵ɣtaskId=753635537729880064, insert=3, update=0, unchanged=0, fail=2, suspect=0 -2026-09-11T15:18:36.631+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67024, msg=ȷϣظύ -2026-09-11T15:18:36.677+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:18:37.929+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T15:19:56.285+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:19:56.799+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:19:57.278+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-9] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:19:57.460+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻ -2026-09-11T15:20:21.768+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:20:22.224+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:20:22.607+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:20:44.571+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:20:45.081+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-10] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:20:45.442+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:20:46.221+08:00 WARN 9156 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T15:58:48.747+08:00 INFO 32576 --- [crm-app] [main] com.crm.app.CrmAppApplication : Starting CrmAppApplication v1.0.0-SNAPSHOT using Java 17.0.15 with PID 32576 (D:\code\crm-backend-matt\crm-app\target\crm-app-1.0.0-SNAPSHOT.jar started by luowj in D:\code\crm-backend-matt) -2026-09-11T15:58:48.749+08:00 INFO 32576 --- [crm-app] [main] com.crm.app.CrmAppApplication : The following 1 profile is active: "verify" -2026-09-11T15:58:51.394+08:00 INFO 32576 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T15:58:51.398+08:00 INFO 32576 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-09-11T15:58:51.445+08:00 INFO 32576 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 34 ms. Found 0 JPA repository interfaces. -2026-09-11T15:58:51.476+08:00 INFO 32576 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -2026-09-11T15:58:51.479+08:00 INFO 32576 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2026-09-11T15:58:51.496+08:00 INFO 32576 --- [crm-app] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 Redis repository interfaces. -2026-09-11T15:58:51.777+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.779+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.780+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.780+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.780+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.780+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.781+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.781+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.782+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.783+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.784+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.784+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.784+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.784+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.784+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.784+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.785+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.785+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.785+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.785+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.785+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.786+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.786+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.787+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.787+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.788+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.789+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.790+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.790+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.790+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.790+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.790+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.790+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.791+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.792+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.793+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.793+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.794+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.795+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.795+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.796+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.796+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.797+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.797+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.797+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.798+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.798+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.799+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.800+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.800+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.801+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.801+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.801+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.801+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.801+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.802+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.802+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.802+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.803+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.804+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.804+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.805+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.806+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.806+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.806+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.806+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.806+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.807+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T15:58:51.816+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmBaseMapper' and 'com.crm.base.mapper.CrmBaseMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.816+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authIdentityMapper' and 'com.crm.auth.mapper.AuthIdentityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.816+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'authUserMapper' and 'com.crm.auth.mapper.AuthUserMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.816+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncSettingsMapper' and 'com.crm.auth.mapper.DtSyncSettingsMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.816+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dtSyncTaskMapper' and 'com.crm.auth.mapper.DtSyncTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.817+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDataScopeModuleMapper' and 'com.crm.auth.mapper.SysDataScopeModuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.817+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysDeptMapper' and 'com.crm.auth.mapper.SysDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.817+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysMenuMapper' and 'com.crm.auth.mapper.SysMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.817+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleDataScopeMapper' and 'com.crm.auth.mapper.SysRoleDataScopeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.818+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMapper' and 'com.crm.auth.mapper.SysRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.818+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRoleMenuMapper' and 'com.crm.auth.mapper.SysRoleMenuMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.818+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserDeptMapper' and 'com.crm.auth.mapper.SysUserDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.819+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserRoleMapper' and 'com.crm.auth.mapper.SysUserRoleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.819+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysUserTransferLogMapper' and 'com.crm.auth.mapper.SysUserTransferLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.819+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'fileInfoMapper' and 'com.crm.file.mapper.FileInfoMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.820+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupDefaultMapper' and 'com.crm.dict.mapper.DictGroupDefaultMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.820+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictGroupMapper' and 'com.crm.dict.mapper.DictGroupMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.821+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictItemMapper' and 'com.crm.dict.mapper.DictItemMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.821+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'dictRefCountMapper' and 'com.crm.dict.mapper.DictRefCountMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.822+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerDedupRuleMapper' and 'com.crm.rule.mapper.CustomerDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.822+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerReminderRuleMapper' and 'com.crm.rule.mapper.CustomerReminderRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.822+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMapper' and 'com.crm.rule.mapper.LeadPoolMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.822+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolMemberMapper' and 'com.crm.rule.mapper.LeadPoolMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.823+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolProvinceMapper' and 'com.crm.rule.mapper.LeadPoolProvinceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.823+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadPoolRegionMapper' and 'com.crm.rule.mapper.LeadPoolRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.823+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityDedupRuleMapper' and 'com.crm.rule.mapper.OpportunityDedupRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.823+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleDeptMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.824+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPoolRuleMapper' and 'com.crm.rule.mapper.OpportunityPoolRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.824+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPushRuleMapper' and 'com.crm.rule.mapper.OpportunityPushRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.826+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardFieldMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardFieldMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.826+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.826+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardTemplateMapper' and 'com.crm.rule.mapper.OpportunitySchemeCardTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.827+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeFieldDefMapper' and 'com.crm.rule.mapper.OpportunitySchemeFieldDefMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.827+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageNodeMapper' and 'com.crm.rule.mapper.OpportunityStageNodeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.828+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateDeptMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateDeptMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.828+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageTemplateMapper' and 'com.crm.rule.mapper.OpportunityStageTemplateMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.828+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectRuleMapper' and 'com.crm.rule.mapper.ProjectRuleMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.828+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'sysRegionMapper' and 'com.crm.rule.mapper.SysRegionMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.829+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userColumnPreferenceMapper' and 'com.crm.preference.mapper.UserColumnPreferenceMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.829+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userSavedViewMapper' and 'com.crm.preference.mapper.UserSavedViewMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.830+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'userViewFormMapper' and 'com.crm.preference.mapper.UserViewFormMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.830+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadAttachmentMapper' and 'com.crm.lead.mapper.LeadAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.830+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFeedbackMapper' and 'com.crm.lead.mapper.LeadFeedbackMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.830+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadFollowMapper' and 'com.crm.lead.mapper.LeadFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.830+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadHistoryMapper' and 'com.crm.lead.mapper.LeadHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.831+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'leadMapper' and 'com.crm.lead.mapper.LeadMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.831+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityAttachmentMapper' and 'com.crm.opportunity.mapper.OpportunityAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.831+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityCustomerMapper' and 'com.crm.opportunity.mapper.OpportunityCustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.831+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFocusMapper' and 'com.crm.opportunity.mapper.OpportunityFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.831+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityFollowMapper' and 'com.crm.opportunity.mapper.OpportunityFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.831+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityMapper' and 'com.crm.opportunity.mapper.OpportunityMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityOplogMapper' and 'com.crm.opportunity.mapper.OpportunityOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityPendingNoticeMapper' and 'com.crm.opportunity.mapper.OpportunityPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySchemeCardValueMapper' and 'com.crm.opportunity.mapper.OpportunitySchemeCardValueMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunitySiteSurveyMapper' and 'com.crm.opportunity.mapper.OpportunitySiteSurveyMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStageHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStageHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityStatusHistoryMapper' and 'com.crm.opportunity.mapper.OpportunityStatusHistoryMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.832+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityTeamMapper' and 'com.crm.opportunity.mapper.OpportunityTeamMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityViewLogMapper' and 'com.crm.opportunity.mapper.OpportunityViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'opportunityWorkPlanMapper' and 'com.crm.opportunity.mapper.OpportunityWorkPlanMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportFailMapper' and 'com.crm.customer.mapper.ContactImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'contactImportTaskMapper' and 'com.crm.customer.mapper.ContactImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerAgreementMapper' and 'com.crm.customer.mapper.CustomerAgreementMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactEdgeMapper' and 'com.crm.customer.mapper.CustomerContactEdgeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.833+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactGraphMapper' and 'com.crm.customer.mapper.CustomerContactGraphMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactMapper' and 'com.crm.customer.mapper.CustomerContactMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerContactRevealLogMapper' and 'com.crm.customer.mapper.CustomerContactRevealLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFocusMapper' and 'com.crm.customer.mapper.CustomerFocusMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerFollowMapper' and 'com.crm.customer.mapper.CustomerFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportFailMapper' and 'com.crm.customer.mapper.CustomerImportFailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerImportTaskMapper' and 'com.crm.customer.mapper.CustomerImportTaskMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerMapper' and 'com.crm.customer.mapper.CustomerMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerOplogMapper' and 'com.crm.customer.mapper.CustomerOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerPendingNoticeMapper' and 'com.crm.customer.mapper.CustomerPendingNoticeMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTeamMemberMapper' and 'com.crm.customer.mapper.CustomerTeamMemberMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferDetailMapper' and 'com.crm.customer.mapper.CustomerTransferDetailMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerTransferMapper' and 'com.crm.customer.mapper.CustomerTransferMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'customerViewLogMapper' and 'com.crm.customer.mapper.CustomerViewLogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'crmProjectMapper' and 'com.crm.project.mapper.CrmProjectMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectAttachmentMapper' and 'com.crm.project.mapper.ProjectAttachmentMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectFollowMapper' and 'com.crm.project.mapper.ProjectFollowMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'projectOplogMapper' and 'com.crm.project.mapper.ProjectOplogMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.834+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logBatchMapper' and 'com.crm.log.mapper.LogBatchMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.835+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logLoginMapper' and 'com.crm.log.mapper.LogLoginMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.835+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : Skipping MapperFactoryBean with name 'logOperationMapper' and 'com.crm.log.mapper.LogOperationMapper' mapperInterface. Bean already defined with the same name! -2026-09-11T15:58:51.835+08:00 WARN 32576 --- [crm-app] [main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.crm.**.mapper]' package. Please check your configuration. -2026-09-11T15:58:53.525+08:00 INFO 32576 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) -2026-09-11T15:58:53.556+08:00 INFO 32576 --- [crm-app] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-09-11T15:58:53.556+08:00 INFO 32576 --- [crm-app] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.31] -2026-09-11T15:58:53.640+08:00 INFO 32576 --- [crm-app] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-09-11T15:58:53.641+08:00 INFO 32576 --- [crm-app] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4810 ms -2026-09-11T15:58:54.573+08:00 INFO 32576 --- [crm-app] [main] com.crm.auth.config.PermissionConfig : Ȩܿرɨɣ0 -2026-09-11T15:58:54.809+08:00 INFO 32576 --- [crm-app] [main] com.crm.base.config.CustomIdGenerator : ѩIDʼɣworkerId=0, datacenterId=0 -2026-09-11T15:58:56.069+08:00 INFO 32576 --- [crm-app] [main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-09-11T15:58:56.196+08:00 INFO 32576 --- [crm-app] [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.5.3.Final -2026-09-11T15:58:56.255+08:00 INFO 32576 --- [crm-app] [main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-09-11T15:58:56.790+08:00 INFO 32576 --- [crm-app] [main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-09-11T15:58:56.851+08:00 INFO 32576 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-09-11T15:58:57.618+08:00 INFO 32576 --- [crm-app] [main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@6fc9c0cc -2026-09-11T15:58:57.621+08:00 INFO 32576 --- [crm-app] [main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-09-11T15:58:57.718+08:00 WARN 32576 --- [crm-app] [main] org.hibernate.orm.deprecation : HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2026-09-11T15:59:00.828+08:00 INFO 32576 --- [crm-app] [main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2026-09-11T15:59:21.292+08:00 INFO 32576 --- [crm-app] [main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' -2026-09-11T15:59:21.967+08:00 WARN 32576 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T15:59:21.967+08:00 WARN 32576 --- [crm-app] [main] c.c.a.controller.DebugTokenController : token ӿ /api/auth/debug/token ãverify profile -2026-09-11T15:59:21.967+08:00 WARN 32576 --- [crm-app] [main] c.c.a.controller.DebugTokenController : Ͻκ֪ userId ˿ðû -2026-09-11T15:59:21.967+08:00 WARN 32576 --- [crm-app] [main] c.c.a.controller.DebugTokenController : μ docs/adr/0014-verify-profile-debug-token-endpoint.md -2026-09-11T15:59:21.967+08:00 WARN 32576 --- [crm-app] [main] c.c.a.controller.DebugTokenController : ============================================================ -2026-09-11T15:59:26.502+08:00 INFO 32576 --- [crm-app] [main] c.c.c.p.i.NgramNameSimilarityPortImpl : CustomerNameSimilarityPort һʵ־ԤɸģʽFULLTEXT ngram -2026-09-11T15:59:26.507+08:00 INFO 32576 --- [crm-app] [main] c.c.c.p.impl.StubCompanyLookupPortImpl : CompanyLookupPort һ stub װ䣨δ룬̺ѡؿգ -2026-09-11T15:59:27.147+08:00 INFO 32576 --- [crm-app] [main] c.c.o.s.i.NoopSchemeCardProjectPortImpl : SchemeCardProjectPort ׮װ䣨A5 ĿģδߣPROJECT ܾ -2026-09-11T15:59:28.345+08:00 INFO 32576 --- [crm-app] [main] c.c.p.i.NoopOpportunityOwnerSyncPortImpl : OpportunityOwnerSyncPort no-op Ĭʵװ䣨Ʊ 11 ̻Դ滻 -2026-09-11T15:59:28.348+08:00 INFO 32576 --- [crm-app] [main] c.c.p.c.i.StubProjectConflictDetector : ProjectConflictDetector ׮װ䣨ͻ׮޳ͻspec 8/grill#7 ѡף -2026-09-11T15:59:29.214+08:00 WARN 32576 --- [crm-app] [main] .s.s.UserDetailsServiceAutoConfiguration : - -Using generated security password: 8fd6bcf6-c3ac-4c94-a3c5-f4bcbef35b06 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2026-09-11T15:59:29.253+08:00 INFO 32576 --- [crm-app] [main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2026-09-11T15:59:31.209+08:00 INFO 32576 --- [crm-app] [main] c.c.a.c.DataScopeModuleStartupValidator : ȨģУͨ0 ܿر4 עģ -2026-09-11T15:59:31.268+08:00 INFO 32576 --- [crm-app] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' -2026-09-11T15:59:31.313+08:00 INFO 32576 --- [crm-app] [main] com.crm.app.CrmAppApplication : Started CrmAppApplication in 43.302 seconds (process running for 44.058) -2026-09-11T15:59:31.321+08:00 INFO 32576 --- [crm-app] [main] com.crm.auth.config.DataInitializer : ִȨݳʼ... -2026-09-11T15:59:32.205+08:00 INFO 32576 --- [crm-app] [main] com.crm.auth.config.DataInitializer : Ȩݳʼ -2026-09-11T15:59:32.206+08:00 INFO 32576 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ִֵȨӻ... -2026-09-11T15:59:32.654+08:00 INFO 32576 --- [crm-app] [main] c.c.d.config.DictPermissionInitializer : ֵȨӻɣ10 Ȩ޵ -2026-09-11T15:59:32.655+08:00 INFO 32576 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : ִȨӻ飨˵... -2026-09-11T15:59:32.762+08:00 INFO 32576 --- [crm-app] [main] c.c.r.config.RulePermissionInitializer : Ȩӻɣ˵0 button -2026-09-11T15:59:32.763+08:00 INFO 32576 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : ִȨӻ飨˵... -2026-09-11T15:59:33.197+08:00 INFO 32576 --- [crm-app] [main] c.c.l.config.LeadPermissionInitializer : Ȩӻɣ4 ˵0 button -2026-09-11T15:59:33.197+08:00 INFO 32576 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ִȫӵ... -2026-09-11T15:59:34.279+08:00 INFO 32576 --- [crm-app] [main] c.crm.rule.config.RegionDataInitializer : ӵɣ 3432 Уʡ 34 / 342 / 3056 3432 У 0 -2026-09-11T15:59:34.279+08:00 INFO 32576 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ִ̻Ȩӻ飨˵... -2026-09-11T15:59:34.376+08:00 INFO 32576 --- [crm-app] [main] r.c.OpportunityRulePermissionInitializer : ̻Ȩӻɣ˵0 button -2026-09-11T15:59:34.376+08:00 INFO 32576 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ִ̻׶ģȨӻ飨˵... -2026-09-11T15:59:34.467+08:00 INFO 32576 --- [crm-app] [main] tunityStageTemplatePermissionInitializer : ̻׶ģȨӻɣ˵0 button -2026-09-11T15:59:34.468+08:00 INFO 32576 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ִпͻѹȨӻ飨˵... -2026-09-11T15:59:34.563+08:00 INFO 32576 --- [crm-app] [main] ustomerReminderRulePermissionInitializer : ͻѹȨӻɣ˵0 button -2026-09-11T15:59:34.564+08:00 INFO 32576 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ִзϵͳֶοӻ... -2026-09-11T15:59:34.579+08:00 INFO 32576 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ϵͳֶοӻɣִ 16 0 -2026-09-11T15:59:34.593+08:00 INFO 32576 --- [crm-app] [main] c.c.r.config.SchemeFieldDefInitializer : ģѴڣcode=OPP_SCHEME_TPL_01ͣãӻ -2026-09-11T15:59:34.593+08:00 INFO 32576 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ִзģȨӻ飨˵... -2026-09-11T15:59:34.698+08:00 INFO 32576 --- [crm-app] [main] ySchemeCardTemplatePermissionInitializer : ģȨӻɣ˵0 button -2026-09-11T15:59:34.712+08:00 INFO 32576 --- [crm-app] [main] c.c.r.config.StageTemplateInitializer : ĬϽ׶ģѴڣcode=OPP_STAGE_TPL_01ͣãӻ -2026-09-11T15:59:34.726+08:00 INFO 32576 --- [crm-app] [main] c.c.r.c.CustomerReminderRuleInitializer : ͻѹѴڣid=1ӻ -2026-09-11T15:59:34.726+08:00 INFO 32576 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ִпͻȨӻ飨˵... -2026-09-11T15:59:34.831+08:00 INFO 32576 --- [crm-app] [main] c.CustomerDedupRulePermissionInitializer : ͻȨӻɣ˵0 button -2026-09-11T15:59:34.844+08:00 INFO 32576 --- [crm-app] [main] c.c.r.c.CustomerDedupRuleInitializer : ͻõѴڣid=1ӻ -2026-09-11T15:59:34.844+08:00 INFO 32576 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ִз͹Ȩӻ飨˵... -2026-09-11T15:59:34.934+08:00 INFO 32576 --- [crm-app] [main] OpportunityPushRulePermissionInitializer : ͹Ȩӻɣ˵0 button -2026-09-11T15:59:34.935+08:00 INFO 32576 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ִĿعȨӻ飨˵... -2026-09-11T15:59:35.040+08:00 INFO 32576 --- [crm-app] [main] pportunityDedupRulePermissionInitializer : ĿعȨӻɣ˵0 button -2026-09-11T15:59:35.087+08:00 INFO 32576 --- [crm-app] [main] c.c.rule.config.ProjectRuleInitializer : ĿѴڣid=1ӻ -2026-09-11T15:59:35.087+08:00 INFO 32576 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ִĿȨӻ飨˵... -2026-09-11T15:59:35.244+08:00 INFO 32576 --- [crm-app] [main] c.c.r.c.ProjectRulePermissionInitializer : ĿȨӻɣ˵0 button -2026-09-11T15:59:35.244+08:00 INFO 32576 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ִͬȨӻ飨˵... -2026-09-11T15:59:35.366+08:00 INFO 32576 --- [crm-app] [main] c.c.a.c.SyncTaskPermissionInitializer : ͬȨӻɣ˵0 button -2026-09-11T15:59:35.367+08:00 INFO 32576 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ִ־Ȩӻ飨˵... -2026-09-11T15:59:35.458+08:00 INFO 32576 --- [crm-app] [main] c.c.log.config.LogPermissionInitializer : ־Ȩӻɣ˵0 button -2026-09-11T15:59:35.534+08:00 INFO 32576 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ̻ 0 -2026-09-11T15:59:35.565+08:00 INFO 32576 --- [crm-app] [main] c.c.o.c.SchemeCardOwnerMigrationRunner : [scheme-card-owner-migration] ɣADR-0041 -2026-09-11T15:59:35.577+08:00 INFO 32576 --- [crm-app] [main] c.c.c.c.CustomerFulltextIndexInitializer : customer FULLTEXT idx_name_fulltext Ѵڣ -2026-09-11T15:59:35.878+08:00 INFO 32576 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ִֵݵȳʼ... -2026-09-11T15:59:46.419+08:00 INFO 32576 --- [crm-app] [main] c.crm.dict.config.DictDataInitializer : ֵݵȳʼɣ27 -2026-09-11T16:00:41.790+08:00 INFO 32576 --- [crm-app] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' -2026-09-11T16:00:41.818+08:00 INFO 32576 --- [crm-app] [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 26 ms -2026-09-11T16:00:46.999+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:00:58.006+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:01:16.099+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:01:45.601+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-5] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:10:10.038+08:00 WARN 32576 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6fc9c0cc (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T16:11:10.028+08:00 WARN 32576 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@54bd2fa9 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T16:11:20.047+08:00 WARN 32576 --- [crm-app] [scheduling-1] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@68707f91 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. -2026-09-11T16:25:56.769+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-2] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:25:57.310+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ҵһΪ -2026-09-11T16:25:57.484+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:25:57.845+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:25:58.198+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:25:58.419+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻ -2026-09-11T16:25:58.603+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻ -2026-09-11T16:25:59.025+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:25:59.158+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ȱcustomerId -2026-09-11T16:25:59.382+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=customerId version -2026-09-11T16:25:59.560+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:25:59.762+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=customerId version -2026-09-11T16:26:00.979+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ȱcustomerId -2026-09-11T16:26:01.381+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:26:01.539+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:30:52.600+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:30:53.394+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ҵһΪ -2026-09-11T16:30:53.606+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ҵһΪ -2026-09-11T16:30:53.786+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ϵ绰ΪֻŸʽ -2026-09-11T16:30:53.955+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ϵ绰ΪֻŸʽ -2026-09-11T16:30:54.227+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ȱid -2026-09-11T16:30:54.636+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ڵ㲻ڸÿͻѱɾnull -2026-09-11T16:30:55.138+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-7] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ڵ㲻ڸÿͻѱɾnull -2026-09-11T16:32:00.214+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:32:01.602+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-1] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻǼȡֵΪ 1~5 -2026-09-11T16:32:01.808+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67001, msg=ͻǼȡֵΪ 1~5 -2026-09-11T16:32:47.388+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:32:48.631+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-5] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67005, msg=ͻѱ޸ģˢº -2026-09-11T16:32:49.845+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ȼңϼȼϸ¼1 2 -2026-09-11T16:32:50.331+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-4] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67019, msg=ȼңϼȼϸ¼1 2 -2026-09-11T16:34:53.648+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:34:58.690+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-8] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T16:37:41.844+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-1] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:37:43.657+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67005, msg=ͻѱ޸ģˢº -2026-09-11T16:37:46.391+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-10] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T16:38:16.166+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:38:18.202+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:38:20.796+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-2] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67005, msg=ͻѱ޸ģˢº -2026-09-11T16:38:22.823+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67018, msg=ͼѱ޸ģ汾ͻˢº -2026-09-11T16:39:14.416+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:39:14.523+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-9] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻȨ -2026-09-11T16:39:27.083+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-3] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token -2026-09-11T16:39:27.613+08:00 WARN 32576 --- [crm-app] [http-nio-8080-exec-6] c.c.b.a.GlobalExceptionHandlerAdvice : ҵ쳣code=67002, msg=ͻڻȨ +2026-09-12T00:03:26.636+08:00 WARN 35324 --- [crm-app] [http-nio-8080-exec-6] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token +2026-09-12T00:03:47.229+08:00 WARN 35324 --- [crm-app] [http-nio-8080-exec-7] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token +2026-09-12T00:04:09.523+08:00 WARN 35324 --- [crm-app] [http-nio-8080-exec-8] c.c.a.controller.DebugTokenController : [verify] Ϊ userId=739564171091247104 ǩ token +2026-09-12T00:04:09.734+08:00 WARN 35324 --- [crm-app] [http-nio-8080-exec-9] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@7f28f1fa (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value. diff --git a/logs/crm-app.log.2026-09-11.0.gz b/logs/crm-app.log.2026-09-11.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..3dec9c961425a683ca0233f77e17b40e2317ec0b GIT binary patch literal 102610 zcmbTdV~}KF*QVRmRb94i+qSc8+qT(d+qP|W*;aQMUAFC${eIuXOw9Q)XHG`O9V^#f zTPtJl%;$RcO%Mh7?LV)t^X@ly)a8t;kGpZL7lKC*A9T{XE)`YZW$tXY#^7k5b_-I& zS=y;vYFAspk4;@Z)j!`4!Zb&qFh>nA;~MaA)Ih1^ zF87IJ)GoRIWk_-jAjCObXNe!M7D#XR1sq#A{?KHGf!^Tf{U`7*eauy3{4`}$n;+NqkhDDe1r^~WV~ZkM5@Xu&Q(oebCH{p{m7wHw z5Wqwx4Tu4RyDJ|Wsn0;7z`b3xdKR*b6k|qc@>D}cvv|cziO{y!;d1d z*oZgo$d5c(UI@x@A|@jpRhzs$bg7hN7^C|NtrVp;34C-udX_gErP%t~91lr?S(ev- z-oHKClbGptJQ%Fl_H+3=wSPZr#?PjXWBP0{7onA*2&JPb_b@8%@ZB9ca;0i4%Rz=_ z%vPdQzmR9tNs1@%c%-+R<8JF2HpP2SeX|@wf(*MH7Rf(&ISQ{Z_&xhh#S+!|>2EQih4}a%}dm z>m7`vPn!}RWO$zW9OZ8Ml=wclOsHu_S{O@=Sh9*tr;!XW5Bn;IYxghudG7~te*Q-*zw2th zSYEu}!!rk%T>dU6v>J*=aWQa$_A55871- zez-}0diySn`9{piyN?6?+|h6FlK>VnUB}8mR4J-9x$9e?e8eizt|D%lGF0~OF^%AT z6Q5`yf10wC0a;@*Xq36G0wG2vCF1T~!q78=;^HI#u~)Q7NFk^jUw1O;U~PJALN6xq zcydWzn>JkX8;rOrlG0%5#7^+iLM(pdWRNf}$RQGCe!-YzIs{uPV&~&JluET}oq2lTI+%j=ki9lhS9kyR{Wn z`S(1_r%~9wvz*}C#riip*nZ~@rb739O{x;eds&U}#}hynH2-oq`a7;4k9s)qz1r5a zSRdb{m64MvTns4+Hrn=EB38Zt{%{Z&dg;V{oWcILc|kOM{u54x;Fx-gm+;b(o`ONr zBEGFkA=6-i)Rqj*c2N?77Fl^Y#%nClJf<9}LXwnI%E|z-FN1f+Ayx9A$kQXNc9@D6 zCnc46r}B2D>dKc1SuNP&h{g>LTGltvST>OZllxA|Jih`b8m{R!`R!kTTu#s1vd_EI zmlOB=BP|2W5gpNl2UEI0UU+?_MBn|B=W8|GJI8%P7#H3%6ZT^SXObo&xkGM}Mkzo0 z^>m1gWkBD38R~73w9-z-0Ax+P6w;^(y7Fhj@FM(bMS@zPsu>KviOL7KObIm1{0!Tg zM<<*$=_97kH&>O3ifMHPd@>alTi(GR7g>#u)_SHjU620qx(!MOy_X_rD0gk4Ae|UA zPyp3}2MFZ+7(FfCWv!)<{B6&Me=+lkN*o{O==D=H6mnWq?B$_NPkzt#HR9X=2J z0lnt25>dAwkjM9XIl&m41sB<~k0s#B`IwjCKS;}}L=4|_V9oF0aqNqE?`4%@HKx++% z?chQz7m#Lb3%mIS9tBPw)pEKT!gHnPZ~yKw!o;!V2jfOKsg-DK2M?ACtJm39r9I%- z0E3VbgU~5*HnQKM>~7cV?R%KUc0q!O(kjr<$S|T6E_XI^v8Xu|@>8{kgXawbCSZm) zEEcSXhs!gJcP>tVJE!|$^;uK~{U*}2yF2d5y;iHk>|hVHyNbZPtoj?nr3z(t;J zMz8O<<1oxEyp7>{V>KC9t(TDhraTKnlTWP~Kz{9-pVfWw6j~T<_1ll>fB&;&V*tclO>jPYR71DI2BNdi z>y4!>@~^*`loj82XReV6fHY&$@f{2=k|bBR(S?JsJgbKM8JwYU#^dGn;mcu)2HRoZ zrJibBC)QXGet7s`=a;-Fervor=aE3SZv#AqY`h_8Y$$P7;?x1>KAH(91Pr4Kh`H-3%A5(?4GExXx3+NTir*Ry6GzE%MvKp7^_bBc3N1J{I>6v|!YD zSG|trFf63QJ0QE!t_{mS&F!|CwDI8_WP)278tr#+o;U_M>=xOeCvW6{_EYcw(6+>JjT5$E&y&6qg{@UBq&%-9j zD^%`NNH_gJ$PecJwYydkS5`MA`?Y&0&)?zlI!WOFc_TqlD!_-}+)uUJJEuLfDt+~J zxd(9m2rv+NDDwLd()~I>QUBZ~*y4Zc6?oqDcpMt8$V;!-&j*EGDq-G-p1|F!Yf25q z`7?X+>VLl!Gd|vNvd1CN`?>UIeNkWTWB=S=r`w>GZER`zJ4uYyfoqM+BbRKr+}Go) zfPOBg^U13!O9@Em(W&wTLx7SJNv#gADLa3_0wRH(98J`z)U2Q9P8179t={v#^X1Mx^Z zS;iWnFe>A7ZaYy~9QKQBvIB016Y`fjpBs_(@lau>XRLuSmGG+SzIKL<3#>(vMLVz2 z;i0mVUZ{626G#=a>0_=|?#^-$fkm$CmIY=faIC)zHmAADdvoAeZ0dXZ3k{=cZdQ^0 z5J3K3wq)G^yOU!>#3YCe<}+A01wC607p3N9=4VMbVp4S_`0w^VKrKf>$KMa40^%D#2G-cd7dSF(%XJa>$*sb2EI z$+eRutG*u6>w|H#d{+6-b)UJ$8Ad6CkJH)lXfIpKe7UfI{`TC414F9v^Y|b6tM~W! zFCyQIDYU|;sjg*&-lvR=wQqwGr+cdw@*@qMS__@EdF0lQNmocUNn!Ws;x?@;5Zhnw zEPsf|HOgoT9ciX9smB;^E^Bal7t1gq;7@sC##Q#h^0xWyh`IZi60bVrG)V`a3;sQGG3WTjZCp-)(-T3k zyMO-{=EuzAw_ldG{d`lCxB1eRB|v^ayd5hq;}`02UzA1h`LLFev}pcmqMA&oy?wlS zjU20(e0G)dRR_Eu$<1zNo_l?d;T=4T^Qb#N(_S{ORYdtcEk0XHiitcNMnu2_N^&w} zpcKE0aAHU#NVNJ>LdEwwPoT&3;vG0r((Ukiex4mIlO$ijf%pJnM}>6+@h3&y-D!h} z7q7kTy*`5;QLZdWZW@zaOF={|xsT(LM~wgn zQu6j!`$tj`rCV4k3|y`k=tb^<#TS zA^=BKA`EYO>Mn7#Fe_*OZ6gA}DqRrbeOu7Kmx!vFA|xitQHWi~v43OL`ju6MZz>qS z*c^|}{d4u+(8=l>{SOy|U$|sD{rme)RVw088cqUApcYf)^&FT>%e}2dZT^2cK_rXb z#k9Ro!X73IdsUWE^ia9}oYE#m*$BHO(6>ny4?=D5vBgQPjahNEc7zhA_F6|)(p0<& zp|v15vXGFmRg;Ers>Bv>##&Bkwa-%O1+^e)o`)xZ6Vs5EBNpTSAc@tjr4aOrq>ibJ zjbdnf*JE&6*}3R+z(p7&OB!5itIiDFTGGQv>MHX~+4vLFd+ZumVDS=SVw$dKi5p9F z47fqpT%Ce+id0;@{|T~4RJLS2CykTlt&y6@8i@nP{<~~D!G-C?!+*f%){V<`wmu_CmQJU8QmwgcKIw?zatWp{ywN%LnqIa|eWZ45|98^e>M~5TSJrvEH~r9$a0vW^C>Lh=`VwQI<$taE-&f7a zc=HR5S!#2y+{w8dA-6%+I@^n*&+G6BI?tlU4QEux`D+vGUYwL9NMDcCV(8Qm^VhJ? zBcLK z);yRGv-B;`xomEs`;sR_8^s}pwN@hI*Pr25*La96L3x6GSlF$3~ zliL^)+^Y-^Wh>2kjG$WLms1nze(s^>_FntXZTFY|R z0;uK^yl;~7p(us)HO04R(&Qo$2xY9WUXatJnBb^hs#1Fu;VHEv;%Eb&Axt$%X1P+R z{an$gKs-h4^-96S0<7j*8oP`?PC+Ugnf-`TuntoL9XTpuNffxE(9nfci~~Q_m~Ztc z;X7TxT~Ths>F7o=3zfTxK&sWNz5~IS9T`Z|b*)+=KdtatRaqvOt$T&EitKl?mf~tc z_ESLfIj2Gj@|etb=!Bnf2DQJjFjQL9=fs!hdfy_72c$<{Ii$HwKh}3KEHJjZ+hOgl z38xnBStk+Gxvw+k6B19fKlMsZ?&ZCm$cz!YYY{1&kC;eziKsHXL5jhBYosp4?4B{y zz}icZ2(PTqkQ#2l9Z_KKL+nQ2cw~^hqknk9mC?ZuL-7p>{vPX;6j%xuD_J6)H_hB| z<_(XUBahlG#^244tuU=is2MNXW{w(d?-N}`k1llCBCZFgSagF#ExSVx;OB~kN!bL4 zUWDB;Ho^!AgIck{Ik3dY0o#^AeqEowct|?1?3Ng?o1~OK<3k3Gj8_S(Z`8tXg&87^ z3TvOca2_XGO$OimWxP?{MOzSt8PDO!TRe86g7J@6-pK{^)RLHcYMWdWqr5TlN)<>9 zLTMvLqIg9M5#XODF9N*jig+8sG=?Vh3oM|6d(7zF)vIvviEj&PBmG7|ji=TS^s@c0hREQ{R>+NB^;-siI@1F!yPvJ%DHo@-5N!BM4LwJ-gXOxYd6H06b+ zuhLEq-y~USUzW3UwK2_$X3;AgOw+uD18~70e?kOJI^QyD9^A$$sGMLvp8=LR5sX@+tv0o+GL?{QeuId#`*b?TO2nSnhkiyw z3TW7_V(u9Aa51J$9HefwNTztihVil+!H-BR#^0-#QW{rp6-+L9z=YC<6CKGEcbqR@sbot4K~E>}jHr#`O{%iXf#;Q~ud?S`lE3(iEB z+O8p|kvk>PXG?T3Dv7vQpT;_I_`RK*c=3HpRMp{pxxa$>u22NJ6J~)#m{(Umrm=mX za1XlUds^|%XESr;*-0}Ei#IB=qpo_E{+~XR#LcGs=H@lTiV5KQY(IZEL+HB-53l}$ z3TMB-A{xMKh^(@{EsGgi(teJalVD!%6blD!Gd%E*3xSS5BPo z@;MdS^QHFnK!tIn;VA>pjhw>YH@Wa`4Qy)GGv`2TaN*J>(Nr>bZaOo%~(E`hO@ z8zsG~#y3;Jz(a7ZIDBp%X#7n-ORl7dJVNiOOgLiq_KruRBGUixXWX+K7a+6)R@kvV?V|Q}zDJ z;_lILXanh^D*{XhWXN~tLkEY0#w4XTtQ669> zFG3d;pZss)@%A*?PU-RX{GlwdF8W8;3+V~v+LHp{C0%)gv zb!T0R{JgLdu8scOG$E%4swnY)V*J|3&rKV2y9i(&o*o#RAh#lV)So}e-P^khIynOM z+rQ1WpJJn8K$uWeZ??R3C+g_C&K5Z(@WQt-t8HU}^KZwJWiwZNEO+;#qj5u*** zXJ#~DSMBJbfnBwuhyT}q?!ZHdFLKCdwfn0QQOBnu|2M3j>%ykomd&%uG*MIV3_93` zQ_+9S8NeiD41OFZabqB$CJwM%OZY?zPh|y!OK(p!kU7hu8j{dz@fTWF*r!|HHYvVk zf_-BQ#A?Ueprm4C((IS%1y2!C5G{n9a_%m)3=}RTCHeF05LD|_6apEmONvC3G)K-v zjV6>l+z`t6(THbzoS()x*5XJz7yw3NTTl;bD+BwvIKCe_X%jxlM8r>Awg1!_L#h7Z zGx^-_ACWL=CUTDfgJ`)bBs+?WQ@oiPDsa_}*x-W%oVCe=1dJ@9S*x@d7MS z2Kz9miSyOSR7ofbmIfEe6ENn%7ev~Uwz9zRSZ!$tnT_;|nRQ6-kenpSWy!ysh(U1? zdJmoQU45+)Enh5tk6|1A{gmOjhjesy1le*^1__)~x!t%AN*=MOXxn%%S{m-Z$nWh} zpb^!_joamnoW~bWRxxCZ6>}Ctnh79INyw0uiJa$wX_8RETveM449yhg^!@}zsVvr=ARQu>qtYM%qh2#j zE=dtsfge%%(yzM=3;=m1R2-p}8o*2(`l*sMPnhmWg_{&g`ix^wRuox0JgSiS$T11c zf%-s0D>8|e9WTMuf@p{g{*l5iPR)!r7r{ntX>d5ScfXLnA3%c;d%#VpY)vsGiszy* z2Vo#yWGiQczZAUHo}W;vv;czYu8=@!>w|#clAoM_4pkJ0N}>Br3w}3BS}H47kOrj* zfRe70Y8s3ox4=u5M!Y#+Z>O)8O20Pq1B?B7kQ|;d()OxT+X!cX8?14JT_7J#RWbemsY< zRr)c(DT1*W=+|YbT<~F>zxQX3?{)i*cCzoIg4rym6^fD)4wLtqXkwG>7qj!BiP;s8 z^Q`>);k(@NTuA}b0=Z=HKJWr~y^PG|^R~EzSQnf)|J`J;H6@3a>;0HB)o=fG_};pD zari`o%K{IpY?o>(x>6fx2NhF{r@M2_1a;I^;|b8@*P zERm!EgRbA3{PR<~z;P9|(UPwAY|0ZrvnUAXN!<1IFx9Ypn9G;T|maIg)VPuh_nMn=ANp-sSbL5O4)bkZ+}i4wBEVx_s2Er%8X zadEJXnV0~*Dyf}Cu-#Md%Tb=o*Gu>IN_4yZVV?lr`GKf$nZXjq{N`qo`@A)PB0oFJ zo9B7Z(!o(i8;Kb5;@Ss53eSOfHsw;~q%q{ggE9T4ym&61%y(_p@ES{~#pz&onPLp~ zR>g2?nx2&z!2CZZh$nPB=$&_4&S8!kA>7Q|2-0&r*_`i7&RJ%sWqYkO3(L13F|||* z@P zGRmeV2by5d`ow9d0XJNYkqgZvRdv?M=9hC|yPVv}=j#cZ0&Hzx59hzPrnbzR>ZVNG z396MKC2B~;O4*wuFsH_Suwj{NU}(oQ{EUnrOf|_S&pElCmRirBQC7#z4ECvr9%gqe5xWpRo*jy9H9(v%7zQCTr#J2>=%n`$R@^>?wH2{G;IK^$<=J=@@GNC7 zY28MJEPFm%>ili_*x17!D!4IOsAEe2bs?#;~v2yA)H~%|nLa z$a8tf%IrDFCuk5ih#4EyCnkyErS#$je`APd&@o$vT&5g2wCZ8kYPTjne(=;mRu~>0 zI0$!HNgxa#2oc4OMeU58-57=5rIAlz&>V$S`|v8XBKtQb>wuQ_Fspg0Hwim3Uaz^Y z9)mI{KU&dqTS}GT2Mk1Z66v2xFux{U5omZ=FAtzFEW(Sr6Cd!&C^UdF+Wbo4V@p_V zke)T5=a}NYCg65`tt=+}iESm?(WOp-%i`lj1@ft}WM&qD5@U!{%jKl{pBY$k{$FUL zK01T^v-AMjgcQiJI}ma99NlCex{32N1S zU%DKRCmi{1W~`h3TUZ>j&FE}Y)n?w3u7_JbsFU1xKTH;nCP1<7IGphXtrJe#b5a3V zb_UGqoY{6dvm;TGUH;tUL0Vv=yhzlRDXZ@q-2P^ZiH`S2e1<;s{k06?=@^fhdRz$9h~hwxW3xSQHIibJ2b5h$uH_xrwIxYAvg zeA7us)uPu&&%w_EJwwnZ+ya_bKQb~&*A)FzI zttTdvXpuXTgvEj^Ws{Q7Q*n{bgRSWO4CUA!I@FuvaaENl@_@g`nG@$e^i94-I~9DP z=k7Cuv^7>a_bi4Ibi=jvMu1_X+ixsa*;xV~p!*2Vo{8xi?{97WdF61XGyG7!*ZXa{ z%Kv6p1yiQj;(EZuXeJtI-Ue=_`j-)8Cy4G~qYefPfv&2)cC$6l?SDgQRJt4A`plc$f{ zwNrBkp=kQ6IuNe!mstOS!l5zq3bDv`2yWV3 z`R}G8g{djdzxN*hKsi_nq4!Sk(kVmU@fTY-R|ypJcvm#9T4xtqN>=|0a;HqMwvGRz z?PRt-aiM@YdK`Ioe(!SF1%X|3+Ba>hZzAgnr{LN;8k|iq{^AULJYxKXXlGa?BLf4+ zjq3;2Qby8p?U>f>X$iJT`_GF#;@71FOl8LDlaU~{#0JB92HR|3O9>p6%n^(rQT|TV zfwVEQ^>CLkW5dk*3F{0{`!jlI-@5RYBP1}0EW(w(uBM`@SqZlY?LC)b`X{@a!UM>p zgG`^r?S`CmH5Wc&=gaYqBKdVK;oBzI$<^y6i%+^+rn9^}OXx zG`Y}yVSQ)sDETnp1;xKiLqZ61_ojxNV68`sdee=ZZ6%&COz7=q&tD*RnPz*uetID3 z@&3AgpLCYbo&4oU++|OpBKy1{(~%b;o^!9@M&LI+n#=HwfSiuM$$50+-hB#{nk0n3ji@t@Wvm(z zkJ*kcaSjUDoy|-ztHfDzPLsmY}-aQ zx^^VRBhXbX`$K*X_EPMwHV&1}*#cOXxbb%cx2f*iz#eJ*36ipVkzSgCPYXuWzXP~9 z2hZQ$A$fly2UaFHtKPpKL0^Kfl2TQ&=SvO_YH0SiysS>)*z+6M{4VN877yX{!4Hj_ zjwCP|I5-qsnGHcVXCYd}(#Wtw?Gy-oc&NKLzR+*6>*K6>s%NAo{Kspb(jOmPu(VR^ zZ2Y6E<9WsJ<1zMjijSosGau85u9@0b8E3vuXu3g~01CI-S`ecOVUV+uN^Bn{Ey0{lKN9BtI#D!?ZP`0z+oQG>z1;_iJ!OnTv&=KvtD~!ECU{N1 zI!LLJIsL9RG55xZ-7|E;?Zm4AjIvSv;CAA%HXH~pw^e0SPqWKa$)6l6QrTHS2$d-$fR$y7tmOfpPlg05%=1h#Vw zsg$&V<%yUi`!I;(Nw(Fnr=>_@D+^B1^Ml!}+>utQ-#&9|NJW2r{ZCr^EFxP=9+0S| zq=ty|5FB+VollU~K;N$fhU~4NFfGEhK#A4iol>gZ{46+4A?W7(6u!cVWE&V@_rz|u zVwkvMOgn~!uZ;_2mEi&92_flzd@=!^(HBO@x~1cMql3%}PGnJJP_Y|6@TcioZs0ZK zaekAu_X{f3gi27|Tdcevlpp*rgcaSMjP^(&cSVHO=->!KCSY!Q zwxdhy;F>UH7fpEGV2ar@Ts9lGH`VlRxeoR2zc_2P{%>O`BTK!xJ$(G`NM33(x~+2) z@nYT}h>YWYVjC1H*-Ik)#_^rJOqC_o@qJnLW_Up=x}#TgkEvVFECoInUbzv@mg8_4 z&0H}G6i3jE0W1`3^gbxUsA|2VWFFkBW`at;kUHp=k#Ju$i-Q4YP72lB#iC?M;MlV9 zxSBe}{FX7RlZUcuN*_ec)%ljNNM#4nOP01f#gb1nu)1k2tN1ak>>lyQZEK_)SFRkX zHyUp+n$5wexJcZ(rUmM1bzm;`EL$5?wg6wz?sTpcQ>&Rr$r zAa7jw*d}(N@rTJQ+XZT(cfGhTCZ_O1M0J+`9ICT1W|%zDQqtA1i&ioNSA;X@-{@D* zQE+6p4F%aF;m7{74|K`U1@-W4@zmpPKbG1HXDIG zrK?GmzAmwWmrXxqDiJ^5o*1iW3U3g4B(=5?npv%bS8}BM2hFgdGtXLN41oV?!BY}R ziR9rg)%dY4kYU~Mr||PehP0>TD1*w2nISkeKJsbzYiiXs;e=~+X4fRpRy1|I{J*iP zCNVtkBzsQK!$2@vbcs%)18Bn98IqdG<%m=;4x}PR@`I2n4R6ZoudxxxkcAMoGUG%b z6=tc7iVf>farV(N)YM8dSFWIhGEVzNg=pO7`x%Q?!52J0S@ocy3tqHL+8yQ~Sb>k) zoZc}T^2=ztefhKz2von7Bu!y}NFgN`-=PP(QdN(Rw+0jtU+@JO)kH5v3z4O&h%l@X zV+#ENT&c>4Yi?+cYu4lAXpF3k_4U2O4M1r)R541=VPaejUPG(Y;2B ze;uwGEJ6aIoqLmJJJG8<3syVRtNWd2I|(r6YUcvxJ6Hu?-IJi&3IC(auWc~tD`Go_ z-!H@e@kk(*y!ehxAMsEBF-sZxf3#91YrSN?SGRwNA2v?OLFE3*jKx72sErOl6w0CC zX#FpCl)krDXLL{mX09Ey@9lGKw|F);Fh9C7csKAr*2!#ia6i^f|7+gk5{N00nQMW_ zl3VUc^xl41$vS#PJs{P($iFKj5eKLdG3!80P~FVt9UIe~@67@X@cq*rAc)bs)7^-`BP`#*`&f64|EF~AI{!3Yhu~wKFaMtcmtp|bU;`Vd9ve8o z^ZNO(lFj5F%C0c^R}W_b%&&{N=wJc$zj*&YMhY%>`5$)rPr=Fm;a7b2e;oj4j}52A z3Onr1_+0}$H~FE9e>&C;Y<1tr0}wk8meX_NAMTDEZ_5_%wgS<&$j$^%2X``o8L_{y z|IymxZRvpBONp;oW}BarDaGctPo1Y^iWx#?Fe265ibKSp#!51C=^(Frio7dvDT+#& zZpHp!h5z-Kzmv_l4vN?cWK?RLh1Mw!dS)Qf|7W(?GikN0B>?5i+er1cJSo`|0pNsw{O=&D{ zqe=YQgGZ^N9knPW!h`%qZCXlqrM8n!p~NVT}<>j7@jmt~ZUxKlThh_V#A8QLE+% zvjpj5{2y*^v$<0Zx~n7` zvDq3!(+T&?I}0Sjv!bG2H6g$XD)u{0AgE&ImFzoSBx<69)`k3o3e>`TIPr%aQH%JZ zDJupHaHGs3^JjPPVj!5CA^=QY=7x{q&?M_tnurj^V1B4DCh-alsd7S-cybfXMV{?# zpu=Ow;jG+GNoeU;8j`SUmmiXE&#CpUG_c(y3uZzI>8ke-G4HS3VCA?4;?ytHSbzxfdrVuRqS(T& zF{SKVmT3r1##dFt!2?dW+(UWS4Klcq*h)INO7uc$B8aVgu!b!vKt*sX@=X zi3_C^a}z^03t;4FrdT^6Nv!hYC6ex})$3_yC3~PU=}mm;wth$N&;+$&Mi>@GwdIe zQyEDa-B(k50ykNAJOv_Yp(B!6gh+|NOTv<7zSS6(8=24hac%>lH6VGl!o2@iMh-Xc z(>YH@(Dvu_i*3{5ViU&Wbhn>{;kp2^(^{v5s567VxtkSr(^1Y;>=E;N+ib5hWTTmT z?#mw(`7Pbe3_kf8f-P`9<^O5KF+X9^c%^hA5WD~e-iQLheDw5FY^&Sv;WQw{pXF!bzBqbHx$DH103=vjEd`xr8%gqJMx_i*+>fL%{9Rcyz<`=qU{yIXyK`xgwWs|+cVZ;?3 z@6G-D)Ln);aM#WgjgbBMzBJ#U1�FwOI{vwKyI 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

USO^c>I`@f%wV*V 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≫FYE)~`hV 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 E0nVXKRR910 literal 0 HcmV?d00001

q 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", + ("e2c-恒信达科技有限责任公司", int(hid))) + for r in old_hid: + dbx("UPDATE customer SET customer_name=%s WHERE id=%s", ("e2c-dr-旧seed-%s" % r["id"], r["id"])) + # 2c) 组织关系 seed:BUDDY 所在部门 leader 缺失 → initiate 67011(D22 总监推导走 sys_dept.leader_user_id) + try: + bd = dbq("SELECT dept_id FROM crm_auth_user WHERE id=%s", (int(BUDDY),)) + if bd and bd[0]["dept_id"]: + dbx("UPDATE sys_dept SET leader_user_id=%s WHERE id=%s AND leader_user_id IS NULL", + (int(ADMIN), bd[0]["dept_id"])) + except Exception as e: + print(" [warn] leader seed 跳过: %s" % e) + # 2d) 查重设置归位:出厂 FUZZY(2)(CustomerNameMatchMode javadoc「模糊=出厂默认」); + # 五跑步 26 save 硬编码 nameMatchMode=1 曾把共享库写成 EXACT,这里幂等归位 + try: + dd = get_json(f"{BASE}/api/rule/customer/dedup", tok).get("data") or {} + if dd.get("nameMatchMode") != 2: + post(f"{BASE}/api/rule/customer/dedup/save", + {"masterEnabled": dd.get("masterEnabled") or 1, "nameEnabled": dd.get("nameEnabled") or 1, + "nameMatchMode": 2, "similarityThreshold": dd.get("similarityThreshold") or 80, + "phoneEnabled": dd.get("phoneEnabled") or 1}, tok) + print(" [seed] 查重匹配方式归位 FUZZY(2)", flush=True) + except Exception as e: + print(" [warn] dedup 归位跳过: %s" % e) + # 2e) seed 客户冒烟联系人清扫(上轮步 16 的李冒烟/赵冒烟,保证步 16 幂等;「李普通」为共享 seed 预置不动) + dbx("DELETE FROM customer_contact WHERE customer_id=%s AND name IN (%s,%s) AND deleted=0", + (int(sid), "李冒烟", "赵冒烟")) + # 2f) 旧 seed 联系人职务修复:张关键/王重复(9/10 旧行)job_title_id 为 NULL 且 job_title_name + # 不在字典树(「采购总监(已更新)」)→ loadContacts 的 _jobCode 反查失败 → saveListAll + # 「职务必填」拦截 batchEdit(六跑步 17/39 实锤)。按 jobc 的 dict_item 归位。 + try: + drow = dbq("SELECT id, name FROM dict_item WHERE code=%s LIMIT 1", (jobc,)) + if drow: + for nm in ("张关键", "王重复"): + dbx("UPDATE customer_contact SET job_title_id=%s, job_title_name=%s " + "WHERE customer_id=%s AND name=%s AND job_title_id IS NULL AND deleted=0", + (drow[0]["id"], drow[0]["name"], int(sid), nm)) + except Exception as e: + print(" [warn] 联系人职务 seed 修复跳过: %s" % e) + # 3) e2c-已归档(步 5 只读消费) + aid, ast = find("e2c-已归档") + if not aid: + aid = mk_customer("e2c-已归档", tok, ctype, gov) + post(f"{BASE}/api/customer/archive?id={aid}", {}, tok) + elif ast != 2: + post(f"{BASE}/api/customer/archive?id={aid}", {}, tok) + SEEDS["archived"] = aid + # 4) 联系人样例:张关键 / 王重复(同号 13812340001,步 16/17);行字段=jobTitleCode(RowInput 契约,jobTitleName 不被绑定) + rows = dbq("SELECT name FROM customer_contact WHERE customer_id=%s AND deleted=0", (sid,)) + have = {r["name"] for r in rows} + todo = [] + if "张关键" not in have: todo.append({"name": "张关键", "jobTitleCode": jobc, "phone": "13812340001", "isKeyContact": 1}) + if "王重复" not in have: todo.append({"name": "王重复", "jobTitleCode": jobc, "phone": "13812340001"}) + if todo: quick_add(sid, todo, tok) + return SEEDS + +# ---------------- sweep(e2c-dr* 正门 DB 硬删,幂等重跑) ---------------- +def sweep(): + n = 0 + rows = dbq("SELECT id FROM customer WHERE customer_name LIKE %s", (PFX + "%",)) + for row in rows: + cid = str(row["id"]); n += 1 + # 商机关联行(步 23 建的商机):先删 opportunity_customer 再删商机主体+尽力清子表 + opps = [r["opportunity_id"] for r in dbq( + "SELECT opportunity_id FROM opportunity_customer WHERE customer_id=%s", (cid,))] + dbx("DELETE FROM opportunity_customer WHERE customer_id=%s", (cid,)) + for oid in opps: + for t in ("opportunity_dynamic", "opportunity_follow", "opportunity_oplog", "opportunity_member"): + try: dbx(f"DELETE FROM {t} WHERE opportunity_id=%s", (oid,)) + except Exception: pass + dbx("DELETE FROM opportunity WHERE id=%s", (oid,)) + for t in ("customer_contact_edge", "customer_contact_graph", "customer_contact_reveal_log", + "contact_import_fail", "contact_import_task", "customer_import_fail", "customer_import_task", + "customer_contact", "customer_oplog", "customer_focus", "customer_follow", + "customer_team_member", "customer_view_log", "customer_transfer_detail"): + try: dbx(f"DELETE FROM {t} WHERE customer_id=%s", (cid,)) + except Exception: pass + dbx("DELETE FROM customer WHERE id=%s", (cid,)) + # 交接单(发起人/接收人维度,e2c-dr 期间的 JG 单) + try: + bills = dbq("SELECT id FROM customer_transfer WHERE create_time > DATE_SUB(NOW(), INTERVAL 2 HOUR)") + for b in bills: + dbx("DELETE FROM customer_transfer_detail WHERE transfer_id=%s", (b["id"],)) + dbx("DELETE FROM customer_transfer WHERE id=%s", (b["id"],)) + n += 1 + except Exception: pass + return n + +# ---------------- multipart 分流(Chromium 不回传文件内容 → Python 重发完整 multipart) ---------------- +_CUP_RE = re.compile(r"/api/customer/import/upload") # 客户导入 +_CUP_C_RE = re.compile(r"/api/customer/contact/import/upload") # 联系人导入 +_FLD = {"importMode": re.compile(rb'name="importMode"\r?\n\r?\n([A-Z_]+)'), + "duplicateStrategy": re.compile(rb'name="duplicateStrategy"\r?\n\r?\n([A-Z_]+)'), + "customerId": re.compile(rb'name="customerId"\r?\n\r?\n(\d+)')} + +def _py_upload(path, xlsx, token, mode, strategy, cid=None): + boundary = "----smokeBoundaryDr009876543210" + parts = [] + kv = [("importMode", mode), ("duplicateStrategy", strategy)] + if cid: kv.insert(0, ("customerId", cid)) + for k, v in kv: + parts.append(f'--{boundary}\r\nContent-Disposition: form-data; name="{k}"\r\n\r\n{v}\r\n'.encode()) + with open(xlsx, "rb") as f: fb = f.read() + parts.append((f'--{boundary}\r\nContent-Disposition: form-data; name="file"; filename="{os.path.basename(xlsx)}"\r\n' + f'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\r\n\r\n').encode() + fb + b"\r\n") + parts.append(f"--{boundary}--\r\n".encode()) + req = urllib.request.Request(BASE + path, data=b"".join(parts), method="POST") + req.add_header("Content-Type", f"multipart/form-data; boundary={boundary}") + req.add_header("Authorization", "Bearer " + token) + with urllib.request.urlopen(req, timeout=60) as r: + return json.loads(r.read().decode()) + +def make_handle(route_token): + def handle_api(route): + req = route.request + cors = {"Access-Control-Allow-Origin": req.headers.get("origin") or "null", + "Access-Control-Allow-Credentials": "true"} + u = req.url + p = u.split("?")[0] + ct = (req.headers.get("content-type") or "") + # NET 断言载体:URL 带查询串;POST 文本体(urlencoded/JSON,multipart 已分流)附记在 # 之后 + tail = ("?" + u.split("?", 1)[1]) if "?" in u else "" + if req.method == "POST" and "multipart" not in ct: + bt = (req.post_data or "")[:400] + if bt: tail += " # " + bt.replace("\n", " ") + api_urls.append(req.method + " " + p.split(BASE)[-1] + tail) + if req.method == "POST" and (_CUP_RE.search(p) or _CUP_C_RE.search(p)): + buf = req.post_data_buffer or b"" + mode = (_FLD["importMode"].search(buf) or [b"", b"UPSERT"])[1].decode() + strat = (_FLD["duplicateStrategy"].search(buf) or [b"", b"SKIP"])[1].decode() + cid = (_FLD["customerId"].search(buf) or [b"", b""])[1].decode() or None + path = "/api/customer/import/upload" if _CUP_RE.search(p) else "/api/customer/contact/import/upload" + xlsx = XLSX_CUST if _CUP_RE.search(p) else XLSX_CONT + try: + env = _py_upload(path, xlsx, route_token, mode, strat, cid) + route.fulfill(status=200, body=json.dumps(env, ensure_ascii=False).encode(), + headers={"Content-Type": "application/json", **cors}) + except urllib.error.HTTPError as e: + route.fulfill(status=e.code, body=e.read(), headers={"Content-Type": "application/json", **cors}) + except Exception as e: + route.fulfill(status=502, headers={"Content-Type": "application/json", **cors}, + body=json.dumps({"code": -1, "success": False, "message": f"py-upload: {e}"})) + return + h = {k: v for k, v in req.headers.items() + if k.lower() not in ("origin", "authorization", "referer", "host", "content-length")} + h["Authorization"] = "Bearer " + route_token + try: + data = req.post_data_buffer if req.method not in ("GET", "HEAD") else None + r2 = urllib.request.Request(req.url, data=data, method=req.method) + for k, v in h.items(): r2.add_header(k, v) + with urllib.request.urlopen(r2, timeout=60) as resp: + body = resp.read(); ct = resp.headers.get("Content-Type") or "application/json"; status = resp.status + route.fulfill(status=status, body=body, headers={"Content-Type": ct, **cors}) + except urllib.error.HTTPError as e: + route.fulfill(status=e.code, body=e.read(), headers={ + "Content-Type": e.headers.get("Content-Type") or "application/json", **cors}) + except Exception as e: + route.fulfill(status=502, headers={"Content-Type": "application/json", **cors}, + body=json.dumps({"code": -1, "success": False, "message": f"bridge: {e}"})) + return handle_api + +def wait_api(pg, substr, timeout_ms=8000): + """轮询 api_urls 直到出现含 substr 的请求(或超时)。""" + t0 = time.time() + while time.time() - t0 < timeout_ms / 1000: + if any(substr in u for u in api_urls): return True + pg.wait_for_timeout(200) + return False + + +# ================= Part 2 · UI 主流程(步 1-19 A 核心域) ================= +def ev(pg, expr): + return pg.evaluate("() => " + expr) + +def read_toast(pg): + try: + return ev(pg, "[...document.querySelectorAll('#toast .toast-item')].map(x => x.textContent).join(' || ')") or "" + except Exception: + return "" + +def dlg_btn(pg, text): + """点击主