作者 tangxvhui

日常保存

1 package adapter 1 package adapter
2 2
3 type TaskInfoAdapter struct { 3 type TaskInfoAdapter struct {
4 - Id int `json:"id,string"`  
5 - Name string `json:"name"` // 任务名称  
6 - Alias string `json:"alias"` // 任务别名  
7 - LeaderId int64 `json:"leaderId,string"` //  
8 - Leader UserData `json:"leader"` // 任务负责人  
9 - Status int `json:"status"` // 任务的状态  
10 - StatusDescription string `json:"statusDescription"` //  
11 - // Level int `json:"level"` // 优先级,值越小优先级越高  
12 - LevelName string `json:"levelName"` // 任务类别名称  
13 - SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高  
14 - EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间  
15 - UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用  
16 - RelatedUserId []string `json:"relatedUserId"` // 相关的员工id  
17 - RelatedUser []UserData `json:"relatedUser"` // 相关的员工id  
18 - StageList []TaskStage `json:"stageList"` 4 + Id int `json:"id,string"`
  5 + Name string `json:"name"` // 任务名称
  6 + Alias string `json:"alias"` // 任务别名
  7 + LeaderId int64 `json:"leaderId,string"` //
  8 + Leader UserData `json:"leader"` // 任务负责人
  9 + Status int `json:"status"` // 任务的状态
  10 + StatusDescription string `json:"statusDescription"` //
  11 + LevelName string `json:"levelName"` // 任务类别名称
  12 + SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高
  13 + EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
  14 + UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
  15 + AssistFlagMax int `json:"assist_flag_max"` // 辅导异常标记最大值
  16 + RelatedUserId []string `json:"relatedUserId"` // 相关的员工id
  17 + RelatedUser []UserData `json:"relatedUser"` // 相关的员工id
  18 + StageList []TaskStage `json:"stageList"`
19 } 19 }
20 20
21 type UserData struct { 21 type UserData struct {
@@ -14,4 +14,5 @@ type UpdateTaskCommand struct { @@ -14,4 +14,5 @@ type UpdateTaskCommand struct {
14 Name string `json:"name"` //里程碑名称 14 Name string `json:"name"` //里程碑名称
15 PlanCompletedAt string `json:"planCompletedAt"` //计划完成时间, 例:2006-01-02 15 PlanCompletedAt string `json:"planCompletedAt"` //计划完成时间, 例:2006-01-02
16 } `json:"stageList"` 16 } `json:"stageList"`
  17 + AssistFlagMax int `json:"assistFlagMax"` // 辅导异常标记最大值
17 } 18 }
@@ -198,7 +198,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] @@ -198,7 +198,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
198 if err != nil { 198 if err != nil {
199 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 199 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
200 } 200 }
201 - //任务的相关人员 201 + //更新任务的相关人员
202 relatedUserIds := []int{} 202 relatedUserIds := []int{}
203 for _, val := range param.RelatedUserId { 203 for _, val := range param.RelatedUserId {
204 id, _ := strconv.Atoi(val) 204 id, _ := strconv.Atoi(val)
@@ -218,10 +218,12 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] @@ -218,10 +218,12 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
218 for _, val := range relatedUser { 218 for _, val := range relatedUser {
219 taskData.RelatedUser = append(taskData.RelatedUser, int(val.Id)) 219 taskData.RelatedUser = append(taskData.RelatedUser, int(val.Id))
220 } 220 }
221 - //更新任务名称 221 + //更新任务名称,任务分类
222 taskData.Alias = param.Alias 222 taskData.Alias = param.Alias
223 taskData.ApplyLevelName(param.LevelName) 223 taskData.ApplyLevelName(param.LevelName)
  224 +
224 nowTime := time.Now() 225 nowTime := time.Now()
  226 + //更新里程碑数据
225 stageMap := map[int]*domain.TaskStage{} 227 stageMap := map[int]*domain.TaskStage{}
226 for _, val := range stageList { 228 for _, val := range stageList {
227 val.DeletedAt = &nowTime 229 val.DeletedAt = &nowTime
@@ -229,7 +231,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] @@ -229,7 +231,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
229 } 231 }
230 lastPlanCompletedAt := time.Time{} 232 lastPlanCompletedAt := time.Time{}
231 newStageList := []*domain.TaskStage{} 233 newStageList := []*domain.TaskStage{}
232 - //标记完成时间变更的里程碑 234 + //标记 变更完成时间的 里程碑
233 markStage := []domain.TaskStage{} 235 markStage := []domain.TaskStage{}
234 for i, val2 := range param.StageList { 236 for i, val2 := range param.StageList {
235 t, err := time.ParseInLocation("2006-01-02", val2.PlanCompletedAt, time.Local) 237 t, err := time.ParseInLocation("2006-01-02", val2.PlanCompletedAt, time.Local)
@@ -303,6 +305,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] @@ -303,6 +305,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
303 } 305 }
304 306
305 taskData.UseEndTime = param.UseEndtime 307 taskData.UseEndTime = param.UseEndtime
  308 + taskData.AssistFlagMax = param.AssistFlagMax
