﻿宇珩智能 · 电力施工安全管控系统　安装与分发说明
=================================================

零、最重要的一句
------------------------------------------
先「全部解压缩」，再进文件夹双击。不要在压缩包的预览窗口里直接双击，
那样只会解出你点的那一个文件，其它文件都不在，必然失败。


一、电脑端怎么用（3 步，装完什么都不用配）
------------------------------------------
1) 右键压缩包 →「全部解压缩」（WinRAR/7-Zip 就是「解压到当前文件夹」）
2) 进到解压出来的文件夹，双击「① 检查并启动.cmd」
   → 它会自动做五件事：检查文件 / 解除系统锁定 / 测试运行环境 /
     启动后台服务 / 打开窗口。每一步屏幕上都写着结果。
3) 想让它像正常软件一样有个桌面图标，再双击「② 安装成电脑应用.bat」
   → 桌面 + 开始菜单出现「宇珩安全管控系统」图标（带自定义图标）
   → 以后双击图标即可：没有地址栏、没有标签页的独立窗口，后台服务自动起

4) 第一次打开会停在「注册新公司」（v2.11.0 起不再有 admin / yh123456）：
   填 公司（单位）全称 + 自己设的密码 + 第一个项目名称 → 点「注册并登录」。
   注册完系统会弹一串【找回码】（如 D6D7-2SGL）—— 请抄在纸上存好，
   忘记密码时靠它自己重置，不用找厂家。
   以后登录，登录名就填「公司名称」，员工可以另外开账号。
   同一个公司可以有多个项目：电脑端「账号与接入 → 公司 / 项目归属」里
   每个项目一张二维码，手机扫哪张就归到哪个项目，不会串、也不会传到别家公司。
   （详见《交付说明》第十三、十四节）

完整版自带运行环境（bin\node.exe），对方电脑不用装 Node.js、不用装数据库、
不用装任何东西；也不联网就能跑，数据全在本机。


二、手机端怎么装成 App
------------------------------------------
【方法 A：扫码装安卓 App（推荐）】
  电脑登录后点右上角「手机接入」，弹窗里第一个码就是「② 扫码下载 App（安卓）」：
    手机扫它 → 点「下载安装包」→ 提示「未知来源」选「允许」→ 装好打开
  地址已经内置在安装包里，打开就是本系统，不用填地址、不用注册
  也可以用微信 / 蓝牙 / 数据线把包里的「宇珩智巡-手机安装包.apk」发给手机直接装
  （微信里打不开就点右上角「…」→「在浏览器打开」）

【方法 B：不装 App，网页版一样用（苹果手机只能这样）】
  扫「③ 不装 App · 网页版」那个码，手机浏览器直接打开，
  拍照、录像、看实时画面一样能用。iOS 不支持安装安卓安装包。

【第一次打开 App】
  什么都不用填，打开直接进系统，用 admin / yh123456 登录。
  提示连不上时：先看电脑上的系统是否开着；电脑刚重启就等一分钟点「重新连接」；
  也可以在 App 里点「改用局域网地址」，填电脑 IP（电脑「手机接入」上写着）。

【手机能做什么】
  · 直播：开启摄像头，画面每 0.9 秒回传一帧，电脑端「视频监控」里实时看
  · 抓拍违章：选项目/违章类型/等级/责任人，自动带定位，上传即进「违章台账」
  · 回传：现场拍照、相册选图、选视频（≤80MB，自动压缩）
  · 项目现场录入：回传时可直接「新建项目」，电脑端还能批量导入


三、人在外地 / 手机不在同一 WiFi 怎么用
------------------------------------------
系统默认只能同一个 WiFi 内访问，因为电脑在路由器后面，
外面没有地址能进来。要让手机用 4G/5G 也能连，装个免费的
Tailscale（相当于给电脑和手机拉一条专用隧道）：

  1) 电脑装：https://tailscale.com/download/windows
     装完用邮箱登录（记下这个账号）
  2) 手机装：应用商店搜 Tailscale，用【同一个账号】登录并连接
  3) 重启本系统（关掉黑窗口，重新双击「① 检查并启动.cmd」）
     启动信息里会多一行「Tailscale 已就绪」和 100.x.x.x 地址
  4) 电脑「手机接入」弹窗里会多出第三个二维码「③ 异地 / 手机流量」
     手机扫它，或手动输入那个 100 开头的地址

  详细图文步骤见同目录「异地访问设置说明.txt」。
  注意：电脑必须开机、黑窗口必须开着，异地才连得上。

  想一次看全所有接法（同一 WiFi / 电脑连手机热点 / 异地 /
  给甲方临时开个号），见同目录「手机接入说明.txt」。


