# ReleaseKit **Repository Path**: fbigun/release-kit ## Basic Information - **Project Name**: ReleaseKit - **Description**: 产品放行报告自动化工具集 — 从信息获取到文档生成,一站式完成。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ReleaseKit 产品放行报告自动化工具集 — 从信息获取到文档生成,一站式完成。 ## 功能 | 工具 | 子命令 | 说明 | |---|---|---| | **getproductinfo** | `query` | 从内网 QC 系统 API 拉取产品批号信息,写入 CSV | | **generate_reports** | `generate` | 读取 CSV + 模板,批量生成放行单和 COA/COC 文档 | | **split_certs** | `split-pdf` | 将多页证书 PDF 按产品切分为单页并重命名 | | **py-launcher** | — | 嵌入式 Python 自动发现与启动器 | | **py-assoc** | — | Windows `.py` 文件关联管理 | ## 工作流程 ``` 1. 获取信息 2. 生成文档 3. 处理证书 ┌──────────────┐ ┌────────────────┐ ┌──────────────┐ │query │──→│generate │──→│split-pdf │ │API → CSV │ │CSV+模板 → │ │多页PDF切分 │ │ │ │放行单+COA/COC │ │ │ └──────────────┘ └────────────────┘ └──────────────┘ ``` **步骤说明:** 1. 在 `input/config-productinfo.csv` 中填写产品批号,运行 `ReleaseKit.bat` 选择「查询产品信息」自动回填生产日期、有效期、数量等 2. 运行 `ReleaseKit.bat` 选择「生成报告」,自动匹配模板生成放行单和 COA/COC 文档 3. 运行 `ReleaseKit.bat` 选择「切分 PDF」,将证书 PDF 切分到 output 目录 ## 目录结构 ``` ReleaseKit/ ├── pyproject.toml # 项目元数据、依赖声明 ├── ReleaseKit.bat # 主入口(交互菜单,统一所有功能) ├── input/ # 源 PDF 文件 + 产品数据源 │ └── config-productinfo.csv # 产品数据源 ├── bin/ # 嵌入式 Python + 启动器 │ ├── python-*-embed-*/ # 嵌入式 Python 发行版 │ ├── py-launcher.bat # Python 启动器 │ └── py-assoc.bat # .py 文件关联管理 ├── template/ # 文档模板(按产品编号命名) ├── output/ # 生成文件输出 ├── releasekit/ # Python 包 │ ├── __init__.py # 包初始化 │ ├── __main__.py # python -m releasekit 入口 │ ├── config.py # 共享路径常量、字段定义、API 配置 │ ├── utils.py # CSV 读写、日期格式化等共享工具 │ ├── cli.py # 交互菜单 + 子命令分派 │ ├── api/ │ │ └── qc_client.py # QC 系统 API 客户端 │ ├── services/ │ │ ├── product_info.py # 产品信息查询业务逻辑 │ │ ├── report_gen.py # 报告生成业务逻辑 │ │ └── pdf_split.py # PDF 切分业务逻辑 │ └── docops/ │ ├── zip_utils.py # ZIP 重新打包工具 │ ├── docx_ops.py # docx XML 占位符替换 │ └── xlsx_ops.py # xlsx XML 单元格替换 ├── tests/ # 单元测试 └── req/ # API 参考文档 ``` ## 使用方法 双击 `.bat` 文件即可运行,无需安装 Python。 ### 交互菜单模式 双击 `ReleaseKit.bat` 进入引导式菜单。 ### 子命令模式 ```cmd python -m releasekit query # 查询产品信息 python -m releasekit generate # 生成报告 python -m releasekit split-pdf # 切分 PDF ``` ### 生成放行报告 1. 编辑 `input/config-productinfo.csv`,填写产品批号 2. 双击 `ReleaseKit.bat`,选「查询产品信息」— 自动获取产品信息 3. 双击 `ReleaseKit.bat`,选「生成报告」— 生成放行单和 COA/COC 文档 4. 在 `output/` 目录查看结果 ### 处理证书 PDF 双击 `ReleaseKit.bat`,选「切分 PDF」,将多页 PDF 按批号切分到 `output/` 目录。 ### 管理文件关联 以管理员身份运行 `bin\py-assoc.bat`,可增加、移除或查看 `.py` 文件关联。 ## 产品数据格式 `input/config-productinfo.csv` 字段说明: | 字段 | 含义 | 示例 | |---|---|---| | 产品批号 | 批次编号 | `260423100` | | 检验编号 | 质检编号 | `FP20260506-001` | | 报告日期 | YYYY.MM.DD | `2026.05.13` | | 区域 | 国内 / 国际 | `国内` | | 生产日期 | YYYY.MM.DD | `2026.04.23` | | 有效期 | YYYY.MM | `2029.03` | | 数量 | 产品数量 | `106200` | | 产品编号 | 匹配模板文件名 | `30010034` | | 产品名称 | 中文名称 | `左氧氟沙星片` | **国内**生成放行单(fx.docx) + 对外COA(rs.xlsx);**国际**生成放行单(fx.docx) + COC(rs.docx),日期自动转换为英文格式。 ## 技术说明 - **零安装部署**:通过嵌入式 Python + `py-launcher.bat`,双击即用 - **格式完整保留**:直接编辑 ZIP 内 XML,不经过 python-docx / openpyxl 序列化,完美保留上标、下标等格式 - **国内/国际双轨**:根据区域字段自动选择模板和日期格式 - **标准 Python 包结构**:`python -m releasekit` 入口,支持子命令和交互菜单两种模式 ## 开发 ```cmd pip install -e ".[pdf,dev]" pytest ```