Skip to content

股东大会核查:面板+AI 编排+法律意见书与底稿生成 - #227

Merged
zeweihan merged 11 commits into
masterfrom
claude/shareholders-meeting-verification-b4679c
Jul 31, 2026
Merged

股东大会核查:面板+AI 编排+法律意见书与底稿生成#227
zeweihan merged 11 commits into
masterfrom
claude/shareholders-meeting-verification-b4679c

Conversation

@zeweihan

Copy link
Copy Markdown
Owner

概要

把左栏「股东大会」占位插件实现为完整功能:律师现场拿到投票结果后,对照股东大会通知与董事会决议撰写法律意见书并组底稿的全流程产品化。

设计文档:docs/superpowers/specs/2026-07-31-shareholder-meeting-verification-design.md

分层

  • 面板(ShareholderMeetingPanel.vue):核查会话管理、五组材料槽位(通知/决议/投票结果/模板初稿/其他)、巨潮拉取、开始核查
  • 后端:ShareholderMeetingCheck 实体 + /api/shareholder-meeting(鉴权对齐 DdController);CninfoAnnouncementService(巨潮拉取移植自内核 skill,挑选启发式单测锁定);start 接口建底稿夹「股东大会核查/<公司>_<届次>/01..05」并复制材料(幂等)、组装 kick-off prompt
  • Skill(backend/skills/shareholder-meeting-verification/):13 项字段三源交叉核对、议案三标签(特别决议/累积投票/单独计票)、表决复算、核查底稿表 + 意见书生成或本所初稿填充;四条硬约束(事实可追溯/见证边界/缺材料显式声明/规范用语)
  • 执行链路:面板 → ChatInterface.sendExternalPrompt(新 expose,强制 AGENT 模式)→ 触发词命中 skill 注入 → extract_file_text 读材料 → run_python 复算 → write_docx(新支持 parentFolderId)产出到底稿夹

全局能力补强

  • 新工具 extract_file_text:Tika/PDFBox 全文抽取,补齐 AI 读 Word/Excel/PDF 的能力缺口(此前 read_file 对 docx/xlsx 静默返回空串)
  • 修预置 bug:Tika 2.9.x PDFParser 依赖 PDFBox 2.x API 与项目 PDFBox 3.0.1 冲突,/api/files/{id}/text 对 PDF 一直 NoSuchMethodError——PDF 改走 PDFBox 3 原生路径

验证

  • 后端 mvn test 647 全绿(新增 11 个单测:Tika/PDF 抽取、巨潮挑选启发式、prompt 组装)
  • 前端 check:emits + build:h5 通过
  • API 级端到端(罗欣药业真实通知/决议 PDF + 自造交易所格式表决 Excel):上传→建会话→关联→start→底稿夹结构/材料复制/幂等/prompt 全部断言通过
  • 巨潮在线拉取实测:002793 从 8 候选中精准挑中通知与决议并落库
  • 领域文档已同步(plugin-system.md、ai-chat.md)

🤖 Generated with Claude Code

zeweihan and others added 11 commits July 31, 2026 22:58
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DocumentTextService 从 FileController 上提共用;read_file 对 docx/xlsx
静默返回空串的能力缺口由新工具补齐;前端工具名映射同步。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
挑选启发式与内核 skill Python 版一致并锁定单测;拉到的通知/决议
PDF 落底稿夹 01/02 子目录并自动关联材料槽。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ocx 支持目标文件夹

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
七步工作流:读材料/13 项字段三源交叉核对/议案三标签/表决复算/
核查底稿表/意见书撰写或初稿填充/收尾;四条硬约束继承内核 skill。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
会话列表/新建/五组材料槽位/巨潮拉取/开始核查,样式对齐现有左栏面板。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
占位分支落实为真面板;开始核查经 AI 面板 AGENT 模式发送并绑定会话 ID。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Tika 2.9.x 的 PDFParser 依赖 PDFBox 2.x 的 PDDocument.load,与项目
PDFBox 3.0.1 冲突(NoSuchMethodError),/api/files/{id}/text 对 PDF
一直不可用——预置 bug,本次 extract_file_text 依赖该链路时暴露。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@zeweihan
zeweihan merged commit 2d73d91 into master Jul 31, 2026
4 checks passed
zeweihan added a commit that referenced this pull request Aug 27, 2026
…#227/#228) (#626)

- 中转区:每用户 3GB 配额(只计未投递 blob,ACK 即释放);TTL 7→30 天;
  mediaType 放行 audio;GET /api/mobile/media/usage;status 未投递件带 expiresAt
- 桌面落盘:audio 落「现场录音/日期」,image/video 照旧「现场影像/日期」
- 右键转写:POST /api/meetings/projects/{pid}/register-file 把已有音频文件注册成
  会议记录(ownsAudioFile=false 删除不连带删用户原始文件;同文件幂等防重复扣费;
  凭证已配自动提交),走会议录音三档转写链路(说话人分离/纪要同享)
- 修转码失败回退硬编码 webm 的雷:按 prepared 真实扩展名上报(m4a 不再被当 webm)
- 前端:FileTree 右键「转写」(按 meetingRecorderEnabled 门控)→ 跳语音面板定位展开;
  FileTypeIcon 补 m4a/aac/flac 等音频图标
- 领域文档 mobile-sync.md 同步更新

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant