feat&refactor: 完成多模块功能迭代与配置优化

本次提交覆盖多个业务模块的功能完善与体验优化:
1.  **鉴权与配置调整**:
    - 统一JWT滑动续签逻辑,简化Token存储,移除RefreshToken相关冗余代码
    - 调整多项目配置文件中JWT过期时间为3600秒,统一会话闲置窗口
    - 工位配置放开1~12限制,改为仅校验大于0
2.  **术语统一替换**:全链路将"精密件"替换为"电气件",修正物料管理描述
3.  **功能新增**:
    - 新增工位类型、工艺路线与产线点位台账模块
    - 添加工艺PDF预览面板、工位终端代理转发接口
    - 新增操作日志按操作人列表筛选、工位登出日志记录
    - 新增PLC移料指令与产线点位状态管理
4.  **业务流程优化**:
    - 调整BOM物料删除校验逻辑,优化工单备料计算
    - 补充物料图号、检测单号等追溯字段
    - 完善工艺流程图与工位绑定关系说明
    - 优化前端页面文案与交互细节
5.  **代码规范与维护**:
    - 新增通用工具函数与前端静态资源
    - 整理路由权限与中间件逻辑
    - 修复部分接口与配置的不兼容问题
This commit is contained in:
SunYF
2026-09-10 16:59:15 +08:00
parent 6d8bb75696
commit 0ab21b1234
202 changed files with 21397 additions and 3172 deletions
+6 -6
View File
@@ -149,13 +149,13 @@ func displayWidth(s string) int {
return n
}
// manageModeLabel 管理粒度中文名:1=结构件 2=精密
// manageModeLabel 管理粒度中文名:1=结构件 2=电气
func manageModeLabel(m int) string {
if m == 1 {
return "结构件"
}
if m == 2 {
return "精密件"
return "电气件"
}
return "-"
}
@@ -190,7 +190,7 @@ type importErr struct {
// excelInboundHandler Excel 批量导入入库
// mode=batch(结构件):列头(首行忽略) 物料编码 | 批次号(可空自动生成) | 数量 | 生产日期 | 供应商 | 区域 | 备注
// mode=sn(精密件): 列头(首行忽略) 物料编码 | SN | 区域 | 生产日期 | 供应商
// mode=sn(电气件): 列头(首行忽略) 物料编码 | SN | 区域 | 生产日期 | 供应商
//
// 强约束:全成功或全失败(一次性全导入 or 全失败,禁止部分成功)。
// 流程:阶段1 逐行解析+校验(物料存在/数量>0/SN不重复/区域必填) → 任一错则整体拒绝并列出错误行(一行不写);
@@ -259,7 +259,7 @@ func excelInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
pr.code = cell(0)
if mode == "sn" {
pr.sn = cell(1)
pr.zone = cell(2) // 精密件模板: 物料编码|SN|区域|生产日期|供应商
pr.zone = cell(2) // 电气件模板: 物料编码|SN|区域|生产日期|供应商
pr.prodDate = cell(3)
pr.supplier = cell(4)
pr.remark = cell(4)
@@ -283,7 +283,7 @@ func excelInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
}
if mode == "sn" {
if m.ManageMode != 2 {
errs = append(errs, importErr{pr.row, pr.code, "该物料为结构件,SN 导入仅支持精密件(按 SN 管理)"})
errs = append(errs, importErr{pr.row, pr.code, "该物料为结构件,SN 导入仅支持电气件(按 SN 管理)"})
continue
}
if pr.sn == "" {
@@ -303,7 +303,7 @@ func excelInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
}
} else {
if m.ManageMode != 1 {
errs = append(errs, importErr{pr.row, pr.code, "该物料为精密件,请使用 SN 导入"})
errs = append(errs, importErr{pr.row, pr.code, "该物料为电气件,请使用 SN 导入"})
continue
}
if pr.qty <= 0 {