研发库房管理:冷启动文件
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| 研发库房管理:冷启动文件 [2026/08/30 13:20] – external edit 127.0.0.1 | 研发库房管理:冷启动文件 [2026/08/30 22:09] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== 研发库房管理 H5 — 冷启动文件 ====== | ====== 研发库房管理 H5 — 冷启动文件 ====== | ||
| - | > 版本: 2.1 | 更新: 2026-08-30 | 用途: 研发库房样品出入库管理系统的冷启动/ | + | > 版本: 2.3 | 更新: 2026-08-30 | 用途: 研发库房样品出入库管理系统的冷启动/ |
| > ⚠️ **功能保全铁律(用户 2026-08-30 定稿):本系统功能只增不减,改版前先读本文件" | > ⚠️ **功能保全铁律(用户 2026-08-30 定稿):本系统功能只增不减,改版前先读本文件" | ||
| + | > ⚠️ **测试铁律(用户 2026-08-30 强调):测试必须用独立库(STORE_DB=/ | ||
| > 地址: http:// | > 地址: http:// | ||
| > 数据库: / | > 数据库: / | ||
| Line 14: | Line 15: | ||
| 样品入库登记(新样品,全字段+图纸+备注,数量→生成个体编号 N1~Nn) | 样品入库登记(新样品,全字段+图纸+备注,数量→生成个体编号 N1~Nn) | ||
| ↓ | ↓ | ||
| - | 出库申请(选样品显示详情+选编号,默认顺序)→ 审核人批准 → 生成准出编号(ZC-YYYYMMDD-NNN)→ 扣库存 | + | 出库申请(选样品显示详情+选编号,默认顺序,备注信息)→ 审核人批准 → 生成准出编号(ZC-YYYYMMDD-NNN)→ 扣库存 |
| - | ↓ 测试后重新入库(两种模式) | + | ↓ 测试后重新入库(申请-审核制,三种模式) |
| - | 原样品:输入准出编号→确认→显示该编号样品全部信息→只改位置(默认原位置)→确认入库→自动抵消领料人台账 | + | 原样品(原物归库)/ |
| - | 组合样品:全新档案(名称/ | + | |
| ↓ 破坏性测试报废 | ↓ 破坏性测试报废 | ||
| - | 销毁申请 → 审核人批准 → 库存核销 | + | 销毁申请(按准出编号)→ 输入准出编号→确认→显示对应样品信息→审核人批准→该编号作废(已销毁) |
| ↓ | ↓ | ||
| - | 领料人台账:出库挂人名下,按准出编号 settled 标记抵消(原样品/ | + | 领料人台账:出库挂人名下,未抵消 |
| < | < | ||
| Line 27: | Line 27: | ||
| * **samples 表**(软删除):id/ | * **samples 表**(软删除):id/ | ||
| - | * data 含:id/ | + | * data 含:id/ |
| - | * **requests 表**:申请记录(kind 出库|销毁 / sample_id/ | + | * **requests 表**:申请记录(kind 出库|销毁 / sample_id/ |
| - | * **history 表**:出入库流水 | + | * **history 表**:出入库流水(note 含" |
| ===== 3. API 表 ===== | ===== 3. API 表 ===== | ||
| Line 40: | Line 40: | ||
| | / | | / | ||
| | / | | / | ||
| - | | / | + | | / |
| - | | / | + | | / |
| + | | / | ||
| | / | | / | ||
| - | | / | + | | / |
| | / | | / | ||
| - | | / | + | | / |
| - | | / | + | | / |
| - | | / | + | | / |
| - | | / | + | | / |
| - | | / | + | | / |
| - | | / | + | | / |
| + | | / | ||
| | / | | / | ||
| | / | | / | ||
| Line 58: | Line 60: | ||
| * **物料编码**:A+10位数字,样品唯一标识;自动随机生成(去重50次)或手动录入;已有编码拒绝重复建档并显示该物料全部信息 | * **物料编码**:A+10位数字,样品唯一标识;自动随机生成(去重50次)或手动录入;已有编码拒绝重复建档并显示该物料全部信息 | ||
| - | * **个体编号**:数量 N → 生成 N1~Nn;出库按编号(默认顺序=最小在库编号),重新入库按编号匹配 | + | * **个体编号**:数量 N → 生成 N1~Nn;出库按编号(默认顺序=最小在库编号),重新入库按编号匹配;追加数量编号顺延 |
| - | * **准出编号**:ZC-YYYYMMDD-NNN,审核批准时生成;只有贴准出编号样品可做研发测试(测试才有效) | + | * **准出编号**:ZC-YYYYMMDD-NNN,审核批准时生成;只有贴准出编号样品可做研发测试(测试才有效);**每次出库须重新申请生成新准出编号** |
| - | * **台账抵消**:原样品/ | + | * **销毁**:按准出编号销毁(申请校验编号存在/ |
| + | * **台账抵消**:原样品/ | ||
| + | * **审核人默认武燕青**(所有申请表单自动填入,可改) | ||
| + | * **销毁原因**写入销毁申请备注(审核中心可见) | ||
| + | * **申请全部显示备注**(出库/ | ||
| + | * **备注**:出库申请" | ||
| * **库存只走出入库/ | * **库存只走出入库/ | ||
| - | * **历史保护**:编辑只改白名单字段;备注追加不覆盖;SQLite+软删除+git 三重保障 | + | * **历史保护**:编辑只改白名单字段;SQLite+软删除+git 三重保障 |
| ===== 5. 部署与运维 ===== | ===== 5. 部署与运维 ===== | ||
| Line 71: | Line 78: | ||
| 防火墙:腾讯云轻量 13545 TCP(lhins-1dai07vu ap-beijing) | 防火墙:腾讯云轻量 13545 TCP(lhins-1dai07vu ap-beijing) | ||
| 数据库:sqlite3 ~/ | 数据库:sqlite3 ~/ | ||
| + | 测试隔离:STORE_DB=/ | ||
| 前端改完即生效(读文件);后端改完需重启 | 前端改完即生效(读文件);后端改完需重启 | ||
| < | < | ||
| Line 76: | Line 84: | ||
| ===== 6. 界面规范(永久保留,禁止回归) ===== | ===== 6. 界面规范(永久保留,禁止回归) ===== | ||
| - | * **人员选择 = 文本框下拉列表**(2026-08-30 用户定稿):所有人员字段(操作人 iOp/ | + | * **人员选择 = 文本框下拉列表**(2026-08-30 用户定稿):所有人员字段(操作人 iOp/ |
| * 下拉选项 = **钉钉通讯录全量**(/ | * 下拉选项 = **钉钉通讯录全量**(/ | ||
| * 点击/ | * 点击/ | ||
| Line 82: | Line 90: | ||
| * 可自定义输入新人员(文本框) | * 可自定义输入新人员(文本框) | ||
| * 项目选择(iProj/ | * 项目选择(iProj/ | ||
| - | * combo 绑定列表维护位置:fillDatalists() 中 `[' | + | * combo 绑定列表维护位置:fillDatalists() 中 `[' |
| - | * ⚠️ **fillDatalists 必须用 setDL 安全填充**(元素不存在不报错)——曾因删除 hisMat datalist 导致 | + | * **样品选择下拉:名称后不加括号内容**(曾导致用户无法选择编号);出库编号下拉只显示纯编号 |
| + | * ⚠️ **fillDatalists 必须用 setDL 安全填充**(元素不存在不报错)——曾因删除 hisMat datalist 导致 combo 绑定全部中断 | ||
| + | * ⚠️ **getElementById 赋值前必须判空**——销毁改准出编号后 dSamp 删除导致 renderSampSelect 中断、出库编号下拉空白(用户无法选编号) | ||
| + | * 页面禁缓存(meta no-cache + 服务端 no-store)——微信缓存旧 JS 曾导致下拉空白/ | ||
| ===== 7. 功能清单(2026-08-30 存档,只增不减) ===== | ===== 7. 功能清单(2026-08-30 存档,只增不减) ===== | ||
| Line 89: | Line 100: | ||
| | # | 模块 | 功能点 | | | # | 模块 | 功能点 | | ||
| | --- | ------ | -------- | | | --- | ------ | -------- | | ||
| - | | 1 | 📦 样品档案 | 列表/ | + | | 1 | 📦 样品档案 | 列表/ |
| | 2 | ⬇️ 样品入库 | 全字段:名称(历史下拉)/ | | 2 | ⬇️ 样品入库 | 全字段:名称(历史下拉)/ | ||
| - | | 3 | ⬆️ 出库申请 | 选样品→显示全部详情/ | + | | 3 | ⬆️ 出库申请 | 选样品→显示全部详情/ |
| - | | 4 | ✅ 审核中心 | 待审列表(出库/ | + | | 4 | ✅ 审核中心 | 待审列表(出库/ |
| - | | 5 | 💥 销毁申请 | 样品/数量/申请人(下拉)/ | + | | 5 | 💥 销毁申请 | **按准出编号**:输入准出编号→确认→显示对应样品信息→申请人(下拉)/ |
| - | | 6 | ↩️ 重新入库 | **原样品**:准出编号→确认→显示该编号全部信息→仅位置可改(默认原位置)→确认→自动抵消台账;**组合样品**:全字段(名称/ | + | | 6 | ↩️ 重新入库 | **申请-审核制**(填审核人提交申请,批准后执行):**原样品(原物归库)**/组合样品(新建)/组合样品(原物归库) 三模式,批准后恢复在库/ |
| - | | 7 | 👤 领料人台账 | 按人分组:出库/ | + | | 7 | 👤 领料人台账 | 按人分组:出库(全量含已归还)/ |
| - | | 8 | 📜 流水 | 全量记录+每行✕删 | | + | | 8 | 📜 流水 | 全量记录(含备注)+每行✕删 | |
| | 9 | 🗑️ 回收站 | 已删除样品列表(软删除保留)+一键恢复 | | | 9 | 🗑️ 回收站 | 已删除样品列表(软删除保留)+一键恢复 | | ||
| | 10 | 👥 人员选择 | **所有人员字段=文本框下拉列表(钉钉通讯录全量18人,输入过滤,选中自动收起,不遮挡下方)——永久规范** | | | 10 | 👥 人员选择 | **所有人员字段=文本框下拉列表(钉钉通讯录全量18人,输入过滤,选中自动收起,不遮挡下方)——永久规范** | | ||
| Line 104: | Line 115: | ||
| < | < | ||
| - | ① 7 个人员字段 combo 绑定正常(iOp/ | + | ① 8 个人员字段 combo 绑定正常(iOp/ |
| - | ② fillDatalists 无 null 报错(必须用 setDL 安全填充) | + | ② fillDatalists 无 null 报错(必须用 setDL 安全填充);renderSampSelect 无 null 报错(getElementById 判空) |
| - | ③ 主流程走通:入库→出库申请→审核(准出编号)→原样品/ | + | ③ 主流程走通:入库→出库申请(选编号)→审核(准出编号)→重新入库申请→审核批准执行(台账抵消)→按准出编号销毁;审核人默认武燕青 |
| ④ 物料编码:自动生成格式 A+10位 / 手动查重 / 反查显示物料信息 | ④ 物料编码:自动生成格式 A+10位 / 手动查重 / 反查显示物料信息 | ||
| - | ⑤ 样品档案:搜索/ | + | ⑤ 样品档案:搜索/ |
| - | ⑥ 数据不丢:SQLite 软删除 + git 提交 | + | ⑥ 台账:未抵消=出库-归还-销毁;最新在上;备注显示 |
| + | ⑦ 数据不丢:SQLite 软删除 + git 提交 | ||
| + | ⑧ 测试用独立库(STORE_DB/ | ||
| < | < | ||
| Line 120: | Line 133: | ||
| | 样品删除找不到 | 回收站 tab(软删除,可恢复) | | | 样品删除找不到 | 回收站 tab(软删除,可恢复) | | ||
| | 物料编码重复 | 自动生成去重;手动输入已有→拒绝+显示物料信息 | | | 物料编码重复 | 自动生成去重;手动输入已有→拒绝+显示物料信息 | | ||
| - | | 台账未抵消 | 重新入库(原样品/ | + | | 台账未抵消计算 |
| + | | 出库编号下拉空白 | ①强刷(微信缓存) ②renderSampSelect 无 null(dSamp 判空)③loadAll 完成后再切 tab | | ||
| + | | 删除记录刷新又出现 | save 已改全量同步(DELETE+INSERT),若再出现重启服务 | | ||
| + | | 台账无中生有记录 | **测试污染**:测试必须独立库 STORE_DB(2026-08-30 修复) | ||
| | 外网打不开 | 防火墙 13545 + systemd 状态 | | | 外网打不开 | 防火墙 13545 + systemd 状态 | | ||
研发库房管理/冷启动文件.1788096005.txt.gz · Last modified: by 127.0.0.1 · Currently locked by: 216.73.217.152,172.17.0.1
