From 778f7fbabb2ad5cdb8e203e1695ae2a8c7327edb Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 28 十一月 2023 19:19:21 +0800
Subject: [PATCH] 兼容

---
 service/report_work.go       |   14 +++++--
 model/production_progress.go |    9 ++++
 crontask/cron_task.go        |    2 
 model/task_status_sync.go    |   20 +++++++--
 api/v1/task.go               |   22 ++++++-----
 5 files changed, 47 insertions(+), 20 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index f866127..f9741cb 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -228,11 +228,12 @@
 			return err
 		}
 		record := model.TaskStatusSync{
-			WorkOrderId:  procedure.WorkOrderID,
-			ProcedureID:  procedure.ProcedureID,
-			DeviceId:     procedure.DeviceID,
-			IsProcessing: false,
-			IsFinish:     true,
+			WorkOrderId:        procedure.WorkOrderID,
+			ProcedureID:        procedure.ProcedureID,
+			DeviceId:           procedure.DeviceID,
+			ProductProcedureID: procedure.ProductProcedureID,
+			IsProcessing:       false,
+			IsFinish:           true,
 		}
 		return service.NewTaskService().SaveTaskStatusSync(db, &record)
 	})
@@ -331,11 +332,12 @@
 			return err
 		}
 		record := model.TaskStatusSync{
-			WorkOrderId:  procedure.WorkOrderID,
-			ProcedureID:  procedure.ProcedureID,
-			DeviceId:     procedure.DeviceID,
-			IsProcessing: true,
-			IsFinish:     false,
+			WorkOrderId:        procedure.WorkOrderID,
+			ProcedureID:        procedure.ProcedureID,
+			DeviceId:           procedure.DeviceID,
+			ProductProcedureID: procedure.ProductProcedureID,
+			IsProcessing:       true,
+			IsFinish:           false,
 		}
 		return service.NewTaskService().SaveTaskStatusSync(db, &record)
 	})
diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index 7791a2e..f754783 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -117,7 +117,7 @@
 	for _, record := range records {
 		var finishAmount int
 		if record.IsFinish {
-			progress, err := model.NewProductionProgressSearch(nil).SetProcedureId(record.ProcedureID).First()
+			progress, err := model.NewProductionProgressSearch(nil).SetWorkOrderId(record.WorkOrderId).SetProductProcedureId(record.ProductProcedureID).First()
 			if err == nil {
 				finishAmount = int(progress.FinishedQuantity)
 			}
diff --git a/model/production_progress.go b/model/production_progress.go
index b01a417..58bc036 100644
--- a/model/production_progress.go
+++ b/model/production_progress.go
@@ -76,6 +76,11 @@
 	return slf
 }
 
+func (slf *ProductionProgressSearch) SetProductProcedureId(productProcedureId string) *ProductionProgressSearch {
+	slf.ProductProcedureID = productProcedureId
+	return slf
+}
+
 func (slf *ProductionProgressSearch) SetId(id uint) *ProductionProgressSearch {
 	slf.ID = id
 	return slf
@@ -130,6 +135,10 @@
 		db = db.Where("finished_quantity <  total_quantity")
 	}
 
+	if slf.ProductProcedureID != "" {
+		db = db.Where("product_procedure_id = ?", slf.ProductProcedureID)
+	}
+
 	return db
 }
 
diff --git a/model/task_status_sync.go b/model/task_status_sync.go
index 78560b3..f9a6c14 100644
--- a/model/task_status_sync.go
+++ b/model/task_status_sync.go
@@ -10,11 +10,12 @@
 	// TaskStatusSync 浠诲姟鐘舵�佸悓姝�
 	TaskStatusSync struct {
 		gorm.Model
-		WorkOrderId  string `json:"workOrderId"` //宸ュ崟缂栧彿
-		ProcedureID  string `json:"procedureId"` // 宸ュ簭缂栧彿
-		DeviceId     string `json:"deviceId"`    //璁惧缂栧彿
-		IsProcessing bool   //鏄惁澶勭悊涓�
-		IsFinish     bool   //鏄惁瀹屾垚
+		WorkOrderId        string `json:"workOrderId"`                                  //宸ュ崟缂栧彿
+		ProductProcedureID string `gorm:"type:varchar(191);" json:"productProcedureID"` //浜у搧宸ュ簭id
+		ProcedureID        string `json:"procedureId"`                                  // 宸ュ簭缂栧彿
+		DeviceId           string `json:"deviceId"`                                     //璁惧缂栧彿
+		IsProcessing       bool   //鏄惁澶勭悊涓�
+		IsFinish           bool   //鏄惁瀹屾垚
 	}
 
 	TaskStatusSyncSearch struct {
@@ -58,6 +59,11 @@
 	return slf
 }
 
+func (slf *TaskStatusSyncSearch) SetProductProcedureId(productProcedureId string) *TaskStatusSyncSearch {
+	slf.ProductProcedureID = productProcedureId
+	return slf
+}
+
 func (slf *TaskStatusSyncSearch) SetIDs(ids []uint) *TaskStatusSyncSearch {
 	slf.IDs = ids
 	return slf
@@ -70,6 +76,10 @@
 		db = db.Where("id = ?", slf.ID)
 	}
 
+	if slf.ProductProcedureID != "" {
+		db = db.Where("product_procedure_id = ?", slf.ProductProcedureID)
+	}
+
 	if len(slf.IDs) != 0 {
 		db = db.Where("id in (?)", slf.IDs)
 	}
diff --git a/service/report_work.go b/service/report_work.go
index 1c9c50e..4a9db04 100644
--- a/service/report_work.go
+++ b/service/report_work.go
@@ -71,7 +71,7 @@
 		BarCode:            snowflake.GenerateIdStr(),
 	}
 	err = model.WithTransaction(func(db *gorm.DB) error {
-		err = model.NewReportWorkSearch(nil).Create(record)
+		err = model.NewReportWorkSearch(db).Create(record)
 		if err != nil {
 			return err
 		}
@@ -80,17 +80,23 @@
 		if err != nil {
 			return err
 		}
-		err = model.NewReportsToCloudSearch(nil).Create(&model.ReportsToCloud{
+		err = model.NewReportsToCloudSearch(db).Create(&model.ReportsToCloud{
 			ReportType: constvar.ReportTypeReportWork,
 			Content:    string(content),
 		})
-		return err
+		if err != nil {
+			return err
+		}
+
+		return nil
 	})
 	if err != nil {
 		logx.Errorf("save report work transaction error: %v", err)
 		return err
 	}
-	_ = NewProgressService().UpdateProgressByProceduresId(procedure.ID, int64(params.ReportAmount))
+
+	err = NewProgressService().UpdateProgressByProceduresId(procedure.ID, int64(params.ReportAmount))
+
 	return nil
 }
 

--
Gitblit v1.8.0