From 6db46482ae4c8dac7161a0e9ded92cff5db7c1a4 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期五, 01 三月 2024 11:51:41 +0800
Subject: [PATCH] 车间管理接口开发

---
 constvar/const.go                         |    8 +
 /dev/null                                 |    6 -
 controllers/request/system_set.go         |   12 ++
 models/workshop_manage.go                 |  110 ++++++++++++++++++++++
 controllers/workshop_manage_controller.go |   90 ++++++++++++++++++
 models/raw_silk_price_standard.go         |    2 
 router/router.go                          |   22 ++--
 7 files changed, 233 insertions(+), 17 deletions(-)

diff --git a/constvar/const.go b/constvar/const.go
index 34d9dc1..5a024d3 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -16,3 +16,11 @@
 	UserTypePrimary                     // 涓昏处鎴�
 	UserTypeSub                         // 瀛愯处鎴�
 )
+
+type CarFlag int
+
+const (
+	LeftHalfCar  CarFlag = iota + 1 //宸﹀崐杞�
+	RightHalfCar                    //鍙冲崐杞�
+	AllCar                          //鍏ㄨ溅
+)
diff --git a/controllers/request/raw_silk_standard_request.go b/controllers/request/raw_silk_standard_request.go
deleted file mode 100644
index dd0ebc5..0000000
--- a/controllers/request/raw_silk_standard_request.go
+++ /dev/null
@@ -1,6 +0,0 @@
-package request
-
-type GetPriceStandard struct {
-	PageInfo
-	KeyWord string `json:"keyWord"`
-}
diff --git a/controllers/request/dict.go b/controllers/request/system_set.go
similarity index 60%
rename from controllers/request/dict.go
rename to controllers/request/system_set.go
index 86c6847..c87cd33 100644
--- a/controllers/request/dict.go
+++ b/controllers/request/system_set.go
@@ -18,3 +18,15 @@
 	ID uint `gorm:"comment:涓婚敭ID;primaryKey;" json:"id"`
 	AddDict
 }
+
+// ---------------------------------------鐢熶笣---------------------------------
+type GetPriceStandard struct {
+	PageInfo
+	KeyWord string `json:"keyWord"`
+}
+
+// ---------------------------------------杞﹂棿---------------------------------
+type GetWorkshopManage struct {
+	PageInfo
+	KeyWord string `json:"keyWord"`
+}
diff --git a/controllers/workshop_manage_controller.go b/controllers/workshop_manage_controller.go
new file mode 100644
index 0000000..c1c85c2
--- /dev/null
+++ b/controllers/workshop_manage_controller.go
@@ -0,0 +1,90 @@
+package controllers
+
+import (
+	"github.com/gin-gonic/gin"
+	"silkserver/controllers/request"
+	"silkserver/extend/code"
+	"silkserver/extend/util"
+	"silkserver/models"
+	"strconv"
+)
+
+type WorkshopManageController struct {
+}
+
+// SaveWorkshopManage
+//
+//	@Tags		绯荤粺璁剧疆/杞﹂棿绠$悊
+//	@Summary	淇濆瓨杞﹂棿绠$悊
+//	@Produce	application/json
+//	@Param		object	body		models.WorkshopManage	true	"鍙傛暟"
+//	@Success	200		{object}	util.Response		"鎴愬姛"
+//	@Router		/api-jl/v1/system/saveWorkshopManage [post]
+func (slf WorkshopManageController) SaveWorkshopManage(c *gin.Context) {
+	var workshop models.WorkshopManage
+	err := c.BindJSON(&workshop)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	if workshop.ID > 0 {
+		err = models.NewWorkshopManageSearch().Save(&workshop)
+	} else {
+		err = models.NewWorkshopManageSearch().Create(&workshop)
+	}
+	if err != nil {
+		util.ResponseFormat(c, code.SaveFail, "淇濆瓨澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
+}
+
+// GetWorkshopManageList
+//
+//	@Tags		绯荤粺璁剧疆/杞﹂棿绠$悊
+//	@Summary	鑾峰彇杞﹂棿绠$悊鍒楄〃
+//	@Produce	application/json
+//	@Param		object	query		request.GetPriceStandard	true	"鍙傛暟"
+//	@Success	200		{object}	util.ResponseList{data=[]models.WorkshopManage}		"鎴愬姛"
+//	@Router		/api-jl/v1/system/getWorkshopManageList [get]
+func (slf WorkshopManageController) GetWorkshopManageList(c *gin.Context) {
+	var param request.GetWorkshopManage
+	err := c.ShouldBindQuery(&param)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
+		return
+	}
+	list, total, err := models.NewWorkshopManageSearch().SetPage(param.Page, param.PageSize).Find()
+	if err != nil {
+		util.ResponseFormat(c, code.SelectError, "鏌ヨ澶辫触")
+		return
+	}
+	util.ResponseFormatList(c, code.Success, list, total)
+}
+
+// DeleteWorkshopManage
+//
+//	@Tags		绯荤粺璁剧疆/杞﹂棿绠$悊
+//	@Summary	鍒犻櫎杞﹂棿绠$悊
+//	@Produce	application/json
+//	@Param		id	path		string			true	"id"
+//	@Success	200	{object}	util.Response	"鎴愬姛"
+//	@Router		/api-jl/v1/system/deleteWorkshopManage/{id} [delete]
+func (slf WorkshopManageController) DeleteWorkshopManage(c *gin.Context) {
+	id := c.Param("id")
+	if id == "" {
+		util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨刬d")
+		return
+	}
+	atoi, err := strconv.Atoi(id)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触")
+		return
+	}
+	err = models.NewWorkshopManageSearch().SetId(atoi).Delete()
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎鎴愬姛")
+}
diff --git a/models/raw_silk_price_standard.go b/models/raw_silk_price_standard.go
index 79fd7cd..b8390dd 100644
--- a/models/raw_silk_price_standard.go
+++ b/models/raw_silk_price_standard.go
@@ -7,7 +7,7 @@
 	"silkserver/pkg/mysqlx"
 )
 
