作者 tangxvhui

Merge branch 'dev-tangxvhui' into test

@@ -6,6 +6,9 @@ type UpdateTaskCommand struct { @@ -6,6 +6,9 @@ type UpdateTaskCommand struct {
6 Alias string `json:"alias"` //任务名称 6 Alias string `json:"alias"` //任务名称
7 LevelName string `json:"levelName"` //优先级 7 LevelName string `json:"levelName"` //优先级
8 RelatedUserId []string `json:"relatedUserId"` //相关人员id 8 RelatedUserId []string `json:"relatedUserId"` //相关人员id
  9 + SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高
  10 + EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
  11 + UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
9 StageList []struct { 12 StageList []struct {
10 Id int `json:"id,string"` 13 Id int `json:"id,string"`
11 Name string `json:"name"` //里程碑名称 14 Name string `json:"name"` //里程碑名称
@@ -92,7 +92,6 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont @@ -92,7 +92,6 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
92 } 92 }
93 leaderData := leaderList[0] 93 leaderData := leaderList[0]
94 nowTime := time.Now() 94 nowTime := time.Now()
95 - nowEndTime := dayEndTime(nowTime)  
96 newTask := domain.Task{ 95 newTask := domain.Task{
97 Id: 0, 96 Id: 0,
98 CreatedAt: time.Time{}, 97 CreatedAt: time.Time{},
@@ -112,6 +111,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont @@ -112,6 +111,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
112 RelatedUser: []int{int(leaderData.Id)}, 111 RelatedUser: []int{int(leaderData.Id)},
113 RunAt: nowTime.Unix(), 112 RunAt: nowTime.Unix(),
114 StopAt: 0, 113 StopAt: 0,
  114 + SortBy: domain.TaskSortNull,
115 } 115 }
116 if int(leaderData.ParentId) != 0 { 116 if int(leaderData.ParentId) != 0 {
117 newTask.RelatedUser = append(newTask.RelatedUser, int(leaderData.ParentId)) 117 newTask.RelatedUser = append(newTask.RelatedUser, int(leaderData.ParentId))
@@ -122,30 +122,30 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont @@ -122,30 +122,30 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
122 return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error()) 122 return application.ThrowError(application.INTERNAL_SERVER_ERROR, "创建任务失败:"+err.Error())
123 } 123 }
124 newTaskStage := []*domain.TaskStage{ 124 newTaskStage := []*domain.TaskStage{
125 - {  
126 - Id: 0,  
127 - TaskId: newTask.Id,  
128 - Name: "里程碑1",  
129 - SortBy: 1,  
130 - PlanCompletedAt: nowEndTime.Add(30 * 24 * time.Hour).Unix(),  
131 - RealCompletedAt: 0,  
132 - },  
133 - {  
134 - Id: 0,  
135 - TaskId: newTask.Id,  
136 - Name: "里程碑2",  
137 - SortBy: 2,  
138 - PlanCompletedAt: nowEndTime.Add(60 * 24 * time.Hour).Unix(),  
139 - RealCompletedAt: 0,  
140 - },  
141 - {  
142 - Id: 0,  
143 - TaskId: newTask.Id,  
144 - Name: "里程碑3",  
145 - SortBy: 3,  
146 - PlanCompletedAt: nowEndTime.Add(90 * 24 * time.Hour).Unix(),  
147 - RealCompletedAt: 0,  
148 - }, 125 + // {
  126 + // Id: 0,
  127 + // TaskId: newTask.Id,
  128 + // Name: "里程碑1",
  129 + // SortBy: 1,
  130 + // PlanCompletedAt: nowEndTime.Add(30 * 24 * time.Hour).Unix(),
  131 + // RealCompletedAt: 0,
  132 + // },
  133 + // {
  134 + // Id: 0,
  135 + // TaskId: newTask.Id,
  136 + // Name: "里程碑2",
  137 + // SortBy: 2,
  138 + // PlanCompletedAt: nowEndTime.Add(60 * 24 * time.Hour).Unix(),
  139 + // RealCompletedAt: 0,
  140 + // },
  141 + // {
  142 + // Id: 0,
  143 + // TaskId: newTask.Id,
  144 + // Name: "里程碑3",
  145 + // SortBy: 3,
  146 + // PlanCompletedAt: nowEndTime.Add(90 * 24 * time.Hour).Unix(),
  147 + // RealCompletedAt: 0,
  148 + // },
149 } 149 }
150 err = taskStageRepo.Save(newTaskStage) 150 err = taskStageRepo.Save(newTaskStage)
151 if err != nil { 151 if err != nil {
@@ -313,6 +313,9 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] @@ -313,6 +313,9 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
313 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 313 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
314 } 314 }
315 taskData.SetCurrentStage(stageList) 315 taskData.SetCurrentStage(stageList)
  316 + taskData.SetSortBy(param.SortBy)
  317 + taskData.EndTime = param.EndTime
  318 + taskData.UseEndTime = param.UseEndtime
