zhangqian
2023-10-20 a303829fe0c19d5683d8dddb5a9a8d0001d40ef5
保存全部plc地址
4个文件已修改
27 ■■■■ 已修改文件
main.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/device_plc.go 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nsq/msg_handler.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/device_plc.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.go
@@ -39,6 +39,8 @@
        "production_progress",
        "work_order",
        "task_status_sync",
        "device",
        "device_plc",
    }
    agent := serf.InitAgent("apsClient", syncTables, sqlitex.GetDB())
model/device_plc.go
@@ -13,6 +13,7 @@
    // DevicePlc 设备的PLC配置
    DevicePlc struct {
        gorm.Model
        DeviceID   string             `gorm:"unique;column:device_id;type:varchar(255);not null;default ''" json:"deviceID"` //设备编号
        Brand      string             `gorm:"type:varchar(191)" json:"brand"`
        Method     constvar.PlcMethod `gorm:"type:varchar(191)" json:"method"`
        Address    string             `gorm:"type:varchar(191)" json:"address"` //plc ip地址, method = modbusTCP用
@@ -84,6 +85,11 @@
    return slf
}
func (slf *DevicePlcSearch) SetDeviceId(deviceId string) *DevicePlcSearch {
    slf.DeviceID = deviceId
    return slf
}
func (slf *DevicePlcSearch) build() *gorm.DB {
    var db = slf.Orm.Table(slf.TableName())
@@ -91,6 +97,10 @@
        db = db.Where("id = ?", slf.ID)
    }
    if slf.DeviceID != "" {
        db = db.Where("device_id = ?", slf.DeviceID)
    }
    if slf.Order != "" {
        db = db.Order(slf.Order)
    }
nsq/msg_handler.go
@@ -297,8 +297,16 @@
    }
    detail, err := json.Marshal(record.Details)
    record.Detail = string(detail)
    record.ID = 1
    err = model.NewDevicePlcSearch().SetId(record.ID).Save(&record)
    oldPlcRecord, err := model.NewDevicePlcSearch().SetDeviceId(msg.ID).First()
    if err == gorm.ErrRecordNotFound {
        err = model.NewDevicePlcSearch().Create(&record)
    } else if record.Port != oldPlcRecord.Port ||
        record.Method != oldPlcRecord.Method ||
        record.Address != oldPlcRecord.Address ||
        record.Detail != oldPlcRecord.Detail {
        err = model.NewDevicePlcSearch().SetDeviceId(msg.ID).Save(&record)
    }
    if err != nil {
        return err
    }
service/device_plc.go
@@ -1,6 +1,7 @@
package service
import (
    "apsClient/conf"
    "apsClient/model"
    "apsClient/model/request"
    "apsClient/pkg/ecode"
@@ -18,7 +19,7 @@
}
func (slf DevicePlcService) GetDevicePlc() (*model.DevicePlc, int) {
    DevicePlc, err := model.NewDevicePlcSearch().SetOrder("id desc").First()
    DevicePlc, err := model.NewDevicePlcSearch().SetDeviceId(conf.Conf.System.DeviceId).First()
    if err == gorm.ErrRecordNotFound {
        return &model.DevicePlc{
            Brand:      "",