5e2493fdf47a939e2fe5b17eeff2eee328369f42
成套报价软件
电气成套设备报价桌面软件:报价三表(图号/箱号/元件)+ CAD/PDF 图纸扒图 + 元件库选型 + 公式计算 + 甲方报表,单机 SQLite 存储,可选 AI 助手与云端会员服务。
改代码前必读:代码索引.md(所有功能的文件/方法级定位 + 修改铁律) 组件属性手册:
.agents\skills\sd-enhanced-components\SKILL.md(WinForms 控件白名单、设计器规则、版本号铁律、git 推送排查手册)
功能概览
- 项目管理:新建/修改/删除/复制项目,zip 项目包导入导出,最近项目自动恢复
- 报价三表:图号/箱号/元件三级联动,虚拟模式万行秒开,编辑实时落库;公式自动计算(成本价/报出价/利润/毛利率,公式可自定义);批量粘贴/删除/撤销、费用模板行
- CAD 扒图:内嵌网页 CAD 查看器(mlightcad)打开 DWG/DXF;框选扒图号/箱号/元件,表格点行定位图上蒙版,F1/F2/F3 元件合并
- PDF 扒图:pdfium 渲染 + 框选 OCR(百度/智谱 GLM/千帆/UApiPro/Umi-OCR 本地五引擎),自动纠正文本方向,入库/合并/定位同 CAD
- 元件库与选型:厂家/系列/价格网页选型,收藏跳转,方案库独立库文件,用户库/柜体库管理与 CSV 导入导出
- 计算与报表:GCS 母排计算与铜排推荐、批量调系数、元件排序、甲方报表 Excel 导出
- 其它:停靠布局保存恢复、数据备份恢复、登录门禁、可选 AI 助手(ZCode 引擎)
技术栈
| 项 | 说明 |
|---|---|
| 框架 | WinForms,.NET Framework 4.8,x86(SharpDevelop 5.x 工具链) |
| 数据库 | SQLite(WAL + Pooling + BusyTimeout=5000),连接串统一见 成套报价软件\数据库连接.cs |
| 内嵌网页 | WebView2(元件库/CAD 查看器/AI 助手面板) |
| PDF/OCR | pdfium 渲染 + 多引擎 OCR(扒图\ 下为唯一源码,pdfbt 链接共享) |
| Excel | NPOI(甲方报表/导入导出) |
| UI 组件 | Smart.CustomComponents(自研)、WeifenLuo Docking、AdvancedDataGridView |
仓库结构
成套报价软件\ 主程序源码(MainForm 拆 14 个 partial;xiangmu/shezhi/ku 子模块窗体)
└ 扒图\ CAD/PDF 扒图窗口 + OCR/PDF 基础设施(唯一权威源,pdfbt 链接共享)
cadbt\ CAD 扒图独立程序(含 CAD-Viewer 网页引擎)
pdfbt\ PDF 扒图独立程序(OCR 等基础设施链接主项目扒图\ 源码)
ai助手\ ZCode 引擎发行包 + 启停脚本(发行包不进 git)
会员服务器\ 肥牛 fnnas 会员服务端 v1.5.1(fpk 工程)
tools\ 构建/打包/维护脚本(见下表)
release\ 组装产物(仅 setup.iss 进 git)
ghj\ yjktool\ 历史试验小工具
数据目录(运行时,均不进 git):sjk\bjb\项目<编号>.db 每项目一库;sjk\fak.db 公式库;sjk\方案库\*.db 一方案一库;shezhi\ 用户配置;xiangmu\ 报表模板。
构建与验证
# 主程序(工作目录必须是 成套报价软件\ 子目录!rsp 相对路径基于它)
cd 成套报价软件
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" "@..\tools\verify_build.rsp" /warn:1
# pdfbt 独立程序(链接共享主项目扒图\ 源码,改 OCR 相关先确认两项目都编译)
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" pdfbt\pdfbt.csproj /t:Build /p:Configuration=Debug
注意:编译前杀掉运行中的主程序(exe 被锁报 CS0016);rsp 默认 /warn:0 压警告,排查时加 /warn:1。
版本号与发版流程
版本号唯一事实源 = 成套报价软件\Properties\AssemblyInfo.cs 的 AssemblyVersion(固定三段式 主.次.修订.0,禁用 1.0.* 自动号);关于软件窗口运行时自动读它显示;安装包文件名带版本号。
# 每次发版必须先递增版本号(规则详见技能"版本号铁律")
powershell -File tools\递增版本号.ps1 # 修订号+1;大版本: tools\递增版本号.ps1 1.1.0
# 发版链(顺序固定)
递增版本号 → 编译 → python tools\make_package.py → ISCC release\成套报价软件\setup.iss
→ python tools\make_update_package.py → git add/commit/push → Gitea Release(tag=v版本号,附件=安装包+更新包)
常用工具脚本(tools\)
| 脚本 | 用途 |
|---|---|
递增版本号.ps1 |
版本号一键递增,同步 AssemblyInfo + setup.iss |
make_package.py |
组装发布目录(exe+DLL+数据目录+cadbt+pdfbt+AI 助手) |
make_update_package.py |
生成覆盖式更新包(exe+说明.txt+zip) |
扒图同步检查.ps1 |
Cad/Pdf Form3.cs 双胞胎漂移护栏(超基线报警) |
perf_load.py |
性能加载测试 |
版本控制与远程
- 远程:
http://192.168.9.43:3000/0999we/ctbjrj(Gitea,remote URL 内嵌访问令牌自动认证) - 节奏:每轮改动
git add -A → commit(中文消息)→ push;Release 附件只在发版时上传一次 - 故障排查(认证失败/rebase 整合/文件占用/gitignore 陷阱等 7 类场景):见技能"git 推送流程与故障排查"
- 发版历史:Gitea Releases(含安装包与更新包附件)
开源组件致谢
软件内嵌的开源组件(WeifenLuo Docking、ADGV、NPOI、DotNetZip、SharpZipLib、ReoGrid、System.Data.SQLite、pdfium、WebView2、Node.js、ZCode、mlightcad CAD-Viewer、Umi-OCR、Lucide)的版权与许可声明见软件"关于→开源致谢"页及安装目录 licenses\。
Releases
1
v2026.10.01-2(PDF缩放修复+性能优化)
Latest
Languages
C#
83.1%
Python
8.4%
JavaScript
6.5%
HTML
1%
Shell
0.3%
Other
0.7%