497 lines
27 KiB
Markdown
497 lines
27 KiB
Markdown
# MES 测试环境接管基线
|
||
|
||
文档版本:V1.3
|
||
基线日期:2026-07-25
|
||
适用项目:`MES_Manage_View_V20`
|
||
接管环境:测试环境
|
||
文档状态:已建立,后续按验证进度持续更新
|
||
|
||
## 1. 基线结论
|
||
|
||
当前测试环境已完成前端、MES 接口、数据库、只读外部集成和恢复演练的受控接管,可作为后续生产接管的演练环境。核心后端按现有发布物维护,不把缺少原始源码列为当前接管阻断项;涉及 DLL 逻辑修改时仍需单独评估。
|
||
|
||
| 领域 | 状态 | 结论 |
|
||
| --- | --- | --- |
|
||
| 前端代码/部署 | 已接管 | 构建通过,测试前端已部署到 IIS `10012` |
|
||
| MES 通用接口 | 已验证 | HTTPS 接口可访问,登录、菜单和只读过程调用成功 |
|
||
| 测试数据库 | 已验证 | SQL Server 可连接,`YL_MESDB` 在线且对象可读 |
|
||
| MES 应用账号 | 已验证 | 测试超级管理员账号可登录,角色和菜单加载成功 |
|
||
| B1 集成 | 只读接管 | 通过管理机 VPN 访问现场代理,登录代理与语义 GET 可用,POST/PATCH 被测试前端阻止 |
|
||
| TM 集成 | 受限只读 | 现场代理端口可达;当前前端只有库存任务 POST 调用,测试环境全部阻止,尚无明确 GET 验收端点 |
|
||
| 数据库版本一致性 | 关键项已同步 | 装配任务查询、索引、合同工时和预算进度相关变更已同步,完整对象差异仍需持续维护 |
|
||
| 测试账号权限 | 部分整改 | 已创建 `meswork_readonly` 只读账号,原 `meswork` 仍为 `dbo/sysadmin` |
|
||
| 配置隔离 | 已验证 | 测试 `dist/static/config.js` 独立指向测试 MES,并启用 B1/TM 只读保护 |
|
||
| 接口服务源码/部署 | 发布物接管 | IIS、部署目录、配置和脱敏快照已归档;按约定不修改核心 DLL,无原始源码不阻断当前运维接管 |
|
||
|
||
接管判定:**有条件接管**。
|
||
|
||
- 可以开展:代码分析、只读诊断、菜单与权限核对、MES 查询流程测试、SQL 修复脚本编写、测试环境受控变更。
|
||
- 暂不可开展:B1/TM 真实联调、生产等价验收、未经审批的数据库写入、完整灾备恢复演练。
|
||
|
||
V1.2 增量状态:WinRM HTTPS 已接通并完成 IIS/后端只读盘点;部署快照已脱敏归档,数据库备份历史已核对,但核心 DLL 原始源码和恢复演练仍未完成。
|
||
|
||
## 2. 基线范围
|
||
|
||
本基线覆盖:
|
||
|
||
- Vue 主系统代码、构建配置和运行时配置。
|
||
- MES 统一接口 `MESCommonBase.ashx`。
|
||
- 测试服务器 IIS 站点、应用池、证书、日志和接口部署目录。
|
||
- 测试 SQL Server 中的 `YL_MESDB`。
|
||
- MES 应用登录、角色菜单和通用存储过程查询。
|
||
- B1/TM 网络可用性及前端依赖范围。
|
||
- 正式库与测试库部分关键对象的定义一致性。
|
||
- 接管安全规则、变更规则、已知限制和后续任务。
|
||
|
||
本基线不包含明文密码、数据库连接口令、Token 或生产业务数据。
|
||
|
||
## 3. 代码基线
|
||
|
||
### 3.1 版本信息
|
||
|
||
| 项目 | 当前值 |
|
||
| --- | --- |
|
||
| 仓库目录 | `C:\WorkYuanLy\MES_Manage_View_V20` |
|
||
| 当前分支 | `snapshot/local-save-20260625-154806` |
|
||
| 当前提交 | `62f7632fc6708a8dcb25934c463d18520d9619de` |
|
||
| 提交时间 | 2026-07-24 14:59:37 +08:00 |
|
||
| 提交说明 | `feat: 完善设计报工与研发工时功能` |
|
||
| Node.js | v20.14.0 |
|
||
| npm | 10.7.0 |
|
||
| 应用版本 | 1.1.0 |
|
||
|
||
当前工作区存在未提交文档、数据库脚本和工作目录。接管期间不得清理或覆盖来源不明的现有变更;正式发布前应建立明确的发布分支和提交边界。
|
||
|
||
### 3.2 技术栈
|
||
|
||
| 层级 | 技术 |
|
||
| --- | --- |
|
||
| 前端框架 | Vue 2.7.16 |
|
||
| 路由 | Vue Router 3.6.5,数据库菜单动态生成路由 |
|
||
| 状态管理 | Vuex 3.6.2 |
|
||
| UI | Element UI 2.15.14 |
|
||
| HTTP | Axios 0.21.4 |
|
||
| 构建 | Webpack 5.103.0 |
|
||
| 数据库 | SQL Server 2019 |
|
||
| 业务接口 | ASP.NET `.ashx` 统一存储过程网关 |
|
||
| 外部集成 | SAP B1 代理、TM/OpenAPI、文件服务、设备/MQTT |
|
||
|
||
### 3.3 前端规模
|
||
|
||
| 指标 | 数量 |
|
||
| --- | ---: |
|
||
| `src/views` 下 Vue 文件 | 99 |
|
||
| `src` 下 JavaScript 文件 | 77 |
|
||
| `CreateData` 调用 | 770 |
|
||
| 可静态识别的字面量过程调用 | 724 |
|
||
| 可静态识别的唯一过程名 | 219 |
|
||
|
||
业务模块页面分布:
|
||
|
||
| 模块 | Vue 文件数 |
|
||
| --- | ---: |
|
||
| 生产管理 | 36 |
|
||
| 质量管理 | 15 |
|
||
| 计划排产 | 13 |
|
||
| 工艺管理 | 9 |
|
||
| 系统管理 | 6 |
|
||
| 异常管理 | 4 |
|
||
| 设备管理 | 4 |
|
||
| 其他布局、登录、看板、销售、基础模块 | 12 |
|
||
|
||
## 4. 环境清单
|
||
|
||
### 4.1 地址规则
|
||
|
||
| 环境 | MES 通用接口 | 基础地址 | 说明 |
|
||
| --- | --- | --- | --- |
|
||
| 正式 | `https://192.168.2.92:10101/submit/MESCommonBase.ashx` | `https://192.168.2.92:10101` | 正式业务环境,默认只读诊断 |
|
||
| 测试 | `https://124.220.15.242:10101/submit/MESCommonBase.ashx` | `https://124.220.15.242:10101` | 当前接管验证环境 |
|
||
| 本地 | `http://127.0.0.1:10101/submit/MESCommonBase.ashx` | `http://127.0.0.1:10101` | 本地接口服务 |
|
||
|
||
测试 B1/TM 通过管理机 VPN 访问现场代理:
|
||
|
||
- B1:`https://192.168.2.92:9996/b1s`
|
||
- TM:`https://192.168.2.92:9996/openapi`
|
||
|
||
测试运行配置必须设置 `externalReadOnly: true`。B1/TM 的语义 POST/PATCH 在前端请求发出前被阻止;语义 GET 仍由代理通过 HTTP POST 传输,判定写保护时以请求体 `func` 为准。
|
||
|
||
### 4.2 配置加载机制
|
||
|
||
`index.html` 在应用脚本前加载 `./static/config.js`。MES、文件服务、B1 和 TM 地址均从 `window.dt_Config` 读取。
|
||
|
||
`npm run build` 完成后会删除 `dist/static/config.js`,因此运行时配置应由部署环境单独注入。推荐维护正式、测试、本地三套模板,并通过脚本选择目标配置,禁止人工切换注释。
|
||
|
||
当前风险:源码中的 `static/config.js` 默认指向正式环境。启动测试前端前必须先完成环境隔离。
|
||
|
||
## 5. 系统架构与调用链
|
||
|
||
```text
|
||
浏览器 / Vue 页面
|
||
|
|
||
| CreateData + ExecDatabase
|
||
v
|
||
MESCommonBase.ashx 统一接口
|
||
|
|
||
| 过程名 + 参数 + 用户/模块信息
|
||
v
|
||
SQL Server / YL_MESDB
|
||
|
|
||
+-- 存储过程、视图、业务表
|
||
+-- SAP 跨库视图或 B1 代理
|
||
+-- TM 领料/收料/退料接口
|
||
+-- 文件上传下载服务
|
||
```
|
||
|
||
关键实现:
|
||
|
||
- `src/utils/request.js`:主 Axios 实例,读取 `serverAddress`。
|
||
- `src/utils/curd.js`:构造统一过程请求并执行接口调用。
|
||
- `src/api/login.js`:登录和角色菜单查询。
|
||
- `src/router/getTreeData.js`:将数据库菜单转换为动态路由。
|
||
- `src/api/b1s.js`:B1 GET/POST/PATCH 代理封装。
|
||
- `src/api/tm.js`:TM/OpenAPI 代理封装。
|
||
|
||
## 6. 测试数据库基线
|
||
|
||
### 6.1 数据库信息
|
||
|
||
| 项目 | 当前值 |
|
||
| --- | --- |
|
||
| SQL Server | Microsoft SQL Server 2019 Enterprise |
|
||
| 服务器实例 | `10_0_4_16\MSSQLSERVER2019` |
|
||
| 数据库 | `YL_MESDB` |
|
||
| 状态 | ONLINE |
|
||
| 兼容级别 | 150 |
|
||
| 排序规则 | Chinese_PRC_CI_AS |
|
||
| 恢复模式 | SIMPLE |
|
||
| 数据库总容量 | 1234.69 MB |
|
||
| 数据文件 | 1226.69 MB |
|
||
| 日志文件 | 8.00 MB |
|
||
|
||
### 6.2 对象规模
|
||
|
||
| 对象类型 | 数量 |
|
||
| --- | ---: |
|
||
| 用户表 | 61 |
|
||
| 视图 | 27 |
|
||
| 存储过程 | 425 |
|
||
| 标量函数 | 2 |
|
||
| 主键约束 | 47 |
|
||
| 外键约束 | 8 |
|
||
| 默认约束 | 45 |
|
||
| 唯一约束 | 5 |
|
||
|
||
正式库和测试库的上述对象数量一致,但对象定义并不完全一致。
|
||
|
||
### 6.3 账号权限
|
||
|
||
原测试数据库账号在 `YL_MESDB` 中映射为 `dbo`,并具有 `CONTROL`、`ALTER`、`CREATE`、`INSERT`、`UPDATE`、`DELETE` 和 `EXECUTE` 等完整权限。
|
||
|
||
已创建日常诊断账号 `meswork_readonly`,映射到 `YL_MESDB` 后仅加入 `db_datareader` 并授予 `VIEW DEFINITION`。验证结果为:数据库 `SELECT=1`、`VIEW DEFINITION=1`,`INSERT=0`、`UPDATE=0`、`DELETE=0`。该账号不授予全库 `EXECUTE`,避免通过未知写过程间接修改数据。
|
||
|
||
该账号只应作为临时受控部署账号,不应作为日常诊断账号。需要新增:
|
||
|
||
- 只读诊断账号:仅允许连接、查看定义、查询数据和查看执行计划。
|
||
- 受控部署账号:按变更窗口启用,发布完成后收回或禁用。
|
||
|
||
## 7. 正式库与测试库漂移
|
||
|
||
抽查 6 个近期关键过程,结果如下:
|
||
|
||
| 存储过程 | 测试/正式定义 | 结论 |
|
||
| --- | --- | --- |
|
||
| `MES_OrderPlanned_Query` | 不一致 | 测试库为 2026-06-09 版本,正式库为 2026-07-24 版本 |
|
||
| `计划排产_系统类任务查询` | 不一致 | 正式库已包含 2026-07-25 合同工时修复,测试库未同步 |
|
||
| `计划排产_阀类任务查询` | 不一致 | 正式库已包含 2026-07-25 合同工时修复,测试库未同步 |
|
||
| `车间生产管理工艺_零件工序_保存为标准工艺` | 一致 | 修改时间不同,但定义哈希一致 |
|
||
| `生产管理_及时齐套跟踪结果_查询` | 一致 | 定义哈希一致 |
|
||
| `设计报工_研发财务工时_查询` | 一致 | 定义哈希一致 |
|
||
|
||
禁止直接用正式库覆盖测试库。应按数据库变更脚本逐项同步,并在同步前记录测试库对象哈希和回滚定义。
|
||
|
||
## 8. 已完成验证
|
||
|
||
### 8.1 网络与数据库
|
||
|
||
| 验证项 | 结果 |
|
||
| --- | --- |
|
||
| 测试 SQL Server 端口 | 通过 |
|
||
| 测试数据库登录 | 通过 |
|
||
| `YL_MESDB` 对象读取 | 通过 |
|
||
| 测试 MES 接口端口 | 通过 |
|
||
| 测试 B1/TM 代理端口 | 失败,当前不可达 |
|
||
|
||
### 8.2 应用接口
|
||
|
||
| 验证项 | 结果 | 证据 |
|
||
| --- | --- | --- |
|
||
| MES 测试账号登录 | 通过 | HTTP 200,返回超级管理员角色 |
|
||
| 角色菜单查询 | 通过 | HTTP 200,返回 84 条菜单/权限数据 |
|
||
| 通用只读过程查询 | 通过 | HTTP 200,返回 33 条工位数据 |
|
||
| B1 查询/写入 | 未执行 | 代理端口不可达 |
|
||
| TM 领料/收料/退料 | 未执行 | 代理端口不可达 |
|
||
|
||
### 8.3 前端构建
|
||
|
||
执行命令:`npm run build`
|
||
|
||
结果:构建成功,Webpack 5.103.0 用时约 79 秒,出现 2 类既有警告:
|
||
|
||
- 字体、登录图片和主要 JavaScript 包超过推荐体积。
|
||
- Browserslist/caniuse-lite 与 baseline-browser-mapping 数据过期。
|
||
|
||
入口资源约 6.85 MiB,存在前端首屏性能优化空间。构建完成后 `dist/static/config.js` 按脚本设计被删除,部署前必须注入目标环境配置。
|
||
|
||
## 9. 已知限制与未验证范围
|
||
|
||
以下项目尚不能视为已接管完成:
|
||
|
||
- B1 生产订单、资源、工艺路线、发料和库存单据联调。
|
||
- TM 领料任务、收料任务和退料任务联调。
|
||
- 文件上传、下载、图纸和附件完整链路。
|
||
- 设备采集、MQTT、PLC、AGV 和定时任务。
|
||
- 排产、报工、送检、收检、退库等写入流程。
|
||
- 核心 DLL 原始源码、可重复构建流程、接口发布和回滚演练。
|
||
- 数据库完整备份恢复和灾备演练。
|
||
- 页面级全量浏览器回归、并发和性能测试。
|
||
|
||
## 10. 安全与运行风险
|
||
|
||
| 编号 | 级别 | 风险 | 处理要求 |
|
||
| --- | --- | --- | --- |
|
||
| SEC-01 | P1 | 原测试数据库账号为 `dbo` | 只读账号已建立;切换完成后再限制或停用原 `dbo/sysadmin` 账号 |
|
||
| SEC-02 | P1 | 登录接口返回明文 `password` 字段 | 后端查询和序列化结果移除密码 |
|
||
| SEC-03 | P1 | 登录页“记住密码”将密码保存到 Cookie 7 天 | 改为仅记住账号,不在浏览器保存明文密码 |
|
||
| SEC-04 | P1 | 10100/10101 复用名称不匹配的自签名 WMSvc 证书 | 换用与测试域名匹配、受信任且独立的业务 HTTPS 证书 |
|
||
| SEC-05 | P2 | `submit/web.config` 开启目录浏览 | 验证无业务依赖后关闭目录浏览 |
|
||
| ENV-01 | P1 | 源码运行时配置默认指向正式环境 | 建立三套配置模板和环境防误连校验 |
|
||
| ENV-02 | P1 | 测试库与正式库过程版本漂移 | 建立对象哈希清单和脚本化同步流程 |
|
||
| INT-01 | P2 | B1/TM 测试代理不可用 | 恢复测试代理或提供模拟服务 |
|
||
| OPS-01 | P2 | 发布包已归档但 `DataLinkMesWork.dll` 原始源码缺失 | 获取原始项目仓库,建立可重复构建和版本标记 |
|
||
| OPS-02 | P2 | 服务器 C 盘仅余约 13.5 GB | 建立容量告警并清理经确认可删除的历史备份/发布包 |
|
||
| PERF-01 | P3 | 前端入口和字体资源体积较大 | 按页面拆包、裁剪字体、压缩静态资源 |
|
||
|
||
## 11. 接管操作规则
|
||
|
||
1. 生产环境默认只读;任何生产写操作需要用户明确批准。
|
||
2. 测试环境写操作也必须先给出测试数据、预期结果和回滚方法。
|
||
3. 数据库变更必须包含前置结构校验、事务、验证 SQL 和回滚脚本。
|
||
4. 不直接覆盖正式/测试数据库,不使用数据库整体覆盖代替版本迁移。
|
||
5. 不在仓库、文档或日志中保存密码和 Token。
|
||
6. 发布前记录 Git 提交、数据库对象哈希、配置目标和构建结果。
|
||
7. 发布后执行页面、接口和数据库三层验证。
|
||
8. 每次执行过程和结论追加到 `gptlog-process/gpdlog.md`。
|
||
9. B1/TM 不可用时,相关页面只能验证错误处理和模拟结果,不能判定业务联调通过。
|
||
10. 发现正式环境与测试环境漂移时,先评估差异来源,再决定同步方向。
|
||
|
||
## 12. 接管任务清单
|
||
|
||
### P0:接管前置
|
||
|
||
- [x] 验证测试 SQL Server 和 `YL_MESDB`。
|
||
- [x] 验证 MES 测试账号登录。
|
||
- [x] 验证菜单权限查询。
|
||
- [x] 验证通用只读存储过程调用。
|
||
- [x] 验证前端生产构建。
|
||
- [x] 确认 B1/TM 测试端口不可用。
|
||
- [ ] 建立正式、测试、本地配置模板和自动切换命令。
|
||
- [x] 建立只读数据库账号 `meswork_readonly`。
|
||
- [ ] 完成业务服务账号切换后,限制或停用原 `meswork` 的 `dbo/sysadmin` 权限。
|
||
- [x] 获取后端 `.ashx`、IIS 站点、部署目录和程序集发布快照。
|
||
- [ ] 获取 `DataLinkMesWork.dll` 等核心程序集的原始项目源码。
|
||
|
||
### P1:版本与安全
|
||
|
||
- [ ] 输出完整正式/测试数据库对象哈希差异清单。
|
||
- [ ] 审批并同步 `MES_OrderPlanned_Query` 等确认差异。
|
||
- [ ] 将合同工时修复同步到测试库并回归。
|
||
- [ ] 移除登录接口返回的密码字段。
|
||
- [ ] 移除浏览器 Cookie 中的明文密码。
|
||
- [ ] 建立数据库备份、恢复和回滚演练记录。
|
||
|
||
### P2:业务接管
|
||
|
||
- [ ] 登录、菜单、角色和权限全量回归。
|
||
- [ ] 工艺、计划、生产、质量、设备和异常模块只读冒烟测试。
|
||
- [ ] 建立页面到过程、视图和表的可检索映射。
|
||
- [ ] 为关键写流程准备隔离测试数据和回滚脚本。
|
||
- [ ] 恢复或模拟 B1/TM 后完成外部集成验收。
|
||
- [ ] 建立发布清单、问题台账和定期巡检机制。
|
||
|
||
## 13. 接管完成标准
|
||
|
||
满足以下条件后,测试环境可从“有条件接管”升级为“完整接管”:
|
||
|
||
1. 三套环境配置完全隔离,测试前端不能连接正式接口。
|
||
2. 后端接口源码、部署目录、连接配置和回滚方法已归档。
|
||
3. 测试库与正式库的结构差异全部有明确原因和同步记录。
|
||
4. 日常诊断使用最小权限账号,高权限账号仅用于受控发布。
|
||
5. 登录密码泄露和 Cookie 明文密码问题已修复。
|
||
6. 核心 MES 模块的查询与写入流程均完成测试环境回归。
|
||
7. B1/TM 已恢复测试连接或具备可验收的模拟服务。
|
||
8. 数据库备份恢复、前端发布和接口回滚均完成至少一次演练。
|
||
9. 每个关键模块都有负责人、验收口径和故障升级路径。
|
||
|
||
## 14. 参考资产
|
||
|
||
- `doc/大连元利流体技术有限公司MES系统标准技术文档_V1.1_2026-07-24.docx`
|
||
- `doc/大连元利流体技术有限公司MES系统标准设计文档_V1.1_2026-07-24.docx`
|
||
- `doc/大连元利流体技术有限公司MES系统用户操作手册_V1.1_2026-07-23.docx`
|
||
- `doc/工时模块全流程技术说明_20260721.html`
|
||
- `db_backups/` 数据库变更与回滚脚本目录
|
||
- `server_baseline/MES_ManageV20250916_20260725/` 脱敏后端部署快照与 SHA-256 清单
|
||
- `gptlog-process/gpdlog.md` GPT/Codex 执行过程日志
|
||
|
||
---
|
||
|
||
基线维护原则:每次环境地址、数据库结构、接口版本、权限或外部集成状态发生变化后,应更新本文件的版本、日期、验证结果和任务清单。
|
||
|
||
## 15. V1.2 增量验证记录
|
||
|
||
### 数据库账号
|
||
|
||
- 创建对象:服务器登录 `meswork_readonly`,数据库用户 `YL_MESDB.meswork_readonly`。
|
||
- 权限:`db_datareader`、`VIEW DEFINITION`。
|
||
- 验证:能够登录、查询表、读取对象定义;数据库级 `INSERT`、`UPDATE`、`DELETE` 均无权限。
|
||
- 原账号:`meswork` 仍为 `dbo` 且属于 `sysadmin`,未在未确认服务依赖前删除或降权。
|
||
|
||
### 远程服务器
|
||
|
||
- RDP 自定义端口 `124.220.15.242:12920`:TCP 可达。
|
||
- 标准 RDP `3389`:不可达。
|
||
- WinRM HTTPS `5986`:外部 TCP 可达,使用受控引导会话已成功认证到 Windows Server 2019 Datacenter。
|
||
- IIS Management Service `8172`:WMSVC 已运行,服务器本机监听成功;公网未列为当前接管前置条件。
|
||
- 远程盘点仅执行读取和文件拉取,没有停止站点、回收应用池或修改接口部署文件。
|
||
|
||
### IIS 与后端部署
|
||
|
||
- IIS 站点:`元利流体MES_Manage`,状态 Started,站点 ID 29。
|
||
- 绑定:HTTPS 10100、10101;物理目录 `C:\ProjectShow\元利流体\MES_ManageV20250916`。
|
||
- 应用池:同名,`.NET v4.0`、Integrated、ApplicationPoolIdentity、按需启动、空闲 20 分钟、周期回收 29 小时。
|
||
- 认证:IIS 匿名认证开启,Windows/Basic 认证关闭;应用认证由接口业务逻辑承担。
|
||
- 证书:10100/10101 共用自签名 `CN=WMSvc-SHA2-10_0_4_16`,与公网 IP 不匹配。
|
||
- 日志:`C:\inetpub\logs\LogFiles\W3SVC29`;当前抽样 11 次 `MESCommonBase.ashx` 请求均为 HTTP 200,近两天未发现 ASP.NET/.NET/IIS 错误事件。
|
||
- 部署规模:274 个文件、约 91.31 MB;包含 32 个内联 C# `.ashx`、50 个 DLL 和 PDB,没有独立 `.cs` 项目文件。
|
||
- 本地快照:163 个文件、约 75.44 MB;排除了根 `Web.config`、PDF、上传文件、业务数据和 `.vs`。
|
||
- 核心逻辑:`MESCommonBase.ashx` 将默认调用转交 `DataLinkMesWork.DataLink.SqlWebCall`;PDB 记录了原始构建源码路径,但该路径和项目源码在测试服务器不存在。
|
||
- 恢复源码:使用 ILSpy 9.1.0.7988 生成 76 个 C# 文件和 `net48` 项目,本地构建为 0 错误、102 警告;重建 DLL 与发布 DLL 哈希不一致,严禁直接替换发布件。
|
||
|
||
### 后端连接与备份
|
||
|
||
- 根 `Web.config` 的实际 `ConnectionString` 指向 `124.220.15.242,64722 / YL_MESDB`,SQL 凭据未复制或写入文档。
|
||
- 配置仍保留旧字段 `.\MSSQLSERVER2016 / MESBasicDB_PZ126`,实际接口使用上述 `ConnectionString`。
|
||
- 服务器同时运行 SQL Server 2016/2019,64722 在 IPv4/IPv6 全地址监听;`YL_MESDB` 数据文件位于 SQL Server 2019 实例目录。
|
||
- 最新完整备份 `C:\YL_MESDB_202607240000.bak` 已确认存在,大小 1,278,302,720 字节,时间 2026-07-24 14:40:52。
|
||
- 2026-05-09 的完整备份文件也存在;历史记录中的 `C:\123.bak` 已不存在。尚未执行 `RESTORE VERIFYONLY` 或隔离恢复演练。
|
||
- 服务器 C 盘剩余空间约 13.5 GB。
|
||
|
||
### 下一步
|
||
|
||
1. 获取 `DataLinkMesWork` 等核心程序集的原始源码仓库和构建说明;在此之前只能维护内联 `.ashx` 或以发布包方式回滚。
|
||
2. 创建后端专用最小权限 SQL 服务账号并回归接口,再限制原 `meswork` 的高权限。
|
||
3. 建立测试/正式/本地运行时配置模板,阻止测试前端误连正式环境。
|
||
4. 在隔离位置执行数据库备份校验、恢复演练和接口发布回滚演练。
|
||
5. 更换业务 HTTPS 证书、关闭目录浏览,并修复接口/浏览器明文密码风险。
|
||
|
||
## 16. 装配任务正式变更同步记录
|
||
|
||
### 同步日期与范围
|
||
|
||
- 同步日期:2026-07-25
|
||
- 测试数据库:`124.220.15.242,64722 / YL_MESDB`
|
||
- 测试接口:`https://124.220.15.242:10101/submit/MESCommonBase.ashx`
|
||
- 同步范围:系统类和阀类装配任务合同工时修复、共享查询优化、5 个辅助索引、预算工时保存及预算进度返回、前端首屏渲染优化。
|
||
|
||
### 数据库对象
|
||
|
||
- 新增共享核心过程 `dbo.计划排产_装配任务查询_核心`。
|
||
- 原入口过程 `计划排产_系统类任务查询`、`计划排产_阀类任务查询` 保留名称和参数,定义哈希与正式库对应入口完全一致。
|
||
- 保留测试库原过程备份:`计划排产_系统类任务查询_优化前_20260725`、`计划排产_阀类任务查询_优化前_20260725`。
|
||
- 新增 `计划排产_装配任务预算`、`计划排产_装配合同预算` 和 `计划排产_装配任务预算_保存`。
|
||
- 新增 5 个查询辅助索引,名称和结构与正式库一致。
|
||
|
||
### 测试环境 SAP 适配
|
||
|
||
测试 SQL 链接服务器 `[SAP]` 无法连接现场 SAP,单独读取超过 39 秒仍未返回。装配任务查询原本每次等待该链接,系统类约 44 秒、阀类约 22 秒,并导致接口不能正常返回分页结构。
|
||
|
||
仅在测试核心过程中跳过远程交货日期读取,使用空日期保留 `交货日期理论齐套日期` 字段结构。订单、合同工时、预算字段和其他业务条件不变。现场 SAP 恢复后可执行:
|
||
|
||
- 部署脚本:`db_backups/test_disable_install_task_sap_delivery_20260725.sql`
|
||
- 回滚脚本:`db_backups/rollback_test_disable_install_task_sap_delivery_20260725.sql`
|
||
- 过程备份:`dbo.计划排产_装配任务查询_核心_测试跳过SAP前_20260725`
|
||
|
||
### 回归结果
|
||
|
||
| 查询 | 测试接口耗时 | 返回结果 |
|
||
| --- | ---: | --- |
|
||
| 系统类装配任务 | 818-1089 ms | 20/55 行,4 个预算字段齐全 |
|
||
| 阀类装配任务 | 931-1136 ms | 20/263 行,4 个预算字段齐全 |
|
||
|
||
预算接口写入和读取回归通过:测试订单 5598、合同 `HT260597` 临时保存任务预算 `123.45` 小时和合同预算 `67.89` 小时,查询返回进度 `2.48%`、`10.04%`。回归记录已按专用编辑标记精确删除,两张预算表最终均为 0 行。
|
||
|
||
### 前端交付
|
||
|
||
根目录 `dist` 已使用包含 20 行默认分页、预算进度功能、登录安全修复和外部系统只读保护的 `app.83b8251a.js`。服务器已创建 IIS 站点 `元利流体MES_View`,物理目录为 `C:\ProjectShow\元利流体\MES_Manage_View\dist`,HTTP 绑定为 `*:10012:`。本地和远程文件共 84 个、95,691,424 字节,`index.html` 和 `config.js` 的 SHA-256 一致。本次直接复制 `dist`,未生成 zip。
|
||
|
||
## 17. V1.3 接管落地与验收记录
|
||
|
||
### 17.1 当前可执行的工作
|
||
|
||
- 在 `http://124.220.15.242:10012/` 部署和回归测试前端,独立维护测试运行配置。
|
||
- 通过 `10101` 完成登录、菜单、权限和 MES 存储过程的查询/受控变更验证。
|
||
- 使用数据库只读账号开展结构、数据、执行计划和性能诊断;数据库变更使用部署/回滚脚本受控执行。
|
||
- 维护系统类、阀类装配任务查询、预算工时和进度功能,并在测试环境做接口回归。
|
||
- 通过 VPN 对 B1 做登录代理和 GET 联调;B1/TM 的 POST/PATCH 在测试前端强制阻止。
|
||
- 执行数据库备份校验、隔离恢复、完整性检查和清理演练。
|
||
- 盘点 IIS、部署目录、配置、日志、证书和防火墙,为生产接管准备操作清单。
|
||
|
||
### 17.2 前端与外部集成保护
|
||
|
||
- 构建结果:Webpack 成功,入口 `app.83b8251a.js`;仅有既有的大资源和浏览器数据过期警告。
|
||
- IIS 验证:服务器本机和管理端访问 `10012` 均返回 HTTP 200,运行配置返回 HTTP 200 且 `externalReadOnly=true`。
|
||
- 隔离测试:B1/TM 四个语义写入口均返回 `blocked=true`,网络调用次数为 0;B1/TM GET 包装仍正常发出 `func=GET`。
|
||
- B1 实际 GET:`ProductionOrders` 最小查询返回 HTTP 200,约 252 ms,有 `value` 集合且无 B1 错误。
|
||
- TM:端口可达,但代码中没有可确认无副作用的登录/GET 端点,因此未调用库存任务接口。
|
||
|
||
### 17.3 数据库恢复演练
|
||
|
||
- 备份:`C:\YL_MESDB_202607240000.bak`,备份完成时间 2026-07-24 14:40:52,大小 1,278,302,720 字节。
|
||
- `RESTORE VERIFYONLY` 通过;该备份未包含 SQL Server checksum,带 `CHECKSUM` 的校验无法执行,后续备份任务应启用 checksum。
|
||
- 隔离恢复库:`YL_MESDB_RestoreDrill_20260725`,恢复约 9.4 秒并正常 ONLINE。
|
||
- `DBCC CHECKDB(..., PHYSICAL_ONLY)` 通过,约 5.9 秒。
|
||
- 备份对象为 61 表/27 视图/425 过程;当前测试库为 63/27/432,增加项来自 7 月 25 日已部署变更。
|
||
- 演练结束后数据库、MDF 和 LDF 均已删除,磁盘空间恢复。
|
||
|
||
### 17.4 安全整改
|
||
|
||
- 登录过程已保留回滚备份并改为显式返回字段,仍校验密码但不返回 `password`;公网接口实测登录成功且响应无密码属性。
|
||
- 登录页只记住账号,不再写入密码 Cookie,并会删除旧 `password` Cookie。
|
||
- 后端根目录和 `submit` 目录浏览已从 `True` 改为 `False`,原配置已在服务器同目录备份;目录访问返回 HTTP 403,接口仍为 HTTP 200。
|
||
- 仓库内两个历史注释中的口令和执行日志中的口令特征已脱敏。
|
||
- WinRM 5986 和 IIS Management 8172 仅允许管理端公网 IP;测试前端 10012 当前允许任意来源访问。
|
||
|
||
### 17.5 核心模块只读冒烟
|
||
|
||
| 模块 | 查询入口 | 结果 | 耗时 |
|
||
| --- | --- | --- | ---: |
|
||
| 系统 | `人员管理_人员信息查询` | 200 / 135 行 | 385 ms |
|
||
| 工艺 | `MES_ProcessManagement_ProcessGet` | 200 / 合法 JSON | 113 ms |
|
||
| 计划 | `计划排产_生产订单_工艺查询` | 200 / 9878 行 | 2619 ms |
|
||
| 生产 | `生产管理_班次管理_班次列表查询` | 200 / 4 行 | 128 ms |
|
||
| 质量 | `质量管理_测试装配任务_查询2` | 200 / 0 行 | 200 ms |
|
||
| 设备 | `设备管理_设备数据_工位信息_查询` | 200 / 21 行 | 140 ms |
|
||
| 异常 | `加急订单_加急明细查询` | 200 / 合法 JSON | 117 ms |
|
||
| 销售 | `销售管理_销售订单状态` | 200 / 200 行 | 430 ms |
|
||
| 首页看板 | `看板_主页六个关键数据_查询` | 200 / 25 行 | 1099 ms |
|
||
|
||
登录账号角色菜单查询另返回 84 条,覆盖工艺、计划、生产、质量、设备和异常等主模块。
|
||
|
||
### 17.6 仍保留的生产接管前风险
|
||
|
||
1. 测试后端业务 HTTPS 证书为名称不匹配的自签名证书,需要替换为受信任且与访问域名匹配的证书。
|
||
2. 测试前端 `10012` 当前使用 HTTP 且防火墙来源为 Any;正式接管前应使用 HTTPS,并按实际测试人员/网络范围限制入口。
|
||
3. 后端仍使用高权限数据库账号。已有只读诊断账号,但应用服务账号降权需要覆盖全部写流程和 SQL 链接服务器场景后再切换。
|
||
4. 本轮全模块验收为只读冒烟;MES 报工、送检、入库等写流程未执行,B1/TM 写流程按要求明确禁止。
|
||
5. 核心 DLL 没有原始源码,按当前约定不做 DLL 修改;将来若生产问题必须修改核心逻辑,需要取得源码或采用经过专项验证的替代构建流程。
|