成套报价软件

电气成套设备报价桌面软件:报价三表(图号/箱号/元件)+ 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 基础设施(唯一权威源)
cadbt\                 CAD 网页引擎运行时(node.exe + CAD-Viewer;2026-10-01 独立 cadbt.exe 退役)
ai助手\                ZCode 引擎发行包 + 启停脚本(发行包不进 git)
会员服务器\            肥牛 fnnas 会员服务端 v1.5.1(fpk 工程)
tools\                 构建/打包/维护脚本(见下表)
release\               组装产物(仅 setup.iss 进 git)

(已退役:独立 cadbt.exe/pdfbt.exe 扒图程序、ghj/yjktool 试验小工具、cadcj 旧 AutoCAD 插件——扒图功能全部由主程序内嵌窗口承载。)

数据目录(运行时,均不进 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\。

S
Description
No description provided
Readme
12 MiB
2026-10-02 01:05:02 +08:00
Languages
C# 83.1%
Python 8.4%
JavaScript 6.5%
HTML 1%
Shell 0.3%
Other 0.7%