chore: 批量完成项目多模块迭代优化

1. 废弃半成品库存表并统一库存主表
2. 修复列表排序与搜索大小写不敏感问题
3. 新增用户最近登录时间、工单BOM名称字段
4. 完善角色管理、工位选择器功能
5. 增加拧紧数据补录、成品自动回流WMS能力
6. 统一导出时间范围校验规则
7. 丰富物料/备料单筛选条件
8. 调整菜单与权限命名适配产品型号业务
This commit is contained in:
SunYF
2026-09-08 11:44:04 +08:00
parent 06689970e2
commit e852c7cd37
96 changed files with 4528 additions and 542 deletions
+9 -5
View File
@@ -232,10 +232,10 @@ type inboundRow struct {
// 结构件(manageMode=1)与精密件(manageMode=2)同主表(inbound_order),按 manageMode 区分类型
func applyInboundFilters(q *ent.InboundOrderQuery, r *http.Request) *ent.InboundOrderQuery {
if v := r.URL.Query().Get("inboundNo"); v != "" {
q = q.Where(inboundorder.InboundNoContains(v))
q = q.Where(inboundorder.InboundNoContainsFold(v))
}
if v := r.URL.Query().Get("materialCode"); v != "" {
q = q.Where(inboundorder.MaterialCodeContains(v))
q = q.Where(inboundorder.MaterialCodeContainsFold(v))
}
if v := r.URL.Query().Get("manageMode"); v != "" {
if m := atoi(v, 0); m != 0 {
@@ -248,9 +248,9 @@ func applyInboundFilters(q *ent.InboundOrderQuery, r *http.Request) *ent.Inbound
if v := r.URL.Query().Get("keyword"); v != "" {
kw := v
q = q.Where(inboundorder.Or(
inboundorder.MaterialCodeContains(kw),
inboundorder.InboundNoContains(kw),
inboundorder.MaterialNameContains(kw),
inboundorder.MaterialCodeContainsFold(kw),
inboundorder.InboundNoContainsFold(kw),
inboundorder.MaterialNameContainsFold(kw),
))
}
if v := r.URL.Query().Get("startDate"); v != "" {
@@ -358,6 +358,10 @@ func queryInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
// 与 /api/outbound/export 保持一致。
func exportInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if _, _, rerr := normalizeExportRange(r.URL.Query().Get("startDate"), r.URL.Query().Get("endDate")); rerr != nil {
fail(w, http.StatusBadRequest, rerr.Error())
return
}
q := ctx.EntClient.InboundOrder.Query()
q = applyInboundFilters(q, r)
list, err := q.Order(ent.Desc("created_at"), ent.Desc("id")).All(ctx0())