正在显示
2 个修改的文件
包含
67 行增加
和
18 行删除
@@ -142,12 +142,15 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | @@ -142,12 +142,15 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | ||
142 | taskDao := dao.NewTaskDao(map[string]interface{}{"transactionContext": transactionContext}) | 142 | taskDao := dao.NewTaskDao(map[string]interface{}{"transactionContext": transactionContext}) |
143 | // 我作为任务负责人的提醒 | 143 | // 我作为任务负责人的提醒 |
144 | leaderIds := []string{strconv.Itoa(param.UserId)} | 144 | leaderIds := []string{strconv.Itoa(param.UserId)} |
145 | - taskStageList, err := taskDao.TaskStageAnomaly(leaderIds) | 145 | + taskStageList, err := taskDao.TaskStageAnomalyByLeader(leaderIds) |
146 | if err != nil { | 146 | if err != nil { |
147 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | 147 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) |
148 | } | 148 | } |
149 | // 我作为任务相关方 | 149 | // 我作为任务相关方 |
150 | - | 150 | + taskStageList0, err := taskDao.TaskStageAnomalyByRelatedUser(param.UserId) |
151 | + if err != nil { | ||
152 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | ||
153 | + } | ||
151 | childUser, err := userDao.AllChildUser(param.UserId) | 154 | childUser, err := userDao.AllChildUser(param.UserId) |
152 | if err != nil { | 155 | if err != nil { |
153 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取下级员工"+err.Error()) | 156 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取下级员工"+err.Error()) |
@@ -161,7 +164,7 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | @@ -161,7 +164,7 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | ||
161 | // 作为上级,我的下级员工的异常里程碑 | 164 | // 作为上级,我的下级员工的异常里程碑 |
162 | var taskStageList2 []dao.TaskStageData | 165 | var taskStageList2 []dao.TaskStageData |
163 | if len(childUserId) == 0 { | 166 | if len(childUserId) == 0 { |
164 | - taskStageList2, err = taskDao.TaskStageAnomaly(childUserId) | 167 | + taskStageList2, err = taskDao.TaskStageAnomalyByLeader(childUserId) |
165 | if err != nil { | 168 | if err != nil { |
166 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | 169 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) |
167 | } | 170 | } |
@@ -175,11 +178,12 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | @@ -175,11 +178,12 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | ||
175 | // 作为上级, 我的下下级员工的异常里程碑 | 178 | // 作为上级, 我的下下级员工的异常里程碑 |
176 | var taskStageList3 []dao.TaskStageData | 179 | var taskStageList3 []dao.TaskStageData |
177 | if len(childUserId) == 0 { | 180 | if len(childUserId) == 0 { |
178 | - taskStageList3, err = taskDao.TaskStageAnomaly(childUserId2) | 181 | + taskStageList3, err = taskDao.TaskStageAnomalyByLeader(childUserId2) |
179 | if err != nil { | 182 | if err != nil { |
180 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | 183 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) |
181 | } | 184 | } |
182 | } | 185 | } |
186 | + | ||
183 | msgList := []adapter.MessageListAdapter{} | 187 | msgList := []adapter.MessageListAdapter{} |
184 | for _, val := range taskStageList { | 188 | for _, val := range taskStageList { |
185 | s := fmt.Sprintf("【您负责的项目【%s】里程碑未按时完成,请重点关注,积极寻找上级辅导。】", val.Name) | 189 | s := fmt.Sprintf("【您负责的项目【%s】里程碑未按时完成,请重点关注,积极寻找上级辅导。】", val.Name) |
@@ -256,7 +260,32 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | @@ -256,7 +260,32 @@ func (srv *MessagePersonalService) TodayMessageTaskStageAnomaly(param *command.G | ||
256 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 260 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
257 | } | 261 | } |
258 | } | 262 | } |
259 | - | 263 | + //我作为任务相关人 |
264 | + for _, val := range taskStageList0 { | ||
265 | + s := fmt.Sprintf("【您下级%s关注的项目【%s】里程碑未按时完成,请前往辅导。】", val.LeaderName, val.Name) | ||
266 | + msgList = append(msgList, adapter.MessageListAdapter{ | ||
267 | + Content: s, | ||
268 | + }) | ||
269 | + payload := map[string]string{ | ||
270 | + "id": strconv.Itoa(val.Id), | ||
271 | + } | ||
272 | + payloadStr, _ := json.Marshal(payload) | ||
273 | + newMessage := domain.MessagePersonal{ | ||
274 | + Id: 0, | ||
275 | + Types: domain.MessageTypesTaskStage, | ||
276 | + TargetUserId: param.UserId, | ||
277 | + ReadFlag: domain.MessageIsRead, | ||
278 | + Title: s, | ||
279 | + Content: s, | ||
280 | + CreatedAt: time.Time{}, | ||
281 | + UpdatedAt: time.Time{}, | ||
282 | + Payload: string(payloadStr), | ||
283 | + } | ||
284 | + err = messageRepo.Save(&newMessage) | ||
285 | + if err != nil { | ||
286 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
287 | + } | ||
288 | + } | ||
260 | if err := transactionContext.CommitTransaction(); err != nil { | 289 | if err := transactionContext.CommitTransaction(); err != nil { |
261 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 290 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
262 | } | 291 | } |
@@ -306,12 +335,13 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | @@ -306,12 +335,13 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | ||
306 | userDao := dao.NewUserDao(map[string]interface{}{"transactionContext": transactionContext}) | 335 | userDao := dao.NewUserDao(map[string]interface{}{"transactionContext": transactionContext}) |
307 | 336 | ||
308 | taskDao := dao.NewTaskDao(map[string]interface{}{"transactionContext": transactionContext}) | 337 | taskDao := dao.NewTaskDao(map[string]interface{}{"transactionContext": transactionContext}) |
309 | - // 针对任务负责人 | 338 | + // 我作为任务负责人 |
310 | leaderIds := []string{strconv.Itoa(param.UserId)} | 339 | leaderIds := []string{strconv.Itoa(param.UserId)} |
311 | - taskStageList, err := taskDao.TaskAnomaly(leaderIds, 2) | 340 | + taskStageList, err := taskDao.TaskAnomalyByLeader(leaderIds, 2) |
312 | if err != nil { | 341 | if err != nil { |
313 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | 342 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) |
314 | } | 343 | } |
344 | + //获取员工全部子集 | ||
315 | childUser, err := userDao.AllChildUser(param.UserId) | 345 | childUser, err := userDao.AllChildUser(param.UserId) |
316 | if err != nil { | 346 | if err != nil { |
317 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取下级员工"+err.Error()) | 347 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取下级员工"+err.Error()) |
@@ -322,10 +352,10 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | @@ -322,10 +352,10 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | ||
322 | childUserId = append(childUserId, strconv.Itoa(val.Id)) | 352 | childUserId = append(childUserId, strconv.Itoa(val.Id)) |
323 | } | 353 | } |
324 | } | 354 | } |
325 | - // 针对上级 | 355 | + //我作为上级, 获取我的下一级的异常任务 |
326 | var taskStageList2 []dao.TaskData2 | 356 | var taskStageList2 []dao.TaskData2 |
327 | if len(childUserId) == 0 { | 357 | if len(childUserId) == 0 { |
328 | - taskStageList2, err = taskDao.TaskAnomaly(childUserId, 4) | 358 | + taskStageList2, err = taskDao.TaskAnomalyByLeader(childUserId, 4) |
329 | if err != nil { | 359 | if err != nil { |
330 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | 360 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) |
331 | } | 361 | } |
@@ -336,10 +366,10 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | @@ -336,10 +366,10 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | ||
336 | childUserId = append(childUserId, strconv.Itoa(val.Id)) | 366 | childUserId = append(childUserId, strconv.Itoa(val.Id)) |
337 | } | 367 | } |
338 | } | 368 | } |
339 | - // 针对上上级 | 369 | + // 我作为上级,获取我的下下级的异常任务 |
340 | var taskStageList3 []dao.TaskData2 | 370 | var taskStageList3 []dao.TaskData2 |
341 | if len(childUserId) == 0 { | 371 | if len(childUserId) == 0 { |
342 | - taskStageList3, err = taskDao.TaskAnomaly(childUserId2, 5) | 372 | + taskStageList3, err = taskDao.TaskAnomalyByLeader(childUserId2, 5) |
343 | if err != nil { | 373 | if err != nil { |
344 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) | 374 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "检查任务里程碑异常的消息"+err.Error()) |
345 | } | 375 | } |
@@ -347,7 +377,7 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | @@ -347,7 +377,7 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | ||
347 | 377 | ||
348 | msgList := []adapter.MessageListAdapter{} | 378 | msgList := []adapter.MessageListAdapter{} |
349 | for _, val := range taskStageList { | 379 | for _, val := range taskStageList { |
350 | - s := fmt.Sprintf("【您负责的项目【%s】已超过N日未反馈进度,请前往该战略任务进行反馈。】", val.Name) | 380 | + s := fmt.Sprintf("【您负责的项目【%s】已超过%s日未反馈进度,请前往该战略任务进行反馈。】", val.Name, val.Anomaly) |
351 | msgList = append(msgList, adapter.MessageListAdapter{ | 381 | msgList = append(msgList, adapter.MessageListAdapter{ |
352 | Content: s, | 382 | Content: s, |
353 | }) | 383 | }) |
@@ -372,7 +402,7 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | @@ -372,7 +402,7 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | ||
372 | } | 402 | } |
373 | } | 403 | } |
374 | for _, val := range taskStageList2 { | 404 | for _, val := range taskStageList2 { |
375 | - s := fmt.Sprintf("【您下级%s负责的项目【%s】已超过N日未反馈进度,请前往辅导。】", val.LeaderName, val.Name) | 405 | + s := fmt.Sprintf("【您下级%s负责的项目【%s】已超过%s日未反馈进度,请前往辅导。】", val.LeaderName, val.Name, val.Anomaly) |
376 | msgList = append(msgList, adapter.MessageListAdapter{ | 406 | msgList = append(msgList, adapter.MessageListAdapter{ |
377 | Content: s, | 407 | Content: s, |
378 | }) | 408 | }) |
@@ -397,7 +427,7 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | @@ -397,7 +427,7 @@ func (srv *MessagePersonalService) TodayMessageTaskRecordAnomaly(param *command. | ||
397 | } | 427 | } |
398 | } | 428 | } |
399 | for _, val := range taskStageList3 { | 429 | for _, val := range taskStageList3 { |
400 | - s := fmt.Sprintf("【您下级%s关注的项目【%s】已超过N日未反馈进度,请前往辅导。】", val.LeaderName, val.Name) | 430 | + s := fmt.Sprintf("【您下级%s关注的项目【%s】已超过%s日未反馈进度,请前往辅导。】", val.LeaderName, val.Name, val.Anomaly) |
401 | msgList = append(msgList, adapter.MessageListAdapter{ | 431 | msgList = append(msgList, adapter.MessageListAdapter{ |
402 | Content: s, | 432 | Content: s, |
403 | }) | 433 | }) |
@@ -391,8 +391,8 @@ type TaskStageData struct { | @@ -391,8 +391,8 @@ type TaskStageData struct { | ||
391 | LeaderName string | 391 | LeaderName string |
392 | } | 392 | } |
393 | 393 | ||
394 | -// 根据负责人异常的里程碑任务 | ||
395 | -func (d *TaskDao) TaskStageAnomaly(leaderId []string) ([]TaskStageData, error) { | 394 | +// 根据负责人获取超期未完成的异常的里程碑任务 |
395 | +func (d *TaskDao) TaskStageAnomalyByLeader(leaderId []string) ([]TaskStageData, error) { | ||
396 | sqlStr := `select | 396 | sqlStr := `select |
397 | task_stage.id, | 397 | task_stage.id, |
398 | task_stage."name" , | 398 | task_stage."name" , |
@@ -408,6 +408,25 @@ func (d *TaskDao) TaskStageAnomaly(leaderId []string) ([]TaskStageData, error) { | @@ -408,6 +408,25 @@ func (d *TaskDao) TaskStageAnomaly(leaderId []string) ([]TaskStageData, error) { | ||
408 | return result, err | 408 | return result, err |
409 | } | 409 | } |
410 | 410 | ||
411 | +// 根据任务相关人获取超期未完成的异常的里程碑任务 | ||
412 | +func (d *TaskDao) TaskStageAnomalyByRelatedUser(relatedUserId int) ([]TaskStageData, error) { | ||
413 | + sqlStr := `select | ||
414 | + task_stage.id, | ||
415 | + task_stage."name" , | ||
416 | + task.leader ->>'name' as leader_name | ||
417 | + from task_stage | ||
418 | + join task on task.id=task_stage.task_id | ||
419 | + where 1=1 | ||
420 | + and task_stage.real_completed_at=0 and task_stage.plan_completed_at<extract(epoch from now()) | ||
421 | + and task.related_user @>? ` | ||
422 | + | ||
423 | + relatedUser := fmt.Sprintf("[%d]", relatedUserId) | ||
424 | + result := []TaskStageData{} | ||
425 | + tx := d.transactionContext.PgTx | ||
426 | + _, err := tx.Query(&result, sqlStr, relatedUser) | ||
427 | + return result, err | ||
428 | +} | ||
429 | + | ||
411 | type TaskData2 struct { | 430 | type TaskData2 struct { |
412 | Id int `pg:"id"` | 431 | Id int `pg:"id"` |
413 | Name string `pg:"name"` | 432 | Name string `pg:"name"` |
@@ -416,8 +435,8 @@ type TaskData2 struct { | @@ -416,8 +435,8 @@ type TaskData2 struct { | ||
416 | Anomaly string `pg:"anomaly"` | 435 | Anomaly string `pg:"anomaly"` |
417 | } | 436 | } |
418 | 437 | ||
419 | -// 异常的任务 | ||
420 | -func (d *TaskDao) TaskAnomaly(leaderId []string, anomaly int) ([]TaskData2, error) { | 438 | +// 根据任务负责任务获取异常的任务 |
439 | +func (d *TaskDao) TaskAnomalyByLeader(leaderId []string, anomaly int) ([]TaskData2, error) { | ||
421 | sqlStr := `select | 440 | sqlStr := `select |
422 | task."id", | 441 | task."id", |
423 | task."name" , | 442 | task."name" , |
-
请 注册 或 登录 后发表评论