From 47d9937507004599d14b1e02f479f753cb229901 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 26 九月 2023 16:29:52 +0800
Subject: [PATCH] fix

---
 nsq/msg_handler.go  |    2 +-
 model/procedures.go |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/model/procedures.go b/model/procedures.go
index cb8d660..cdb4706 100644
--- a/model/procedures.go
+++ b/model/procedures.go
@@ -7,6 +7,7 @@
 	"encoding/json"
 	"fmt"
 	"gorm.io/gorm"
+	"gorm.io/gorm/clause"
 )
 
 type (
@@ -215,6 +216,18 @@
 	return nil
 }
 
+func (slf *ProceduresSearch) Upsert(record *Procedures) error {
+	var db = slf.build()
+
+	if err := db.Clauses(clause.OnConflict{
+		UpdateAll: true,
+	}).Create(&record).Error; err != nil {
+		return fmt.Errorf("save err: %v, record: %+v", err, record)
+	}
+
+	return nil
+}
+
 func (slf *ProceduresSearch) Updates(record *Procedures) error {
 	var db = slf.build()
 
diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go
index 713c95a..4ea8c9c 100644
--- a/nsq/msg_handler.go
+++ b/nsq/msg_handler.go
@@ -84,7 +84,7 @@
 					return err
 				}
 				for _, procedure := range procedureRecords {
-					err = model.NewProceduresSearch(db).SetWorkOrderId(procedure.WorkOrderID).SetProcedureId(procedure.ProcedureID).Updates(procedure)
+					err = model.NewProceduresSearch(db).SetWorkOrderId(procedure.WorkOrderID).SetProcedureId(procedure.ProcedureID).Upsert(procedure)
 					if err != nil {
 						return err
 					}

--
Gitblit v1.8.0