# -*- coding: utf-8 -*- """组装更新包_20261001: 成套报价软件.exe + 使用说明.txt → 目录 + zip""" import os import shutil import zipfile ROOT = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) REL = os.path.join(ROOT, "release", "成套报价软件") OUT = os.path.join(REL, "Output") PKG = os.path.join(OUT, "更新包_20261001_2") 说明 = """成套报价软件 更新包 2026-10-01 第2期(覆盖式更新) 本期更新: 一、PDF 扒图缩放卡顿修复(重点) 原来滚轮缩放每档都在界面线程整页重绘,大幅面图纸一滚就卡死; 现在改为后台渲染+旧图即时拉伸过渡——缩放跟手流畅, 连续滚动只渲染最后一档,不再反复卡顿。 主程序内置查看器与 pdfbt 独立程序已同步修复。 二、批量插入修复 修复批量插入时报"列'框Handle'不属于表"异常的问题。 三、数据落库保障 1. 编辑直写队列强制落库改造:关窗/切换项目时数据完整写入数据库; 2. 全量重算改为单事务提交,重算期间数据一致性更好。 四、查询提速 项目库与方案库补齐"内部ID"索引,图号/箱号/元件查询明显提速。 五、CAD 扒图窗口修复(与 PDF 扒图同步) 1. 右键点击已选中的行不再丢失多选集合; 2. F1 合并增加防抖,不再误弹提示。 六、稳定性 后台异常不再被静默吞掉,关键失败写入日志(安装目录 logs),便于远程排查。 使用方法: 1. 完全关闭成套报价软件(含CAD/PDF扒图也退出); 2. 把本包里「成套报价软件.exe」复制到安装目录(默认 C:\\成套报价软件)覆盖; 3. 把本包里「pdfbt.exe」复制到安装目录的 pdfbt 子文件夹 (默认 C:\\成套报价软件\\pdfbt)覆盖; 4. 重新打开软件即可。 (完整安装包 成套报价软件_Setup.exe 已同步构建,全新机器请用安装包。) """ def main(): if os.path.isdir(PKG): shutil.rmtree(PKG) os.makedirs(PKG) # 主程序 shutil.copy2(os.path.join(REL, "成套报价软件.exe"), PKG) # (2026-10-01 独立 pdfbt.exe 退役后不再随更新包分发) # 使用说明(GBK,记事本直接打开不乱码) with open(os.path.join(PKG, "使用说明.txt"), "w", encoding="gbk", newline="\r\n") as f: f.write(说明) # zip(文件夹+zip两种形态,与历史更新包一致) zip_path = PKG + ".zip" if os.path.exists(zip_path): os.remove(zip_path) with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as z: for name in os.listdir(PKG): z.write(os.path.join(PKG, name), name) print("更新包目录:", PKG) print("更新包zip:", zip_path) for name in os.listdir(PKG): print(" -", name, os.path.getsize(os.path.join(PKG, name)), "字节") print("zip大小:", os.path.getsize(zip_path), "字节") if __name__ == "__main__": main()