object_notice.go
3.8 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package domain
import (
"context"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/db/transaction"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-bchart/cmd/chart-server/interanl/pkg/gateway/bytelib"
"gorm.io/plugin/soft_delete"
)
type ObjectNotice struct {
Id int64 `json:"id"` // ID
CompanyId int64 `json:"companyId"` //公司ID
TableId int `json:"tableId"` //表ID
TableType string `json:"tableType"` //表类型 导入模块(主表、附表、分表) 拆解(方案、子过程、计算表) 计算(计算项、计算集)
ObjectType string `json:"objectType"` //模块 导入模块、拆解模块、计算模块
Event string `json:"event"` //事件
TableAffectedList []int `json:"TableAffectedList"` //级联影响到的表
DataChanged bool `json:"dataChanged"` //数据有更新
StructChanged bool `json:"structChanged"` //结构有更新
Status int `json:"status"` //状态 1-等待处理 2-处理完成 3-处理失败
UpdateTable int `json:"updateTable"` //更新表结构
UpdateData int `json:"updateData"` //更新表数据
Message string `json:"message"` //错误信息
Retry int `json:"retry"` //重试次数
MetaData ObjectNoticeMetaData `json:"metaData"` //模块信息
Version int `json:",omitempty"` //版本
IsDel soft_delete.DeletedAt `json:"isDel"` //删除标记
CreatedAt int64 `json:"createdAt,omitempty"` //创建时间
UpdatedAt int64 `json:"updatedAt,omitempty"` //更新时间
DeletedAt int64 `json:"deletedAt,omitempty"` //删除时间
}
type ObjectNoticeMetaData struct {
Module int `json:"module"` // 导入模块判断是否 取消应用
Status int `json:"status"` // 拆解模块判断是否 取消
}
var (
ObjectNoticeStatusWait = 1 //等待处理
ObjectNoticeStatusDone = 2 //处理完成
ObjectNoticeStatusError = 3 //处理失败
)
type ObjectNoticeRepository interface {
Insert(ctx context.Context, conn transaction.Conn, dm *ObjectNotice) (*ObjectNotice, error)
Update(ctx context.Context, conn transaction.Conn, dm *ObjectNotice) (*ObjectNotice, error)
UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ObjectNotice) (*ObjectNotice, error)
Delete(ctx context.Context, conn transaction.Conn, dm *ObjectNotice) (*ObjectNotice, error)
FindOne(ctx context.Context, conn transaction.Conn, id int64) (*ObjectNotice, error)
Find(ctx context.Context, conn transaction.Conn, queryOptions map[string]interface{}) (int64, []*ObjectNotice, error)
}
func (m *ObjectNotice) Identify() interface{} {
if m.Id == 0 {
return nil
}
return m.Id
}
// IsDeletedEvent 是否删除事件
func (m *ObjectNotice) IsDeletedEvent() bool {
deletedEvents := []string{
"table.delete",
"table.query.set.delete",
}
for _, event := range deletedEvents {
if m.Event == event {
return true
}
}
//导入模块 取消应用和应用于
if m.Event == "table.apply-on" {
if m.MetaData.Module&bytelib.ModuleChartTemplate == 0 {
return true
}
}
//拆解模块 方案启用、禁用
//计算模块 计算项和计算集启用、禁用
if m.Event == "table.query.set.update.status" {
if m.MetaData.Status&bytelib.ModuleDigitalCenter == 0 {
return true
}
}
return false
}