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
@@ -0,0 +1,110 @@
// Code generated by ent, DO NOT EDIT.
package processroute
import (
"time"
"entgo.io/ent/dialect/sql"
)
const (
// Label holds the string label denoting the processroute type in the database.
Label = "process_route"
// FieldID holds the string denoting the id field in the database.
FieldID = "id"
// FieldName holds the string denoting the name field in the database.
FieldName = "name"
// FieldProductTypeId holds the string denoting the producttypeid field in the database.
FieldProductTypeId = "product_type_id"
// FieldStatus holds the string denoting the status field in the database.
FieldStatus = "status"
// FieldRemark holds the string denoting the remark field in the database.
FieldRemark = "remark"
// FieldCreatedAt holds the string denoting the createdat field in the database.
FieldCreatedAt = "created_at"
// FieldUpdatedAt holds the string denoting the updatedat field in the database.
FieldUpdatedAt = "updated_at"
// Table holds the table name of the processroute in the database.
Table = "process_route"
)
// Columns holds all SQL columns for processroute fields.
var Columns = []string{
FieldID,
FieldName,
FieldProductTypeId,
FieldStatus,
FieldRemark,
FieldCreatedAt,
FieldUpdatedAt,
}
// ValidColumn reports if the column name is valid (part of the table columns).
func ValidColumn(column string) bool {
for i := range Columns {
if column == Columns[i] {
return true
}
}
return false
}
var (
// NameValidator is a validator for the "name" field. It is called by the builders before save.
NameValidator func(string) error
// DefaultStatus holds the default value on creation for the "status" field.
DefaultStatus string
// StatusValidator is a validator for the "status" field. It is called by the builders before save.
StatusValidator func(string) error
// DefaultRemark holds the default value on creation for the "remark" field.
DefaultRemark string
// RemarkValidator is a validator for the "remark" field. It is called by the builders before save.
RemarkValidator func(string) error
// DefaultCreatedAt holds the default value on creation for the "createdAt" field.
DefaultCreatedAt func() time.Time
// DefaultUpdatedAt holds the default value on creation for the "updatedAt" field.
DefaultUpdatedAt func() time.Time
// UpdateDefaultUpdatedAt holds the default value on update for the "updatedAt" field.
UpdateDefaultUpdatedAt func() time.Time
// IDValidator is a validator for the "id" field. It is called by the builders before save.
IDValidator func(int) error
)
// OrderOption defines the ordering options for the ProcessRoute queries.
type OrderOption func(*sql.Selector)
// ByID orders the results by the id field.
func ByID(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldID, opts...).ToFunc()
}
// ByName orders the results by the name field.
func ByName(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldName, opts...).ToFunc()
}
// ByProductTypeId orders the results by the productTypeId field.
func ByProductTypeId(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldProductTypeId, opts...).ToFunc()
}
// ByStatus orders the results by the status field.
func ByStatus(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldStatus, opts...).ToFunc()
}
// ByRemark orders the results by the remark field.
func ByRemark(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldRemark, opts...).ToFunc()
}
// ByCreatedAt orders the results by the createdAt field.
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
}
// ByUpdatedAt orders the results by the updatedAt field.
func ByUpdatedAt(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldUpdatedAt, opts...).ToFunc()
}
+435
View File
@@ -0,0 +1,435 @@
// Code generated by ent, DO NOT EDIT.
package processroute
import (
"bj_power_mes/ent/predicate"
"time"
"entgo.io/ent/dialect/sql"
)
// ID filters vertices based on their ID field.
func ID(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldID, id))
}
// IDEQ applies the EQ predicate on the ID field.
func IDEQ(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldID, id))
}
// IDNEQ applies the NEQ predicate on the ID field.
func IDNEQ(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldID, id))
}
// IDIn applies the In predicate on the ID field.
func IDIn(ids ...int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldID, ids...))
}
// IDNotIn applies the NotIn predicate on the ID field.
func IDNotIn(ids ...int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldID, ids...))
}
// IDGT applies the GT predicate on the ID field.
func IDGT(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldID, id))
}
// IDGTE applies the GTE predicate on the ID field.
func IDGTE(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldID, id))
}
// IDLT applies the LT predicate on the ID field.
func IDLT(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldID, id))
}
// IDLTE applies the LTE predicate on the ID field.
func IDLTE(id int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldID, id))
}
// Name applies equality check predicate on the "name" field. It's identical to NameEQ.
func Name(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldName, v))
}
// ProductTypeId applies equality check predicate on the "productTypeId" field. It's identical to ProductTypeIdEQ.
func ProductTypeId(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldProductTypeId, v))
}
// Status applies equality check predicate on the "status" field. It's identical to StatusEQ.
func Status(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldStatus, v))
}
// Remark applies equality check predicate on the "remark" field. It's identical to RemarkEQ.
func Remark(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldRemark, v))
}
// CreatedAt applies equality check predicate on the "createdAt" field. It's identical to CreatedAtEQ.
func CreatedAt(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldCreatedAt, v))
}
// UpdatedAt applies equality check predicate on the "updatedAt" field. It's identical to UpdatedAtEQ.
func UpdatedAt(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldUpdatedAt, v))
}
// NameEQ applies the EQ predicate on the "name" field.
func NameEQ(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldName, v))
}
// NameNEQ applies the NEQ predicate on the "name" field.
func NameNEQ(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldName, v))
}
// NameIn applies the In predicate on the "name" field.
func NameIn(vs ...string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldName, vs...))
}
// NameNotIn applies the NotIn predicate on the "name" field.
func NameNotIn(vs ...string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldName, vs...))
}
// NameGT applies the GT predicate on the "name" field.
func NameGT(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldName, v))
}
// NameGTE applies the GTE predicate on the "name" field.
func NameGTE(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldName, v))
}
// NameLT applies the LT predicate on the "name" field.
func NameLT(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldName, v))
}
// NameLTE applies the LTE predicate on the "name" field.
func NameLTE(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldName, v))
}
// NameContains applies the Contains predicate on the "name" field.
func NameContains(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldContains(FieldName, v))
}
// NameHasPrefix applies the HasPrefix predicate on the "name" field.
func NameHasPrefix(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldHasPrefix(FieldName, v))
}
// NameHasSuffix applies the HasSuffix predicate on the "name" field.
func NameHasSuffix(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldHasSuffix(FieldName, v))
}
// NameEqualFold applies the EqualFold predicate on the "name" field.
func NameEqualFold(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEqualFold(FieldName, v))
}
// NameContainsFold applies the ContainsFold predicate on the "name" field.
func NameContainsFold(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldContainsFold(FieldName, v))
}
// ProductTypeIdEQ applies the EQ predicate on the "productTypeId" field.
func ProductTypeIdEQ(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldProductTypeId, v))
}
// ProductTypeIdNEQ applies the NEQ predicate on the "productTypeId" field.
func ProductTypeIdNEQ(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldProductTypeId, v))
}
// ProductTypeIdIn applies the In predicate on the "productTypeId" field.
func ProductTypeIdIn(vs ...int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldProductTypeId, vs...))
}
// ProductTypeIdNotIn applies the NotIn predicate on the "productTypeId" field.
func ProductTypeIdNotIn(vs ...int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldProductTypeId, vs...))
}
// ProductTypeIdGT applies the GT predicate on the "productTypeId" field.
func ProductTypeIdGT(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldProductTypeId, v))
}
// ProductTypeIdGTE applies the GTE predicate on the "productTypeId" field.
func ProductTypeIdGTE(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldProductTypeId, v))
}
// ProductTypeIdLT applies the LT predicate on the "productTypeId" field.
func ProductTypeIdLT(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldProductTypeId, v))
}
// ProductTypeIdLTE applies the LTE predicate on the "productTypeId" field.
func ProductTypeIdLTE(v int) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldProductTypeId, v))
}
// ProductTypeIdIsNil applies the IsNil predicate on the "productTypeId" field.
func ProductTypeIdIsNil() predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIsNull(FieldProductTypeId))
}
// ProductTypeIdNotNil applies the NotNil predicate on the "productTypeId" field.
func ProductTypeIdNotNil() predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotNull(FieldProductTypeId))
}
// StatusEQ applies the EQ predicate on the "status" field.
func StatusEQ(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldStatus, v))
}
// StatusNEQ applies the NEQ predicate on the "status" field.
func StatusNEQ(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldStatus, v))
}
// StatusIn applies the In predicate on the "status" field.
func StatusIn(vs ...string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldStatus, vs...))
}
// StatusNotIn applies the NotIn predicate on the "status" field.
func StatusNotIn(vs ...string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldStatus, vs...))
}
// StatusGT applies the GT predicate on the "status" field.
func StatusGT(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldStatus, v))
}
// StatusGTE applies the GTE predicate on the "status" field.
func StatusGTE(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldStatus, v))
}
// StatusLT applies the LT predicate on the "status" field.
func StatusLT(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldStatus, v))
}
// StatusLTE applies the LTE predicate on the "status" field.
func StatusLTE(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldStatus, v))
}
// StatusContains applies the Contains predicate on the "status" field.
func StatusContains(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldContains(FieldStatus, v))
}
// StatusHasPrefix applies the HasPrefix predicate on the "status" field.
func StatusHasPrefix(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldHasPrefix(FieldStatus, v))
}
// StatusHasSuffix applies the HasSuffix predicate on the "status" field.
func StatusHasSuffix(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldHasSuffix(FieldStatus, v))
}
// StatusEqualFold applies the EqualFold predicate on the "status" field.
func StatusEqualFold(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEqualFold(FieldStatus, v))
}
// StatusContainsFold applies the ContainsFold predicate on the "status" field.
func StatusContainsFold(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldContainsFold(FieldStatus, v))
}
// RemarkEQ applies the EQ predicate on the "remark" field.
func RemarkEQ(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldRemark, v))
}
// RemarkNEQ applies the NEQ predicate on the "remark" field.
func RemarkNEQ(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldRemark, v))
}
// RemarkIn applies the In predicate on the "remark" field.
func RemarkIn(vs ...string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldRemark, vs...))
}
// RemarkNotIn applies the NotIn predicate on the "remark" field.
func RemarkNotIn(vs ...string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldRemark, vs...))
}
// RemarkGT applies the GT predicate on the "remark" field.
func RemarkGT(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldRemark, v))
}
// RemarkGTE applies the GTE predicate on the "remark" field.
func RemarkGTE(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldRemark, v))
}
// RemarkLT applies the LT predicate on the "remark" field.
func RemarkLT(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldRemark, v))
}
// RemarkLTE applies the LTE predicate on the "remark" field.
func RemarkLTE(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldRemark, v))
}
// RemarkContains applies the Contains predicate on the "remark" field.
func RemarkContains(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldContains(FieldRemark, v))
}
// RemarkHasPrefix applies the HasPrefix predicate on the "remark" field.
func RemarkHasPrefix(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldHasPrefix(FieldRemark, v))
}
// RemarkHasSuffix applies the HasSuffix predicate on the "remark" field.
func RemarkHasSuffix(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldHasSuffix(FieldRemark, v))
}
// RemarkEqualFold applies the EqualFold predicate on the "remark" field.
func RemarkEqualFold(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEqualFold(FieldRemark, v))
}
// RemarkContainsFold applies the ContainsFold predicate on the "remark" field.
func RemarkContainsFold(v string) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldContainsFold(FieldRemark, v))
}
// CreatedAtEQ applies the EQ predicate on the "createdAt" field.
func CreatedAtEQ(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldCreatedAt, v))
}
// CreatedAtNEQ applies the NEQ predicate on the "createdAt" field.
func CreatedAtNEQ(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldCreatedAt, v))
}
// CreatedAtIn applies the In predicate on the "createdAt" field.
func CreatedAtIn(vs ...time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldCreatedAt, vs...))
}
// CreatedAtNotIn applies the NotIn predicate on the "createdAt" field.
func CreatedAtNotIn(vs ...time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldCreatedAt, vs...))
}
// CreatedAtGT applies the GT predicate on the "createdAt" field.
func CreatedAtGT(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldCreatedAt, v))
}
// CreatedAtGTE applies the GTE predicate on the "createdAt" field.
func CreatedAtGTE(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldCreatedAt, v))
}
// CreatedAtLT applies the LT predicate on the "createdAt" field.
func CreatedAtLT(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldCreatedAt, v))
}
// CreatedAtLTE applies the LTE predicate on the "createdAt" field.
func CreatedAtLTE(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldCreatedAt, v))
}
// UpdatedAtEQ applies the EQ predicate on the "updatedAt" field.
func UpdatedAtEQ(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldEQ(FieldUpdatedAt, v))
}
// UpdatedAtNEQ applies the NEQ predicate on the "updatedAt" field.
func UpdatedAtNEQ(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNEQ(FieldUpdatedAt, v))
}
// UpdatedAtIn applies the In predicate on the "updatedAt" field.
func UpdatedAtIn(vs ...time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIn(FieldUpdatedAt, vs...))
}
// UpdatedAtNotIn applies the NotIn predicate on the "updatedAt" field.
func UpdatedAtNotIn(vs ...time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotIn(FieldUpdatedAt, vs...))
}
// UpdatedAtGT applies the GT predicate on the "updatedAt" field.
func UpdatedAtGT(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGT(FieldUpdatedAt, v))
}
// UpdatedAtGTE applies the GTE predicate on the "updatedAt" field.
func UpdatedAtGTE(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldGTE(FieldUpdatedAt, v))
}
// UpdatedAtLT applies the LT predicate on the "updatedAt" field.
func UpdatedAtLT(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLT(FieldUpdatedAt, v))
}
// UpdatedAtLTE applies the LTE predicate on the "updatedAt" field.
func UpdatedAtLTE(v time.Time) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldLTE(FieldUpdatedAt, v))
}
// UpdatedAtIsNil applies the IsNil predicate on the "updatedAt" field.
func UpdatedAtIsNil() predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldIsNull(FieldUpdatedAt))
}
// UpdatedAtNotNil applies the NotNil predicate on the "updatedAt" field.
func UpdatedAtNotNil() predicate.ProcessRoute {
return predicate.ProcessRoute(sql.FieldNotNull(FieldUpdatedAt))
}
// And groups predicates with the AND operator between them.
func And(predicates ...predicate.ProcessRoute) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.AndPredicates(predicates...))
}
// Or groups predicates with the OR operator between them.
func Or(predicates ...predicate.ProcessRoute) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.OrPredicates(predicates...))
}
// Not applies the not operator on the given predicate.
func Not(p predicate.ProcessRoute) predicate.ProcessRoute {
return predicate.ProcessRoute(sql.NotPredicates(p))
}