From b3d87ae859f20f3bfb4d2e495d7a0f316900b670 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 28 十一月 2023 17:12:21 +0800
Subject: [PATCH] 获取生产进度接口有工序id参数从数据库查询实际开始时间和实际结束时间
---
nsq/msg_handler.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go
index e791fff..a45aed8 100644
--- a/nsq/msg_handler.go
+++ b/nsq/msg_handler.go
@@ -52,15 +52,16 @@
procedureRecords := make([]*model.Procedures, 0, len(task.Procedures))
for _, procedure := range task.Procedures {
procedureRecord := model.Procedures{
- WorkOrderID: task.WorkOrder.WorkOrderID,
- OrderID: task.WorkOrder.OrderID,
- DeviceID: procedure.DeviceID,
- ProcedureID: procedure.ProcedureID,
- StartTime: procedure.StartTime,
- EndTime: procedure.EndTime,
- Status: model.ProcedureStatusWaitProcess,
- Channel: procedure.Channel,
- ProceduresInfo: common.ProductProcedure{},
+ ProductProcedureID: procedure.ProductProcedureID,
+ WorkOrderID: task.WorkOrder.WorkOrderID,
+ OrderID: task.WorkOrder.OrderID,
+ DeviceID: procedure.DeviceID,
+ ProcedureID: procedure.ProcedureID,
+ StartTime: procedure.StartTime,
+ EndTime: procedure.EndTime,
+ Status: model.ProcedureStatusWaitProcess,
+ Channel: procedure.Channel,
+ ProceduresInfo: common.ProductProcedure{},
}
procedureData, err := json.Marshal(procedure)
if err != nil {
@@ -268,6 +269,7 @@
Procedures: strings.Join(procedures, ","),
ExtChannelAmount: msg.ExtChannelAmount,
DeviceMac: msg.DeviceMac,
+ DeviceName: msg.DeviceName,
}
oldRecord, err := model.NewDeviceSearch().SetDeviceId(msg.ID).First()
@@ -275,7 +277,8 @@
err = model.NewDeviceSearch().Create(deviceRecord)
} else if oldRecord.ExtChannelAmount != deviceRecord.ExtChannelAmount ||
oldRecord.Procedures != deviceRecord.Procedures ||
- oldRecord.DeviceMac != deviceRecord.DeviceMac {
+ oldRecord.DeviceMac != deviceRecord.DeviceMac ||
+ oldRecord.DeviceName != deviceRecord.DeviceName {
err = model.NewDeviceSearch().SetDeviceId(msg.ID).Save(deviceRecord)
}
@@ -345,6 +348,8 @@
err = slf.DealProcessModelData(pullDataResponse.Data)
case common.PullDataTypeDevice:
err = slf.DealDeviceData(pullDataResponse.Data)
+ case common.PullDataTypeProcessModelPlcAddress:
+ err = slf.DealProcessModelPlcAddressData(pullDataResponse.Data)
}
if err != nil {
logx.Infof("process pull data err :%s", err)
@@ -393,5 +398,38 @@
}
func (slf *PullDataResponse) DealDeviceData(data interface{}) error {
+ //宸插湪鍒殑topic澶勭悊
+ return nil
+}
+
+func (slf *PullDataResponse) DealProcessModelPlcAddressData(data interface{}) error {
+ var addressList []*model.ProcessModelPlcAddress
+ err := mapstructure.Decode(data, &addressList)
+ if err != nil {
+ return err
+ }
+ deviceIDs := make([]string, 0, len(addressList))
+ for _, item := range addressList {
+ deviceIDs = append(deviceIDs, item.DeviceID)
+ }
+ existsRecords, err := model.NewProcessModelPlcAddressSearch().SetDeviceIDs(deviceIDs).FindNotTotal()
+ if err != nil {
+ return err
+ }
+
+ existsRecordsMap := make(map[string]*model.ProcessModelPlcAddress, len(existsRecords))
+ for _, item := range existsRecords {
+ existsRecordsMap[item.DeviceID] = item
+ }
+
+ for _, item := range addressList {
+ if v, exists := existsRecordsMap[item.DeviceID]; !exists {
+ item.ID = 0
+ err = model.NewProcessModelPlcAddressSearch().Create(item)
+ } else if v.Address != item.Address {
+ v.Address = item.Address
+ err = model.NewProcessModelPlcAddressSearch().Save(v)
+ }
+ }
return nil
}
--
Gitblit v1.8.0