chore: 批量完成项目多模块迭代优化

1. 废弃半成品库存表并统一库存主表
2. 修复列表排序与搜索大小写不敏感问题
3. 新增用户最近登录时间、工单BOM名称字段
4. 完善角色管理、工位选择器功能
5. 增加拧紧数据补录、成品自动回流WMS能力
6. 统一导出时间范围校验规则
7. 丰富物料/备料单筛选条件
8. 调整菜单与权限命名适配产品型号业务
This commit is contained in:
SunYF
2026-09-08 11:44:04 +08:00
parent 06689970e2
commit e852c7cd37
96 changed files with 4528 additions and 542 deletions
+12 -1
View File
@@ -24,6 +24,8 @@ type WorkOrder struct {
ProductTypeId int `json:"productTypeId,omitempty"`
// 产品编码
ProductCode string `json:"productCode,omitempty"`
// 建单时选定的BOM名称(该型号下多份BOM之一,备料按此计算)
BomName string `json:"bomName,omitempty"`
// ProductName holds the value of the "productName" field.
ProductName string `json:"productName,omitempty"`
// 工件数量
@@ -60,7 +62,7 @@ func (*WorkOrder) scanValues(columns []string) ([]any, error) {
values[i] = new([]byte)
case workorder.FieldID, workorder.FieldProductTypeId, workorder.FieldQuantity, workorder.FieldFinishedNum, workorder.FieldFailNum:
values[i] = new(sql.NullInt64)
case workorder.FieldWorkOrderNo, workorder.FieldProductCode, workorder.FieldProductName, workorder.FieldProcessSeq, workorder.FieldStatus:
case workorder.FieldWorkOrderNo, workorder.FieldProductCode, workorder.FieldBomName, workorder.FieldProductName, workorder.FieldProcessSeq, workorder.FieldStatus:
values[i] = new(sql.NullString)
case workorder.FieldPlanStart, workorder.FieldPlanEnd, workorder.FieldCompletedAt, workorder.FieldCreatedAt, workorder.FieldUpdatedAt:
values[i] = new(sql.NullTime)
@@ -103,6 +105,12 @@ func (_m *WorkOrder) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.ProductCode = value.String
}
case workorder.FieldBomName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field bomName", values[i])
} else if value.Valid {
_m.BomName = value.String
}
case workorder.FieldProductName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field productName", values[i])
@@ -226,6 +234,9 @@ func (_m *WorkOrder) String() string {
builder.WriteString("productCode=")
builder.WriteString(_m.ProductCode)
builder.WriteString(", ")
builder.WriteString("bomName=")
builder.WriteString(_m.BomName)
builder.WriteString(", ")
builder.WriteString("productName=")
builder.WriteString(_m.ProductName)
builder.WriteString(", ")