evaluation_template.go
4.1 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package domain
import (
"time"
)
const (
TemplateStateWaitConfig int = 0 // 模板状态-待完成配置
TemplateStateWaitActive int = 1 // 模板状态-待启用
TemplateStateEnable int = 2 // 模板状态-启用
TemplateStateDisable int = 3 // 模板状态-停用
)
const (
LinkNodeSelfAssessment int = 1 // 环节-填写反馈自评
LinkNodeAllInvite int = 2 // 环节-360°邀请
LinkNodeAllAssessment int = 3 // 环节-360°评估
LinkNodeSuperiorAssessment int = 4 // 环节-上级评估
LinkNodeViewResult int = 5 // 环节-绩效结果查看
//LinkNodeAssessment int = 1 // 环节-评估(自评、360°评估、上级评估)
//LinkNodeAllInvite int = 2 // 环节-360°邀请
//LinkNodeViewResult int = 3 // 环节-绩效结果查看
)
const (
KpiCycleDay int = 1 // 考核周期-日
KpiCycleWeek int = 2 // 考核周期-周
KpiCycleMonth int = 3 // 考核周期-月
)
type EntryItem struct {
Title string `json:"title" comment:"填写标题"`
HintText string `json:"hintText" comment:"文本内容提示"`
}
// NodeContent 评估内容
type NodeContent struct {
Category string `json:"category" comment:"类别"`
Name string `json:"name" comment:"名称"`
RuleId int64 `json:"ruleId" comment:"评估规则ID"`
PromptTitle string `json:"promptTitle" comment:"提示项标题"`
PromptText string `json:"promptText" comment:"提示项正文"`
EntryItems []*EntryItem `json:"entryItems" comment:"填写项"`
}
// NodeAllInvite 360°邀请
type NodeAllInvite struct {
ParentDifferentIds []int64 `json:"parentDifferentIds" comment:"不同上级同事ID"`
ParentSameIds []int64 `json:"parentSameIds" comment:"相同上级同事ID"`
}
//// NodeKpiResult 绩效结果查看
//type NodeKpiResult struct {
//}
// 评估流程、环节
type LinkNode struct {
Id int64 `json:"id,string" comment:"环节ID"`
Type int `json:"type" comment:"环节类型"`
Name string `json:"name" comment:"环节名称"`
Describe string `json:"describe" comment:"环节描述"`
NodeContents []*NodeContent `json:"nodeContents" comment:"环节-评估内容"`
NodeAllInvite *NodeAllInvite `json:"nodeAllInvite" comment:"360°邀请人员"`
TimeStart *time.Time `json:"timeStart" comment:"起始时间"`
TimeEnd *time.Time `json:"timeEnd" comment:"截至时间"`
KpiCycle int `json:"state" comment:"考核周期(1日、2周、3月)"`
}
// 评估模板
type EvaluationTemplate struct {
Id int64 `json:"id,string" comment:"ID"`
Name string `json:"name" comment:"名称"`
Describe string `json:"describe" comment:"描述"`
CompanyId int64 `json:"companyId,string" comment:"公司ID"`
CreatorId int64 `json:"creatorId,string" comment:"创建人ID"`
State int `json:"state" comment:"状态(0待完成配置、1待启用、2启用、3停用)"`
LinkNodes []*LinkNode `json:"linkNodes" comment:"评估流程"`
CreatedAt time.Time `json:"createdAt" comment:"创建时间"`
UpdatedAt time.Time `json:"updatedAt" comment:"更新时间"`
DeletedAt *time.Time `json:"deletedAt" comment:"删除时间"`
}
//type EvaluationLink struct {
// NodeSelfAssessment *LinkNode `json:"nodeSelfAssessment" comment:"填写反馈自评"`
// NodeAllInvite *LinkNode `json:"nodeAllInvite" comment:"360°邀请"`
// NodeAllAssessment *LinkNode `json:"nodeAllAssessment" comment:"360°评估"`
// NodeSuperiorAssessment *LinkNode `json:"nodeSuperiorAssessment" comment:"上级评估"`
// NodeViewResult *LinkNode `json:"nodeViewResult" comment:"绩效结果查看"`
//}
type EvaluationTemplateRepository interface {
Insert(template *EvaluationTemplate) (*EvaluationTemplate, error)
Remove(template *EvaluationTemplate) (*EvaluationTemplate, error)
FindOne(queryOptions map[string]interface{}) (*EvaluationTemplate, error)
Find(queryOptions map[string]interface{}, excludeColumns ...string) (int64, []*EvaluationTemplate, error)
Count(queryOptions map[string]interface{}) (int64, error)
}