Files
bj_power/bj_power_wms/internal/handler/zone_recommend.go
T
SunYF 62e45b7379 feat: 完成附件存储重构与磁盘监控功能,同步物料档案与入库单规则更新
1.  新增跨平台磁盘空间监控能力,每日7点自动检测附件目录剩余空间,触发阈值告警
2.  重构附件存储方案为年/月/日/文件类型分层结构,统一MES与WMS的附件管理逻辑
3.  对齐物料档案与入库单的质量状态校验规则,仅合格品计入库存与出库
4.  实现入库单作废功能与区域库位的多级父子结构管理
5.  删除物料简称字段,补充规格型号与单位必填项,统一系统数据口径
6.  新增附件中心与磁盘状态查询接口,完善权限控制与操作日志
2026-09-19 10:54:15 +08:00

41 lines
1.2 KiB
Go

package handler
import (
"net/http"
"strings"
"bj_power_wms/ent"
"bj_power_wms/ent/inboundorder"
"bj_power_wms/internal/svc"
)
// lastInboundLocationHandler 入库库位联动:返回该物料最近一次入库的库位(区域/货架/层/位置号)。
// 前端在「选物料」后自动回填到入库表单(可手动修改),替代原「推荐库位」按钮式交互。
func lastInboundLocationHandler(ctx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
materialCode := strings.TrimSpace(r.URL.Query().Get("materialCode"))
if materialCode == "" {
fail(w, http.StatusBadRequest, "materialCode 必填")
return
}
ib, err := ctx.EntClient.InboundOrder.Query().
Where(inboundorder.MaterialCodeEQ(materialCode)).
Order(ent.Desc("created_at"), ent.Desc("id")).
First(ctx0())
if err != nil {
if ent.IsNotFound(err) {
ok(w, map[string]any{"zoneCode": "", "shelfNo": "", "layerNo": "", "positionNo": ""})
return
}
fail(w, http.StatusInternalServerError, err.Error())
return
}
ok(w, map[string]any{
"zoneCode": ib.ZoneCode,
"shelfNo": ib.ShelfNo,
"layerNo": ib.LayerNo,
"positionNo": ib.PositionNo,
})
}
}