feat: 完成多模块迭代更新

- 新增过程巡检按步骤上报、数量不符上报、工位退料功能
- 增加工单工程编号三级归属字段
- 新增物料安全库存与缺货预警
- 新增附件管理、退库单管理模块
- 优化生产看板展示逻辑与前端页面文案
- 清理冗余的工艺路线相关代码与备份文件
This commit is contained in:
SunYF
2026-09-15 16:37:39 +08:00
parent 951f3dfecd
commit 4a5e2d7bac
494 changed files with 24702 additions and 139223 deletions
+46 -2
View File
@@ -38,6 +38,14 @@ type InspectionRecord struct {
Remark string `json:"remark,omitempty"`
// 操作人
Operator string `json:"operator,omitempty"`
// 所属工位号(过程巡检所在工位)
ProcessCode int `json:"processCode,omitempty"`
// 工艺步骤ID(过程巡检逐条关联)
StepId int `json:"stepId,omitempty"`
// 工艺步骤名称
StepName string `json:"stepName,omitempty"`
// 实测值(过程巡检录入)
MeasuredValue string `json:"measuredValue,omitempty"`
// CreatedAt holds the value of the "createdAt" field.
CreatedAt time.Time `json:"createdAt,omitempty"`
selectValues sql.SelectValues
@@ -50,9 +58,9 @@ func (*InspectionRecord) scanValues(columns []string) ([]any, error) {
switch columns[i] {
case inspectionrecord.FieldItems:
values[i] = new([]byte)
case inspectionrecord.FieldID:
case inspectionrecord.FieldID, inspectionrecord.FieldProcessCode, inspectionrecord.FieldStepId:
values[i] = new(sql.NullInt64)
case inspectionrecord.FieldCategory, inspectionrecord.FieldStationNo, inspectionrecord.FieldShift, inspectionrecord.FieldOrderNo, inspectionrecord.FieldSn, inspectionrecord.FieldResult, inspectionrecord.FieldPhoto, inspectionrecord.FieldRemark, inspectionrecord.FieldOperator:
case inspectionrecord.FieldCategory, inspectionrecord.FieldStationNo, inspectionrecord.FieldShift, inspectionrecord.FieldOrderNo, inspectionrecord.FieldSn, inspectionrecord.FieldResult, inspectionrecord.FieldPhoto, inspectionrecord.FieldRemark, inspectionrecord.FieldOperator, inspectionrecord.FieldStepName, inspectionrecord.FieldMeasuredValue:
values[i] = new(sql.NullString)
case inspectionrecord.FieldCreatedAt:
values[i] = new(sql.NullTime)
@@ -139,6 +147,30 @@ func (_m *InspectionRecord) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.Operator = value.String
}
case inspectionrecord.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 inspectionrecord.FieldStepId:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field stepId", values[i])
} else if value.Valid {
_m.StepId = int(value.Int64)
}
case inspectionrecord.FieldStepName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field stepName", values[i])
} else if value.Valid {
_m.StepName = value.String
}
case inspectionrecord.FieldMeasuredValue:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field measuredValue", values[i])
} else if value.Valid {
_m.MeasuredValue = value.String
}
case inspectionrecord.FieldCreatedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field createdAt", values[i])
@@ -211,6 +243,18 @@ func (_m *InspectionRecord) String() string {
builder.WriteString("operator=")
builder.WriteString(_m.Operator)
builder.WriteString(", ")
builder.WriteString("processCode=")
builder.WriteString(fmt.Sprintf("%v", _m.ProcessCode))
builder.WriteString(", ")
builder.WriteString("stepId=")
builder.WriteString(fmt.Sprintf("%v", _m.StepId))
builder.WriteString(", ")
builder.WriteString("stepName=")
builder.WriteString(_m.StepName)
builder.WriteString(", ")
builder.WriteString("measuredValue=")
builder.WriteString(_m.MeasuredValue)
builder.WriteString(", ")
builder.WriteString("createdAt=")
builder.WriteString(_m.CreatedAt.Format(time.ANSIC))
builder.WriteByte(')')