四、发给别人（微信 / 蓝牙 / U 盘）
------------------------------------------
「③ 打包成安装包.bat」会生成两个包，按需选一个发：
  · 完整版（约 32MB）：自带运行环境，对方什么都不用装 —— 首选
  · 精简版（约 0.3MB）：微信快速传，对方电脑已装 Node.js 时用
包内已带手机安装包；对方三步：解压 → 双击① → 双击②。


五、装不上怎么办（按顺序看）
------------------------------------------
1) 双击后窗口一闪就没、桌面也没图标
   → 基本都是在压缩包预览窗口里直接双击的。先完整解压，进文件夹再双击。

2) 双击桌面图标，弹「Windows Script Host / 加载脚本失败」
   → 这是**旧版**留下的坏图标（旧版用 .vbs 脚本，且压缩包里中文名在英文系统上
     会变成问号，路径失效）。现在的版本已经不用 .vbs 了：
     重新解压新包 → 双击「② 安装成电脑应用.bat」，
     它会先把旧图标自动删掉，再建新的并当场校验。装完桌面上只会有一个图标。

3) 提示文件不全 / 找不到 node.exe
   → 压缩包没有完整解压，或杀毒软件把 bin\node.exe 隔离了。
     重新解压整个包；杀软弹过窗就先把文件夹加入信任区。

4) 服务起不来（黑窗口提示失败）
   → 最常见是 8080 端口被别的程序占了：关掉多余程序或重启电脑再试。
     详情看文件夹里的「运行日志.txt」，最后几行就是原因。

5) PowerShell 被公司策略禁了，① 和 ② 都不动
   → 双击文件夹里的「start.cmd」，它完全不用 PowerShell，照样能起。

6) 还不行
   → 把「运行日志.txt」「安装日志.txt」和黑窗口截图发给技术人员，
     现在每一步卡在哪、报什么错都写在里面。


六、默认账号与数据在哪
------------------------------------------
账号：admin / yh123456 （管理员）
      anquan / yh123456 （安全员）
      feishou / yh123456 （飞手）
登录后请到「账号与接入」里改密码。

数据（备份就复制这三个文件夹）：
  data\db.json   项目、工人、设备、账号、抓拍与违章记录
  photos\        现场照片
  videos\        录像


七、给技术人员看的说明
------------------------------------------
· 纯 Node.js 实现，零第三方依赖：server.js + certgen.js + qrmod.js
· HTTPS 证书由 certgen.js 用纯 Node 现场签发（不依赖 openssl），
  自动把 localhost 和本机所有局域网 IP 写进 SAN；换 WiFi/IP 会自动重签
· 所有 .cmd / .bat 内容为纯 ASCII，中文提示由 run.ps1 / install.ps1
  （UTF-8 带 BOM）输出 —— 避免 cmd 按本地代码页解析时吃掉字符
· zip 由 tools/zip.js 自己生成：文件名 UTF-8 + 通用标志位 bit 11，
  在任何代码页的系统上解压都不会出现问号或乱码
· 桌面快捷方式 = powershell.exe + ".\run.ps1"（纯 ASCII 相对路径 + 设置工作目录），
  不再依赖 wscript/VBS，也不会把中文绝对路径写进快捷方式

八、从旧版升级到新版（数据不会丢）
------------------------------------------
新包里【不含任何数据文件】：只有空的 data / photos / videos
三个目录，没有 db.json，也没有照片和录像。
所以换新版不会把你已有的项目、照片、违章记录冲掉。
但顺序别弄反，按下面做：

1) 先关掉旧程序：关掉那个黑窗口（关窗口 = 停机，安全）

2) 把新压缩包解压到一个【新文件夹】，例如
     宇珩安全管控系统-新版
   别直接往旧文件夹里解压：万一中途出错，新旧混在一起，
   不好判断到底跑的是哪一版。

3) 从旧文件夹里复制这【三个】文件夹，粘到新文件夹里：
     data      项目、工人、设备、账号、抓拍与违章记录
     photos    现场照片
     videos    录像
   （certs 可带可不带：不带会按当前 IP 重新签一张，不影响使用）

4) 进新文件夹，双击「② 安装成电脑应用.bat」
   它会把桌面上指向旧目录的图标删掉，再建一个指向新目录的，
   不会出现"点了图标还是打开旧版"。

5) 双击「① 检查并启动.cmd」，确认能打开。

【怎么确认升级成功了】
  登录后左侧点「账号与接入」，左上第一张卡片「当前登录账号」里
  有一行「服务版本」：显示 v2.4 就是最新版（v2.3 / v2.2 / v2.1 / v2.0 都是旧的）。
  还显示旧版本号，说明你打开的还是旧目录里的程序。

