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
+131 -44
View File
@@ -12,6 +12,7 @@ import (
"entgo.io/ent/dialect/sql"
"entgo.io/ent/dialect/sql/sqlgraph"
"entgo.io/ent/dialect/sql/sqljson"
"entgo.io/ent/schema/field"
)
@@ -78,20 +79,6 @@ func (_u *WorkOrderUpdate) SetNillableProductCode(v *string) *WorkOrderUpdate {
return _u
}
// SetBomName sets the "bomName" field.
func (_u *WorkOrderUpdate) SetBomName(v string) *WorkOrderUpdate {
_u.mutation.SetBomName(v)
return _u
}
// SetNillableBomName sets the "bomName" field if the given value is not nil.
func (_u *WorkOrderUpdate) SetNillableBomName(v *string) *WorkOrderUpdate {
if v != nil {
_u.SetBomName(*v)
}
return _u
}
// SetProductName sets the "productName" field.
func (_u *WorkOrderUpdate) SetProductName(v string) *WorkOrderUpdate {
_u.mutation.SetProductName(v)
@@ -183,6 +170,51 @@ func (_u *WorkOrderUpdate) SetNillableProcessSeq(v *string) *WorkOrderUpdate {
return _u
}
// SetRouteId sets the "routeId" field.
func (_u *WorkOrderUpdate) SetRouteId(v int) *WorkOrderUpdate {
_u.mutation.ResetRouteId()
_u.mutation.SetRouteId(v)
return _u
}
// SetNillableRouteId sets the "routeId" field if the given value is not nil.
func (_u *WorkOrderUpdate) SetNillableRouteId(v *int) *WorkOrderUpdate {
if v != nil {
_u.SetRouteId(*v)
}
return _u
}
// AddRouteId adds value to the "routeId" field.
func (_u *WorkOrderUpdate) AddRouteId(v int) *WorkOrderUpdate {
_u.mutation.AddRouteId(v)
return _u
}
// ClearRouteId clears the value of the "routeId" field.
func (_u *WorkOrderUpdate) ClearRouteId() *WorkOrderUpdate {
_u.mutation.ClearRouteId()
return _u
}
// SetRouteSnapshot sets the "routeSnapshot" field.
func (_u *WorkOrderUpdate) SetRouteSnapshot(v []map[string]interface{}) *WorkOrderUpdate {
_u.mutation.SetRouteSnapshot(v)
return _u
}
// AppendRouteSnapshot appends value to the "routeSnapshot" field.
func (_u *WorkOrderUpdate) AppendRouteSnapshot(v []map[string]interface{}) *WorkOrderUpdate {
_u.mutation.AppendRouteSnapshot(v)
return _u
}
// ClearRouteSnapshot clears the value of the "routeSnapshot" field.
func (_u *WorkOrderUpdate) ClearRouteSnapshot() *WorkOrderUpdate {
_u.mutation.ClearRouteSnapshot()
return _u
}
// SetStatus sets the "status" field.
func (_u *WorkOrderUpdate) SetStatus(v string) *WorkOrderUpdate {
_u.mutation.SetStatus(v)
@@ -334,11 +366,6 @@ func (_u *WorkOrderUpdate) check() error {
return &ValidationError{Name: "productCode", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productCode": %w`, err)}
}
}
if v, ok := _u.mutation.BomName(); ok {
if err := workorder.BomNameValidator(v); err != nil {
return &ValidationError{Name: "bomName", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.bomName": %w`, err)}
}
}
if v, ok := _u.mutation.ProductName(); ok {
if err := workorder.ProductNameValidator(v); err != nil {
return &ValidationError{Name: "productName", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productName": %w`, err)}
@@ -387,9 +414,6 @@ func (_u *WorkOrderUpdate) sqlSave(ctx context.Context) (_node int, err error) {
if value, ok := _u.mutation.ProductCode(); ok {
_spec.SetField(workorder.FieldProductCode, field.TypeString, value)
}
if value, ok := _u.mutation.BomName(); ok {
_spec.SetField(workorder.FieldBomName, field.TypeString, value)
}
if value, ok := _u.mutation.ProductName(); ok {
_spec.SetField(workorder.FieldProductName, field.TypeString, value)
}
@@ -414,6 +438,26 @@ func (_u *WorkOrderUpdate) sqlSave(ctx context.Context) (_node int, err error) {
if value, ok := _u.mutation.ProcessSeq(); ok {
_spec.SetField(workorder.FieldProcessSeq, field.TypeString, value)
}
if value, ok := _u.mutation.RouteId(); ok {
_spec.SetField(workorder.FieldRouteId, field.TypeInt, value)
}
if value, ok := _u.mutation.AddedRouteId(); ok {
_spec.AddField(workorder.FieldRouteId, field.TypeInt, value)
}
if _u.mutation.RouteIdCleared() {
_spec.ClearField(workorder.FieldRouteId, field.TypeInt)
}
if value, ok := _u.mutation.RouteSnapshot(); ok {
_spec.SetField(workorder.FieldRouteSnapshot, field.TypeJSON, value)
}
if value, ok := _u.mutation.AppendedRouteSnapshot(); ok {
_spec.AddModifier(func(u *sql.UpdateBuilder) {
sqljson.Append(u, workorder.FieldRouteSnapshot, value)
})
}
if _u.mutation.RouteSnapshotCleared() {
_spec.ClearField(workorder.FieldRouteSnapshot, field.TypeJSON)
}
if value, ok := _u.mutation.Status(); ok {
_spec.SetField(workorder.FieldStatus, field.TypeString, value)
}
@@ -518,20 +562,6 @@ func (_u *WorkOrderUpdateOne) SetNillableProductCode(v *string) *WorkOrderUpdate
return _u
}
// SetBomName sets the "bomName" field.
func (_u *WorkOrderUpdateOne) SetBomName(v string) *WorkOrderUpdateOne {
_u.mutation.SetBomName(v)
return _u
}
// SetNillableBomName sets the "bomName" field if the given value is not nil.
func (_u *WorkOrderUpdateOne) SetNillableBomName(v *string) *WorkOrderUpdateOne {
if v != nil {
_u.SetBomName(*v)
}
return _u
}
// SetProductName sets the "productName" field.
func (_u *WorkOrderUpdateOne) SetProductName(v string) *WorkOrderUpdateOne {
_u.mutation.SetProductName(v)
@@ -623,6 +653,51 @@ func (_u *WorkOrderUpdateOne) SetNillableProcessSeq(v *string) *WorkOrderUpdateO
return _u
}
// SetRouteId sets the "routeId" field.
func (_u *WorkOrderUpdateOne) SetRouteId(v int) *WorkOrderUpdateOne {
_u.mutation.ResetRouteId()
_u.mutation.SetRouteId(v)
return _u
}
// SetNillableRouteId sets the "routeId" field if the given value is not nil.
func (_u *WorkOrderUpdateOne) SetNillableRouteId(v *int) *WorkOrderUpdateOne {
if v != nil {
_u.SetRouteId(*v)
}
return _u
}
// AddRouteId adds value to the "routeId" field.
func (_u *WorkOrderUpdateOne) AddRouteId(v int) *WorkOrderUpdateOne {
_u.mutation.AddRouteId(v)
return _u
}
// ClearRouteId clears the value of the "routeId" field.
func (_u *WorkOrderUpdateOne) ClearRouteId() *WorkOrderUpdateOne {
_u.mutation.ClearRouteId()
return _u
}
// SetRouteSnapshot sets the "routeSnapshot" field.
func (_u *WorkOrderUpdateOne) SetRouteSnapshot(v []map[string]interface{}) *WorkOrderUpdateOne {
_u.mutation.SetRouteSnapshot(v)
return _u
}
// AppendRouteSnapshot appends value to the "routeSnapshot" field.
func (_u *WorkOrderUpdateOne) AppendRouteSnapshot(v []map[string]interface{}) *WorkOrderUpdateOne {
_u.mutation.AppendRouteSnapshot(v)
return _u
}
// ClearRouteSnapshot clears the value of the "routeSnapshot" field.
func (_u *WorkOrderUpdateOne) ClearRouteSnapshot() *WorkOrderUpdateOne {
_u.mutation.ClearRouteSnapshot()
return _u
}
// SetStatus sets the "status" field.
func (_u *WorkOrderUpdateOne) SetStatus(v string) *WorkOrderUpdateOne {
_u.mutation.SetStatus(v)
@@ -787,11 +862,6 @@ func (_u *WorkOrderUpdateOne) check() error {
return &ValidationError{Name: "productCode", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productCode": %w`, err)}
}
}
if v, ok := _u.mutation.BomName(); ok {
if err := workorder.BomNameValidator(v); err != nil {
return &ValidationError{Name: "bomName", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.bomName": %w`, err)}
}
}
if v, ok := _u.mutation.ProductName(); ok {
if err := workorder.ProductNameValidator(v); err != nil {
return &ValidationError{Name: "productName", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productName": %w`, err)}
@@ -857,9 +927,6 @@ func (_u *WorkOrderUpdateOne) sqlSave(ctx context.Context) (_node *WorkOrder, er
if value, ok := _u.mutation.ProductCode(); ok {
_spec.SetField(workorder.FieldProductCode, field.TypeString, value)
}
if value, ok := _u.mutation.BomName(); ok {
_spec.SetField(workorder.FieldBomName, field.TypeString, value)
}
if value, ok := _u.mutation.ProductName(); ok {
_spec.SetField(workorder.FieldProductName, field.TypeString, value)
}
@@ -884,6 +951,26 @@ func (_u *WorkOrderUpdateOne) sqlSave(ctx context.Context) (_node *WorkOrder, er
if value, ok := _u.mutation.ProcessSeq(); ok {
_spec.SetField(workorder.FieldProcessSeq, field.TypeString, value)
}
if value, ok := _u.mutation.RouteId(); ok {
_spec.SetField(workorder.FieldRouteId, field.TypeInt, value)
}
if value, ok := _u.mutation.AddedRouteId(); ok {
_spec.AddField(workorder.FieldRouteId, field.TypeInt, value)
}
if _u.mutation.RouteIdCleared() {
_spec.ClearField(workorder.FieldRouteId, field.TypeInt)
}
if value, ok := _u.mutation.RouteSnapshot(); ok {
_spec.SetField(workorder.FieldRouteSnapshot, field.TypeJSON, value)
}
if value, ok := _u.mutation.AppendedRouteSnapshot(); ok {
_spec.AddModifier(func(u *sql.UpdateBuilder) {
sqljson.Append(u, workorder.FieldRouteSnapshot, value)
})
}
if _u.mutation.RouteSnapshotCleared() {
_spec.ClearField(workorder.FieldRouteSnapshot, field.TypeJSON)
}
if value, ok := _u.mutation.Status(); ok {
_spec.SetField(workorder.FieldStatus, field.TypeString, value)
}