docs(business): 生成业务契约文档并重构MES客户端代码
- 创建案例.md文档,包含业务场景清单、业务流程、案例和回归测试三份完整文档 - WMS库房管理系统涵盖入库、出库、库存、检验、盘点等24个业务场景 - MES产线控制系统包含工单、排产、BOM、备料、质检、追溯等23个业务场景 - 工位终端系统支持上线、报工、下线、领料、巡检等15个现场作业场景 - 主链路从合同到成品入库,异常链路处理不合格、数量不符、退料等情况 - 删除MES客户端中的ScanRecord相关代码,精简客户端结构 - 更新客户端初始化逻辑,移除扫描记录相关的依赖注入配置
This commit is contained in:
@@ -3,6 +3,7 @@ package handler
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
@@ -26,8 +27,15 @@ type mesOrder struct {
|
||||
// ordersHandler 调用 MES 内部接口获取工单列表,把未完成工单排前面,供备料出库下拉选择
|
||||
func ordersHandler(ctx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
url := ctx.Config.Mes.BaseURL + "/api/internal/order/query?orderNo=" + r.URL.Query().Get("orderNo")
|
||||
req, err := http.NewRequest(http.MethodGet, url, nil)
|
||||
orderNo := r.URL.Query().Get("orderNo")
|
||||
// limit:无输入条件时默认返回 20 条(未完成优先),供备料出库工单号下拉首屏展示;
|
||||
// 模糊搜索时同样返回匹配结果的前 limit 条。
|
||||
limit := atoi(r.URL.Query().Get("limit"), 20)
|
||||
if limit <= 0 {
|
||||
limit = 20
|
||||
}
|
||||
mesURL := ctx.Config.Mes.BaseURL + "/api/internal/order/query?orderNo=" + url.QueryEscape(orderNo)
|
||||
req, err := http.NewRequest(http.MethodGet, mesURL, nil)
|
||||
if err != nil {
|
||||
// 构造请求都失败属代码级异常,返回空列表让备料出库页可降级(仍可手输工单号)
|
||||
ok(w, []mesOrder{})
|
||||
@@ -66,6 +74,10 @@ func ordersHandler(ctx *svc.ServiceContext) http.HandlerFunc {
|
||||
}
|
||||
return list[i].WorkOrderNo < list[j].WorkOrderNo
|
||||
})
|
||||
// 排序(未完成优先)后截断:无输入默认前 20 条;模糊搜索返回匹配的前 20 条。
|
||||
if len(list) > limit {
|
||||
list = list[:limit]
|
||||
}
|
||||
ok(w, list)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user