作者 tangxvhui

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

package command
type UpdateTaskStageStatusCommand struct {
}
... ...
... ... @@ -27,6 +27,12 @@ func dayEndTime(t time.Time) time.Time {
return t2
}
func dayZeroTime(t time.Time) time.Time {
y, m, d := t.Local().Date()
t2 := time.Date(y, m, d, 0, 0, 0, 0, time.Local)
return t2
}
func (srv TaskService) CreateTaskTest(param *command.CreateTaskCommand) error {
transactionContext, err := factory.CreateTransactionContext(nil)
if err != nil {
... ... @@ -108,7 +114,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error())
}
nowEndTime := dayEndTime(nowTime)
nowEndTime := dayZeroTime(nowTime)
newTaskStage := []*domain.TaskStage{
{
... ... @@ -590,7 +596,7 @@ func (t TaskService) CancelAttention(param *command.CancelAttentionCommand) erro
}
// 员工绩效-任务管理-列表
func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]interface{}, error) {
func (t TaskService) ListTask2(param *command.SearchTaskCommand) (map[string]interface{}, error) {
transactionContext, err := factory.CreateTransactionContext(nil)
if err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
... ... @@ -606,7 +612,7 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息"+err.Error())
}
if hrbpFlag == domain.RoleTypeSystem {
listData, err := t.ListTask2ForHrbp(param)
listData, err := t.listTask2ForHrbp(param)
return listData, err
}
var limit = 20
... ... @@ -693,7 +699,7 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte
}
// 以hrbp角色权限获取任务列表
func (t TaskService) ListTask2ForHrbp(param command.SearchTaskCommand) (map[string]interface{}, error) {
func (t TaskService) listTask2ForHrbp(param *command.SearchTaskCommand) (map[string]interface{}, error) {
var limit = 20
var offset = 0
if param.PageSize > 0 {
... ... @@ -786,7 +792,45 @@ func (t TaskService) ListTask2ForHrbp(param command.SearchTaskCommand) (map[stri
return result, nil
}
// 更新任务里程碑的状态
func (t TaskService) UpdateTaskStageStatus(param command.UpdateTaskStageStatusCommand) {
// ReplyTaskStage 根据每日的任务反馈 ,更新任务里程碑
func (t TaskService) ReplyTaskStage(transactionContext application.TransactionContext, param []*domain.TaskRecord) error {
taskRepo := factory.CreateTaskRepository(map[string]interface{}{
"transactionContext": transactionContext,
})
taskStageRepo := factory.CreateTaskStageRepository(map[string]interface{}{
"transactionContext": transactionContext,
})
var taskList []*domain.Task
var taskStages []*domain.TaskStage
for _, val := range param {
taskData, err := taskRepo.FindOne(map[string]interface{}{"id": val.TaskId})
if err != nil {
return application.ThrowError(application.INTERNAL_SERVER_ERROR, "找不到任务数据"+err.Error())
}
if !(len(val.AssistContent) == 0 || val.AssistContent == "无") {
taskData.Anomaly = 0
}
taskList = append(taskList, taskData)
_, stageList, err := taskStageRepo.Find(map[string]interface{}{"ids": []int{val.TaskStageCheck.Id}})
if err != nil {
return application.ThrowError(application.INTERNAL_SERVER_ERROR, "找不到任务里程碑数据"+err.Error())
}
if len(stageList) > 0 {
stageList[0].Status = val.TaskStageCheck.Status
stageList[0].RealCompletedAt = val.TaskStageCheck.RealCompletedAt
taskStages = append(taskStages, stageList[0])
}
}
err := taskStageRepo.Save(taskStages)
if err != nil {
return application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存任务里程碑数据"+err.Error())
}
for _, val := range taskList {
err = taskRepo.Save(val)
if err != nil {
return application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存任务数据"+err.Error())
}
}
return nil
}
... ...
... ... @@ -26,7 +26,7 @@ type Task struct {
RelatedUser []int `json:"relatedUser"` // 相关的员工id
RunAt int64 `json:"runAt"` // 启动的时间戳,秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,秒
Anomaly int `json:"anomaly"` //异常反馈的次数
Anomaly int `json:"anomaly"` // 异常反馈的次数
}
type TaskLeader struct {
... ...
... ... @@ -110,7 +110,9 @@ func (repo *TaskStageRepository) Find(queryOptions map[string]interface{}) (int,
if val, ok := queryOptions["taskId"]; ok {
query.Where("task_stage.task_id = ?", val)
}
if val, ok := queryOptions["ids"]; ok {
query.Where("task_stage.id in(?)", pg.In(val))
}
if val, ok := queryOptions["taskIdList"]; ok {
query.Where("task_stage.task_id in(?)", pg.In(val))
}
... ...
... ... @@ -107,7 +107,7 @@ func (c *TaskController) ListTask() {
c.Response(data, err)
}
// CancelAttention 取消关注的任务
// CancelAttention 员工绩效-任务管理列表-取消关注的任务
func (c *TaskController) CancelAttention() {
srv := service.NewTaskService()
paramReq := &command.CancelAttentionCommand{}
... ... @@ -122,3 +122,20 @@ func (c *TaskController) CancelAttention() {
err = srv.CancelAttention(paramReq)
c.Response(nil, err)
}
// ListTask2 员工绩效-任务管理列表
func (c *TaskController) ListTask2() {
srv := service.NewTaskService()
paramReq := &command.SearchTaskCommand{}
err := c.BindJSON(paramReq)
if err != nil {
e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
c.Response(nil, e)
return
}
userReq := middlewares.GetUser(c.Ctx)
paramReq.CompanyId = int(userReq.CompanyId)
paramReq.UserId = int(userReq.UserId)
result, err := srv.ListTask2(paramReq)
c.Response(result, err)
}
... ...
... ... @@ -18,11 +18,11 @@ func init() {
web.NSCtrlPost("/list", (*controllers.TaskController).ListTask),
)
web.AddNamespace(taskAdminNS)
// 员工绩效模块
taskFontNS := web.NewNamespace("/v1/font/task",
web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()),
web.NSCtrlPost("/attention/cancel", (*controllers.TaskController).CancelAttention),
web.NSCtrlPost("/list", (*controllers.TaskController).ListTask), //TODO
web.NSCtrlPost("/list", (*controllers.TaskController).ListTask2),
)
web.AddNamespace(taskFontNS)
... ...