作者 tangxvhui

根据每日的任务反馈 ,更新任务里程碑

1 package command 1 package command
2 -  
3 -type UpdateTaskStageStatusCommand struct {  
4 -}  
@@ -27,6 +27,12 @@ func dayEndTime(t time.Time) time.Time { @@ -27,6 +27,12 @@ func dayEndTime(t time.Time) time.Time {
27 return t2 27 return t2
28 } 28 }
29 29
  30 +func dayZeroTime(t time.Time) time.Time {
  31 + y, m, d := t.Local().Date()
  32 + t2 := time.Date(y, m, d, 0, 0, 0, 0, time.Local)
  33 + return t2
  34 +}
  35 +
30 func (srv TaskService) CreateTaskTest(param *command.CreateTaskCommand) error { 36 func (srv TaskService) CreateTaskTest(param *command.CreateTaskCommand) error {
31 transactionContext, err := factory.CreateTransactionContext(nil) 37 transactionContext, err := factory.CreateTransactionContext(nil)
32 if err != nil { 38 if err != nil {
@@ -108,7 +114,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont @@ -108,7 +114,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
108 return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error()) 114 return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error())
109 } 115 }
110 116
111 - nowEndTime := dayEndTime(nowTime) 117 + nowEndTime := dayZeroTime(nowTime)
112 118
113 newTaskStage := []*domain.TaskStage{ 119 newTaskStage := []*domain.TaskStage{
114 { 120 {
@@ -590,7 +596,7 @@ func (t TaskService) CancelAttention(param *command.CancelAttentionCommand) erro @@ -590,7 +596,7 @@ func (t TaskService) CancelAttention(param *command.CancelAttentionCommand) erro
590 } 596 }
591 597
592 // 员工绩效-任务管理-列表 598 // 员工绩效-任务管理-列表
593 -func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]interface{}, error) { 599 +func (t TaskService) ListTask2(param *command.SearchTaskCommand) (map[string]interface{}, error) {
594 transactionContext, err := factory.CreateTransactionContext(nil) 600 transactionContext, err := factory.CreateTransactionContext(nil)
595 if err != nil { 601 if err != nil {
596 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 602 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
@@ -606,7 +612,7 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte @@ -606,7 +612,7 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte
606 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息"+err.Error()) 612 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息"+err.Error())
607 } 613 }
608 if hrbpFlag == domain.RoleTypeSystem { 614 if hrbpFlag == domain.RoleTypeSystem {
609 - listData, err := t.ListTask2ForHrbp(param) 615 + listData, err := t.listTask2ForHrbp(param)
610 return listData, err 616 return listData, err
611 } 617 }
612 var limit = 20 618 var limit = 20
@@ -693,7 +699,7 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte @@ -693,7 +699,7 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte
693 } 699 }
694 700
695 // 以hrbp角色权限获取任务列表 701 // 以hrbp角色权限获取任务列表
696 -func (t TaskService) ListTask2ForHrbp(param command.SearchTaskCommand) (map[string]interface{}, error) { 702 +func (t TaskService) listTask2ForHrbp(param *command.SearchTaskCommand) (map[string]interface{}, error) {
697 var limit = 20 703 var limit = 20
698 var offset = 0 704 var offset = 0
699 if param.PageSize > 0 { 705 if param.PageSize > 0 {
@@ -786,7 +792,45 @@ func (t TaskService) ListTask2ForHrbp(param command.SearchTaskCommand) (map[stri @@ -786,7 +792,45 @@ func (t TaskService) ListTask2ForHrbp(param command.SearchTaskCommand) (map[stri
786 return result, nil 792 return result, nil
787 } 793 }
788 794
789 -// 更新任务里程碑的状态  
790 -func (t TaskService) UpdateTaskStageStatus(param command.UpdateTaskStageStatusCommand) { 795 +// ReplyTaskStage 根据每日的任务反馈 ,更新任务里程碑
  796 +func (t TaskService) ReplyTaskStage(transactionContext application.TransactionContext, param []*domain.TaskRecord) error {
  797 + taskRepo := factory.CreateTaskRepository(map[string]interface{}{
  798 + "transactionContext": transactionContext,
  799 + })
  800 + taskStageRepo := factory.CreateTaskStageRepository(map[string]interface{}{
  801 + "transactionContext": transactionContext,
  802 + })
  803 + var taskList []*domain.Task
  804 + var taskStages []*domain.TaskStage
  805 + for _, val := range param {
  806 + taskData, err := taskRepo.FindOne(map[string]interface{}{"id": val.TaskId})
  807 + if err != nil {
  808 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, "找不到任务数据"+err.Error())
  809 + }
791 810
  811 + if !(len(val.AssistContent) == 0 || val.AssistContent == "无") {
  812 + taskData.Anomaly = 0
  813 + }
  814 + taskList = append(taskList, taskData)
  815 + _, stageList, err := taskStageRepo.Find(map[string]interface{}{"ids": []int{val.TaskStageCheck.Id}})
  816 + if err != nil {
  817 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, "找不到任务里程碑数据"+err.Error())
  818 + }
  819 + if len(stageList) > 0 {
  820 + stageList[0].Status = val.TaskStageCheck.Status
  821 + stageList[0].RealCompletedAt = val.TaskStageCheck.RealCompletedAt
  822 + taskStages = append(taskStages, stageList[0])
  823 + }
  824 + }
  825 + err := taskStageRepo.Save(taskStages)
  826 + if err != nil {
  827 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存任务里程碑数据"+err.Error())
  828 + }
  829 + for _, val := range taskList {
  830 + err = taskRepo.Save(val)
  831 + if err != nil {
  832 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存任务数据"+err.Error())
  833 + }
  834 + }
  835 + return nil
792 } 836 }
@@ -26,7 +26,7 @@ type Task struct { @@ -26,7 +26,7 @@ type Task struct {
26 RelatedUser []int `json:"relatedUser"` // 相关的员工id 26 RelatedUser []int `json:"relatedUser"` // 相关的员工id
27 RunAt int64 `json:"runAt"` // 启动的时间戳,秒 27 RunAt int64 `json:"runAt"` // 启动的时间戳,秒
28 StopAt int64 `json:"stopAt"` // 停止的时间戳,秒 28 StopAt int64 `json:"stopAt"` // 停止的时间戳,秒
29 - Anomaly int `json:"anomaly"` //异常反馈的次数 29 + Anomaly int `json:"anomaly"` // 异常反馈的次数
30 } 30 }
31 31
32 type TaskLeader struct { 32 type TaskLeader struct {
@@ -110,7 +110,9 @@ func (repo *TaskStageRepository) Find(queryOptions map[string]interface{}) (int, @@ -110,7 +110,9 @@ func (repo *TaskStageRepository) Find(queryOptions map[string]interface{}) (int,
110 if val, ok := queryOptions["taskId"]; ok { 110 if val, ok := queryOptions["taskId"]; ok {
111 query.Where("task_stage.task_id = ?", val) 111 query.Where("task_stage.task_id = ?", val)
112 } 112 }
113 - 113 + if val, ok := queryOptions["ids"]; ok {
  114 + query.Where("task_stage.id in(?)", pg.In(val))
  115 + }
114 if val, ok := queryOptions["taskIdList"]; ok { 116 if val, ok := queryOptions["taskIdList"]; ok {
115 query.Where("task_stage.task_id in(?)", pg.In(val)) 117 query.Where("task_stage.task_id in(?)", pg.In(val))
116 } 118 }
@@ -107,7 +107,7 @@ func (c *TaskController) ListTask() { @@ -107,7 +107,7 @@ func (c *TaskController) ListTask() {
107 c.Response(data, err) 107 c.Response(data, err)
108 } 108 }
109 109
110 -// CancelAttention 取消关注的任务 110 +// CancelAttention 员工绩效-任务管理列表-取消关注的任务
111 func (c *TaskController) CancelAttention() { 111 func (c *TaskController) CancelAttention() {
112 srv := service.NewTaskService() 112 srv := service.NewTaskService()
113 paramReq := &command.CancelAttentionCommand{} 113 paramReq := &command.CancelAttentionCommand{}
@@ -122,3 +122,20 @@ func (c *TaskController) CancelAttention() { @@ -122,3 +122,20 @@ func (c *TaskController) CancelAttention() {
122 err = srv.CancelAttention(paramReq) 122 err = srv.CancelAttention(paramReq)
123 c.Response(nil, err) 123 c.Response(nil, err)
124 } 124 }
  125 +
  126 +// ListTask2 员工绩效-任务管理列表
  127 +func (c *TaskController) ListTask2() {
  128 + srv := service.NewTaskService()
  129 + paramReq := &command.SearchTaskCommand{}
  130 + err := c.BindJSON(paramReq)
  131 + if err != nil {
  132 + e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
  133 + c.Response(nil, e)
  134 + return
  135 + }
  136 + userReq := middlewares.GetUser(c.Ctx)
  137 + paramReq.CompanyId = int(userReq.CompanyId)
  138 + paramReq.UserId = int(userReq.UserId)
  139 + result, err := srv.ListTask2(paramReq)
  140 + c.Response(result, err)
  141 +}
@@ -18,11 +18,11 @@ func init() { @@ -18,11 +18,11 @@ func init() {
18 web.NSCtrlPost("/list", (*controllers.TaskController).ListTask), 18 web.NSCtrlPost("/list", (*controllers.TaskController).ListTask),
19 ) 19 )
20 web.AddNamespace(taskAdminNS) 20 web.AddNamespace(taskAdminNS)
21 - 21 + // 员工绩效模块
22 taskFontNS := web.NewNamespace("/v1/font/task", 22 taskFontNS := web.NewNamespace("/v1/font/task",
23 web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()), 23 web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()),
24 web.NSCtrlPost("/attention/cancel", (*controllers.TaskController).CancelAttention), 24 web.NSCtrlPost("/attention/cancel", (*controllers.TaskController).CancelAttention),
25 - web.NSCtrlPost("/list", (*controllers.TaskController).ListTask), //TODO 25 + web.NSCtrlPost("/list", (*controllers.TaskController).ListTask2),
26 ) 26 )
27 web.AddNamespace(taskFontNS) 27 web.AddNamespace(taskFontNS)
28 28