316 err = taskRepo.Save(taskData) 319 err = taskRepo.Save(taskData)
317 if err != nil { 320 if err != nil {
318 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 321 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
@@ -21,6 +21,25 @@ const ( @@ -21,6 +21,25 @@ const (
21 TaskWarn TaskWarnFlag = 1 21 TaskWarn TaskWarnFlag = 1
22 ) 22 )
23 23
  24 +type TaskSortBy int
  25 +
  26 +const (
  27 + TaskSortHight TaskSortBy = 100
  28 + TaskSortMiddle TaskSortBy = 200
  29 + TaskSortLow TaskSortBy = 300
  30 + TaskSortNull TaskSortBy = 400
  31 +)
  32 +
  33 +func (t TaskSortBy) Named() string {
  34 + nameMap := map[TaskSortBy]string{
  35 + TaskSortHight: "高",
  36 + TaskSortMiddle: "中",
  37 + TaskSortLow: "低",
  38 + TaskSortNull: "无",
  39 + }
  40 + return nameMap[t]
  41 +}
  42 +
24 // 任务 43 // 任务
25 type Task struct { 44 type Task struct {
26 Id int `json:"id"` 45 Id int `json:"id"`
@@ -34,9 +53,9 @@ type Task struct { @@ -34,9 +53,9 @@ type Task struct {
34 Status TaskState `json:"status"` // 任务的状态 53 Status TaskState `json:"status"` // 任务的状态
35 Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留) 54 Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)
36 LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“) 55 LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)
37 - SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高 56 + SortBy TaskSortBy `json:"sortBy"` // 优先级排序;值越小优先级越高
38 EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 57 EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
39 - UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用 58 + UseEndTime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
40 RelatedUser []int `json:"relatedUser"` // 相关的员工id 59 RelatedUser []int `json:"relatedUser"` // 相关的员工id
41 RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒 60 RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒
42 StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒 61 StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒
@@ -83,6 +102,9 @@ func (t *Task) StatusDescription() string { @@ -83,6 +102,9 @@ func (t *Task) StatusDescription() string {
83 102
84 // 记录待执行的里程碑,和上一个执行的里程碑 103 // 记录待执行的里程碑,和上一个执行的里程碑
85 func (t *Task) SetCurrentStage(stageList []*TaskStage) { 104 func (t *Task) SetCurrentStage(stageList []*TaskStage) {
  105 + if len(stageList) == 0 {
  106 + return
  107 + }
86 sort.Slice(stageList, func(i, j int) bool { 108 sort.Slice(stageList, func(i, j int) bool {
87 return stageList[i].SortBy < stageList[j].SortBy 109 return stageList[i].SortBy < stageList[j].SortBy
88 }) 110 })
@@ -101,27 +123,16 @@ func (t *Task) SetCurrentStage(stageList []*TaskStage) { @@ -101,27 +123,16 @@ func (t *Task) SetCurrentStage(stageList []*TaskStage) {
101 123
102 // 设置优先级的值 124 // 设置优先级的值
103 func (t *Task) SetSortBy(a int) error { 125 func (t *Task) SetSortBy(a int) error {
104 - switch a {  
105 - case 100, 200, 300, 0: 126 + switch TaskSortBy(a) {
  127 + case TaskSortHight, TaskSortMiddle, TaskSortLow, TaskSortNull:
106 default: 128 default:
107 return errors.New("优先级值错误") 129 return errors.New("优先级值错误")
108 } 130 }
109 131
110 - t.SortBy = a 132 + t.SortBy = TaskSortBy(a)
111 return nil 133 return nil
112 } 134 }
113 135
114 -// 获取优先级的名称描述  
115 -func (t *Task) GetNameSortBy() string {  
116 - nameMap := map[int]string{  
117 - 100: "高",  
118 - 200: "中",  
119 - 300: "低",  
120 - 0: "无",  
121 - }  
122 - return nameMap[t.SortBy]  
123 -}  
124 -  
125 type TaskRepository interface { 136 type TaskRepository interface {
126 Save(param *Task) error 137 Save(param *Task) error
127 Remove(id int) error 138 Remove(id int) error
@@ -29,5 +29,5 @@ type Task struct { @@ -29,5 +29,5 @@ type Task struct {
29 CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失 29 CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失
30 SortBy int `pg:"sort_by"` // 优先级排序;值越小优先级越高 30 SortBy int `pg:"sort_by"` // 优先级排序;值越小优先级越高
31 EndTime int64 `pg:"end_time"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 31 EndTime int64 `pg:"end_time"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
32 - UseEndtime int `pg:"use_end_time"` // 是否应用任务截止的时间;默认值0:不应用,1:应用 32 + UseEndTime int `pg:"use_end_time"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
33 } 33 }
@@ -37,9 +37,9 @@ func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task { @@ -37,9 +37,9 @@ func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task {
37 Status: domain.TaskState(d.Status), 37 Status: domain.TaskState(d.Status),
38 Level: d.Level, 38 Level: d.Level,
39 LevelName: d.LevelName, 39 LevelName: d.LevelName,
40 - SortBy: d.SortBy, 40 + SortBy: domain.TaskSortBy(d.SortBy),
41 EndTime: d.EndTime, 41 EndTime: d.EndTime,
42 - UseEndtime: d.UseEndtime, 42 + UseEndTime: d.UseEndTime,
43 RelatedUser: d.RelatedUser, 43 RelatedUser: d.RelatedUser,
44 RunAt: d.RunAt, 44 RunAt: d.RunAt,
45 StopAt: d.StopAt, 45 StopAt: d.StopAt,
@@ -74,9 +74,9 @@ func (repo *TaskRepository) Save(param *domain.Task) error { @@ -74,9 +74,9 @@ func (repo *TaskRepository) Save(param *domain.Task) error {
74 Anomaly: param.Anomaly, 74 Anomaly: param.Anomaly,
75 WarnFlag: int(param.WarnFlag), 75 WarnFlag: int(param.WarnFlag),
76 CurrentStage: param.CurrentStage, 76 CurrentStage: param.CurrentStage,
77 - SortBy: param.SortBy, 77 + SortBy: int(param.SortBy),
78 EndTime: param.EndTime, 78 EndTime: param.EndTime,
79 - UseEndtime: param.UseEndtime, 79 + UseEndTime: param.UseEndTime,
80 } 80 }
81 db := repo.transactionContext.PgTx 81 db := repo.transactionContext.PgTx
82 if m.Id == 0 { 82 if m.Id == 0 {