306 err = taskRepo.Save(taskData) 309 err = taskRepo.Save(taskData)
307 if err != nil { 310 if err != nil {
308 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 311 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
@@ -449,13 +452,6 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task @@ -449,13 +452,6 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task
449 taskRecordRepo := factory.CreateTaskRecordRepository(map[string]interface{}{ 452 taskRecordRepo := factory.CreateTaskRecordRepository(map[string]interface{}{
450 "transactionContext": transactionContext, 453 "transactionContext": transactionContext,
451 }) 454 })
452 - // cnt, _, err := taskRecordRepo.Find(map[string]interface{}{  
453 - // "taskId": param.TaskId,  
454 - // "limit": 1,  
455 - // })  
456 - // if err != nil {  
457 - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "相关联的任务反馈信息"+err.Error())  
458 - // }  
459 result := adapter.TaskInfoAdapter{ 455 result := adapter.TaskInfoAdapter{
460 Id: taskData.Id, 456 Id: taskData.Id,
461 Name: taskData.Name, 457 Name: taskData.Name,
@@ -477,6 +473,7 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task @@ -477,6 +473,7 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task
477 RelatedUserId: []string{}, 473 RelatedUserId: []string{},
478 RelatedUser: []adapter.UserData{}, 474 RelatedUser: []adapter.UserData{},
479 StageList: []adapter.TaskStage{}, 475 StageList: []adapter.TaskStage{},
  476 + AssistFlagMax: taskData.AssistFlagMax,
480 } 477 }
481 for _, val := range relatedUserList { 478 for _, val := range relatedUserList {
482 idStr := strconv.Itoa(int(val.Id)) 479 idStr := strconv.Itoa(int(val.Id))
@@ -487,6 +484,7 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task @@ -487,6 +484,7 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task
487 Name: val.Name, 484 Name: val.Name,
488 ParentId: val.ParentId, 485 ParentId: val.ParentId,
489 }) 486 })
  487 +
