feat: update MES pages and tracking docs
This commit is contained in:
61
work/DeviceManagement/DeviceInformation/01-项目功能内容.md
Normal file
61
work/DeviceManagement/DeviceInformation/01-项目功能内容.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 01-项目功能内容
|
||||
|
||||
## 页面
|
||||
|
||||
- 页面路径:`src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- 菜单/模块:设备管理 / 设备信息维护
|
||||
- 原始文档:`doc/修改设备信息维护.docx`
|
||||
|
||||
## 本轮功能范围
|
||||
|
||||
1. 设备信息维护列表新增字段展示:
|
||||
- 设备名称:来自 Excel `名称`,数据库字段 `名称`
|
||||
- 公司编码(财务)
|
||||
- 生产用名:复用原 `设备名称`
|
||||
- 规格/型号:复用原 `设备型号`
|
||||
- 设备信息
|
||||
- 使用部门
|
||||
- 入账日期
|
||||
- 单位
|
||||
- 数量
|
||||
- 状态
|
||||
- 维修记录
|
||||
- 维保记录
|
||||
- 工位绑定
|
||||
- 主要设备
|
||||
- 设备标准开机工时(小时)
|
||||
- 特种设备
|
||||
- 证书有效期至
|
||||
|
||||
2. 设备新增/编辑弹窗新增对应维护字段。
|
||||
|
||||
3. 公司编码(财务):
|
||||
- 新增时必填。
|
||||
- 编辑时前端置灰不可修改。
|
||||
- 后端编辑过程不更新公司编码,避免绕过前端改动。
|
||||
|
||||
4. 工位绑定:
|
||||
- 使用多选下拉。
|
||||
- 选项来源:`MES_登录_工位与名称_查询`,即工位管理数据。
|
||||
- 数据库存储为逗号分隔的工位号。
|
||||
|
||||
5. 主要设备、特种设备:
|
||||
- 下拉选项为“是/否”。
|
||||
|
||||
6. 证书有效期至:
|
||||
- 日期选择。
|
||||
- 已过期:表格行红色背景并置顶。
|
||||
- 30 天内到期:表格行黄色背景并靠前。
|
||||
- 其他数据正常排序在后。
|
||||
|
||||
## 数据库对象
|
||||
|
||||
- 表:`dbo.基础数据_设备工位点检表`
|
||||
- 查询过程:`dbo.设备管理_设备信息_查询`
|
||||
- 新增过程:`dbo.设备管理_设备信息_增加`
|
||||
- 编辑过程:`dbo.设备管理_设备信息_编辑`
|
||||
- 删除过程:`dbo.设备管理_设备信息_删除`,本轮未改。
|
||||
- 增量脚本:`db_backups/update_device_information_maintenance_20260629.sql`
|
||||
- 设备名称字段与 Excel 导入脚本:`db_backups/add_device_name_and_import_excel_20260629.sql`
|
||||
- Excel 日期修正脚本:`db_backups/fix_device_excel_import_dates_20260629.sql`
|
||||
- 新增过程提示文本修正脚本:`db_backups/fix_device_add_company_code_message_20260629.sql`
|
||||
58
work/DeviceManagement/DeviceInformation/02-项目程序开发详细步骤.md
Normal file
58
work/DeviceManagement/DeviceInformation/02-项目程序开发详细步骤.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 02-项目程序开发详细步骤
|
||||
|
||||
## 1. 需求解析
|
||||
|
||||
1. 从 `doc/修改设备信息维护.docx` 提取文字需求。
|
||||
2. 确认目标页面为 `src/views/DeviceManagement/DeviceInformation/index.vue`。
|
||||
3. 确认工位数据来源为 `MES_登录_工位与名称_查询`,与系统工位管理保持一致。
|
||||
|
||||
## 2. 数据库开发
|
||||
|
||||
1. 连接目标库 `192.168.2.92 / YL_MESDB`。
|
||||
2. 查询 `dbo.基础数据_设备工位点检表`,确认原表仅有旧字段。
|
||||
3. 新增增量脚本 `db_backups/update_device_information_maintenance_20260629.sql`。
|
||||
4. 脚本内容:
|
||||
- 使用 `COL_LENGTH` 判断字段是否存在,保证可重复执行。
|
||||
- 新增设备档案字段:公司编码、设备信息、使用部门、入账日期、单位、数量、状态、维修记录、维保记录、工位绑定、主要设备、设备标准开机工时、特种设备、证书有效期至。
|
||||
- 更新 `设备管理_设备信息_查询`,返回新字段并按证书有效期预警排序。
|
||||
- 更新 `设备管理_设备信息_增加`,写入新增字段,并校验公司编码不能为空。
|
||||
- 更新 `设备管理_设备信息_编辑`,更新新增字段,但不更新公司编码。
|
||||
5. 使用 `sqlcmd -f 65001` 执行脚本,避免中文脚本编码问题。
|
||||
|
||||
## 3. 前端开发
|
||||
|
||||
1. 重写设备信息维护页面表格列,字段名与数据库返回保持一致。
|
||||
2. 扩展新增/编辑表单字段。
|
||||
3. 新增 `stationOptions`,通过 `MES_登录_工位与名称_查询` 加载工位管理数据。
|
||||
4. 工位绑定使用 `el-select multiple collapse-tags`。
|
||||
5. 新增 `emptyForm`,统一新增和重置表单默认值。
|
||||
6. 新增 `buildSubmitParams`,统一组装新增/编辑参数。
|
||||
7. 新增 `getCertificateLevel`、`tableRowClassName`、`sortedTableData`:
|
||||
- 过期为 0,置顶并红色。
|
||||
- 30 天内为 1,靠前并黄色。
|
||||
- 其他为 2。
|
||||
8. 表格使用横向宽度自动撑开,并固定操作列,适配新增多列。
|
||||
|
||||
## 4. 验证
|
||||
|
||||
1. 数据库字段验证:查询 `sys.columns`。
|
||||
2. 存储过程参数验证:查询 `sys.parameters`。
|
||||
3. 查询过程验证:执行 `EXEC dbo.[设备管理_设备信息_查询]`。
|
||||
4. 前端构建验证:执行 `npm run build`。
|
||||
5. 工作文档归档:复制原始 docx 到 `work/DeviceManagement/DeviceInformation` 并补齐 README 与 01-06 文档。
|
||||
|
||||
## 5. 设备信息 Excel 导入
|
||||
|
||||
1. 读取 `doc/设备信息.xlsx`,确认 Sheet1 共 89 行数据。
|
||||
2. 新增数据库字段 `名称`,用于保存 Excel `名称` 列;原字段 `设备名称` 继续保存 Excel `生产用名`。
|
||||
3. 更新设备信息维护页面:
|
||||
- 列表新增“设备名称”列,对应数据库字段 `名称`。
|
||||
- 新增/编辑弹窗新增“设备名称”输入框。
|
||||
- 提交参数增加 `名称`。
|
||||
4. 新增脚本 `db_backups/add_device_name_and_import_excel_20260629.sql`:
|
||||
- `COL_LENGTH` 判断并新增 `名称` 字段。
|
||||
- 更新新增/编辑存储过程参数和写入逻辑。
|
||||
- 使用 `MERGE` 按 `公司编码` 导入或更新 89 行 Excel 数据,避免重复导入。
|
||||
5. 首次导入后发现 Excel 日期对象受时区影响,部分入账日期早一天;新增 `db_backups/fix_device_excel_import_dates_20260629.sql`,按 Excel 单元格显示值修正入账日期。
|
||||
6. 新增 `db_backups/fix_device_add_company_code_message_20260629.sql`,只重新发布新增过程,修正“公司编码不能为空”提示文本,避免重新执行整份导入脚本覆盖已修正日期。
|
||||
7. 使用 `sqlcmd -f 65001` 执行数据库脚本,验证总数、样例数据和存储过程文本。
|
||||
185
work/DeviceManagement/DeviceInformation/03-推进台账.md
Normal file
185
work/DeviceManagement/DeviceInformation/03-推进台账.md
Normal file
@@ -0,0 +1,185 @@
|
||||
# 03-推进台账
|
||||
|
||||
## 2026-06-29 第 1 轮:设备信息维护页面和数据库扩展
|
||||
|
||||
### 做了什么
|
||||
|
||||
- 解析 `doc/修改设备信息维护.docx`。
|
||||
- 确认目标页面 `src/views/DeviceManagement/DeviceInformation/index.vue`。
|
||||
- 确认工位绑定选项来源为 `MES_登录_工位与名称_查询`。
|
||||
- 连接目标数据库并确认旧表结构缺少需求字段。
|
||||
- 新增数据库增量脚本并同步到 `YL_MESDB`。
|
||||
- 修改设备信息维护前端页面。
|
||||
- 创建 `work/DeviceManagement/DeviceInformation` 工作目录并复制需求文档。
|
||||
- 新增 README、功能内容、开发步骤、推进台账、任务矩阵、验收证据、决策记录。
|
||||
|
||||
### 改了哪些文件
|
||||
|
||||
- `src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- `db_backups/update_device_information_maintenance_20260629.sql`
|
||||
- `work/DeviceManagement/DeviceInformation/修改设备信息维护.docx`
|
||||
- `work/DeviceManagement/DeviceInformation/README.md`
|
||||
- `work/DeviceManagement/DeviceInformation/01-项目功能内容.md`
|
||||
- `work/DeviceManagement/DeviceInformation/02-项目程序开发详细步骤.md`
|
||||
- `work/DeviceManagement/DeviceInformation/03-推进台账.md`
|
||||
- `work/DeviceManagement/DeviceInformation/04-任务矩阵.md`
|
||||
- `work/DeviceManagement/DeviceInformation/05-验收证据.md`
|
||||
- `work/DeviceManagement/DeviceInformation/06-决策记录.md`
|
||||
- `gptlog-process/gpdlog.md`
|
||||
|
||||
### 验证了什么
|
||||
|
||||
- `sqlcmd` 连接目标库成功。
|
||||
- 新增字段已存在于 `dbo.基础数据_设备工位点检表`。
|
||||
- `设备管理_设备信息_查询/增加/编辑` 参数已更新。
|
||||
- 查询过程可执行。
|
||||
- `npm run build` 通过,仅有既有体积和 Browserslist 过期警告。
|
||||
|
||||
### 下一步
|
||||
|
||||
- 进入真实系统页面做新增、编辑、证书有效期颜色排序的人工验收。
|
||||
- 如果现场要求“公司编码”历史数据也必填,需要补历史数据清洗或唯一性规则。
|
||||
|
||||
## 2026-06-29 第 2 轮:取消设备类型必填
|
||||
|
||||
### 做了什么
|
||||
|
||||
- 根据用户反馈,去掉设备信息维护新增/编辑表单中“设备类型”的必填校验。
|
||||
|
||||
### 改了哪些文件
|
||||
|
||||
- `src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- `work/DeviceManagement/DeviceInformation/03-推进台账.md`
|
||||
- `work/DeviceManagement/DeviceInformation/04-任务矩阵.md`
|
||||
- `gptlog-process/gpdlog.md`
|
||||
|
||||
### 验证了什么
|
||||
|
||||
- 代码层确认 `rules` 中已移除 `设备类型` 必填规则。
|
||||
|
||||
### 下一步
|
||||
|
||||
- 如需严格验证,可再次执行 `npm run build` 或进入页面直接新增无设备类型的设备记录。
|
||||
|
||||
## 2026-06-29 第 3 轮:修复入账日期和证书有效期编辑报错
|
||||
|
||||
### 做了什么
|
||||
|
||||
- 修复设备编辑时 `入账日期`、`证书有效期至` 无法修改的问题。
|
||||
- 前端提交日期时改为传 `yyyy-MM-dd` 字符串或空字符串。
|
||||
- 数据库新增修复脚本,将新增/编辑过程的两个日期入参改为 `nvarchar(50)`,在过程内使用 `TRY_CONVERT(date, NULLIF(..., ''))` 转换。
|
||||
|
||||
### 改了哪些文件
|
||||
|
||||
- `src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- `db_backups/fix_device_information_date_edit_20260629.sql`
|
||||
- `work/DeviceManagement/DeviceInformation/03-推进台账.md`
|
||||
- `work/DeviceManagement/DeviceInformation/04-任务矩阵.md`
|
||||
- `work/DeviceManagement/DeviceInformation/05-验收证据.md`
|
||||
- `gptlog-process/gpdlog.md`
|
||||
|
||||
### 验证了什么
|
||||
|
||||
- 执行修复 SQL 到 `192.168.2.92 / YL_MESDB` 成功。
|
||||
- 验证 `设备管理_设备信息_增加/编辑` 的 `@入账日期`、`@证书有效期至` 参数已变更为 `nvarchar`。
|
||||
- 直接执行 `设备管理_设备信息_编辑`,传入正常日期 `2026-07-01`、`2026-07-31`,返回 `result=1` 且数据库日期更新成功。
|
||||
- 直接执行 `设备管理_设备信息_编辑`,传入空字符串日期,返回 `result=1` 且数据库日期保存为 `NULL`。
|
||||
|
||||
### 下一步
|
||||
|
||||
- 到真实页面再执行一次编辑日期和清空日期的人工验收。
|
||||
|
||||
## 2026-06-29 第 4 轮:修复日期控件点击报错
|
||||
|
||||
### 做了什么
|
||||
|
||||
- 针对页面点击日期时报 `date.getHours is not a function` 的问题,修正前端日期控件绑定方式。
|
||||
- 去掉 `el-date-picker` 的 `value-format="yyyy-MM-dd"`,让 Element UI 日期控件内部绑定 `Date` 对象。
|
||||
- 编辑回填时使用 `parseDateValue` 将数据库日期转换为本地 `Date` 对象。
|
||||
- 提交时继续通过 `dateParam` 格式化为 `yyyy-MM-dd` 字符串,兼容已修复的数据库过程。
|
||||
|
||||
### 改了哪些文件
|
||||
|
||||
- `src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- `work/DeviceManagement/DeviceInformation/03-推进台账.md`
|
||||
- `work/DeviceManagement/DeviceInformation/04-任务矩阵.md`
|
||||
- `work/DeviceManagement/DeviceInformation/05-验收证据.md`
|
||||
- `gptlog-process/gpdlog.md`
|
||||
|
||||
### 验证了什么
|
||||
|
||||
- 代码层确认两个 `el-date-picker` 已移除 `value-format`。
|
||||
- 代码层确认编辑回填日期使用 `parseDateValue` 返回 `Date` 对象。
|
||||
- 执行 `npm run build` 通过,仅有既有资源体积和 Browserslist 过期警告。
|
||||
|
||||
### 下一步
|
||||
|
||||
- 在真实页面点击日期面板并选择新日期,确认不再出现 `date.getHours is not a function`。
|
||||
|
||||
## 2026-06-29 第 5 轮:修复编辑弹窗日期不回填
|
||||
|
||||
### 做了什么
|
||||
|
||||
- 确认数据库和列表数据有值;同时恢复测试记录 `设备流水号=1` 的日期为 `2026-07-01`、`2026-07-31`。
|
||||
- 增强 `formatDate` 和 `parseDateValue`,兼容 `yyyy-MM-dd`、`yyyy-MM-dd HH:mm:ss`、`yyyy/MM/dd`、`/Date(...)`、`Date` 对象等返回格式。
|
||||
- 将新增表单日期默认值从空字符串改为 `null`,符合 Element UI 日期控件空值约定。
|
||||
- 编辑回填时不再整体替换 `form` 对象,改为逐字段 `$set`,并在 `$nextTick` 后再次设置两个日期字段,避免被 `resetFields` 或弹窗初始化覆盖。
|
||||
|
||||
### 改了哪些文件
|
||||
|
||||
- `src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- `work/DeviceManagement/DeviceInformation/03-推进台账.md`
|
||||
- `work/DeviceManagement/DeviceInformation/04-任务矩阵.md`
|
||||
- `work/DeviceManagement/DeviceInformation/05-验收证据.md`
|
||||
- `gptlog-process/gpdlog.md`
|
||||
|
||||
### 验证了什么
|
||||
|
||||
- 数据库记录 `设备流水号=1` 的 `入账日期=2026-07-01`、`证书有效期至=2026-07-31`。
|
||||
- 本地 Node 脚本验证多种日期格式可解析为有效 `Date`。
|
||||
- 执行 `npm run build` 通过,仅有既有资源体积和 Browserslist 过期警告。
|
||||
- 本地 dev server 监听 `https://127.0.0.1:1997/`,命令行访问因自签名证书被拦截,需浏览器允许证书后测试页面。
|
||||
|
||||
### 下一步
|
||||
|
||||
- 在浏览器打开 `https://127.0.0.1:1997/`,登录后进入设备信息维护页面,点击编辑验证两个日期是否回填。
|
||||
|
||||
## 2026-06-29 第 6 轮:新增设备名称字段并导入设备信息 Excel
|
||||
|
||||
### 做了什么
|
||||
|
||||
- 根据用户要求新增“设备名称”字段,页面列表和新增/编辑弹窗均增加该字段。
|
||||
- 读取 `doc/设备信息.xlsx`,确认 Sheet1 共 89 行数据,并复制到 `work/DeviceManagement/DeviceInformation/设备信息.xlsx` 归档。
|
||||
- 明确字段映射:Excel `名称` 保存到新增数据库字段 `名称`;Excel `生产用名` 继续保存到原字段 `设备名称`。
|
||||
- 新增并执行 Excel 导入脚本,按 `公司编码` 使用 `MERGE` 导入,防止重复执行造成重复数据。
|
||||
- 发现 Excel 日期导入存在时区早一天问题后,新增日期修正脚本,按 Excel 显示日期修正 `入账日期`。
|
||||
- 修正新增存储过程里“公司编码不能为空”提示文本,避免脚本生成时遗留问号文本。
|
||||
|
||||
### 改了哪些文件
|
||||
|
||||
- `src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- `db_backups/add_device_name_and_import_excel_20260629.sql`
|
||||
- `db_backups/fix_device_excel_import_dates_20260629.sql`
|
||||
- `db_backups/fix_device_add_company_code_message_20260629.sql`
|
||||
- `work/DeviceManagement/DeviceInformation/README.md`
|
||||
- `work/DeviceManagement/DeviceInformation/01-项目功能内容.md`
|
||||
- `work/DeviceManagement/DeviceInformation/02-项目程序开发详细步骤.md`
|
||||
- `work/DeviceManagement/DeviceInformation/03-推进台账.md`
|
||||
- `work/DeviceManagement/DeviceInformation/04-任务矩阵.md`
|
||||
- `work/DeviceManagement/DeviceInformation/05-验收证据.md`
|
||||
- `work/DeviceManagement/DeviceInformation/06-决策记录.md`
|
||||
- `gptlog-process/gpdlog.md`
|
||||
|
||||
### 验证了什么
|
||||
|
||||
- 数据库表 `dbo.基础数据_设备工位点检表` 已新增 `名称` 字段。
|
||||
- `doc/设备信息.xlsx` 89 行已导入数据库,导入后设备信息总数为 89。
|
||||
- 样例数据验证:
|
||||
- `REALLY-11`:设备名称 `气泵(空压机)`,生产用名 `气泵`,入账日期 `2007-01-01`。
|
||||
- `REALLY-6`:设备名称 `数控加工中心`,生产用名 `加1`,入账日期 `2008-12-24`。
|
||||
- `REALLY-1`:设备名称 `普通车床`,生产用名 `普1`,入账日期 `2011-01-01`。
|
||||
- 执行 `npm run build` 通过,仅有既有资源体积和 Browserslist 过期警告。
|
||||
|
||||
### 下一步
|
||||
|
||||
- 在浏览器打开 `https://127.0.0.1:1997/`,进入设备信息维护页面检查新增字段显示、编辑回填和保存。
|
||||
25
work/DeviceManagement/DeviceInformation/04-任务矩阵.md
Normal file
25
work/DeviceManagement/DeviceInformation/04-任务矩阵.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# 04-任务矩阵
|
||||
|
||||
| 任务编号 | 任务 | 状态 | 验收标准 |
|
||||
| --- | --- | --- | --- |
|
||||
| DI-001 | 解析需求文档 | 已完成 | 已从 `doc/修改设备信息维护.docx` 提取字段和交互要求 |
|
||||
| DI-002 | 定位目标页面 | 已完成 | 确认页面为 `src/views/DeviceManagement/DeviceInformation/index.vue` |
|
||||
| DI-003 | 扩展数据库字段 | 已完成 | `dbo.基础数据_设备工位点检表` 已包含 14 个新增字段 |
|
||||
| DI-004 | 更新查询过程 | 已完成 | 查询过程返回新增字段,并按证书有效期预警排序 |
|
||||
| DI-005 | 更新新增过程 | 已完成 | 新增过程接收新增字段,公司编码为空时返回失败 |
|
||||
| DI-006 | 更新编辑过程 | 已完成 | 编辑过程更新新增字段但不更新公司编码 |
|
||||
| DI-007 | 修改列表列展示 | 已完成 | 前端表格展示需求字段,操作列固定在右侧 |
|
||||
| DI-008 | 修改新增/编辑表单 | 已完成 | 表单包含需求字段,主要设备/特种设备为是/否下拉 |
|
||||
| DI-008A | 取消设备类型必填 | 已完成 | `rules` 中不再包含设备类型必填校验,新增/编辑允许设备类型为空 |
|
||||
| DI-009 | 工位绑定多选 | 已完成 | 工位绑定为多选下拉,选项来源于工位管理查询 |
|
||||
| DI-010 | 证书有效期预警 | 已完成 | 已过期红色置顶,30 天内黄色靠前 |
|
||||
| DI-011 | 构建验证 | 已完成 | `npm run build` 通过 |
|
||||
| DI-011A | 修复日期编辑报错 | 已完成 | 入账日期、证书有效期至可传正常日期或空字符串,存储过程返回成功 |
|
||||
| DI-011B | 修复日期控件点击报错 | 已完成 | 日期控件绑定 `Date` 对象,点击日期面板不再触发 `date.getHours is not a function` |
|
||||
| DI-011C | 修复编辑弹窗日期不回填 | 已完成 | 日期回填兼容多种后端返回格式,并在弹窗渲染后再次写入日期字段 |
|
||||
| DI-014 | 新增设备名称字段 | 已完成 | 数据库新增 `名称` 字段,页面列表和编辑弹窗显示“设备名称” |
|
||||
| DI-015 | 导入设备信息 Excel | 已完成 | `doc/设备信息.xlsx` 89 行导入数据库,按公司编码 MERGE 防重复 |
|
||||
| DI-016 | 修正 Excel 入账日期 | 已完成 | 采用 Excel 显示日期修正导入结果,避免时区早一天 |
|
||||
| DI-017 | 修正新增过程提示文本 | 已完成 | 新增过程公司编码为空时返回“公司编码不能为空”,不再返回问号乱码 |
|
||||
| DI-012 | 真实页面人工验收 | 待办 | 登录系统确认页面显示、新增、编辑、预警颜色和排序符合需求 |
|
||||
| DI-013 | 历史数据治理 | 观察 | 如历史设备缺公司编码影响业务,再补清洗脚本和规则 |
|
||||
288
work/DeviceManagement/DeviceInformation/05-验收证据.md
Normal file
288
work/DeviceManagement/DeviceInformation/05-验收证据.md
Normal file
@@ -0,0 +1,288 @@
|
||||
# 05-验收证据
|
||||
|
||||
## 文档解析
|
||||
|
||||
- 原始文档:`doc/修改设备信息维护.docx`
|
||||
- 工作副本:`work/DeviceManagement/DeviceInformation/修改设备信息维护.docx`
|
||||
- 提取结果:字段包括公司编码、生产用名、规格/型号、设备信息、使用部门、入账日期、单位、数量、状态、维修记录、维保记录、工位绑定、主要设备、设备标准开机工时、特种设备、证书有效期至。
|
||||
|
||||
## 数据库连接
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -Q "SET NOCOUNT ON; SELECT TOP 1 name FROM sys.databases WHERE name=N'YL_MESDB';"
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 返回 `YL_MESDB`。
|
||||
|
||||
## 字段验证
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -Q "SET NOCOUNT ON; SELECT c.name, t.name AS type_name, c.max_length, c.is_nullable FROM sys.columns c JOIN sys.types t ON c.user_type_id=t.user_type_id WHERE c.object_id=OBJECT_ID(N'dbo.基础数据_设备工位点检表') AND c.name IN (N'公司编码',N'设备信息',N'使用部门',N'入账日期',N'单位',N'数量',N'状态',N'维修记录',N'维保记录',N'工位绑定',N'主要设备',N'设备标准开机工时',N'特种设备',N'证书有效期至') ORDER BY c.column_id;"
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 已返回 14 个新增字段。
|
||||
- 日期字段为 `date`。
|
||||
- 数量、设备标准开机工时为 `decimal`。
|
||||
- 文本字段为 `nvarchar`。
|
||||
|
||||
## 存储过程参数验证
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -Q "SET NOCOUNT ON; SELECT p.name AS proc_name, pa.name AS param_name, TYPE_NAME(pa.user_type_id) AS type_name FROM sys.procedures p JOIN sys.parameters pa ON p.object_id=pa.object_id WHERE p.name IN (N'设备管理_设备信息_查询',N'设备管理_设备信息_增加',N'设备管理_设备信息_编辑') ORDER BY p.name, pa.parameter_id;"
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `设备管理_设备信息_增加` 已包含新增字段参数。
|
||||
- `设备管理_设备信息_编辑` 已包含新增字段参数和 `@设备流水号`。
|
||||
- `设备管理_设备信息_查询` 参数保持兼容。
|
||||
|
||||
## 查询过程验证
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -Q "SET NOCOUNT ON; EXEC dbo.[设备管理_设备信息_查询] @设备名称_check=0, @设备名称=N'', @设备类型_check=0, @设备类型=NULL;" -h -1 -W
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 命令执行成功。
|
||||
- 当前无输出行或未显示样本数据,但过程无执行错误。
|
||||
|
||||
## 前端构建
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 构建通过。
|
||||
- webpack compiled with 2 warnings。
|
||||
- 警告为项目既有资源体积过大、Browserslist/caniuse-lite 数据过期。
|
||||
|
||||
## 产物证据
|
||||
|
||||
- 前端页面:`src/views/DeviceManagement/DeviceInformation/index.vue`
|
||||
- 数据库脚本:`db_backups/update_device_information_maintenance_20260629.sql`
|
||||
- 日期编辑修复脚本:`db_backups/fix_device_information_date_edit_20260629.sql`
|
||||
- 工作目录:`work/DeviceManagement/DeviceInformation`
|
||||
- 日志:`gptlog-process/gpdlog.md`
|
||||
|
||||
## 日期编辑修复验证
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\fix_device_information_date_edit_20260629.sql
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 脚本执行成功。
|
||||
- `设备管理_设备信息_增加/编辑` 的 `@入账日期`、`@证书有效期至` 已调整为 `nvarchar` 参数。
|
||||
|
||||
正常日期验证:
|
||||
|
||||
```powershell
|
||||
EXEC dbo.[设备管理_设备信息_编辑]
|
||||
@入账日期=N'2026-07-01',
|
||||
@证书有效期至=N'2026-07-31',
|
||||
...
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 返回 `result = 1`。
|
||||
- 数据库保存为 `2026-07-01` 和 `2026-07-31`。
|
||||
|
||||
清空日期验证:
|
||||
|
||||
```powershell
|
||||
EXEC dbo.[设备管理_设备信息_编辑]
|
||||
@入账日期=N'',
|
||||
@证书有效期至=N'',
|
||||
...
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 返回 `result = 1`。
|
||||
- 数据库对应日期字段保存为 `NULL`。
|
||||
|
||||
前端构建复验:
|
||||
|
||||
```powershell
|
||||
npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 构建通过。
|
||||
- webpack compiled with 2 warnings。
|
||||
- 警告仍为项目既有资源体积过大、Browserslist/caniuse-lite 数据过期。
|
||||
|
||||
## 设备名称字段和 Excel 导入验收
|
||||
|
||||
Excel 数据来源:
|
||||
|
||||
- `doc/设备信息.xlsx`
|
||||
- 工作副本:`work/DeviceManagement/DeviceInformation/设备信息.xlsx`
|
||||
- Sheet1 数据行数:89 行。
|
||||
|
||||
导入脚本:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\add_device_name_and_import_excel_20260629.sql
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `dbo.基础数据_设备工位点检表` 已新增字段 `名称`。
|
||||
- `设备管理_设备信息_增加` 已增加 `@名称` 参数并写入 `[名称]`。
|
||||
- `设备管理_设备信息_编辑` 已增加 `@名称` 参数并更新 `[名称]`。
|
||||
- Excel 89 行按 `公司编码` 导入或更新。
|
||||
|
||||
日期修正脚本:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\fix_device_excel_import_dates_20260629.sql
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 使用 Excel 单元格显示值修正 `入账日期`。
|
||||
- 修正后设备信息总数为 89。
|
||||
|
||||
提示文本修正脚本:
|
||||
|
||||
```powershell
|
||||
sqlcmd -S 192.168.2.92 -d YL_MESDB -U sa -P ****** -f 65001 -i db_backups\fix_device_add_company_code_message_20260629.sql
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 新增过程公司编码为空时返回 `公司编码不能为空`。
|
||||
- 未重新执行导入脚本,避免覆盖已修正的入账日期。
|
||||
|
||||
数据库抽样验证:
|
||||
|
||||
```powershell
|
||||
SELECT COUNT(*) AS cnt
|
||||
FROM dbo.[基础数据_设备工位点检表];
|
||||
|
||||
SELECT TOP 10
|
||||
[设备流水号],
|
||||
[名称],
|
||||
[公司编码],
|
||||
[设备名称] AS [生产用名],
|
||||
[设备型号],
|
||||
[入账日期]
|
||||
FROM dbo.[基础数据_设备工位点检表]
|
||||
ORDER BY [设备流水号];
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 总数:89。
|
||||
- `REALLY-11`:`名称=气泵(空压机)`,`生产用名=气泵`,`入账日期=2007-01-01`。
|
||||
- `REALLY-6`:`名称=数控加工中心`,`生产用名=加1`,`入账日期=2008-12-24`。
|
||||
- `REALLY-1`:`名称=普通车床`,`生产用名=普1`,`入账日期=2011-01-01`。
|
||||
|
||||
前端构建验证:
|
||||
|
||||
```powershell
|
||||
npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 构建通过。
|
||||
- webpack compiled with 2 warnings。
|
||||
- 警告仍为项目既有资源体积过大、Browserslist/caniuse-lite 数据过期。
|
||||
|
||||
## 编辑弹窗日期不回填修复验证
|
||||
|
||||
数据库测试数据:
|
||||
|
||||
```powershell
|
||||
UPDATE dbo.[基础数据_设备工位点检表]
|
||||
SET [入账日期]='2026-07-01',
|
||||
[证书有效期至]='2026-07-31'
|
||||
WHERE [设备流水号]=1;
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `设备流水号=1` 的 `入账日期` 为 `2026-07-01`。
|
||||
- `设备流水号=1` 的 `证书有效期至` 为 `2026-07-31`。
|
||||
|
||||
本地日期解析验证:
|
||||
|
||||
```powershell
|
||||
node -e "<日期解析测试脚本>"
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- `2026-07-01`
|
||||
- `2026-07-01 00:00:00`
|
||||
- `2026/07/01 00:00:00`
|
||||
- `/Date(1782864000000)/`
|
||||
- `Date` 对象
|
||||
|
||||
以上格式均可解析为有效 `Date`。
|
||||
|
||||
构建验证:
|
||||
|
||||
```powershell
|
||||
npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 构建通过。
|
||||
- webpack compiled with 2 warnings。
|
||||
- 警告仍为项目既有资源体积过大、Browserslist/caniuse-lite 数据过期。
|
||||
|
||||
页面测试地址:
|
||||
|
||||
- `https://127.0.0.1:1997/`
|
||||
- 本地 dev server 使用自签名 HTTPS,浏览器需要允许证书后进入页面测试。
|
||||
|
||||
## 日期控件点击报错修复验证
|
||||
|
||||
问题:
|
||||
|
||||
- 页面点击 `入账日期` 或 `证书有效期至` 日期面板时报错:`TypeError: date.getHours is not a function`。
|
||||
|
||||
修复:
|
||||
|
||||
- 移除两个 `el-date-picker` 的 `value-format="yyyy-MM-dd"`。
|
||||
- 编辑回填时用 `parseDateValue` 将数据库日期转换为 `Date` 对象。
|
||||
- 提交时用 `dateParam` 再格式化为 `yyyy-MM-dd` 字符串。
|
||||
|
||||
验证命令:
|
||||
|
||||
```powershell
|
||||
npm run build
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
- 构建通过。
|
||||
- webpack compiled with 2 warnings。
|
||||
- 警告仍为项目既有资源体积过大、Browserslist/caniuse-lite 数据过期。
|
||||
49
work/DeviceManagement/DeviceInformation/06-决策记录.md
Normal file
49
work/DeviceManagement/DeviceInformation/06-决策记录.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 06-决策记录
|
||||
|
||||
## DR-001 公司编码编辑只读并由后端保护
|
||||
|
||||
- 决策:新增时公司编码必填;编辑时前端禁用;编辑存储过程不更新公司编码。
|
||||
- 原因:需求明确“公司编码为必填且不可被修改”。仅前端禁用不足以防止接口绕过。
|
||||
- 影响:历史数据若公司编码为空,编辑时不会强制补齐;如后续要求历史数据也完整,需要专项清洗。
|
||||
|
||||
## DR-002 生产用名和规格/型号复用旧字段
|
||||
|
||||
- 决策:生产用名使用 `设备名称`,规格/型号使用 `设备型号`。
|
||||
- 原因:需求明确“复用设备名称”“复用设备型号”,保持与既有存储过程和其他页面兼容。
|
||||
- 影响:其他依赖 `设备管理_设备信息_查询` 的页面仍能使用旧字段。
|
||||
|
||||
## DR-003 工位绑定存储为逗号分隔工位号
|
||||
|
||||
- 决策:前端多选展示工位名称,提交时保存工位号逗号字符串到 `工位绑定`。
|
||||
- 原因:当前系统通用参数传递和旧表结构以简单字段为主,本轮避免新建关系表扩大影响面。
|
||||
- 影响:后续如需要按单工位统计或约束唯一性,应迁移为设备-工位绑定明细表。
|
||||
|
||||
## DR-004 证书有效期排序前后端都处理
|
||||
|
||||
- 决策:数据库查询过程增加预警排序;前端 `sortedTableData` 再按同样规则排序并控制行背景色。
|
||||
- 原因:后端保证分页查询顺序,前端保证当前页显示稳定和颜色一致。
|
||||
- 影响:分页总数据的全局置顶依赖数据库排序;前端只处理当前页。
|
||||
|
||||
## DR-005 SQL 脚本使用可重复执行字段判断
|
||||
|
||||
- 决策:新增字段使用 `COL_LENGTH` 判断存在后再 `ALTER TABLE ADD`。
|
||||
- 原因:避免脚本重复执行时报“列已存在”。
|
||||
- 影响:字段类型若后续要调整,需另起变更脚本,不能靠本脚本自动修改类型。
|
||||
|
||||
## DR-006 Excel 名称与生产用名分开保存
|
||||
|
||||
- 决策:Excel `名称` 保存到新增数据库字段 `名称`,页面显示为“设备名称”;Excel `生产用名` 继续保存到原字段 `设备名称`,页面显示为“生产用名”。
|
||||
- 原因:原系统多处依赖 `设备名称` 字段作为生产用名/设备简称,直接改语义会影响其他页面。
|
||||
- 影响:后续涉及“设备名称”时应先确认是新字段 `名称` 还是旧字段 `设备名称`。
|
||||
|
||||
## DR-007 Excel 导入按公司编码 MERGE
|
||||
|
||||
- 决策:设备信息 Excel 导入按 `公司编码` 做 `MERGE`,匹配则更新,不匹配则新增。
|
||||
- 原因:用户要求把 Excel 数据插入数据库,但导入脚本可能被重复执行;使用 `MERGE` 可以降低重复数据风险。
|
||||
- 影响:Excel 中公司编码不是全局唯一的行会被视为同一设备;后续如要支持一编码多设备,需要新增更稳定的唯一键规则。
|
||||
|
||||
## DR-008 Excel 日期按显示值修正
|
||||
|
||||
- 决策:首次导入发现日期早一天后,单独使用 Excel 单元格显示值生成修正脚本,不重新执行整份导入脚本。
|
||||
- 原因:Node 读取 Excel 日期对象时受时区影响,显示值更贴近业务人员在表格中看到的日期。
|
||||
- 影响:后续导入 Excel 日期时,应优先使用单元格显示文本或显式本地日期解析。
|
||||
18
work/DeviceManagement/DeviceInformation/README.md
Normal file
18
work/DeviceManagement/DeviceInformation/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 修改设备信息维护 README
|
||||
|
||||
## 索引
|
||||
|
||||
| 文件 | 用途 |
|
||||
| --- | --- |
|
||||
| `修改设备信息维护.docx` | 原始需求文档副本 |
|
||||
| `设备信息.xlsx` | 设备信息初始化导入数据副本 |
|
||||
| `01-项目功能内容.md` | 本轮设备信息维护页面功能范围 |
|
||||
| `02-项目程序开发详细步骤.md` | 前端、数据库和验证开发步骤 |
|
||||
| `03-推进台账.md` | 每轮做了什么、改了哪些文件、验证了什么、下一步是什么 |
|
||||
| `04-任务矩阵.md` | 任务编号、状态、验收标准 |
|
||||
| `05-验收证据.md` | 命令、数据库、页面、构建等验收证据 |
|
||||
| `06-决策记录.md` | 关键实现决策与原因 |
|
||||
|
||||
## 后续推进方式
|
||||
|
||||
后续继续该任务时,优先查看 `04-任务矩阵.md` 中状态为“待办”或“观察”的任务,再按 `03-推进台账.md` 追加新轮次记录。涉及数据库变更时,先补充 `db_backups` 增量脚本,再同步更新 `05-验收证据.md`。
|
||||
BIN
work/DeviceManagement/DeviceInformation/修改设备信息维护.docx
Normal file
BIN
work/DeviceManagement/DeviceInformation/修改设备信息维护.docx
Normal file
Binary file not shown.
BIN
work/DeviceManagement/DeviceInformation/设备信息.xlsx
Normal file
BIN
work/DeviceManagement/DeviceInformation/设备信息.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user