-// RawSilkPriceStandard
+// RawSilkPriceStandard 鐢熶笣瀹氫环绠$悊
 type (
 	RawSilkPriceStandard struct {
 		gorm.Model
diff --git a/models/workshop_manage.go b/models/workshop_manage.go
new file mode 100644
index 0000000..6d920cb
--- /dev/null
+++ b/models/workshop_manage.go
@@ -0,0 +1,110 @@
+package models
+
+import (
+	"fmt"
+	"gorm.io/gorm"
+	"silkserver/constvar"
+	"silkserver/pkg/mysqlx"
+)
+
+// WorkshopManage 杞﹂棿绠$悊
+type (
+	WorkshopManage struct {
+		gorm.Model
+		WorkshopNumber string           `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"`
+		GroupNumber    int              `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"`
+		StartCarNumber int              `json:"startCarNumber"  gorm:"type:int(11);comment:缁勫埆"`
+		EndCarNumber   int              `json:"endCarNumber"  gorm:"type:int(11);comment:缁勫埆"`
+		CarFlag        constvar.CarFlag `json:"carFlag" gorm:"type:int(1);comment:鍗婅溅鏍囧織"`
+		Notes          string           `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"`
+	}
+	WorkshopManageSearch struct {
+		WorkshopManage
+		PageNum  int
+		PageSize int
+		Orm      *gorm.DB
+	}
+)
+
+func (slf WorkshopManage) TableName() string {
+	return "workshop_manage"
+}
+
+func NewWorkshopManageSearch() *WorkshopManageSearch {
+	return &WorkshopManageSearch{Orm: mysqlx.GetDB()}
+}
+
+func (slf *WorkshopManageSearch) SetOrm(tx *gorm.DB) *WorkshopManageSearch {
+	slf.Orm = tx
+	return slf
+}
+
+func (slf *WorkshopManageSearch) SetPage(page, size int) *WorkshopManageSearch {
+	slf.PageNum, slf.PageSize = page, size
+	return slf
+}
+
+func (slf *WorkshopManageSearch) SetId(id int) *WorkshopManageSearch {
+	slf.ID = uint(id)
+	return slf
+}
+
+func (slf *WorkshopManageSearch) build() *gorm.DB {
+	db := slf.Orm.Table(slf.TableName())
+
+	if slf.ID > 0 {
+		db = db.Where("id = ?", slf.ID)
+	}
+
+	return db
+}
+
+// Create 鍗曟潯鎻掑叆
+func (slf *WorkshopManageSearch) Create(record *WorkshopManage) error {
+	db := slf.build()
+	err := db.Create(record).Error
+	if err != nil {
+		return fmt.Errorf("create err: %v, record: %+v", err, record)
+	}
+	return nil
+}
+
+func (slf *WorkshopManageSearch) Find() ([]*WorkshopManage, int64, error) {
+	var (
+		records = make([]*WorkshopManage, 0)
+		total   int64
+		db      = slf.build()
+	)
+
+	if err := db.Count(&total).Error; err != nil {
+		return records, total, fmt.Errorf("find count err: %v", err)
+	}
+	if slf.PageNum*slf.PageSize > 0 {
+		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	}
+	if err := db.Find(&records).Error; err != nil {
+		return records, total, fmt.Errorf("find records err: %v", err)
+	}
+
+	return records, total, nil
+}
+
+func (slf *WorkshopManageSearch) Save(record *WorkshopManage) error {
+	var db = slf.build()
+
+	if err := db.Save(record).Error; err != nil {
+		return fmt.Errorf("save err: %v, record: %+v", err, record)
+	}
+
+	return nil
+}
+
+func (slf *WorkshopManageSearch) Delete() error {
+	var db = slf.build()
+
+	if err := db.Unscoped().Delete(&WorkshopManage{}).Error; err != nil {
+		return err
+	}
+
+	return nil
+}
diff --git a/router/router.go b/router/router.go
index f2ae3a2..6d495b6 100644
--- a/router/router.go
+++ b/router/router.go
@@ -23,14 +23,25 @@
 
 	urlPrefix := "/api-jl/v1"
 
-	// 璇嶅吀绠$悊
+	// 绯荤粺璁剧疆
 	DictController := new(controllers.DictController)
+	rawSilkController := new(controllers.RawSilkStandardController)
+	workshopController := new(controllers.WorkshopManageController)
 	systemApi := r.Group(urlPrefix + "/system")
 	{
+		//璇嶅吀绠$悊
 		systemApi.GET("dict", DictController.List)          // 鑾峰彇璇嶅吀鍒楄〃
 		systemApi.POST("dict", DictController.Add)          // 鏂板璇嶅吀
 		systemApi.PUT("dict", DictController.Update)        // 淇敼璇嶅吀
 		systemApi.DELETE("dict/:id", DictController.Delete) // 鍒犻櫎璇嶅吀
+		// 鐢熶笣绠$悊
+		systemApi.GET("getPriceStandardList", rawSilkController.GetPriceStandardList)      //鑾峰彇鐢熶笣瀹氫环鏍囧噯
+		systemApi.POST("savePriceStandard", rawSilkController.SavePriceStandard)           //淇濆瓨鐢熶笣瀹氫环鏍囧噯
+		systemApi.DELETE("deletePriceStandard/:id", rawSilkController.DeletePriceStandard) //鍒犻櫎鐢熶笣瀹氫环鏍囧噯
+		//杞﹂棿绠$悊
+		systemApi.GET("getWorkshopManageList", workshopController.GetWorkshopManageList)      //鑾峰彇杞﹂棿绠$悊鍒楄〃
+		systemApi.POST("saveWorkshopManage", workshopController.SaveWorkshopManage)           //淇濆瓨杞﹂棿绠$悊
+		systemApi.DELETE("deleteWorkshopManage/:id", workshopController.DeleteWorkshopManage) //鍒犻櫎杞﹂棿绠$悊
 	}
 
 	// 鐢熶骇绠$悊
@@ -41,15 +52,6 @@
 		finenessApi.DELETE("register/:id", FinenessController.Delete) // 鍒犻櫎绾ゅ害鐧昏
 		finenessApi.POST("register", FinenessController.Add)          // 鏂板绾ゅ害鐧昏
 		finenessApi.GET("register/:id", FinenessController.Info)      // 鑾峰彇绾ゅ害鐧昏璇︽儏
-	}
-
-	// 鐢熶笣绠$悊
-	rawSilkController := new(controllers.RawSilkStandardController)
-	rawSilkApi := r.Group(urlPrefix + "/system")
-	{
-		rawSilkApi.GET("getPriceStandardList", rawSilkController.GetPriceStandardList)      //鑾峰彇鐢熶笣瀹氫环鏍囧噯
-		rawSilkApi.POST("savePriceStandard", rawSilkController.SavePriceStandard)           //淇濆瓨鐢熶笣瀹氫环鏍囧噯
-		rawSilkApi.DELETE("DeletePriceStandard/:id", rawSilkController.DeletePriceStandard) //鍒犻櫎鐢熶笣瀹氫环鏍囧噯
 	}
 
 	return r

--
Gitblit v1.8.0