From 743614db00f9b8cd9a97997a743f9c161e493aea Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期三, 10 七月 2024 20:55:28 +0800
Subject: [PATCH] 车间分组配置
---
constvar/const.go | 9 +
controllers/request/workshop_manage.go | 25 +++
controllers/response/workshop_manage.go | 8 +
controllers/request/system_set.go | 14 --
models/fineness.go | 26 ++-
models/workshop_manage.go | 85 ++++++++++-
main.go | 2
service/workshop.go | 2
controllers/workshop_manage_controller.go | 212 +++++++++++++++++++++++++-----
models/fineness_item.go | 10
10 files changed, 315 insertions(+), 78 deletions(-)
diff --git a/constvar/const.go b/constvar/const.go
index 16118ac..53a4073 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -22,7 +22,14 @@
const (
LeftHalfCar CarFlag = iota + 1 //宸﹀崐杞�
RightHalfCar //鍙冲崐杞�
- AllCar //鍏ㄨ溅缁撴潫
+ //AllCar //鍏ㄨ溅缁撴潫
+)
+
+type WorkshopType int
+
+const (
+ Workshop WorkshopType = iota + 1 // 杞﹂棿淇℃伅
+ Group // 鍒嗙粍淇℃伅
)
type CheckItem int
diff --git a/controllers/request/system_set.go b/controllers/request/system_set.go
index cfe2744..f7db82b 100644
--- a/controllers/request/system_set.go
+++ b/controllers/request/system_set.go
@@ -49,17 +49,3 @@
RankName string `json:"rankName"` //绛夌骇鍚嶇О
RankValue decimal.Decimal `json:"rankValue"` //绛夌骇鍊�
}
-
-// ---------------------------------------杞﹂棿---------------------------------
-type GetWorkshopManage struct {
- PageInfo
- KeyWord string `json:"keyWord"`
- WorkshopName string `json:"workshopName"` //杞﹂棿鍚嶇О
- GroupNumber int `json:"groupNumber"` //缁勫埆
-}
-
-type GetWorkshopManageCar struct {
- WorkshopName string `json:"workshopName"` //杞﹂棿鍚嶇О
- GroupNumber int `json:"groupNumber"` //缁勫埆
- MarketName string `json:"marketName"` //搴勫彛鍚�
-}
diff --git a/controllers/request/workshop_manage.go b/controllers/request/workshop_manage.go
new file mode 100644
index 0000000..774a5d1
--- /dev/null
+++ b/controllers/request/workshop_manage.go
@@ -0,0 +1,25 @@
+package request
+
+import (
+ "silkserver/models"
+)
+
+type AddWorkshopManage struct {
+ models.WorkshopManage
+ Details []models.WorkshopManage `json:"details"` // 杞﹂棿淇℃伅
+}
+
+type GetWorkshopManage struct {
+ PageInfo
+ KeyWord string `json:"keyWord"`
+ WorkshopNumber string `json:"workshopNumber"` // 杞﹂棿缂栧彿
+ WorkshopName string `json:"workshopName"` //杞﹂棿鍚嶇О
+ GroupNumber int `json:"groupNumber"` //缁勫埆
+}
+
+type GetWorkshopManageCar struct {
+ WorkshopNumber string `json:"workshopNumber"` // 杞﹂棿缂栧彿
+ WorkshopName string `json:"workshopName"` //杞﹂棿鍚嶇О
+ GroupNumber int `json:"groupNumber"` //缁勫埆
+ MarketName string `json:"marketName"` //搴勫彛鍚�
+}
diff --git a/controllers/response/workshop_manage.go b/controllers/response/workshop_manage.go
new file mode 100644
index 0000000..c5b42aa
--- /dev/null
+++ b/controllers/response/workshop_manage.go
@@ -0,0 +1,8 @@
+package response
+
+import "silkserver/models"
+
+type WorkshopManage struct {
+ models.WorkshopManage
+ Details []models.WorkshopManage `json:"details"` // 杞﹂棿淇℃伅
+}
diff --git a/controllers/workshop_manage_controller.go b/controllers/workshop_manage_controller.go
index 07df3f0..50109a7 100644
--- a/controllers/workshop_manage_controller.go
+++ b/controllers/workshop_manage_controller.go
@@ -3,6 +3,7 @@
import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
+ "silkserver/constvar"
"silkserver/controllers/request"
"silkserver/controllers/response"
"silkserver/extend/code"
@@ -16,41 +17,117 @@
// SaveWorkshopManage
//
-// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
-// @Summary 淇濆瓨杞﹂棿绠$悊
-// @Produce application/json
-// @Param object body models.WorkshopManage true "鍙傛暟"
-// @Param Authorization header string true "token"
-// @Success 200 {object} util.Response "鎴愬姛"
-// @Router /api-jl/v1/system/saveWorkshopManage [post]
+// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
+// @Summary 淇濆瓨杞﹂棿绠$悊
+// @Produce application/json
+// @Param Authorization header string true "token"
+// @Param object body request.AddWorkshopManage 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)
+ var param *request.AddWorkshopManage
+ err := c.BindJSON(¶m)
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 param.StartCarNumber > param.EndCarNumber {
+ util.ResponseFormat(c, code.RequestParamError, "缁撴潫杞﹀彿涓嶈兘灏忎簬寮�濮嬭溅鍙�")
+ return
}
+
+ editIds := make([]uint, len(param.Details))
+ for _, detail := range param.Details {
+ if detail.StartCarNumber > detail.EndCarNumber {
+ util.ResponseFormat(c, code.RequestParamError, "鍒嗙粍缁撴潫杞﹀彿涓嶈兘灏忎簬鍒嗙粍寮�濮嬭溅鍙�")
+ return
+ }
+ if detail.EndCarNumber > param.EndCarNumber {
+ util.ResponseFormat(c, code.RequestParamError, "鍒嗙粍缁撴潫杞﹀彿涓嶈兘澶т簬缁撴潫杞﹀彿")
+ return
+ }
+ if detail.ID > 0 {
+ editIds = append(editIds, detail.ID)
+ }
+ }
+
+ info := models.WorkshopManage{
+ WorkshopNumber: param.WorkshopNumber,
+ WorkshopName: param.WorkshopName,
+ Type: constvar.Workshop,
+ GroupNumber: param.GroupNumber,
+ StartCarNumber: param.StartCarNumber,
+ EndCarNumber: param.EndCarNumber,
+ CarFlag: param.CarFlag,
+ Notes: param.Notes,
+ }
+
+ err = models.WithTransaction(func(tx *gorm.DB) error {
+ if param.ID > 0 {
+ info.ID = param.ID
+ err = models.NewWorkshopManageSearch().Save(&info)
+ if err != nil {
+ return err
+ }
+ oldDetailsList, err := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumber(param.WorkshopNumber).SetGroupNumber(param.GroupNumber).FindNotTotal()
+ if err != nil {
+ return err
+ }
+
+ for _, oldDetails := range oldDetailsList {
+ delFlag := true
+ for _, editId := range editIds {
+ if oldDetails.ID == editId {
+ delFlag = false
+ break
+ }
+ }
+ if delFlag {
+ err = models.NewWorkshopManageSearch().SetId(int(oldDetails.ID)).Delete()
+ if err != nil {
+ return err
+ }
+ }
+ }
+ } else {
+ err = models.NewWorkshopManageSearch().Create(&info)
+ }
+ if err != nil {
+ return err
+ }
+
+ for _, detail := range param.Details {
+ detail.Type = constvar.Group
+ detail.WorkshopNumber = param.WorkshopNumber
+ detail.WorkshopName = param.WorkshopName
+ detail.ParentID = param.WorkshopNumber
+ //detail.GroupNumber = param.Workshop.GroupNumber
+
+ if detail.ID > 0 {
+ err = models.NewWorkshopManageSearch().Save(&detail)
+ } else {
+ err = models.NewWorkshopManageSearch().Create(&detail)
+ }
+ }
+ return nil
+ })
if err != nil {
util.ResponseFormat(c, code.SaveFail, "淇濆瓨澶辫触")
return
}
+
util.ResponseFormat(c, code.Success, "淇濆瓨鎴愬姛")
}
// GetWorkshopManageList
//
-// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
-// @Summary 鑾峰彇杞﹂棿绠$悊鍒楄〃
-// @Produce application/json
-// @Param Authorization header string true "token"
-// @Param object query request.GetPriceStandard true "鍙傛暟"
-// @Success 200 {object} util.ResponseList{data=[]models.WorkshopManage} "鎴愬姛"
-// @Router /api-jl/v1/system/getWorkshopManageList [post]
+// @Tags 绯荤粺璁剧疆/杞﹂棿绠$悊
+// @Summary 鑾峰彇杞﹂棿绠$悊鍒楄〃
+// @Produce application/json
+// @Param Authorization header string true "token"
+// @Param object query request.GetPriceStandard true "鍙傛暟"
+// @Success 200 {object} util.ResponseList{data=[]response.WorkshopManage} "鎴愬姛"
+// @Router /api-jl/v1/system/getWorkshopManageList [post]
func (slf WorkshopManageController) GetWorkshopManageList(c *gin.Context) {
var param request.GetWorkshopManage
err := c.BindJSON(¶m)
@@ -58,12 +135,49 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- list, total, err := models.NewWorkshopManageSearch().SetWorkshopName(param.WorkshopName).SetGroupNumber(param.GroupNumber).SetPage(param.Page, param.PageSize).Find()
+ workshopManageSearch := models.NewWorkshopManageSearch()
+ if param.Page > 0 && param.PageSize > 0 {
+ workshopManageSearch.SetPage(param.Page, param.PageSize)
+ }
+ workshopManageSearch.SetType(constvar.Workshop).SetWorkshopName(param.WorkshopName).SetGroupNumber(param.GroupNumber)
+ list, total, err := workshopManageSearch.SetOrder("workshop_number,group_number,start_car_number").Find()
if err != nil {
util.ResponseFormat(c, code.SelectError, "鏌ヨ澶辫触")
return
}
- util.ResponseFormatList(c, code.Success, list, total)
+ workshopNumberArr := make([]string, len(list))
+ for _, workshopManage := range list {
+ workshopNumberArr = append(workshopNumberArr, workshopManage.WorkshopNumber)
+ }
+
+ details, _ := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumberArr(workshopNumberArr).
+ SetOrder("workshop_number,group_number,start_car_number").FindNotTotal()
+
+ var result []*response.WorkshopManage
+ for _, info := range list {
+ var infoTemp response.WorkshopManage
+ infoTemp.ID = info.ID
+ infoTemp.CreatedAt = info.CreatedAt
+ infoTemp.UpdatedAt = info.UpdatedAt
+ infoTemp.WorkshopNumber = info.WorkshopNumber
+ infoTemp.WorkshopName = info.WorkshopName
+ infoTemp.Type = info.Type
+ infoTemp.ParentID = info.ParentID
+ infoTemp.GroupNumber = info.GroupNumber
+ infoTemp.StartCarNumber = info.StartCarNumber
+ infoTemp.EndCarNumber = info.EndCarNumber
+ infoTemp.CarFlag = info.CarFlag
+ infoTemp.Notes = info.Notes
+ var detailList []models.WorkshopManage
+ for _, detail := range details {
+ if info.WorkshopNumber == detail.WorkshopNumber && info.GroupNumber == detail.GroupNumber {
+ detailList = append(detailList, *detail)
+ }
+ }
+ infoTemp.Details = detailList
+ result = append(result, &infoTemp)
+ }
+ util.ResponseFormatList(c, code.Success, result, total)
}
// DeleteWorkshopManage
@@ -85,7 +199,28 @@
util.ResponseFormat(c, code.RequestParamError, "鏁版嵁杞崲澶辫触")
return
}
- err = models.NewWorkshopManageSearch().SetId(atoi).Delete()
+
+ err = models.WithTransaction(func(tx *gorm.DB) error {
+ first, err := models.NewWorkshopManageSearch().SetId(atoi).First()
+ if err != nil {
+ return err
+ }
+ if first.Type == constvar.Group {
+ err = models.NewWorkshopManageSearch().SetId(atoi).Delete()
+ } else if first.Type == constvar.Workshop {
+ workshopManages, err := models.NewWorkshopManageSearch().SetWorkshopNumber(first.WorkshopNumber).SetGroupNumber(first.GroupNumber).FindNotTotal()
+ if err != nil {
+ return err
+ }
+ for _, detail := range workshopManages {
+ err = models.NewWorkshopManageSearch().SetId(int(detail.ID)).Delete()
+ if err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+ })
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎澶辫触")
return
@@ -109,7 +244,9 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- all, err := models.NewWorkshopManageSearch().SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).FindAll()
+ all, err := models.NewWorkshopManageSearch().
+ SetType(constvar.Group).SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).
+ SetOrder("workshop_number,group_number,start_car_number").FindNotTotal()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
return
@@ -139,7 +276,7 @@
util.ResponseFormat(c, code.RequestParamError, "鏃犳晥鐨勭紪鐮�")
return
}
- all, err := models.NewWorkshopManageSearch().SetWorkshopNumber(number).FindAll()
+ all, err := models.NewWorkshopManageSearch().SetType(constvar.Group).SetWorkshopNumber(number).FindNotTotal()
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
return
@@ -167,34 +304,37 @@
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
}
- all, err := models.NewWorkshopManageSearch().SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).FindAll()
+ workshopManageList, err := models.NewWorkshopManageSearch().
+ SetType(constvar.Group).SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetGroupNumber(params.GroupNumber).
+ FindNotTotal()
if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ util.ResponseFormat(c, code.RequestParamError, "杞﹂棿鍒嗙粍鏌ヨ澶辫触")
return
}
- fineness, err := models.NewFinenessRegisterSearch().SetWorkshopName(params.WorkshopName).SetWorkshopGroup(params.GroupNumber).
- SetMarket(params.MarketName).First()
+ finenessRegisterList, err := models.NewFinenessRegisterSearch().
+ SetWorkshopNumber(params.WorkshopNumber).SetWorkshopName(params.WorkshopName).SetWorkshopGroup(params.GroupNumber).SetMarket(params.MarketName).
+ First()
if err != nil {
if err == gorm.ErrRecordNotFound {
- util.ResponseFormat(c, code.RequestParamError, "褰撳墠搴勫彛,杞﹂棿,缁勫埆涓�,娌℃湁绾ゅ害鐧昏淇℃伅")
+ util.ResponseFormat(c, code.RequestParamError, "褰撳墠搴勫彛銆佽溅闂淬�佺粍鍒笅,娌℃湁绾ゅ害鐧昏淇℃伅")
return
}
- util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ util.ResponseFormat(c, code.RequestParamError, "绾ゅ害鐧昏鏌ヨ澶辫触")
return
}
- first, err := models.NewFinenessCheckSearch().SetID(fineness.FinenessCheckID).First()
+ first, err := models.NewFinenessCheckSearch().SetID(finenessRegisterList.FinenessCheckID).First()
if err != nil {
- util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
+ util.ResponseFormat(c, code.RequestParamError, "绾ゅ害妫�楠屾煡璇㈠け璐�")
return
}
var data response.CarAndLevel
data.Level = first.FinenessGrade
carNum := make([][]int, 0)
- for _, manage := range all {
+ for _, workshop := range workshopManageList {
car := make([]int, 0)
- i := manage.StartCarNumber
- for ; i <= manage.EndCarNumber; i++ {
+ i := workshop.StartCarNumber
+ for ; i <= workshop.EndCarNumber; i++ {
car = append(car, i)
}
if len(car) > 0 {
diff --git a/main.go b/main.go
index 9ff533d..bbe44dc 100644
--- a/main.go
+++ b/main.go
@@ -37,6 +37,8 @@
ReadTimeout: 5 * time.Second,
WriteTimeout: 5 * time.Second,
}
+ logx.Infof("server start success! \n\n\t- Local: \thttp://localhost:%v/\n\t- Network: \thttp://%v:%v/\n",
+ conf.WebConf.Port, conf.WebConf.Host, conf.WebConf.Port)
//瀹氭椂浠诲姟鍒濆鍖�
task.Init()
diff --git a/models/fineness.go b/models/fineness.go
index 18e6461..3d6ea97 100644
--- a/models/fineness.go
+++ b/models/fineness.go
@@ -11,13 +11,14 @@
// FinenessRegister 绾ゅ害鐧昏
FinenessRegister struct {
gorm.Model
- Number string `gorm:"type:varchar(255);not null;comment:缂栧彿" json:"number"` //缂栧彿
- FinenessCheckID uint `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID" json:"finenessCheckID"` //绾ゅ害妫�楠岃〃ID
- FinishDate string `gorm:"type:varchar(255);not null;comment:钀戒笣鏃堕棿" json:"finishDate"` //钀戒笣鏃堕棿
- WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"`
- WorkshopName string `json:"workshopName" gorm:"type:varchar(255);comment:杞﹂棿鍚嶇О"`
+ Number string `gorm:"type:varchar(255);not null;comment:缂栧彿" json:"number"` //缂栧彿
+ FinenessCheckID uint `gorm:"not null;comment:绾ゅ害妫�楠岃〃ID" json:"finenessCheckID"` //绾ゅ害妫�楠岃〃ID
+ FinishDate string `gorm:"type:varchar(255);not null;comment:钀戒笣鏃堕棿" json:"finishDate"` //钀戒笣鏃堕棿
+ WorkshopNumber string `gorm:"type:varchar(255);comment:杞﹂棿缂栧彿" json:"workshopNumber" ` // 杞﹂棿缂栧彿
+ WorkshopName string `gorm:"type:varchar(255);comment:杞﹂棿鍚嶇О" json:"workshopName" ` // 杞﹂棿鍚嶇О
WorkshopGroup int `gorm:"type:int(11);not null;default:0;comment:杞︾粍" json:"workshopGroup"` //杞︾粍
- Market string `gorm:"type:varchar(255);not null;comment:搴勫彛" json:"market"` //搴勫彛
+ MarketNumber string `gorm:"size:255;comment:搴勫彛" json:"marketNumber"` //搴勫彛缂栧彿
+ Market string `gorm:"type:varchar(255);not null;comment:搴勫彛" json:"market"` //搴勫彛鍚嶇О
Spec string `gorm:"type:varchar(255);not null;comment:瑙勬牸" json:"spec"` //瑙勬牸
Circle uint8 `gorm:"not null;default:0;comment:鍥炴暟" json:"circle"` //鍥炴暟
TotalCircle uint8 `gorm:"not null;default:0;comment:鎬诲洖鏁�" json:"totalCircle"` //鎬诲洖鏁�
@@ -80,8 +81,13 @@
return slf
}
-func (slf *FinenessRegisterSearch) SetWorkshopName(workshop string) *FinenessRegisterSearch {
- slf.WorkshopName = workshop
+func (slf *FinenessRegisterSearch) SetWorkshopNumber(workshopNumber string) *FinenessRegisterSearch {
+ slf.WorkshopNumber = workshopNumber
+ return slf
+}
+
+func (slf *FinenessRegisterSearch) SetWorkshopName(workshopName string) *FinenessRegisterSearch {
+ slf.WorkshopName = workshopName
return slf
}
@@ -118,6 +124,10 @@
db = db.Where("number like ?", fmt.Sprintf("%%%s%%", slf.Keyword))
}
+ if slf.WorkshopNumber != "" {
+ db = db.Where("workshop_number = ?", slf.WorkshopNumber)
+ }
+
if slf.WorkshopName != "" {
db = db.Where("workshop_name = ?", slf.WorkshopName)
}
diff --git a/models/fineness_item.go b/models/fineness_item.go
index b69cdeb..33a9065 100644
--- a/models/fineness_item.go
+++ b/models/fineness_item.go
@@ -11,11 +11,11 @@
// FinenessItem 绾ゅ害鐧昏
FinenessItem struct {
gorm.Model
- FinenessRegisterID uint `gorm:"index" json:"finenessRegisterID"`
- Position int `json:"position"` //杞﹀彿
- Fineness float32 `json:"fineness"` //绾ゅ害
- Quantity int `json:"quantity"` //鏁伴噺
- Sum decimal.Decimal `json:"sum"` //绾ゅ害鍚堣
+ FinenessRegisterID uint `gorm:"size:11;index" json:"finenessRegisterID"`
+ Position int `gorm:"size:11;comment:杞﹀彿" json:"position"` // 杞﹀彿
+ Fineness float32 `gorm:"comment:绾ゅ害" json:"fineness"` // 绾ゅ害
+ Quantity int `gorm:"size:11;comment:鏁伴噺" json:"quantity"` // 鏁伴噺
+ Sum decimal.Decimal `gorm:"type:decimal(12,4);comment:绾ゅ害鍚堣" json:"sum"` //绾ゅ害鍚堣
}
FinenessItemSearch struct {
diff --git a/models/workshop_manage.go b/models/workshop_manage.go
index ca05716..88c555f 100644
--- a/models/workshop_manage.go
+++ b/models/workshop_manage.go
@@ -11,20 +11,25 @@
type (
WorkshopManage struct {
gorm.Model
- WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"`
- WorkshopName string `json:"workshopName" 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:澶囨敞"`
+ WorkshopNumber string `json:"workshopNumber" gorm:"type:varchar(255);comment:杞﹂棿缂栧彿"`
+ WorkshopName string `json:"workshopName" gorm:"type:varchar(255);comment:杞﹂棿鍚嶇О"`
+ Type constvar.WorkshopType `json:"type" gorm:"size:1;comment:绫诲瀷(1杞﹂棿銆�2鍒嗙粍)"` // 绫诲瀷(1杞﹂棿銆�2鍒嗙粍)
+ ParentID string `json:"parentID" gorm:"size:11;comment:杞﹂棿缂栧彿"`
+ GroupNumber int `json:"groupNumber" gorm:"type:int(11);comment:缁勫埆"`
+ StartCarNumber int `json:"startCarNumber" gorm:"type:int(11);comment:寮�濮嬭溅鍙�"`
+ StartCarHalf constvar.CarFlag `json:"startCarHalf" gorm:"type:int(1);comment:寮�濮嬪崐杞︽爣璇�(1宸﹀崐杞︺��2鍙冲崐杞�)"`
+ EndCarNumber int `json:"endCarNumber" gorm:"type:int(11);comment:缁撴潫杞﹀彿"`
+ EndCarHalf constvar.CarFlag `json:"endCarHalf" gorm:"type:int(1);comment:缁撴潫鍗婅溅鏍囪瘑(1宸﹀崐杞︺��2鍙冲崐杞�)"`
+ CarFlag int `json:"carFlag" gorm:"type:int(1);comment:鍗婅溅鏍囧織(0鍏ㄨ溅銆�1鍗婅溅)"`
+ Notes string `json:"notes" gorm:"type:varchar(255);comment:澶囨敞"`
}
WorkshopManageSearch struct {
WorkshopManage
- PageNum int
- PageSize int
- Order string
- Orm *gorm.DB
+ WorkshopNumberArr []string
+ PageNum int
+ PageSize int
+ Order string
+ Orm *gorm.DB
}
)
@@ -51,6 +56,16 @@
return slf
}
+func (slf *WorkshopManageSearch) SetType(types constvar.WorkshopType) *WorkshopManageSearch {
+ slf.Type = types
+ return slf
+}
+
+func (slf *WorkshopManageSearch) SetParentID(parentID string) *WorkshopManageSearch {
+ slf.ParentID = parentID
+ return slf
+}
+
func (slf *WorkshopManageSearch) SetWorkshopNumber(workshopNumber string) *WorkshopManageSearch {
slf.WorkshopNumber = workshopNumber
return slf
@@ -58,6 +73,11 @@
func (slf *WorkshopManageSearch) SetWorkshopName(workshopName string) *WorkshopManageSearch {
slf.WorkshopName = workshopName
+ return slf
+}
+
+func (slf *WorkshopManageSearch) SetWorkshopNumberArr(workshopNumberArr []string) *WorkshopManageSearch {
+ slf.WorkshopNumberArr = workshopNumberArr
return slf
}
@@ -78,8 +98,20 @@
db = db.Where("id = ?", slf.ID)
}
+ if slf.Type > 0 {
+ db = db.Where("`type` = ?", slf.Type)
+ }
+
+ if slf.ParentID != "" {
+ db = db.Where("parent_id = ?", slf.ParentID)
+ }
+
if slf.WorkshopNumber != "" {
db = db.Where("workshop_number = ?", slf.WorkshopNumber)
+ }
+
+ if len(slf.WorkshopNumberArr) > 0 {
+ db = db.Where("workshop_number in (?)", slf.WorkshopNumberArr)
}
if slf.WorkshopName != "" {
@@ -103,6 +135,19 @@
return nil
}
+func (slf *WorkshopManageSearch) First() (*WorkshopManage, error) {
+ var (
+ record = new(WorkshopManage)
+ db = slf.build()
+ )
+
+ if err := db.First(record).Error; err != nil {
+ return record, err
+ }
+
+ return record, nil
+}
+
func (slf *WorkshopManageSearch) Find() ([]*WorkshopManage, int64, error) {
var (
records = make([]*WorkshopManage, 0)
@@ -116,19 +161,33 @@
if slf.PageNum*slf.PageSize > 0 {
db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
}
- if err := db.Order("updated_at desc").Find(&records).Error; err != nil {
+ if slf.Order != "" {
+ db = db.Order(slf.Order)
+ } else {
+ db = db.Order("updated_at desc")
+ }
+ 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) FindAll() ([]*WorkshopManage, error) {
+func (slf *WorkshopManageSearch) FindNotTotal() ([]*WorkshopManage, error) {
var (
records = make([]*WorkshopManage, 0)
db = slf.build()
)
+ if slf.PageNum*slf.PageSize > 0 {
+ db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+ }
+ if slf.Order != "" {
+ db = db.Order(slf.Order)
+ } else {
+ db = db.Order("updated_at desc")
+ }
+
if err := db.Find(&records).Error; err != nil {
return records, fmt.Errorf("find records err: %v", err)
}
diff --git a/service/workshop.go b/service/workshop.go
index 2624131..8300c3e 100644
--- a/service/workshop.go
+++ b/service/workshop.go
@@ -3,7 +3,7 @@
import "silkserver/models"
func GetWorkshopEndCarMap(workshopNumber string, groupNumber int) (endCarMap map[int]bool, err error) {
- records, err := models.NewWorkshopManageSearch().SetWorkshopNumber(workshopNumber).SetGroupNumber(groupNumber).FindAll()
+ records, err := models.NewWorkshopManageSearch().SetWorkshopNumber(workshopNumber).SetGroupNumber(groupNumber).FindNotTotal()
if err != nil {
return
}
--
Gitblit v1.8.0