From f7816509431a7a10e103f99caa03b24db13d5b70 Mon Sep 17 00:00:00 2001 From: kylinhao Date: Mon, 24 Jan 2022 07:50:00 +0800 Subject: [PATCH] batch --- pkg/app/server/controller/batchmanager.go | 75 +++++++++++++++++++++++ pkg/app/server/dao/batchmanagerdao.go | 36 +++++++++++ pkg/app/server/model/batch.go | 24 ++++++++ pkg/app/server/model/machinemanager.go | 1 + pkg/app/server/router/router.go | 4 ++ pkg/cmd/cmd.go | 8 ++- 6 files changed, 145 insertions(+), 3 deletions(-) create mode 100644 pkg/app/server/controller/batchmanager.go create mode 100644 pkg/app/server/dao/batchmanagerdao.go create mode 100644 pkg/app/server/model/batch.go diff --git a/pkg/app/server/controller/batchmanager.go b/pkg/app/server/controller/batchmanager.go new file mode 100644 index 00000000..3d293b09 --- /dev/null +++ b/pkg/app/server/controller/batchmanager.go @@ -0,0 +1,75 @@ +package controller + +import ( + "net/http" + "strconv" + "strings" + + "github.com/gin-gonic/gin" + "openeluer.org/PilotGo/PilotGo/pkg/app/server/dao" + "openeluer.org/PilotGo/PilotGo/pkg/app/server/model" + "openeluer.org/PilotGo/PilotGo/pkg/common/response" + + "openeluer.org/PilotGo/PilotGo/pkg/mysqlmanager" +) + +func CreateBatch(c *gin.Context) { + name := c.Query("Name") + descrip := c.PostForm("Description") + manager := c.PostForm("Manager") + depart := c.QueryArray("Depart") + machine := c.QueryArray("Machine") + if len(name) == 0 { + response.Response(c, http.StatusUnprocessableEntity, + 422, + nil, + "批次名未输入") + return + } + if len(manager) == 0 { + response.Response(c, http.StatusUnprocessableEntity, + 422, + nil, + "创建人未输入") + return + } + if len(depart) == 0 { + response.Response(c, http.StatusUnprocessableEntity, + 422, + nil, + "归属部门未输入") + return + } + if len(machine) == 0 { + response.Response(c, http.StatusUnprocessableEntity, + 422, + nil, + "归属部门未输入") + return + } + if dao.IsExistName(name) { + response.Response(c, http.StatusUnprocessableEntity, + 422, + nil, + "已存在该名称批次") + return + } + Batch := model.Batch{ + Name: name, + Description: descrip, + Manager: manager, + Depart: strings.Join(depart, ","), + } + mysqlmanager.DB.Create(&Batch) + response.Success(c, nil, "批次入库成功") + for _, value := range machine { + batchid := dao.GetBatchID(name) + tmp := strconv.Itoa(int(batchid)) + x := dao.GetmachineBatch(value) + if dao.GetmachineBatch(value) != "" { + x += "," + } + dao.UpdatemachineBatch(value, x+tmp) + } + response.Success(c, nil, "机器已绑定批次") +} diff --git a/pkg/app/server/dao/batchmanagerdao.go b/pkg/app/server/dao/batchmanagerdao.go new file mode 100644 index 00000000..5fbef0f8 --- /dev/null +++ b/pkg/app/server/dao/batchmanagerdao.go @@ -0,0 +1,36 @@ +package dao + +import ( + "openeluer.org/PilotGo/PilotGo/pkg/app/server/model" + "openeluer.org/PilotGo/PilotGo/pkg/logger" + "openeluer.org/PilotGo/PilotGo/pkg/mysqlmanager" +) + +func IsExistName(name string) bool { + var batch model.Batch + mysqlmanager.DB.Where("name=?", name).Find(&batch) + return batch.ID != 0 +} +func GetBatchID(name string) uint { + var machine model.Batch + mysqlmanager.DB.Where("name=?", name).Find(&machine) + logger.Info("%d", machine.ID) + return machine.ID +} +func GetmachineBatch(uuid string) string { + var machine model.MachineNode + mysqlmanager.DB.Where("machine_uuid=?", uuid).Find(&machine) + logger.Info("%s", machine.BatchInfo) + return machine.BatchInfo +} + +func UpdatemachineBatch(s string, b string) { + var machine model.MachineNode + mysqlmanager.DB.Find(&machine) + mysqlmanager.DB.Model(&machine).Where("machine_uuid=?", s).Update("batch_info", b) + logger.Info("%+v", machine) +} + +// func UpdatemachineBatch(m model.MachineNode) { + +// } diff --git a/pkg/app/server/model/batch.go b/pkg/app/server/model/batch.go new file mode 100644 index 00000000..94c6ff4e --- /dev/null +++ b/pkg/app/server/model/batch.go @@ -0,0 +1,24 @@ +package model + +import "github.com/jinzhu/gorm" + +/** + * @Author: wang hao + * @Date: 2021/12/23 17:00 + * @Description:批次属性列表 + */ + +type Batch struct { + gorm.Model + Name string `gorm:"type:varchar(100);not null" json:"name"` + Description string `gorm:"type:varchar(100)" json:"description"` + Manager string `gorm:"type:varchar(100)" json:"manager"` + Depart string `gorm:"type:varchar(100)"` +} + +// type GetBatch struct { +// Name string +// Description string +// manager string +// Depart []string +// } diff --git a/pkg/app/server/model/machinemanager.go b/pkg/app/server/model/machinemanager.go index 13ba1ff2..4bf0d1a0 100644 --- a/pkg/app/server/model/machinemanager.go +++ b/pkg/app/server/model/machinemanager.go @@ -17,6 +17,7 @@ type DepartNode struct { type MachineNode struct { DepartId int `"gorm:type:int(100);not null" json:"departid"` MachineUUID string `gorm:"type:varchar(100);not null" json:"machineuuid"` + BatchInfo string `gorm:"type:varchar(100);` } // kylin/serve/opensource/ops/wanghao/dfsagdasgs type MachineTreeNode struct { diff --git a/pkg/app/server/router/router.go b/pkg/app/server/router/router.go index b60fb1eb..6de54c8a 100644 --- a/pkg/app/server/router/router.go +++ b/pkg/app/server/router/router.go @@ -52,6 +52,10 @@ func SetupRouter() *gin.Engine { machinemanager.POST("/deletedepartdata", controller.Deletedepartdata) machinemanager.POST("/deletemachinedata", controller.Deletemachinedata) } + batchmanager := router.Group("batchmanager") + { + batchmanager.POST("/createbatch", controller.CreateBatch) + } // TODO: 此处绑定前端静态资源handler router.Static("/static", "./dist/static") router.StaticFile("/", "./dist/index.html") diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index f788de08..98242d7c 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -14,6 +14,7 @@ import ( "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/spf13/viper" + "openeluer.org/PilotGo/PilotGo/pkg/app/server/model" "openeluer.org/PilotGo/PilotGo/pkg/app/server/router" "openeluer.org/PilotGo/PilotGo/pkg/config" "openeluer.org/PilotGo/PilotGo/pkg/mysqlmanager" @@ -90,9 +91,10 @@ func Start(conf *config.Configure) (err error) { // }) // } - // mysqlmanager.DB.AutoMigrate(&model.User{}) - // mysqlmanager.DB.AutoMigrate(&model.DepartNode{}) - // mysqlmanager.DB.AutoMigrate(&model.MachineNode{}) + mysqlmanager.DB.AutoMigrate(&model.User{}) + mysqlmanager.DB.AutoMigrate(&model.DepartNode{}) + mysqlmanager.DB.AutoMigrate(&model.MachineNode{}) + mysqlmanager.DB.AutoMigrate(&model.Batch{}) defer mysqlmanager.DB.Close() r := router.SetupRouter() -- Gitee