feat: 完成区域管理、装箱功能优化与接口标准化

- 新增区域状态字段与增删改查接口,支持区域启用/停用
- 重构实体字段JSON标签为camelCase格式统一接口规范
- 优化入库、盘点、装箱流程的交互与提示文案
- 新增装箱管理功能,支持合同号关联与装箱编辑
- 调整前端菜单与帮助文档适配业务场景变更
This commit is contained in:
SunYF
2026-09-01 13:49:44 +08:00
parent ea6d55b7e6
commit bb22148625
59 changed files with 2238 additions and 357 deletions
+28 -6
View File
@@ -17,19 +17,23 @@ type PackageBox struct {
// ID of the ent.
ID int `json:"id,omitempty"`
// 箱号
BoxNo string `json:"box_no,omitempty"`
BoxNo string `json:"boxNo,omitempty"`
// 箱内 SN 列表
SnList string `json:"sn_list,omitempty"`
SnList string `json:"snList,omitempty"`
// 物料编码
MaterialCode string `json:"material_code,omitempty"`
MaterialCode string `json:"materialCode,omitempty"`
// 箱内数量
Quantity int `json:"quantity,omitempty"`
// 包装人
Operator string `json:"operator,omitempty"`
// 合同号(选填)
ContractNo string `json:"contractNo,omitempty"`
// 备注
Remark string `json:"remark,omitempty"`
// CreatedAt holds the value of the "created_at" field.
CreatedAt int64 `json:"created_at,omitempty"`
CreatedAt int64 `json:"createdAt,omitempty"`
// 更新时间
UpdatedAt int64 `json:"updatedAt,omitempty"`
selectValues sql.SelectValues
}
@@ -38,9 +42,9 @@ func (*PackageBox) scanValues(columns []string) ([]any, error) {
values := make([]any, len(columns))
for i := range columns {
switch columns[i] {
case packagebox.FieldID, packagebox.FieldQuantity, packagebox.FieldCreatedAt:
case packagebox.FieldID, packagebox.FieldQuantity, packagebox.FieldCreatedAt, packagebox.FieldUpdatedAt:
values[i] = new(sql.NullInt64)
case packagebox.FieldBoxNo, packagebox.FieldSnList, packagebox.FieldMaterialCode, packagebox.FieldOperator, packagebox.FieldRemark:
case packagebox.FieldBoxNo, packagebox.FieldSnList, packagebox.FieldMaterialCode, packagebox.FieldOperator, packagebox.FieldContractNo, packagebox.FieldRemark:
values[i] = new(sql.NullString)
default:
values[i] = new(sql.UnknownType)
@@ -93,6 +97,12 @@ func (_m *PackageBox) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.Operator = value.String
}
case packagebox.FieldContractNo:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field contract_no", values[i])
} else if value.Valid {
_m.ContractNo = value.String
}
case packagebox.FieldRemark:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field remark", values[i])
@@ -105,6 +115,12 @@ func (_m *PackageBox) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.CreatedAt = value.Int64
}
case packagebox.FieldUpdatedAt:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field updated_at", values[i])
} else if value.Valid {
_m.UpdatedAt = value.Int64
}
default:
_m.selectValues.Set(columns[i], values[i])
}
@@ -156,11 +172,17 @@ func (_m *PackageBox) String() string {
builder.WriteString("operator=")
builder.WriteString(_m.Operator)
builder.WriteString(", ")
builder.WriteString("contract_no=")
builder.WriteString(_m.ContractNo)
builder.WriteString(", ")
builder.WriteString("remark=")
builder.WriteString(_m.Remark)
builder.WriteString(", ")
builder.WriteString("created_at=")
builder.WriteString(fmt.Sprintf("%v", _m.CreatedAt))
builder.WriteString(", ")
builder.WriteString("updated_at=")
builder.WriteString(fmt.Sprintf("%v", _m.UpdatedAt))
builder.WriteByte(')')
return builder.String()
}