chore: init bj_power monorepo (dashboard/mes/wms/wms_client/workstation), clear subproject git metadata and align naming to folder names

This commit is contained in:
SunYF
2026-08-27 10:09:54 +08:00
commit 1f0ee844a4
408 changed files with 102201 additions and 0 deletions
@@ -0,0 +1,29 @@
package login
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/login"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 登录
func LoginHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.LoginReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := login.NewLoginLogic(r.Context(), svcCtx)
resp, err := l.Login(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,23 @@
package login
import (
"net/http"
"bj_power_mes/internal/logic/login"
"bj_power_mes/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
// 退出登�
func LogoutHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := login.NewLogoutLogic(r.Context(), svcCtx)
err := l.Logout()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, "ok")
}
}
}
@@ -0,0 +1,29 @@
package login
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/login"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 刷新token
func RefreshTokenHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.RefreshTokenReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := login.NewRefreshTokenLogic(r.Context(), svcCtx)
resp, err := l.RefreshToken(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package product_type
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/product_type"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 创建产品类型
func CreateProductTypeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateProductTypeReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := product_type.NewCreateProductTypeLogic(r.Context(), svcCtx)
resp, err := l.CreateProductType(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package product_type
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/product_type"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 删除产品类型
func DeleteProductTypeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PathId
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := product_type.NewDeleteProductTypeLogic(r.Context(), svcCtx)
err := l.DeleteProductType(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}
@@ -0,0 +1,29 @@
package product_type
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/product_type"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 通过ID查询产品类型
func GetProductTypeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PathId
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := product_type.NewGetProductTypeLogic(r.Context(), svcCtx)
resp, err := l.GetProductType(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package product_type
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/product_type"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 获取产品类型列表
func ListProductTypesHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.ListProductTypesReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := product_type.NewListProductTypesLogic(r.Context(), svcCtx)
resp, err := l.ListProductTypes(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package product_type
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/product_type"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 更新产品类型
func UpdateProductTypeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdateProductTypeReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := product_type.NewUpdateProductTypeLogic(r.Context(), svcCtx)
err := l.UpdateProductType(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}
+78
View File
@@ -0,0 +1,78 @@
// 最小骨架版 MES:仅保留 登录 + 当前用户 + 产品类型 + 工单 + PLC 传工序号。
package handler
import (
"net/http"
login "bj_power_mes/internal/handler/login"
product_type "bj_power_mes/internal/handler/product_type"
user "bj_power_mes/internal/handler/user"
workorder "bj_power_mes/internal/handler/workorder"
"bj_power_mes/internal/svc"
"github.com/zeromicro/go-zero/rest"
)
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
server.AddRoutes(
[]rest.Route{
{
// 登录
Method: http.MethodPost,
Path: "/login",
Handler: login.LoginHandler(serverCtx),
},
{
// 刷新token
Method: http.MethodPost,
Path: "/refreshToken",
Handler: login.RefreshTokenHandler(serverCtx),
},
},
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
[]rest.Route{
{
// 退出登录
Method: http.MethodPost,
Path: "/logout",
Handler: login.LogoutHandler(serverCtx),
},
{
// 获取当前登录用户信息
Method: http.MethodGet,
Path: "/userinfo",
Handler: user.UserinfoHandler(serverCtx),
},
{
// 查询工单分页列表
Method: http.MethodGet,
Path: "/work-orders",
Handler: workorder.QueryWorkOrdersHandler(serverCtx),
},
{
// 获取工单详情
Method: http.MethodGet,
Path: "/work-orders/:id",
Handler: workorder.GetWorkOrderHandler(serverCtx),
},
{
// 创建工单
Method: http.MethodPost,
Path: "/work-orders",
Handler: workorder.CreateWorkOrderHandler(serverCtx),
},
{
// 获取产品类型列表
Method: http.MethodGet,
Path: "/product-types/list",
Handler: product_type.ListProductTypesHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/api/v1"),
)
}
@@ -0,0 +1,22 @@
package user
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/user"
"bj_power_mes/internal/svc"
)
// 获取当前用户信息
func UserinfoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := user.NewUserinfoLogic(r.Context(), svcCtx)
resp, err := l.Userinfo()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package workorder
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/workorder"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 创建工单
func CreateWorkOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateWorkOrderReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := workorder.NewCreateWorkOrderLogic(r.Context(), svcCtx)
resp, err := l.CreateWorkOrder(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,22 @@
package workorder
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/workorder"
"bj_power_mes/internal/svc"
)
// èŽ·å–æœ€æ–°ä»»åŠ¡æ—¥å¿?
func GetLatestTaskLogsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := workorder.NewGetLatestTaskLogsLogic(r.Context(), svcCtx)
resp, err := l.GetLatestTaskLogs()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package workorder
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/workorder"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 获取工单详情
func GetWorkOrderDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PathId
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := workorder.NewGetWorkOrderDetailLogic(r.Context(), svcCtx)
resp, err := l.GetWorkOrderDetail(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package workorder
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/workorder"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 获取工单详情
func GetWorkOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PathId
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := workorder.NewGetWorkOrderLogic(r.Context(), svcCtx)
resp, err := l.GetWorkOrder(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package workorder
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/workorder"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 查询任务日志分页列表
func QueryTaskLogsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.QueryTaskLogsReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := workorder.NewQueryTaskLogsLogic(r.Context(), svcCtx)
resp, err := l.QueryTaskLogs(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,29 @@
package workorder
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"bj_power_mes/internal/logic/workorder"
"bj_power_mes/internal/svc"
"bj_power_mes/internal/types"
)
// 查询工单分页列表
func QueryWorkOrdersHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.QueryWorkOrdersReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := workorder.NewQueryWorkOrdersLogic(r.Context(), svcCtx)
resp, err := l.QueryWorkOrders(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}