490 } 488 }
491 489
492 for _, val := range stageList { 490 for _, val := range stageList {
@@ -54,27 +54,30 @@ func (t TaskSortBy) Named() string { @@ -54,27 +54,30 @@ func (t TaskSortBy) Named() string {
54 54
55 // 任务 55 // 任务
56 type Task struct { 56 type Task struct {
57 - Id int `json:"id"`  
58 - CreatedAt time.Time `json:"createdAt"`  
59 - UpdatedAt time.Time `json:"updatedAt"`  
60 - DeletedAt *time.Time `json:"deletedAt"`  
61 - CompanyId int `json:"companyId,string"`  
62 - Name string `json:"name"` // 任务名称  
63 - Alias string `json:"alias"` // 任务别名  
64 - Leader TaskLeader `json:"leader"` // 任务负责人  
65 - Status TaskState `json:"status"` // 任务的状态  
66 - Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)  
67 - LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)  
68 - SortBy TaskSortBy `json:"sortBy"` // 优先级排序;值越小优先级越高  
69 - EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间  
70 - UseEndTime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用  
71 - RelatedUser []int `json:"relatedUser"` // 相关的员工id  
72 - RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒  
73 - StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒  
74 - Anomaly int `json:"anomaly"` // 异常反馈的次数  
75 - WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记  
76 - CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑  
77 - LastStage TaskStage `json:"lastStage"` // 上一个完成的里程碑 57 + Id int `json:"id"`
  58 + CreatedAt time.Time `json:"createdAt"`
  59 + UpdatedAt time.Time `json:"updatedAt"`
  60 + DeletedAt *time.Time `json:"deletedAt"`
  61 + CompanyId int `json:"companyId,string"`
  62 + Name string `json:"name"` // 任务名称
  63 + Alias string `json:"alias"` // 任务别名
  64 + Leader TaskLeader `json:"leader"` // 任务负责人
  65 + Status TaskState `json:"status"` // 任务的状态
  66 + Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)
  67 + LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)
  68 + SortBy TaskSortBy `json:"sortBy"` // 优先级排序;值越小优先级越高
  69 + EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
  70 + UseEndTime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
  71 + RelatedUser []int `json:"relatedUser"` // 相关的员工id
  72 + RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒
  73 + StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒
  74 + Anomaly int `json:"anomaly"` // 异常反馈的次数
  75 + WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记
  76 + AssistFlag int `json:"assistFlag"` // 辅导异常标记
  77 + AssistFlagMax int `json:"assistFlagMax"` // 辅导异常标记最大值
  78 + CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑
  79 + LastStage TaskStage `json:"lastStage"` // 上一个完成的里程碑
  80 + CreatedBy int `json:"createdBy"` // 任务的创建方式 0: 根据模板中的任务创建,1:页面主动直接创建
78 } 81 }
79 82
80 type TaskLeader struct { 83 type TaskLeader struct {
  1 +package domain
  2 +
  3 +// 任务的异常记录
  4 +type TaskAnomaly struct {
  5 + Id int
  6 +}
1 package domain 1 package domain
2 2
3 -// 任务有优先级 3 +// 任务的新建分类
4 type TaskLevel struct { 4 type TaskLevel struct {
5 Id int `json:"id"` 5 Id int `json:"id"`
6 LevelName string `json:"levelName"` 6 LevelName string `json:"levelName"`
@@ -8,26 +8,28 @@ import ( @@ -8,26 +8,28 @@ import (
8 8
9 // 任务 9 // 任务
10 type Task struct { 10 type Task struct {
11 - tableName struct{} `comment:"任务" pg:"task"`  
12 - Id int `pg:"id,pk"` //  
13 - CreatedAt time.Time `pg:"created_at"` //  
14 - UpdatedAt time.Time `pg:"updated_at"` //  
15 - DeletedAt *time.Time `pg:"deleted_at"` //  
16 - Name string `pg:"name"` // 任务名称  
17 - Alias string `pg:"alias"` //  
18 - CompanyId int `pg:"company_id"` //  
19 - Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人  
20 - Status int `pg:"status,use_zero"` // 任务的状态  
21 - Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高  
22 - LevelName string `pg:"level_name"` // 优先级名称  
23 - RelatedUser []int `pg:"related_user"` //  
24 - LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失  
25 - RunAt int64 `pg:"run_at,use_zero"` // 启动的时间  
26 - StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间  
27 - Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量  
28 - WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记  
29 - CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失  
30 - SortBy int `pg:"sort_by,use_zero"` // 优先级排序;值越小优先级越高  
31 - EndTime int64 `pg:"end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间  
32 - UseEndTime int `pg:"use_end_time,use_zero"` // 是否应用任务截止的时间;默认值0:不应用,1:应用 11 + tableName struct{} `comment:"任务" pg:"task"`
  12 + Id int `pg:"id,pk"` //
  13 + CreatedAt time.Time `pg:"created_at"` //
  14 + UpdatedAt time.Time `pg:"updated_at"` //
  15 + DeletedAt *time.Time `pg:"deleted_at"` //
  16 + Name string `pg:"name"` // 任务名称
  17 + Alias string `pg:"alias"` //
  18 + CompanyId int `pg:"company_id"` //
  19 + Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人
  20 + Status int `pg:"status,use_zero"` // 任务的状态
  21 + Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高
  22 + LevelName string `pg:"level_name"` // 优先级名称
  23 + RelatedUser []int `pg:"related_user"` //
  24 + LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失
  25 + RunAt int64 `pg:"run_at,use_zero"` // 启动的时间
  26 + StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间
  27 + Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量
  28 + WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记
  29 + CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失
  30 + SortBy int `pg:"sort_by,use_zero"` // 优先级排序;值越小优先级越高
  31 + EndTime int64 `pg:"end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
  32 + UseEndTime int `pg:"use_end_time,use_zero"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
  33 + AssistFlag int `pg:"assist_flag"` // 辅导异常标记
  34 + AssistFlagMax int `pg:"assist_flag_max"` // 辅导异常标记最大值
33 } 35 }
@@ -26,27 +26,29 @@ func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *Ta @@ -26,27 +26,29 @@ func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *Ta
26 26
27 func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { 27 func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task {
28 return &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 - CurrentStage: d.CurrentStage,  
49 - LastStage: d.LastStage, 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,
50 } 52 }
51 } 53 }
52 54
@@ -56,27 +58,29 @@ func (repo *TaskRepository) Save(param *domain.Task) error { @@ -56,27 +58,29 @@ func (repo *TaskRepository) Save(param *domain.Task) error {
56 param.CreatedAt = time.Now() 58 param.CreatedAt = time.Now()
57 } 59 }
58 m := models.Task{ 60 m := models.Task{
59 - Id: param.Id,  
60 - CreatedAt: param.CreatedAt,  
61 - UpdatedAt: param.UpdatedAt,  
62 - DeletedAt: param.DeletedAt,  
63 - Name: param.Name,  
64 - Alias: param.Alias,  
65 - CompanyId: param.CompanyId,  
66 - Leader: param.Leader,  
67 - Status: int(param.Status),  
68 - Level: param.Level,  
69 - LevelName: param.LevelName,  
70 - RelatedUser: param.RelatedUser,  
71 - LastStage: param.LastStage,  
72 - RunAt: param.RunAt,  
73 - StopAt: param.StopAt,  
74 - Anomaly: param.Anomaly,  
75 - WarnFlag: int(param.WarnFlag),  
76 - CurrentStage: param.CurrentStage,  
77 - SortBy: int(param.SortBy),  
78 - EndTime: param.EndTime,  
79 - UseEndTime: param.UseEndTime, 61 + Id: param.Id,
  62 + CreatedAt: param.CreatedAt,
  63 + UpdatedAt: param.UpdatedAt,
  64 + DeletedAt: param.DeletedAt,
  65 + Name: param.Name,
  66 + Alias: param.Alias,
  67 + CompanyId: param.CompanyId,
  68 + Leader: param.Leader,
  69 + Status: int(param.Status),
  70 + Level: param.Level,
  71 + LevelName: param.LevelName,
  72 + RelatedUser: param.RelatedUser,
  73 + LastStage: param.LastStage,
  74 + RunAt: param.RunAt,
  75 + StopAt: param.StopAt,
  76 + Anomaly: param.Anomaly,
  77 + WarnFlag: int(param.WarnFlag),
  78 + CurrentStage: param.CurrentStage,
  79 + SortBy: int(param.SortBy),
  80 + EndTime: param.EndTime,
  81 + UseEndTime: param.UseEndTime,
  82 + AssistFlag: param.AssistFlag,
  83 + AssistFlagMax: param.AssistFlagMax,
80 } 84 }
81 db := repo.transactionContext.PgTx 85 db := repo.transactionContext.PgTx
82 if m.Id == 0 { 86 if m.Id == 0 {