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
+11 -2
View File
@@ -40,6 +40,10 @@ func createInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
fail(w, http.StatusBadRequest, "物料编码必填")
return
}
if req.ZoneCode == "" {
fail(w, http.StatusBadRequest, "区域必填,请先选择入库区域")
return
}
// 物料档案
m, err := ctx.EntClient.Material.Query().
@@ -73,13 +77,18 @@ func createInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
// 结构件(批次管理)
if m.ManageMode == 1 {
// 结构件走批次入库,不允许携带 SN 清单
if len(req.SnList) > 0 {
fail(w, http.StatusBadRequest, "该物料为结构件(按批次管理),不应提交 SN 清单,请使用『结构件入库』")
return
}
batchNo := req.BatchNo
if batchNo == "" {
batchNo = genBatchNo(req.MaterialCode)
}
qty := req.Quantity
if qty <= 0 {
fail(w, http.StatusBadRequest, "结构件入库 数量必填且大于0")
fail(w, http.StatusBadRequest, "数量必填且大于 0,请输入本次入库数量")
return
}
@@ -119,7 +128,7 @@ func createInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
// 精密件(SN 管理)
if m.ManageMode == 2 {
if len(req.SnList) == 0 {
fail(w, http.StatusBadRequest, "精密件入库 序列号(SN)必填")
fail(w, http.StatusBadRequest, "该物料为精密件(按 SN 管理),请至少录入 1 条序列号(SN)")
return
}
for _, sn := range req.SnList {