feat: 完成WMS系统权限体系与业务功能迭代

本提交完成了WMS系统的多维度优化升级:
1. 新增RBAC权限系统,支持角色/菜单/按钮三级权限管控
2. 重构库存盘点、物料管理、区域维护等模块的查询筛选与展示逻辑
3. 优化入库/出库/质检等业务流程,完善数据冗余与业务闭环
4. 移除旧装箱表,将装箱逻辑合并到出库主表
5. 新增前端权限判断工具、导出工具与端到端测试用例
6. 补充完善各类注释与数据库字段说明
This commit is contained in:
SunYF
2026-09-03 14:20:37 +08:00
parent 665ff257dc
commit 572fa975bc
101 changed files with 14531 additions and 4692 deletions
+13 -2
View File
@@ -22,8 +22,10 @@ type User struct {
Password string `json:"password,omitempty"`
// 姓名
RealName string `json:"realName,omitempty"`
// 角色 admin/operator/inspector
// 角色 admin/operator/inspector(旧字段,权限数据化后由 role_id 决定,此字段仅作兼容/展示)
Role string `json:"role,omitempty"`
// 角色ID,关联 roles 表;为空时回退按 role 字符串取权限
RoleID int `json:"roleId,omitempty"`
// 部门
Dept string `json:"dept,omitempty"`
// 电话
@@ -46,7 +48,7 @@ func (*User) scanValues(columns []string) ([]any, error) {
switch columns[i] {
case user.FieldIsActive:
values[i] = new(sql.NullBool)
case user.FieldID, user.FieldLastLoginAt, user.FieldCreatedAt, user.FieldUpdatedAt:
case user.FieldID, user.FieldRoleID, user.FieldLastLoginAt, user.FieldCreatedAt, user.FieldUpdatedAt:
values[i] = new(sql.NullInt64)
case user.FieldUsername, user.FieldPassword, user.FieldRealName, user.FieldRole, user.FieldDept, user.FieldPhone:
values[i] = new(sql.NullString)
@@ -95,6 +97,12 @@ func (_m *User) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.Role = value.String
}
case user.FieldRoleID:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field role_id", values[i])
} else if value.Valid {
_m.RoleID = int(value.Int64)
}
case user.FieldDept:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field dept", values[i])
@@ -179,6 +187,9 @@ func (_m *User) String() string {
builder.WriteString("role=")
builder.WriteString(_m.Role)
builder.WriteString(", ")
builder.WriteString("role_id=")
builder.WriteString(fmt.Sprintf("%v", _m.RoleID))
builder.WriteString(", ")
builder.WriteString("dept=")
builder.WriteString(_m.Dept)
builder.WriteString(", ")