refactor: 重构产线工位与备料流程,移除冗余字段

1. 移除工单、工件、日排产中的冗余工位组合/接驳台字段
2. 新增工位接驳台编码字段与唯一约束,关联WMS接驳台主数据
3. 重构日排产为工位产量分配模式,替代原接驳台列表
4. 新增备料单工位级字段与分批出库支持
5. 移除定时同步可生产数量,改为WMS实时拉取接口
6. 过滤操作日志,排除登录/退出相关日志
7. 调整仪表盘工序展示逻辑为今日派工路线
8. 新增接驳台维护菜单与基础数据
This commit is contained in:
SunYF
2026-09-19 07:50:21 +08:00
parent 543655d441
commit 37f10d3a13
156 changed files with 4489 additions and 1285 deletions
+47 -3
View File
@@ -37,6 +37,14 @@ type MaterialRequest struct {
Status string `json:"status,omitempty"`
// 目标接驳台 DOCK01..20
TargetDock string `json:"targetDock,omitempty"`
// 目标工位号(0=未指定)
StationNo int `json:"stationNo,omitempty"`
// 该物料所属装配工序(1~12)
ProcessCode int `json:"processCode,omitempty"`
// 已发料数量(分批出库累加)
SentQty float64 `json:"sentQty,omitempty"`
// 发料批次号(分批出库时填写)
BatchNo string `json:"batchNo,omitempty"`
// Operator holds the value of the "operator" field.
Operator string `json:"operator,omitempty"`
// CreatedAt holds the value of the "createdAt" field.
@@ -51,11 +59,11 @@ func (*MaterialRequest) scanValues(columns []string) ([]any, error) {
values := make([]any, len(columns))
for i := range columns {
switch columns[i] {
case materialrequest.FieldReqQty:
case materialrequest.FieldReqQty, materialrequest.FieldSentQty:
values[i] = new(sql.NullFloat64)
case materialrequest.FieldID:
case materialrequest.FieldID, materialrequest.FieldStationNo, materialrequest.FieldProcessCode:
values[i] = new(sql.NullInt64)
case materialrequest.FieldRequestNo, materialrequest.FieldOrderNo, materialrequest.FieldPlanDate, materialrequest.FieldMaterialCode, materialrequest.FieldMaterialName, materialrequest.FieldUnit, materialrequest.FieldManageMode, materialrequest.FieldStatus, materialrequest.FieldTargetDock, materialrequest.FieldOperator:
case materialrequest.FieldRequestNo, materialrequest.FieldOrderNo, materialrequest.FieldPlanDate, materialrequest.FieldMaterialCode, materialrequest.FieldMaterialName, materialrequest.FieldUnit, materialrequest.FieldManageMode, materialrequest.FieldStatus, materialrequest.FieldTargetDock, materialrequest.FieldBatchNo, materialrequest.FieldOperator:
values[i] = new(sql.NullString)
case materialrequest.FieldCreatedAt, materialrequest.FieldUpdatedAt:
values[i] = new(sql.NullTime)
@@ -140,6 +148,30 @@ func (_m *MaterialRequest) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.TargetDock = value.String
}
case materialrequest.FieldStationNo:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field stationNo", values[i])
} else if value.Valid {
_m.StationNo = int(value.Int64)
}
case materialrequest.FieldProcessCode:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field processCode", values[i])
} else if value.Valid {
_m.ProcessCode = int(value.Int64)
}
case materialrequest.FieldSentQty:
if value, ok := values[i].(*sql.NullFloat64); !ok {
return fmt.Errorf("unexpected type %T for field sentQty", values[i])
} else if value.Valid {
_m.SentQty = value.Float64
}
case materialrequest.FieldBatchNo:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field batchNo", values[i])
} else if value.Valid {
_m.BatchNo = value.String
}
case materialrequest.FieldOperator:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field operator", values[i])
@@ -225,6 +257,18 @@ func (_m *MaterialRequest) String() string {
builder.WriteString("targetDock=")
builder.WriteString(_m.TargetDock)
builder.WriteString(", ")
builder.WriteString("stationNo=")
builder.WriteString(fmt.Sprintf("%v", _m.StationNo))
builder.WriteString(", ")
builder.WriteString("processCode=")
builder.WriteString(fmt.Sprintf("%v", _m.ProcessCode))
builder.WriteString(", ")
builder.WriteString("sentQty=")
builder.WriteString(fmt.Sprintf("%v", _m.SentQty))
builder.WriteString(", ")
builder.WriteString("batchNo=")
builder.WriteString(_m.BatchNo)
builder.WriteString(", ")
builder.WriteString("operator=")
builder.WriteString(_m.Operator)
builder.WriteString(", ")