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
+12 -1
View File
@@ -38,6 +38,8 @@ type Material struct {
IsSerialManaged bool `json:"isSerialManaged,omitempty"`
// 物料模板编码(物料种类)
TemplateCode string `json:"templateCode,omitempty"`
// 图号(图纸编号)
DrawingNo string `json:"drawingNo,omitempty"`
// 是否启用
IsActive bool `json:"isActive,omitempty"`
// 创建时间
@@ -56,7 +58,7 @@ func (*Material) scanValues(columns []string) ([]any, error) {
values[i] = new(sql.NullBool)
case material.FieldID, material.FieldItemType, material.FieldManageMode, material.FieldCreatedAt, material.FieldUpdatedAt:
values[i] = new(sql.NullInt64)
case material.FieldCode, material.FieldName, material.FieldShortName, material.FieldSpec, material.FieldUnit, material.FieldDescription, material.FieldTemplateCode:
case material.FieldCode, material.FieldName, material.FieldShortName, material.FieldSpec, material.FieldUnit, material.FieldDescription, material.FieldTemplateCode, material.FieldDrawingNo:
values[i] = new(sql.NullString)
default:
values[i] = new(sql.UnknownType)
@@ -145,6 +147,12 @@ func (_m *Material) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.TemplateCode = value.String
}
case material.FieldDrawingNo:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field drawing_no", values[i])
} else if value.Valid {
_m.DrawingNo = value.String
}
case material.FieldIsActive:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field is_active", values[i])
@@ -232,6 +240,9 @@ func (_m *Material) String() string {
builder.WriteString("template_code=")
builder.WriteString(_m.TemplateCode)
builder.WriteString(", ")
builder.WriteString("drawing_no=")
builder.WriteString(_m.DrawingNo)
builder.WriteString(", ")
builder.WriteString("is_active=")
builder.WriteString(fmt.Sprintf("%v", _m.IsActive))
builder.WriteString(", ")