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
+11 -3
View File
@@ -198,6 +198,11 @@ func createInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
existing, e := tx.Inventory.Query().
Where(inventory.ManageModeEQ(1), inventory.BatchNoEQ(batchNo)).Only(ctx0())
if e == nil {
// 盘点冻结守卫(问题2):盘点期间库存量冻结,禁止向已锁定批次追加入库。
if existing.StocktakeNo != "" {
fail(w, http.StatusConflict, "批次 "+batchNo+" 正在盘点单 "+existing.StocktakeNo+" 锁定中,盘点期间禁止入库追加")
return
}
if _, err = tx.Inventory.UpdateOneID(existing.ID).
AddQuantity(qty).
SetNillableSupplier(strPtr(req.Supplier)).
@@ -487,13 +492,16 @@ func exportInboundHandler(ctx *svc.ServiceContext) http.HandlerFunc {
}
}
// ownershipTypeOrNone 归属类型归一化(工单号/科技项目号/其他/无)
// ownershipTypeOrNone 归属类型归一化(需求22)。
// 归属三选一:工单编号(workorder) / 科技项目号(project) / 其他(other),默认「其他」。
// 这里的「工单编号」是独立维度标签,与 MES 工单号不是同一东西,手动输入、不联动 MES、不校验格式(长度≤64 由前端约束)。
// 历史遗留的 "none"/空 一律归为 "other"(需求22:显示「无」不对,应为「其他」)。
func ownershipTypeOrNone(v string) string {
switch v {
case "workorder", "project", "other":
case "workorder", "project":
return v
default:
return "none"
return "other"
}
}