docs(deployment): 更新部署手册和业务架构说明

- 更新MES和WMS服务端口配置说明
- 详细说明产线工位设备配置(扫码枪+拧紧枪)
- 明确AGV配送和接驳台的模拟模式与真实对接方案
- 更新WMS中AGV配送默认模拟模式说明
- 完善厂内物流(AGV/接驳台)的业务架构约束
- 修订临时文档为详细的项目问题和解决方案规划
This commit is contained in:
SunYF
2026-09-20 14:52:36 +08:00
parent 5a33028003
commit f35e9b5b75
57 changed files with 6096 additions and 1000 deletions
+20 -13
View File
@@ -52,16 +52,16 @@ func RegisterHandlers(server *rest.Server, ctx *svc.ServiceContext) {
},
)
// 物料档案
// 物料档案(写操作权限守卫;query/list/detail 供各页下拉拾取器使用,保持登录可访问)
server.AddRoutes(
[]rest.Route{
{Method: http.MethodPost, Path: "/api/material/create", Handler: createMaterialHandler(ctx)},
{Method: http.MethodPost, Path: "/api/material/update", Handler: updateMaterialHandler(ctx)},
{Method: http.MethodPost, Path: "/api/material/create", Handler: requirePerm(ctx, "material:create", createMaterialHandler(ctx))},
{Method: http.MethodPost, Path: "/api/material/update", Handler: requirePerm(ctx, "material:edit", updateMaterialHandler(ctx))},
{Method: http.MethodGet, Path: "/api/material/query", Handler: queryMaterialsHandler(ctx)},
{Method: http.MethodGet, Path: "/api/material/list", Handler: listMaterialsHandler(ctx)},
{Method: http.MethodGet, Path: "/api/material/detail", Handler: getMaterialHandler(ctx)},
{Method: http.MethodGet, Path: "/api/material/export", Handler: exportMaterialsHandler(ctx)},
{Method: http.MethodPost, Path: "/api/material/import", Handler: excelMaterialImportHandler(ctx)},
{Method: http.MethodGet, Path: "/api/material/export", Handler: requirePerm(ctx, "material:export", exportMaterialsHandler(ctx))},
{Method: http.MethodPost, Path: "/api/material/import", Handler: requirePerm(ctx, "material:import", excelMaterialImportHandler(ctx))},
},
)
@@ -89,6 +89,8 @@ func RegisterHandlers(server *rest.Server, ctx *svc.ServiceContext) {
{Method: http.MethodGet, Path: "/api/outbound/export", Handler: exportOutboundHandler(ctx)},
// 出库库位联动:优先批次在库库位,其次该物料最近一次入库库位(客户诉求 一.9「出库相同」)
{Method: http.MethodGet, Path: "/api/outbound/location-hint", Handler: outboundLocationHintHandler(ctx)},
// 目标工位下拉选项(需求20:来自 MES 工位列表,不允许手输)
{Method: http.MethodGet, Path: "/api/outbound/stations", Handler: listStationOptionsHandler(ctx)},
},
)
@@ -137,10 +139,8 @@ func RegisterHandlers(server *rest.Server, ctx *svc.ServiceContext) {
// 接驳台主数据(独立主数据:产线/库房/其他,产线类型与工位 1:1 绑定)
server.AddRoutes(
[]rest.Route{
// 接驳台为系统预置只读主数据(需求5):仅保留查询,不提供新增/修改/删除
{Method: http.MethodGet, Path: "/api/docks", Handler: requirePerm(ctx, "dock:manage", listDocksMaintHandler(ctx))},
{Method: http.MethodPost, Path: "/api/docks", Handler: requirePerm(ctx, "dock:add", createDockHandler(ctx))},
{Method: http.MethodPost, Path: "/api/docks/update", Handler: requirePerm(ctx, "dock:edit", updateDockHandler(ctx))},
{Method: http.MethodPost, Path: "/api/docks/delete", Handler: requirePerm(ctx, "dock:delete", deleteDockHandler(ctx))},
},
)
@@ -158,13 +158,16 @@ func RegisterHandlers(server *rest.Server, ctx *svc.ServiceContext) {
},
)
// 盘点
// 盘点(问题12 权限:发起/扫码/取消需 stocktake:start;查询/导出需 stocktake:view;写回分支在 handler 内再校 stocktake:writeback
server.AddRoutes(
[]rest.Route{
{Method: http.MethodPost, Path: "/api/stocktake/start", Handler: startStocktakeHandler(ctx)},
{Method: http.MethodPost, Path: "/api/stocktake/record", Handler: recordStocktakeHandler(ctx)},
{Method: http.MethodPost, Path: "/api/stocktake/finish", Handler: finishStocktakeHandler(ctx)},
{Method: http.MethodGet, Path: "/api/stocktake/query", Handler: queryStocktakeHandler(ctx)},
{Method: http.MethodPost, Path: "/api/stocktake/start", Handler: requirePerm(ctx, "stocktake:start", startStocktakeHandler(ctx))},
{Method: http.MethodPost, Path: "/api/stocktake/record", Handler: requirePerm(ctx, "stocktake:start", recordStocktakeHandler(ctx))},
{Method: http.MethodPost, Path: "/api/stocktake/finish", Handler: requirePerm(ctx, "stocktake:start", finishStocktakeHandler(ctx))},
{Method: http.MethodPost, Path: "/api/stocktake/cancel", Handler: requirePerm(ctx, "stocktake:start", cancelStocktakeHandler(ctx))},
{Method: http.MethodGet, Path: "/api/stocktake/query", Handler: requirePerm(ctx, "stocktake:view", queryStocktakeHandler(ctx))},
{Method: http.MethodGet, Path: "/api/stocktake/active", Handler: requirePerm(ctx, "stocktake:view", activeStocktakeHandler(ctx))},
{Method: http.MethodGet, Path: "/api/stocktake/export", Handler: requirePerm(ctx, "stocktake:view", exportStocktakeHandler(ctx))},
},
)
@@ -182,6 +185,7 @@ func RegisterHandlers(server *rest.Server, ctx *svc.ServiceContext) {
[]rest.Route{
{Method: http.MethodPost, Path: "/api/return-order/confirm", Handler: confirmReturnOrderHandler(ctx)},
{Method: http.MethodGet, Path: "/api/return-order/query", Handler: queryReturnOrdersHandler(ctx)},
{Method: http.MethodGet, Path: "/api/return-order/suggest-location", Handler: suggestReturnLocationHandler(ctx)},
{Method: http.MethodGet, Path: "/api/return-order/ledger", Handler: queryReturnLedgerHandler(ctx)},
},
)
@@ -204,6 +208,9 @@ func RegisterHandlers(server *rest.Server, ctx *svc.ServiceContext) {
{Method: http.MethodGet, Path: "/api/attachments/all", Handler: requirePerm(ctx, "attachment:view", listAllAttachmentsHandler(ctx))},
{Method: http.MethodGet, Path: "/api/attachments/disk-status", Handler: requirePerm(ctx, "attachment:view", diskStatusHandler(ctx))},
{Method: http.MethodPost, Path: "/api/attachments/archive", Handler: requirePerm(ctx, "attachment:manage", archiveAttachmentsHandler(ctx))},
// 空间清理(需求2):物理清理已删附件归 attachment:manage;日志清理仅管理员
{Method: http.MethodPost, Path: "/api/attachments/purge-deleted", Handler: requirePerm(ctx, "attachment:manage", purgeDeletedHandler(ctx))},
{Method: http.MethodPost, Path: "/api/attachments/clean-logs", Handler: requireAdmin(cleanLogsHandler(ctx))},
},
)