task_record.go
3.3 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
package domain
import (
"strings"
"time"
)
const (
AssistLevel1 int = 1 // 未辅导
AssistLevel2 int = 2 // 已辅导-辅导对里程碑无作用
AssistLevel3 int = 3 // 已辅导-辅导对里程碑作用一般
AssistLevel4 int = 4 // 已辅导-辅导对里程碑作用很好
)
const (
AnomalyStateInit int = -1 // 反馈初始值
AnomalyState0 int = 0 // 反馈异常
AnomalyState1 int = 1 // 反馈正常
)
const (
AssistStateInit int = -1 // 辅导初始值
AssistState0 int = 0 // 辅导异常
AssistState1 int = 1 // 辅导正常
)
// TaskRecord 任务反馈情况记录
type TaskRecord struct {
Id int `json:"id,string" comment:"记录ID"`
CompanyId int `json:"companyId,string" comment:"公司ID"`
StaffAssessId int `json:"staffAssessId,string" comment:"每日评估的ID"`
TaskId int `json:"taskId,string" comment:"任务ID"`
TaskCategory string `json:"taskCategory" comment:"任务类别"`
TaskName string `json:"taskName" comment:"任务名称"`
TaskAlias string `json:"taskAlias" comment:"任务别名"`
TaskLeader TaskLeader `json:"taskLeader" comment:"任务负责人"`
RemarkContent []RemarkText `json:"remarkContent" comment:"反馈填写"`
AssistLevel int `json:"assistLevel" comment:"上级辅导情况"`
AssistContent string `json:"assistContent" comment:"上级辅导内容"`
AnomalyState int `json:"anomalyState" comment:"反馈异常状态(-1初始状态、0异常、1正常)"`
AssistState int `json:"assistState" comment:"辅导异常状态(-1初始状态、0异常、1正常)"`
TaskStages []TaskStage `json:"taskStages" comment:"里程碑列表"`
TaskStageCheck TaskStage `json:"taskStageCheck" comment:"提交的里程碑"`
CreatedAt time.Time `json:"createdAt" comment:"创建时间"`
UpdatedAt time.Time `json:"updatedAt" comment:"更新时间"`
DeletedAt *time.Time `json:"deletedAt" comment:"删除时间"`
TaskCreatedBy int `json:"taskCreatedBy" comment:"任务的创建方式"` // 任务的创建方式 0: 模板导入创建,1:主动创建
}
type TaskRecordRepository interface {
Insert(t *TaskRecord) (*TaskRecord, error)
Remove(t *TaskRecord) (*TaskRecord, error)
FindOne(queryOptions map[string]interface{}) (*TaskRecord, error)
Find(queryOptions map[string]interface{}) (int, []*TaskRecord, error)
}
// 是否是辅导异常
func (r *TaskRecord) IsAssistAnomaly() bool {
r.AssistContent = strings.TrimSpace(r.AssistContent)
if r.AssistLevel == AssistLevel1 || r.AssistContent == "无" || len(r.AssistContent) == 0 {
return true
}
return false
}
// 是否是里程碑异常
func (r *TaskRecord) IsTaskStageAnomaly() bool {
if r.TaskStageCheck.Id == 0 {
return false
}
realCompletedAt := r.TaskStageCheck.RealCompletedAt
if realCompletedAt == 0 {
//假设现在完成
realCompletedAt = time.Now().Unix()
}
if r.TaskStageCheck.PlanCompletedAt < realCompletedAt {
//逾期完成,或者预期未完成
return true
}
return false
}
// 是否是反馈异常
func (r *TaskRecord) IsRemarkAnomaly() bool {
all := ""
for _, val := range r.RemarkContent {
txt := strings.TrimSpace(val.RemarkText)
all += txt
}
if len(all) == 0 || all == "无" {
return true
}
return false
}