device_running_data.go
1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package domain
import (
"fmt"
"time"
)
const DeviceMaxSingleProductCount = 10000
// 设备运行数据
type DeviceRunningData struct {
// 数据采集ID
DeviceCollectionId int64 `json:"deviceCollectionId,string"`
// 车间名
WorkShopName string `json:"workShopName"`
// 采集时间
CollectionTime time.Time `json:"collectionTime"`
// 设备名
//DeviceSn string `json:"deviceSn"`
// 设备编号
DeviceCode string `json:"deviceCode"`
// 设备类型
DeviceType string `json:"deviceType"`
// 启动状态:1:启动,0:停止
StartupStatus int `json:"startupStatus"`
// 通讯状态:1:通讯正常,0:设备未上电或与采集端通讯故障
ComStatus int `json:"comStatus"`
// 报警状态:1:故障,0:正常
Alarm int `json:"alarm"`
// 附加数据
// 匹配数目
Count int `json:"count"`
// 当天数量
TodayTotal int `json:"today_total"`
// 合计数目
Total int `json:"total"`
// 炸机前段温度:炸机前段当前温度 YZJ1 油炸机
//FrontTemp float64 `json:"frontTemp"`
// 炸机前段温度:炸机前段当前温度 YZJ2 油炸机
Temp1 float64 `json:"temp1"`
// 炸机前段温度:炸机前段当前温度 YZJ2 油炸机
Temp2 float64 `json:"temp2"`
// 当前产品种类(产品编号)
ProductType string `json:"productType"`
// 日期
Date string `json:"date"`
// 额外数据
// 单位数据 比如:1串/0.1kg weight = count * unitQuantity
UnitQuantity float64 `json:"unitQuantity"`
}
func (data *DeviceRunningData) Valid() (bool, error) {
var (
result = false
)
if data.Count > DeviceMaxSingleProductCount {
data.Count = 0
return result, fmt.Errorf("设备数据异常: 生产数量超过:%v", DeviceMaxSingleProductCount)
}
if data.StartupStatus == 0 {
return result, fmt.Errorf("设备数据异常: 启动0")
}
if data.ComStatus == 0 {
return result, fmt.Errorf("设备数据异常: 通讯0")
}
return true, nil
}