正在显示
7 个修改的文件
包含
332 行增加
和
189 行删除
@@ -255,3 +255,11 @@ func CreateTaskLevelRepository(options map[string]interface{}) domain.TaskLevelR | @@ -255,3 +255,11 @@ func CreateTaskLevelRepository(options map[string]interface{}) domain.TaskLevelR | ||
255 | } | 255 | } |
256 | return repository.NewTaskLevelRepository(transactionContext) | 256 | return repository.NewTaskLevelRepository(transactionContext) |
257 | } | 257 | } |
258 | + | ||
259 | +func CreateTaskAnomalyRepository(options map[string]interface{}) domain.TaskAnomalyRepository { | ||
260 | + var transactionContext *pg.TransactionContext | ||
261 | + if value, ok := options["transactionContext"]; ok { | ||
262 | + transactionContext = value.(*pg.TransactionContext) | ||
263 | + } | ||
264 | + return repository.NewTaskAnomalyRepository(transactionContext) | ||
265 | +} |
@@ -11,8 +11,6 @@ import ( | @@ -11,8 +11,6 @@ import ( | ||
11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | 11 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
12 | ) | 12 | ) |
13 | 13 | ||
14 | -//TODO 检查任务里程碑反馈, 记录异常情况 | ||
15 | - | ||
16 | // 检查昨日提交的任务里程碑反馈 | 14 | // 检查昨日提交的任务里程碑反馈 |
17 | func CheckYesterdayTaskRecord() { | 15 | func CheckYesterdayTaskRecord() { |
18 | nowTime := time.Now() | 16 | nowTime := time.Now() |
@@ -2,11 +2,15 @@ package service | @@ -2,11 +2,15 @@ package service | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "fmt" | 4 | "fmt" |
5 | + "time" | ||
5 | 6 | ||
7 | + "github.com/linmadan/egglib-go/core/application" | ||
6 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" | 8 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" |
7 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | 9 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
8 | ) | 10 | ) |
9 | 11 | ||
12 | +// TODO 检查任务里程碑反馈, 记录异常情况 | ||
13 | + | ||
10 | func checkTaskRecordV2(param *domain.TaskRecord) error { | 14 | func checkTaskRecordV2(param *domain.TaskRecord) error { |
11 | transactionContext, err := factory.CreateTransactionContext(nil) | 15 | transactionContext, err := factory.CreateTransactionContext(nil) |
12 | if err != nil { | 16 | if err != nil { |
@@ -21,7 +25,6 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | @@ -21,7 +25,6 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | ||
21 | taskRepo := factory.CreateTaskRepository(map[string]interface{}{ | 25 | taskRepo := factory.CreateTaskRepository(map[string]interface{}{ |
22 | "transactionContext": transactionContext, | 26 | "transactionContext": transactionContext, |
23 | }) | 27 | }) |
24 | - | ||
25 | _, taskDataList, err := taskRepo.Find(map[string]interface{}{"id": param.TaskId}) | 28 | _, taskDataList, err := taskRepo.Find(map[string]interface{}{"id": param.TaskId}) |
26 | if err != nil { | 29 | if err != nil { |
27 | return fmt.Errorf("获取任务数据失败:%s", err) | 30 | return fmt.Errorf("获取任务数据失败:%s", err) |
@@ -30,17 +33,85 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | @@ -30,17 +33,85 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | ||
30 | return nil | 33 | return nil |
31 | } | 34 | } |
32 | taskData := taskDataList[0] | 35 | taskData := taskDataList[0] |
36 | + | ||
37 | + //userDao := dao.NewUserDao(map[string]interface{}{"transactionContext": transactionContext}) | ||
38 | + | ||
39 | + // 反馈异常,里程碑异常, 辅导异常 | ||
40 | + // 检查反馈异常 | ||
41 | + if param.IsRemarkAnomaly() { | ||
42 | + taskData.Anomaly += 1 | ||
43 | + // err = isAssessFlag(transactionContext, taskData) | ||
44 | + // if err != nil { | ||
45 | + // return err | ||
46 | + // } | ||
47 | + } else { | ||
48 | + taskData.Anomaly = 0 | ||
49 | + } | ||
50 | + // 检查里程碑异常 | ||
51 | + if param.IsTaskStageAnomaly() { | ||
52 | + taskData.WarnFlag = domain.TaskWarn | ||
53 | + err := isWarnFlag(transactionContext, taskData) | ||
54 | + if err != nil { | ||
55 | + return err | ||
56 | + } | ||
57 | + } else { | ||
58 | + taskData.WarnFlag = domain.TaskWarnNull | ||
59 | + } | ||
60 | + // 检查辅导异常 | ||
61 | + if param.IsAssistAnomaly() { | ||
62 | + taskData.AssistFlag += 1 | ||
63 | + err = isAssistFlag(transactionContext, taskData) | ||
64 | + if err != nil { | ||
65 | + return err | ||
66 | + } | ||
67 | + } else { | ||
68 | + taskData.AssistFlag = 0 | ||
69 | + } | ||
70 | + // 保存任务数据 | ||
71 | + err = taskRepo.Save(taskData) | ||
72 | + if err != nil { | ||
73 | + return fmt.Errorf("保存任务数据:%s", err) | ||
74 | + } | ||
75 | + | ||
76 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
77 | + return err | ||
78 | + } | ||
79 | + return nil | ||
80 | +} | ||
81 | + | ||
82 | +// 处理里程碑异常的情况 | ||
83 | +func isWarnFlag(transactionContext application.TransactionContext, taskData *domain.Task) error { | ||
84 | + taskAnomalyRepo := factory.CreateTaskAnomalyRepository(map[string]interface{}{ | ||
85 | + "transactionContext": transactionContext, | ||
86 | + }) | ||
87 | + | ||
88 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
89 | + "transactionContext": transactionContext, | ||
90 | + }) | ||
91 | + //获取任务Leader的数据 | ||
92 | + _, useList, err := userRepo.Find(map[string]interface{}{"id": taskData.Leader.Id, "limit": 1}) | ||
93 | + if err != nil { | ||
94 | + return fmt.Errorf("获取任务Leader:%s", err) | ||
95 | + } | ||
96 | + if len(useList) == 0 { | ||
97 | + return nil | ||
98 | + } | ||
99 | + _, oldAnomaly, err := taskAnomalyRepo.Find(map[string]interface{}{"isLast": 1, "category": 2, "limit": 1}) | ||
100 | + if err != nil { | ||
101 | + return fmt.Errorf("查询反馈异常的数据:%s", err) | ||
102 | + } | ||
103 | + // 异常就通知自己和上级 | ||
33 | anomalyDataTmp := domain.TaskAnomaly{ | 104 | anomalyDataTmp := domain.TaskAnomaly{ |
34 | Id: taskData.Id, | 105 | Id: taskData.Id, |
35 | CreatedAt: taskData.CreatedAt, | 106 | CreatedAt: taskData.CreatedAt, |
36 | UpdatedAt: taskData.UpdatedAt, | 107 | UpdatedAt: taskData.UpdatedAt, |
37 | CompanyId: taskData.CompanyId, | 108 | CompanyId: taskData.CompanyId, |
38 | TaskId: taskData.Id, | 109 | TaskId: taskData.Id, |
39 | - Category: 0, | 110 | + Category: 1, |
40 | CurrentStage: taskData.CurrentStage, | 111 | CurrentStage: taskData.CurrentStage, |
41 | LastStage: taskData.LastStage, | 112 | LastStage: taskData.LastStage, |
42 | AssessFlag: 0, | 113 | AssessFlag: 0, |
43 | - WarnFlag: 0, | 114 | + WarnFlag: int(taskData.WarnFlag), |
44 | AssistFlag: 0, | 115 | AssistFlag: 0, |
45 | IsLast: 1, | 116 | IsLast: 1, |
46 | TaskLevel: taskData.LevelName, | 117 | TaskLevel: taskData.LevelName, |
@@ -48,45 +119,102 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | @@ -48,45 +119,102 @@ func checkTaskRecordV2(param *domain.TaskRecord) error { | ||
48 | TaskAlias: taskData.Alias, | 119 | TaskAlias: taskData.Alias, |
49 | TaskSortBy: taskData.SortBy, | 120 | TaskSortBy: taskData.SortBy, |
50 | TaskEndTime: taskData.EndTime, | 121 | TaskEndTime: taskData.EndTime, |
51 | - RecordBegin: 0, | ||
52 | - NoticeWho: []int64{}, | 122 | + RecordBegin: time.Now().Unix(), |
123 | + NoticeWho: []int64{taskData.Leader.Id, useList[0].ParentId}, | ||
53 | Marks: map[string]string{ | 124 | Marks: map[string]string{ |
54 | "a": "", "b": "", "c": "", "d": "", | 125 | "a": "", "b": "", "c": "", "d": "", |
55 | }, | 126 | }, |
56 | } | 127 | } |
57 | - var anomalyList []domain.TaskAnomaly | ||
58 | 128 | ||
59 | - // 检查反馈异常 | ||
60 | - if param.IsRemarkAnomaly() { | ||
61 | - taskData.Anomaly += 1 | ||
62 | - anomalyDataTmp.Category = 2 | ||
63 | - anomalyList = append(anomalyList, anomalyDataTmp) | ||
64 | - } else { | ||
65 | - taskData.Anomaly = 0 | ||
66 | - } | ||
67 | - // 检查里程碑异常 | ||
68 | - if param.IsTaskStageAnomaly() { | ||
69 | - taskData.WarnFlag = domain.TaskWarn | ||
70 | - anomalyDataTmp.Category = 1 | ||
71 | - anomalyList = append(anomalyList, anomalyDataTmp) | ||
72 | - } else { | ||
73 | - taskData.WarnFlag = domain.TaskWarnNull | 129 | + if len(oldAnomaly) > 0 { |
130 | + anomalyDataTmp.RecordBegin = oldAnomaly[0].RecordBegin | ||
131 | + anomalyDataTmp.WarnFlag = oldAnomaly[0].WarnFlag + 1 | ||
132 | + oldAnomaly[0].IsLast = 2 | ||
133 | + err = taskAnomalyRepo.Save(oldAnomaly[0]) | ||
134 | + if err != nil { | ||
135 | + return fmt.Errorf("更新里程碑异常记录:%s", err) | ||
136 | + } | ||
74 | } | 137 | } |
75 | - // 检查辅导异常 | ||
76 | - if param.IsAssistAnomaly() { | ||
77 | - taskData.AssistFlag += 1 | ||
78 | - anomalyDataTmp.Category = 3 | ||
79 | - anomalyList = append(anomalyList, anomalyDataTmp) | ||
80 | - } else { | ||
81 | - taskData.AssistFlag = 0 | 138 | + err = taskAnomalyRepo.Save(&anomalyDataTmp) |
139 | + if err != nil { | ||
140 | + return fmt.Errorf("保存里程碑异常记录:%s", err) | ||
82 | } | 141 | } |
142 | + return nil | ||
143 | +} | ||
83 | 144 | ||
84 | - err = taskRepo.Save(taskData) | 145 | +// 处理辅导异常的情况 |
146 | +func isAssistFlag(transactionContext application.TransactionContext, taskData *domain.Task) error { | ||
147 | + taskAnomalyRepo := factory.CreateTaskAnomalyRepository(map[string]interface{}{ | ||
148 | + "transactionContext": transactionContext, | ||
149 | + }) | ||
150 | + | ||
151 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
152 | + "transactionContext": transactionContext, | ||
153 | + }) | ||
154 | + //获取任务Leader的数据 | ||
155 | + _, useList, err := userRepo.Find(map[string]interface{}{"id": taskData.Leader.Id, "limit": 1}) | ||
85 | if err != nil { | 156 | if err != nil { |
86 | - return fmt.Errorf("保存任务数据:%s", err) | 157 | + return fmt.Errorf("获取任务Leader:%s", err) |
87 | } | 158 | } |
88 | - if err := transactionContext.CommitTransaction(); err != nil { | ||
89 | - return err | 159 | + if len(useList) == 0 { |
160 | + return nil | ||
161 | + } | ||
162 | + _, oldAnomaly, err := taskAnomalyRepo.Find(map[string]interface{}{"isLast": 1, "category": 3, "limit": 1}) | ||
163 | + if err != nil { | ||
164 | + return fmt.Errorf("查询反馈异常的数据:%s", err) | ||
165 | + } | ||
166 | + // 辅导异常通知该条任务负责人的上级;辅导异常超过3天,通知任务负责人的上上级 | ||
167 | + anomalyDataTmp := domain.TaskAnomaly{ | ||
168 | + Id: taskData.Id, | ||
169 | + CreatedAt: taskData.CreatedAt, | ||
170 | + UpdatedAt: taskData.UpdatedAt, | ||
171 | + CompanyId: taskData.CompanyId, | ||
172 | + TaskId: taskData.Id, | ||
173 | + Category: 3, | ||
174 | + CurrentStage: taskData.CurrentStage, | ||
175 | + LastStage: taskData.LastStage, | ||
176 | + AssessFlag: 0, | ||
177 | + WarnFlag: 0, | ||
178 | + AssistFlag: taskData.AssistFlag, | ||
179 | + IsLast: 1, | ||
180 | + TaskLevel: taskData.LevelName, | ||
181 | + TaskName: taskData.Name, | ||
182 | + TaskAlias: taskData.Alias, | ||
183 | + TaskSortBy: taskData.SortBy, | ||
184 | + TaskEndTime: taskData.EndTime, | ||
185 | + RecordBegin: time.Now().Unix(), | ||
186 | + NoticeWho: []int64{useList[0].ParentId}, | ||
187 | + Marks: map[string]string{ | ||
188 | + "a": "", "b": "", "c": "", "d": "", | ||
189 | + }, | ||
190 | + } | ||
191 | + if taskData.AssistFlag >= taskData.AssistFlagMax { | ||
192 | + //通知任务负责人的上上级 | ||
193 | + _, useList2, err := userRepo.Find(map[string]interface{}{"id": useList[0].ParentId, "limit": 1}) | ||
194 | + if err != nil { | ||
195 | + return fmt.Errorf("获取任务Leader:%s", err) | ||
196 | + } | ||
197 | + if len(useList2) > 0 { | ||
198 | + anomalyDataTmp.NoticeWho = append(anomalyDataTmp.NoticeWho, useList2[0].Id) | ||
199 | + } | ||
200 | + } | ||
201 | + if len(oldAnomaly) > 0 { | ||
202 | + anomalyDataTmp.RecordBegin = oldAnomaly[0].RecordBegin | ||
203 | + oldAnomaly[0].IsLast = 2 | ||
204 | + err = taskAnomalyRepo.Save(oldAnomaly[0]) | ||
205 | + if err != nil { | ||
206 | + return fmt.Errorf("更新里程碑异常记录:%s", err) | ||
207 | + } | ||
90 | } | 208 | } |
209 | + err = taskAnomalyRepo.Save(&anomalyDataTmp) | ||
210 | + if err != nil { | ||
211 | + return fmt.Errorf("保存里程碑异常记录:%s", err) | ||
212 | + } | ||
213 | + return nil | ||
214 | + | ||
215 | +} | ||
216 | + | ||
217 | +// 处理反馈异常的情况 | ||
218 | +func isAssessFlag(transactionContext application.TransactionContext, taskData *domain.Task) error { | ||
91 | return nil | 219 | return nil |
92 | } | 220 | } |
@@ -21,7 +21,7 @@ type TaskAnomaly struct { | @@ -21,7 +21,7 @@ type TaskAnomaly struct { | ||
21 | TaskAlias string `json:"taskAlias"` // 任务别名 | 21 | TaskAlias string `json:"taskAlias"` // 任务别名 |
22 | TaskSortBy TaskSortBy `json:"taskSortBy"` // 优先级排序;值越小优先级越高 | 22 | TaskSortBy TaskSortBy `json:"taskSortBy"` // 优先级排序;值越小优先级越高 |
23 | TaskEndTime int64 `json:"taskEndTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 | 23 | TaskEndTime int64 `json:"taskEndTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 |
24 | - RecordBegin int `json:"recordBegin"` // 异常记录的开始时间 | 24 | + RecordBegin int64 `json:"recordBegin"` // 异常记录的开始时间 |
25 | NoticeWho []int64 `json:"noticeWho"` // 异常记录消息通知的人 | 25 | NoticeWho []int64 `json:"noticeWho"` // 异常记录消息通知的人 |
26 | Marks map[string]string `json:"marks"` // 已经操作的标记 | 26 | Marks map[string]string `json:"marks"` // 已经操作的标记 |
27 | } | 27 | } |
@@ -26,7 +26,7 @@ type TaskAnomaly struct { | @@ -26,7 +26,7 @@ type TaskAnomaly struct { | ||
26 | TaskAlias string `pg:"task_alias"` // 任务别名 | 26 | TaskAlias string `pg:"task_alias"` // 任务别名 |
27 | TaskSortBy int `pg:"task_sort_by"` // 优先级排序;值越小优先级越高 | 27 | TaskSortBy int `pg:"task_sort_by"` // 优先级排序;值越小优先级越高 |
28 | TaskEndTime int64 `pg:"task_end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 | 28 | TaskEndTime int64 `pg:"task_end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 |
29 | - RecordBegin int `pg:"record_begin"` // 异常记录的开始时间 | 29 | + RecordBegin int64 `pg:"record_begin"` // 异常记录的开始时间 |
30 | NoticeWho []int64 `pg:"notice_who"` // 异常记录消息通知的人 | 30 | NoticeWho []int64 `pg:"notice_who"` // 异常记录消息通知的人 |
31 | Marks map[string]string `pg:"marks"` // 已经操作的标记 | 31 | Marks map[string]string `pg:"marks"` // 已经操作的标记 |
32 | } | 32 | } |
@@ -14,75 +14,67 @@ import ( | @@ -14,75 +14,67 @@ import ( | ||
14 | 14 | ||
15 | //任务 | 15 | //任务 |
16 | 16 | ||
17 | -type TaskRepository struct { | 17 | +type TaskAnomalyRepository struct { |
18 | transactionContext *pgTransaction.TransactionContext | 18 | transactionContext *pgTransaction.TransactionContext |
19 | } | 19 | } |
20 | 20 | ||
21 | -var _ domain.TaskRepository = (*TaskRepository)(nil) | 21 | +var _ domain.TaskAnomalyRepository = (*TaskAnomalyRepository)(nil) |
22 | 22 | ||
23 | -func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *TaskRepository { | ||
24 | - return &TaskRepository{transactionContext: transactionContext} | 23 | +func NewTaskAnomalyRepository(transactionContext *pgTransaction.TransactionContext) *TaskAnomalyRepository { |
24 | + return &TaskAnomalyRepository{transactionContext: transactionContext} | ||
25 | } | 25 | } |
26 | 26 | ||
27 | -func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { | ||
28 | - return &domain.Task{ | ||
29 | - Id: d.Id, | ||
30 | - CreatedAt: d.CreatedAt, | ||
31 | - UpdatedAt: d.UpdatedAt, | ||
32 | - DeletedAt: d.DeletedAt, | ||
33 | - CompanyId: d.CompanyId, | ||
34 | - Name: d.Name, | ||
35 | - Alias: d.Alias, | ||
36 | - Leader: d.Leader, | ||
37 | - Status: domain.TaskState(d.Status), | ||
38 | - Level: d.Level, | ||
39 | - LevelName: d.LevelName, | ||
40 | - SortBy: domain.TaskSortBy(d.SortBy), | ||
41 | - EndTime: d.EndTime, | ||
42 | - UseEndTime: d.UseEndTime, | ||
43 | - RelatedUser: d.RelatedUser, | ||
44 | - RunAt: d.RunAt, | ||
45 | - StopAt: d.StopAt, | ||
46 | - Anomaly: d.Anomaly, | ||
47 | - WarnFlag: domain.TaskWarnFlag(d.WarnFlag), | ||
48 | - AssistFlag: d.AssistFlag, | ||
49 | - AssistFlagMax: d.AssistFlagMax, | ||
50 | - CurrentStage: d.CurrentStage, | ||
51 | - LastStage: d.LastStage, | ||
52 | - CreatedBy: d.CreatedBy, | 27 | +func (repo *TaskAnomalyRepository) TransformToDomain(d *models.TaskAnomaly) *domain.TaskAnomaly { |
28 | + return &domain.TaskAnomaly{ | ||
29 | + Id: d.Id, | ||
30 | + CreatedAt: d.CreatedAt, | ||
31 | + UpdatedAt: d.UpdatedAt, | ||
32 | + CompanyId: d.CompanyId, | ||
33 | + TaskId: d.TaskId, | ||
34 | + Category: d.Category, | ||
35 | + CurrentStage: d.CurrentStage, | ||
36 | + LastStage: d.LastStage, | ||
37 | + AssessFlag: d.AssessFlag, | ||
38 | + WarnFlag: d.WarnFlag, | ||
39 | + AssistFlag: d.AssistFlag, | ||
40 | + IsLast: d.IsLast, | ||
41 | + TaskLevel: d.TaskLevel, | ||
42 | + TaskName: d.TaskName, | ||
43 | + TaskAlias: d.TaskAlias, | ||
44 | + TaskSortBy: domain.TaskSortBy(d.TaskSortBy), | ||
45 | + TaskEndTime: d.TaskEndTime, | ||
46 | + RecordBegin: d.RecordBegin, | ||
47 | + NoticeWho: d.NoticeWho, | ||
48 | + Marks: d.Marks, | ||
53 | } | 49 | } |
54 | } | 50 | } |
55 | 51 | ||
56 | -func (repo *TaskRepository) Save(param *domain.Task) error { | 52 | +func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { |
57 | param.UpdatedAt = time.Now() | 53 | param.UpdatedAt = time.Now() |
58 | if param.Id == 0 { | 54 | if param.Id == 0 { |
59 | param.CreatedAt = time.Now() | 55 | param.CreatedAt = time.Now() |
60 | } | 56 | } |
61 | - m := models.Task{ | ||
62 | - Id: param.Id, | ||
63 | - CreatedAt: param.CreatedAt, | ||
64 | - UpdatedAt: param.UpdatedAt, | ||
65 | - DeletedAt: param.DeletedAt, | ||
66 | - Name: param.Name, | ||
67 | - Alias: param.Alias, | ||
68 | - CompanyId: param.CompanyId, | ||
69 | - Leader: param.Leader, | ||
70 | - Status: int(param.Status), | ||
71 | - Level: param.Level, | ||
72 | - LevelName: param.LevelName, | ||
73 | - RelatedUser: param.RelatedUser, | ||
74 | - LastStage: param.LastStage, | ||
75 | - RunAt: param.RunAt, | ||
76 | - StopAt: param.StopAt, | ||
77 | - Anomaly: param.Anomaly, | ||
78 | - WarnFlag: int(param.WarnFlag), | ||
79 | - CurrentStage: param.CurrentStage, | ||
80 | - SortBy: int(param.SortBy), | ||
81 | - EndTime: param.EndTime, | ||
82 | - UseEndTime: param.UseEndTime, | ||
83 | - AssistFlag: param.AssistFlag, | ||
84 | - AssistFlagMax: param.AssistFlagMax, | ||
85 | - CreatedBy: param.CreatedBy, | 57 | + m := models.TaskAnomaly{ |
58 | + Id: param.Id, | ||
59 | + CreatedAt: param.CreatedAt, | ||
60 | + UpdatedAt: param.UpdatedAt, | ||
61 | + CompanyId: param.CompanyId, | ||
62 | + TaskId: param.TaskId, | ||
63 | + Category: param.Category, | ||
64 | + CurrentStage: param.CurrentStage, | ||
65 | + LastStage: param.LastStage, | ||
66 | + AssessFlag: param.AssessFlag, | ||
67 | + WarnFlag: param.WarnFlag, | ||
68 | + AssistFlag: param.AssistFlag, | ||
69 | + IsLast: param.IsLast, | ||
70 | + TaskLevel: param.TaskLevel, | ||
71 | + TaskName: param.TaskName, | ||
72 | + TaskAlias: param.TaskAlias, | ||
73 | + TaskSortBy: int(param.TaskSortBy), | ||
74 | + TaskEndTime: param.TaskEndTime, | ||
75 | + RecordBegin: param.RecordBegin, | ||
76 | + NoticeWho: param.NoticeWho, | ||
77 | + Marks: param.Marks, | ||
86 | } | 78 | } |
87 | db := repo.transactionContext.PgTx | 79 | db := repo.transactionContext.PgTx |
88 | if m.Id == 0 { | 80 | if m.Id == 0 { |
@@ -100,28 +92,16 @@ func (repo *TaskRepository) Save(param *domain.Task) error { | @@ -100,28 +92,16 @@ func (repo *TaskRepository) Save(param *domain.Task) error { | ||
100 | return nil | 92 | return nil |
101 | } | 93 | } |
102 | 94 | ||
103 | -func (repo *TaskRepository) Remove(id int) error { | 95 | +func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) (*domain.TaskAnomaly, error) { |
104 | tx := repo.transactionContext.PgTx | 96 | tx := repo.transactionContext.PgTx |
105 | - nowTime := time.Now() | ||
106 | - _, err := tx.Model(&models.Task{}). | ||
107 | - Where("id=?", id). | ||
108 | - Set("deleted_at=?", nowTime). | ||
109 | - Update() | ||
110 | - return err | ||
111 | - | ||
112 | -} | ||
113 | - | ||
114 | -func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domain.Task, error) { | ||
115 | - tx := repo.transactionContext.PgTx | ||
116 | - m := new(models.Task) | 97 | + m := new(models.TaskAnomaly) |
117 | query := tx.Model(m) | 98 | query := tx.Model(m) |
118 | - query.Where("deleted_at isnull") | ||
119 | if id, ok := queryOptions["id"]; ok { | 99 | if id, ok := queryOptions["id"]; ok { |
120 | query.Where("id=?", id) | 100 | query.Where("id=?", id) |
121 | } | 101 | } |
122 | if err := query.First(); err != nil { | 102 | if err := query.First(); err != nil { |
123 | if errors.Is(err, pg.ErrNoRows) { | 103 | if errors.Is(err, pg.ErrNoRows) { |
124 | - return nil, fmt.Errorf("没有找到task数据") | 104 | + return nil, fmt.Errorf("没有找到TaskAnomaly数据") |
125 | } else { | 105 | } else { |
126 | return nil, err | 106 | return nil, err |
127 | } | 107 | } |
@@ -130,33 +110,10 @@ func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domai | @@ -130,33 +110,10 @@ func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domai | ||
130 | return u, nil | 110 | return u, nil |
131 | } | 111 | } |
132 | 112 | ||
133 | -func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*domain.Task, error) { | 113 | +func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (int, []*domain.TaskAnomaly, error) { |
134 | tx := repo.transactionContext.PgTx | 114 | tx := repo.transactionContext.PgTx |
135 | - var m []*models.Task | ||
136 | - query := tx.Model(&m). | ||
137 | - Where("deleted_at isnull"). | ||
138 | - Limit(20) | ||
139 | - if val, ok := queryOptions["name"]; ok { | ||
140 | - query.Where("task.name like ?", val) | ||
141 | - } | ||
142 | - if val, ok := queryOptions["companyId"]; ok { | ||
143 | - query.Where("task.company_id = ?", val) | ||
144 | - } | ||
145 | - if val, ok := queryOptions["id"]; ok { | ||
146 | - query.Where("task.id=?", val) | ||
147 | - } | ||
148 | - if val, ok := queryOptions["leaderId"]; ok { | ||
149 | - query.Where("task.leader->>'id'=?", val) | ||
150 | - } | ||
151 | - if val, ok := queryOptions["aliasOrLeader"]; ok { | ||
152 | - query.Where(`task.alias like ? or task.leader->>'name' like ?`, val, val) | ||
153 | - } | ||
154 | - if val, ok := queryOptions["status"]; ok { | ||
155 | - query.Where("task.status=?", val) | ||
156 | - } | ||
157 | - if val, ok := queryOptions["createdBy"]; ok { | ||
158 | - query.Where("created_by = ?", val) | ||
159 | - } | 115 | + var m []*models.TaskAnomaly |
116 | + query := tx.Model(&m) | ||
160 | if val, ok := queryOptions["limit"]; ok { | 117 | if val, ok := queryOptions["limit"]; ok { |
161 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { | 118 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { |
162 | query.Limit(limit) | 119 | query.Limit(limit) |
@@ -167,12 +124,21 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d | @@ -167,12 +124,21 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d | ||
167 | query.Offset(offset) | 124 | query.Offset(offset) |
168 | } | 125 | } |
169 | } | 126 | } |
127 | + if val, ok := queryOptions["category"]; ok { | ||
128 | + query.Where(" category =? ", val) | ||
129 | + } | ||
130 | + if val, ok := queryOptions["currentStage"]; ok { | ||
131 | + query.Where("current_stage @> ?", val) | ||
132 | + } | ||
133 | + if val, ok := queryOptions["isLast"]; ok { | ||
134 | + query.Where("is_last=?", val) | ||
135 | + } | ||
170 | query.Order("id desc") | 136 | query.Order("id desc") |
171 | count, err := query.SelectAndCount() | 137 | count, err := query.SelectAndCount() |
172 | if err != nil { | 138 | if err != nil { |
173 | return 0, nil, err | 139 | return 0, nil, err |
174 | } | 140 | } |
175 | - var datas []*domain.Task | 141 | + var datas []*domain.TaskAnomaly |
176 | for _, v := range m { | 142 | for _, v := range m { |
177 | d := repo.TransformToDomain(v) | 143 | d := repo.TransformToDomain(v) |
178 | datas = append(datas, d) | 144 | datas = append(datas, d) |
@@ -14,67 +14,75 @@ import ( | @@ -14,67 +14,75 @@ import ( | ||
14 | 14 | ||
15 | //任务 | 15 | //任务 |
16 | 16 | ||
17 | -type TaskAnomalyRepository struct { | 17 | +type TaskRepository struct { |
18 | transactionContext *pgTransaction.TransactionContext | 18 | transactionContext *pgTransaction.TransactionContext |
19 | } | 19 | } |
20 | 20 | ||
21 | -var _ domain.TaskAnomalyRepository = (*TaskAnomalyRepository)(nil) | 21 | +var _ domain.TaskRepository = (*TaskRepository)(nil) |
22 | 22 | ||
23 | -func NewTaskAnomalyRepository(transactionContext *pgTransaction.TransactionContext) *TaskAnomalyRepository { | ||
24 | - return &TaskAnomalyRepository{transactionContext: transactionContext} | 23 | +func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *TaskRepository { |
24 | + return &TaskRepository{transactionContext: transactionContext} | ||
25 | } | 25 | } |
26 | 26 | ||
27 | -func (repo *TaskAnomalyRepository) TransformToDomain(d *models.TaskAnomaly) *domain.TaskAnomaly { | ||
28 | - return &domain.TaskAnomaly{ | ||
29 | - Id: d.Id, | ||
30 | - CreatedAt: d.CreatedAt, | ||
31 | - UpdatedAt: d.UpdatedAt, | ||
32 | - CompanyId: d.CompanyId, | ||
33 | - TaskId: d.TaskId, | ||
34 | - Category: d.Category, | ||
35 | - CurrentStage: d.CurrentStage, | ||
36 | - LastStage: d.LastStage, | ||
37 | - AssessFlag: d.AssessFlag, | ||
38 | - WarnFlag: d.WarnFlag, | ||
39 | - AssistFlag: d.AssistFlag, | ||
40 | - IsLast: d.IsLast, | ||
41 | - TaskLevel: d.TaskLevel, | ||
42 | - TaskName: d.TaskName, | ||
43 | - TaskAlias: d.TaskAlias, | ||
44 | - TaskSortBy: domain.TaskSortBy(d.TaskSortBy), | ||
45 | - TaskEndTime: d.TaskEndTime, | ||
46 | - RecordBegin: d.RecordBegin, | ||
47 | - NoticeWho: d.NoticeWho, | ||
48 | - Marks: d.Marks, | 27 | +func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { |
28 | + return &domain.Task{ | ||
29 | + Id: d.Id, | ||
30 | + CreatedAt: d.CreatedAt, | ||
31 | + UpdatedAt: d.UpdatedAt, | ||
32 | + DeletedAt: d.DeletedAt, | ||
33 | + CompanyId: d.CompanyId, | ||
34 | + Name: d.Name, | ||
35 | + Alias: d.Alias, | ||
36 | + Leader: d.Leader, | ||
37 | + Status: domain.TaskState(d.Status), | ||
38 | + Level: d.Level, | ||
39 | + LevelName: d.LevelName, | ||
40 | + SortBy: domain.TaskSortBy(d.SortBy), | ||
41 | + EndTime: d.EndTime, | ||
42 | + UseEndTime: d.UseEndTime, | ||
43 | + RelatedUser: d.RelatedUser, | ||
44 | + RunAt: d.RunAt, | ||
45 | + StopAt: d.StopAt, | ||
46 | + Anomaly: d.Anomaly, | ||
47 | + WarnFlag: domain.TaskWarnFlag(d.WarnFlag), | ||
48 | + AssistFlag: d.AssistFlag, | ||
49 | + AssistFlagMax: d.AssistFlagMax, | ||
50 | + CurrentStage: d.CurrentStage, | ||
51 | + LastStage: d.LastStage, | ||
52 | + CreatedBy: d.CreatedBy, | ||
49 | } | 53 | } |
50 | } | 54 | } |
51 | 55 | ||
52 | -func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { | 56 | +func (repo *TaskRepository) Save(param *domain.Task) error { |
53 | param.UpdatedAt = time.Now() | 57 | param.UpdatedAt = time.Now() |
54 | if param.Id == 0 { | 58 | if param.Id == 0 { |
55 | param.CreatedAt = time.Now() | 59 | param.CreatedAt = time.Now() |
56 | } | 60 | } |
57 | - m := models.TaskAnomaly{ | ||
58 | - Id: param.Id, | ||
59 | - CreatedAt: param.CreatedAt, | ||
60 | - UpdatedAt: param.UpdatedAt, | ||
61 | - CompanyId: param.CompanyId, | ||
62 | - TaskId: param.TaskId, | ||
63 | - Category: param.Category, | ||
64 | - CurrentStage: param.CurrentStage, | ||
65 | - LastStage: param.LastStage, | ||
66 | - AssessFlag: param.AssessFlag, | ||
67 | - WarnFlag: param.WarnFlag, | ||
68 | - AssistFlag: param.AssistFlag, | ||
69 | - IsLast: param.IsLast, | ||
70 | - TaskLevel: param.TaskLevel, | ||
71 | - TaskName: param.TaskName, | ||
72 | - TaskAlias: param.TaskAlias, | ||
73 | - TaskSortBy: int(param.TaskSortBy), | ||
74 | - TaskEndTime: param.TaskEndTime, | ||
75 | - RecordBegin: param.RecordBegin, | ||
76 | - NoticeWho: param.NoticeWho, | ||
77 | - Marks: param.Marks, | 61 | + m := models.Task{ |
62 | + Id: param.Id, | ||
63 | + CreatedAt: param.CreatedAt, | ||
64 | + UpdatedAt: param.UpdatedAt, | ||
65 | + DeletedAt: param.DeletedAt, | ||
66 | + Name: param.Name, | ||
67 | + Alias: param.Alias, | ||
68 | + CompanyId: param.CompanyId, | ||
69 | + Leader: param.Leader, | ||
70 | + Status: int(param.Status), | ||
71 | + Level: param.Level, | ||
72 | + LevelName: param.LevelName, | ||
73 | + RelatedUser: param.RelatedUser, | ||
74 | + LastStage: param.LastStage, | ||
75 | + RunAt: param.RunAt, | ||
76 | + StopAt: param.StopAt, | ||
77 | + Anomaly: param.Anomaly, | ||
78 | + WarnFlag: int(param.WarnFlag), | ||
79 | + CurrentStage: param.CurrentStage, | ||
80 | + SortBy: int(param.SortBy), | ||
81 | + EndTime: param.EndTime, | ||
82 | + UseEndTime: param.UseEndTime, | ||
83 | + AssistFlag: param.AssistFlag, | ||
84 | + AssistFlagMax: param.AssistFlagMax, | ||
85 | + CreatedBy: param.CreatedBy, | ||
78 | } | 86 | } |
79 | db := repo.transactionContext.PgTx | 87 | db := repo.transactionContext.PgTx |
80 | if m.Id == 0 { | 88 | if m.Id == 0 { |
@@ -92,16 +100,28 @@ func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { | @@ -92,16 +100,28 @@ func (repo *TaskAnomalyRepository) Save(param *domain.TaskAnomaly) error { | ||
92 | return nil | 100 | return nil |
93 | } | 101 | } |
94 | 102 | ||
95 | -func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) (*domain.TaskAnomaly, error) { | 103 | +func (repo *TaskRepository) Remove(id int) error { |
96 | tx := repo.transactionContext.PgTx | 104 | tx := repo.transactionContext.PgTx |
97 | - m := new(models.TaskAnomaly) | 105 | + nowTime := time.Now() |
106 | + _, err := tx.Model(&models.Task{}). | ||
107 | + Where("id=?", id). | ||
108 | + Set("deleted_at=?", nowTime). | ||
109 | + Update() | ||
110 | + return err | ||
111 | + | ||
112 | +} | ||
113 | + | ||
114 | +func (repo *TaskRepository) FindOne(queryOptions map[string]interface{}) (*domain.Task, error) { | ||
115 | + tx := repo.transactionContext.PgTx | ||
116 | + m := new(models.Task) | ||
98 | query := tx.Model(m) | 117 | query := tx.Model(m) |
118 | + query.Where("deleted_at isnull") | ||
99 | if id, ok := queryOptions["id"]; ok { | 119 | if id, ok := queryOptions["id"]; ok { |
100 | query.Where("id=?", id) | 120 | query.Where("id=?", id) |
101 | } | 121 | } |
102 | if err := query.First(); err != nil { | 122 | if err := query.First(); err != nil { |
103 | if errors.Is(err, pg.ErrNoRows) { | 123 | if errors.Is(err, pg.ErrNoRows) { |
104 | - return nil, fmt.Errorf("没有找到TaskAnomaly数据") | 124 | + return nil, fmt.Errorf("没有找到task数据") |
105 | } else { | 125 | } else { |
106 | return nil, err | 126 | return nil, err |
107 | } | 127 | } |
@@ -110,10 +130,33 @@ func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) | @@ -110,10 +130,33 @@ func (repo *TaskAnomalyRepository) FindOne(queryOptions map[string]interface{}) | ||
110 | return u, nil | 130 | return u, nil |
111 | } | 131 | } |
112 | 132 | ||
113 | -func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (int, []*domain.TaskAnomaly, error) { | 133 | +func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*domain.Task, error) { |
114 | tx := repo.transactionContext.PgTx | 134 | tx := repo.transactionContext.PgTx |
115 | - var m []*models.TaskAnomaly | ||
116 | - query := tx.Model(&m) | 135 | + var m []*models.Task |
136 | + query := tx.Model(&m). | ||
137 | + Where("deleted_at isnull"). | ||
138 | + Limit(20) | ||
139 | + if val, ok := queryOptions["name"]; ok { | ||
140 | + query.Where("task.name like ?", val) | ||
141 | + } | ||
142 | + if val, ok := queryOptions["companyId"]; ok { | ||
143 | + query.Where("task.company_id = ?", val) | ||
144 | + } | ||
145 | + if val, ok := queryOptions["id"]; ok { | ||
146 | + query.Where("task.id=?", val) | ||
147 | + } | ||
148 | + if val, ok := queryOptions["leaderId"]; ok { | ||
149 | + query.Where("task.leader->>'id'=?", val) | ||
150 | + } | ||
151 | + if val, ok := queryOptions["aliasOrLeader"]; ok { | ||
152 | + query.Where(`task.alias like ? or task.leader->>'name' like ?`, val, val) | ||
153 | + } | ||
154 | + if val, ok := queryOptions["status"]; ok { | ||
155 | + query.Where("task.status=?", val) | ||
156 | + } | ||
157 | + if val, ok := queryOptions["createdBy"]; ok { | ||
158 | + query.Where("created_by = ?", val) | ||
159 | + } | ||
117 | if val, ok := queryOptions["limit"]; ok { | 160 | if val, ok := queryOptions["limit"]; ok { |
118 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { | 161 | if limit, err := strconv.Atoi(fmt.Sprintf("%v", val)); err == nil { |
119 | query.Limit(limit) | 162 | query.Limit(limit) |
@@ -129,7 +172,7 @@ func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (in | @@ -129,7 +172,7 @@ func (repo *TaskAnomalyRepository) Find(queryOptions map[string]interface{}) (in | ||
129 | if err != nil { | 172 | if err != nil { |
130 | return 0, nil, err | 173 | return 0, nil, err |
131 | } | 174 | } |
132 | - var datas []*domain.TaskAnomaly | 175 | + var datas []*domain.Task |
133 | for _, v := range m { | 176 | for _, v := range m { |
134 | d := repo.TransformToDomain(v) | 177 | d := repo.TransformToDomain(v) |
135 | datas = append(datas, d) | 178 | datas = append(datas, d) |
-
请 注册 或 登录 后发表评论