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
+13 -2
View File
@@ -28,7 +28,7 @@ type Material struct {
Unit string `json:"unit,omitempty"`
// 描述
Description string `json:"description,omitempty"`
// 品类 1原材料/2半成品/3成品
// 品类 1原材料/2半成品/3成品/4其他
ItemType int `json:"itemType,omitempty"`
// 管理粒度 1批次/2序列号
ManageMode int `json:"manageMode,omitempty"`
@@ -40,6 +40,8 @@ type Material struct {
TemplateCode string `json:"templateCode,omitempty"`
// 图号(图纸编号)
DrawingNo string `json:"drawingNo,omitempty"`
// 安全库存(低于则缺货预警,0=不预警)
SafetyStock int `json:"safetyStock,omitempty"`
// 是否启用
IsActive bool `json:"isActive,omitempty"`
// 创建时间
@@ -56,7 +58,7 @@ func (*Material) scanValues(columns []string) ([]any, error) {
switch columns[i] {
case material.FieldIsBatchManaged, material.FieldIsSerialManaged, material.FieldIsActive:
values[i] = new(sql.NullBool)
case material.FieldID, material.FieldItemType, material.FieldManageMode, material.FieldCreatedAt, material.FieldUpdatedAt:
case material.FieldID, material.FieldItemType, material.FieldManageMode, material.FieldSafetyStock, material.FieldCreatedAt, material.FieldUpdatedAt:
values[i] = new(sql.NullInt64)
case material.FieldCode, material.FieldName, material.FieldShortName, material.FieldSpec, material.FieldUnit, material.FieldDescription, material.FieldTemplateCode, material.FieldDrawingNo:
values[i] = new(sql.NullString)
@@ -153,6 +155,12 @@ func (_m *Material) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.DrawingNo = value.String
}
case material.FieldSafetyStock:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field safety_stock", values[i])
} else if value.Valid {
_m.SafetyStock = int(value.Int64)
}
case material.FieldIsActive:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field is_active", values[i])
@@ -243,6 +251,9 @@ func (_m *Material) String() string {
builder.WriteString("drawing_no=")
builder.WriteString(_m.DrawingNo)
builder.WriteString(", ")
builder.WriteString("safety_stock=")
builder.WriteString(fmt.Sprintf("%v", _m.SafetyStock))
builder.WriteString(", ")
builder.WriteString("is_active=")
builder.WriteString(fmt.Sprintf("%v", _m.IsActive))
builder.WriteString(", ")