From 743614db00f9b8cd9a97997a743f9c161e493aea Mon Sep 17 00:00:00 2001
From: yinbentan <yinbentan@live.com>
Date: 星期三, 10 七月 2024 20:55:28 +0800
Subject: [PATCH] 车间分组配置

---
 models/workshop_manage.go |   85 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 72 insertions(+), 13 deletions(-)

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)
 	}

--
Gitblit v1.8.0