【新版改了什么，值得升级】
  · 一键自动更新（v2.4 新增）：新版只要放到一个共享文件夹，
    每台电脑自己发现，页面右上角冒出「新版本 vX.X」，
    管理员点一下自动装好并重启，不用再一台台拷安装包。
    台账、照片、视频、配置全部保留。
    配置一次即可，方法见《自动更新设置说明.txt》
  · 违章推送（v2.3 新增）：违章一进台账，自动发到项目部微信群、
    钉钉群，或直接发短信到管理员手机。支持一类去重、限流、发送日志。
    配置位置：「账号与接入」→ 最下面「违章推送」，
    详细步骤见《违章推送设置说明.txt》
  · 反光背心 / 安全带识别（v2.3 新增）：识别模型从"只看安全帽"
    升级成 13 类 PPE，能判未穿反光背心、未系安全带，
    还能同时识别戴帽/穿背心等合规情况（准确率与限制见
    《素材归档说明.txt》第四节）
  · 塔基警戒圈：在画面上圈一次"塔基 10 米范围"，
    未戴安全帽的人进了圈，直接定一类违章、标「人为危险因素」
    （6 分 / 500 元 / 立即停工教育），缩略图上画出圈和人框
  · 素材归档识别结果的缩略图会叠加标注，为什么报警一眼能看出来
  · 手机异地访问（Tailscale），人在外地也能用
  · 启动时自动放行 Windows 防火墙端口，手机连不上的问题少一大半

【旧文件夹别急着删】
  跑一周确认没问题再删。留着它，就是一份随时能退回去的备份。

九、彻底卸载（不想用了 / 换电脑）
------------------------------------------
先说清楚一件事：这套程序【不是用安装包装的】。

  · 不写注册表  → 控制面板「程序和功能」里找不到它，这是正常的
  · 不装服务    → 服务列表里没有它
  · 不开机自启  → 开机不会自己跑
  · 全部文件都在解压出来的那个文件夹里

所以它本来就不脏，不想要了直接删文件夹也不会留垃圾。
下面这个脚本只是帮你把"文件夹以外"的痕迹一并清掉。

【一键卸载】

  双击「④ 卸载.bat」，脚本会依次做四件事：

    1) 停掉正在运行的服务（就是那个黑窗口在跑的东西）
    2) 删掉桌面和开始菜单的图标，顺带清掉旧版本遗留的坏图标
    3) 删掉防火墙放行的 8080 / 8443 规则
    4) 问你数据要不要一起删——默认保留

  第 3 步需要管理员权限。普通双击时它会提示"没权限"，
  但影响很小。想清干净就这样做一次：

    右键「④ 卸载.bat」→ 以管理员身份运行

  第 4 步是唯一会删数据的地方，必须手动输入大写 DELETE 才生效，
  直接回车就是保留。不会手滑删掉。

【脚本跑完之后，还有最后一步】

  脚本删不掉自己所在的文件夹，所以最后要你手动做：

    关掉黑窗口 → 打开上一级文件夹 → 把整个
    「宇珩安全管控系统」文件夹删掉（右键删除即可，会进回收站）

  想反悔就在回收站里还原。

【数据在哪，怎么留】

  文件夹里这四个目录装着你的全部家当：

    data      项目、工人、设备、账号、抓拍与违章记录
    photos    现场回传的照片
    videos    录像
    certs     本机自签证书（删了下次自动重签，不影响使用）

  换电脑、重装之前，先把 data / photos / videos 三个复制到
  U 盘或别的文件夹。本系统没有云端备份，删了就是真没了。

  想留档又不想留程序：只留 data 和 photos 两个目录就够，
  程序本体（server.js、ai、bin 等）删掉没关系。

【不想用脚本，纯手动也行】

  1. 关掉黑窗口（这就是停服务）
  2. 删掉桌面上和开始菜单里的「宇珩安全管控系统」图标
  3. 打开这个文件夹，把整个文件夹删掉
  4. （可选）以管理员身份打开命令提示符，执行：

       netsh advfirewall firewall delete rule name="YH-PowerSafety-8080"
       netsh advfirewall firewall delete rule name="YH-PowerSafety-8443"

  第 4 步不做也没关系，只是这两个端口会一直允许入站。

【删完之后电脑上还剩什么】

  除了你自己保留的 data 备份，什么都没有：
  没有注册表残留、没有服务、没有开机启动项、没有后台进程。

【注意：手机上不用卸】

  · 如果是用浏览器扫码看的，什么都没装，清一下浏览器记录即可
  · 如果装了「宇珩智巡」App，在手机的
    设置 → 应用 → 宇珩智巡 → 卸载
    卸掉就行。App 只是外壳，不存数据，卸了不影响电脑端。
