作者 tangxvhui

日常保存

package adapter
type TaskInfoAdapter struct {
Id int `json:"id,string"`
Name string `json:"name"` // 任务名称
Alias string `json:"alias"` // 任务别名
LeaderId int64 `json:"leaderId,string"` //
Leader UserData `json:"leader"` // 任务负责人
Status int `json:"status"` // 任务的状态
StatusDescription string `json:"statusDescription"` //
// Level int `json:"level"` // 优先级,值越小优先级越高
LevelName string `json:"levelName"` // 任务类别名称
SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高
EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
RelatedUserId []string `json:"relatedUserId"` // 相关的员工id
RelatedUser []UserData `json:"relatedUser"` // 相关的员工id
StageList []TaskStage `json:"stageList"`
Id int `json:"id,string"`
Name string `json:"name"` // 任务名称
Alias string `json:"alias"` // 任务别名
LeaderId int64 `json:"leaderId,string"` //
Leader UserData `json:"leader"` // 任务负责人
Status int `json:"status"` // 任务的状态
StatusDescription string `json:"statusDescription"` //
LevelName string `json:"levelName"` // 任务类别名称
SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高
EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
AssistFlagMax int `json:"assist_flag_max"` // 辅导异常标记最大值
RelatedUserId []string `json:"relatedUserId"` // 相关的员工id
RelatedUser []UserData `json:"relatedUser"` // 相关的员工id
StageList []TaskStage `json:"stageList"`
}
type UserData struct {
... ...
... ... @@ -14,4 +14,5 @@ type UpdateTaskCommand struct {
Name string `json:"name"` //里程碑名称
PlanCompletedAt string `json:"planCompletedAt"` //计划完成时间, 例:2006-01-02
} `json:"stageList"`
AssistFlagMax int `json:"assistFlagMax"` // 辅导异常标记最大值
}
... ...
... ... @@ -198,7 +198,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
}
//任务的相关人员
//更新任务的相关人员
relatedUserIds := []int{}
for _, val := range param.RelatedUserId {
id, _ := strconv.Atoi(val)
... ... @@ -218,10 +218,12 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
for _, val := range relatedUser {
taskData.RelatedUser = append(taskData.RelatedUser, int(val.Id))
}
//更新任务名称
//更新任务名称,任务分类
taskData.Alias = param.Alias
taskData.ApplyLevelName(param.LevelName)
nowTime := time.Now()
//更新里程碑数据
stageMap := map[int]*domain.TaskStage{}
for _, val := range stageList {
val.DeletedAt = &nowTime
... ... @@ -229,7 +231,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
}
lastPlanCompletedAt := time.Time{}
newStageList := []*domain.TaskStage{}
//标记完成时间变更的里程碑
//标记 变更完成时间的 里程碑
markStage := []domain.TaskStage{}
for i, val2 := range param.StageList {
t, err := time.ParseInLocation("2006-01-02", val2.PlanCompletedAt, time.Local)
... ... @@ -303,6 +305,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
}
taskData.UseEndTime = param.UseEndtime
taskData.AssistFlagMax = param.AssistFlagMax
err = taskRepo.Save(taskData)
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
... ... @@ -449,13 +452,6 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task
taskRecordRepo := factory.CreateTaskRecordRepository(map[string]interface{}{
"transactionContext": transactionContext,
})
// cnt, _, err := taskRecordRepo.Find(map[string]interface{}{
// "taskId": param.TaskId,
// "limit": 1,
// })
// if err != nil {
// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "相关联的任务反馈信息"+err.Error())
// }
result := adapter.TaskInfoAdapter{
Id: taskData.Id,
Name: taskData.Name,
... ... @@ -477,6 +473,7 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task
RelatedUserId: []string{},
RelatedUser: []adapter.UserData{},
StageList: []adapter.TaskStage{},
AssistFlagMax: taskData.AssistFlagMax,
}
for _, val := range relatedUserList {
idStr := strconv.Itoa(int(val.Id))
... ... @@ -487,6 +484,7 @@ func (srv TaskService) GetTaskInfo(param *command.GetTaskCommand) (*adapter.Task
Name: val.Name,
ParentId: val.ParentId,
})
}
for _, val := range stageList {
... ...
... ... @@ -54,27 +54,30 @@ func (t TaskSortBy) Named() string {
// 任务
type Task struct {
Id int `json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
CompanyId int `json:"companyId,string"`
Name string `json:"name"` // 任务名称
Alias string `json:"alias"` // 任务别名
Leader TaskLeader `json:"leader"` // 任务负责人
Status TaskState `json:"status"` // 任务的状态
Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)
LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)
SortBy TaskSortBy `json:"sortBy"` // 优先级排序;值越小优先级越高
EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndTime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
RelatedUser []int `json:"relatedUser"` // 相关的员工id
RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒
Anomaly int `json:"anomaly"` // 异常反馈的次数
WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记
CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑
LastStage TaskStage `json:"lastStage"` // 上一个完成的里程碑
Id int `json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
CompanyId int `json:"companyId,string"`
Name string `json:"name"` // 任务名称
Alias string `json:"alias"` // 任务别名
Leader TaskLeader `json:"leader"` // 任务负责人
Status TaskState `json:"status"` // 任务的状态
Level int `json:"level"` // 优先级 (优先级字段表示的意义变更,不再需要这个字段,仅数据保留)
LevelName string `json:"levelName"` // 字段表示的意义变更; 原来 (“优先级名称“)=> 现在 (“任务类型“)
SortBy TaskSortBy `json:"sortBy"` // 优先级排序;值越小优先级越高
EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndTime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
RelatedUser []int `json:"relatedUser"` // 相关的员工id
RunAt int64 `json:"runAt"` // 启动的时间戳,单位:秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,单位:秒
Anomaly int `json:"anomaly"` // 异常反馈的次数
WarnFlag TaskWarnFlag `json:"warnFlag"` // 里程碑异常标记
AssistFlag int `json:"assistFlag"` // 辅导异常标记
AssistFlagMax int `json:"assistFlagMax"` // 辅导异常标记最大值
CurrentStage TaskStage `json:"currentStage"` // 当前执行的里程碑
LastStage TaskStage `json:"lastStage"` // 上一个完成的里程碑
CreatedBy int `json:"createdBy"` // 任务的创建方式 0: 根据模板中的任务创建,1:页面主动直接创建
}
type TaskLeader struct {
... ...
package domain
// 任务的异常记录
type TaskAnomaly struct {
Id int
}
... ...
package domain
// 任务有优先级
// 任务的新建分类
type TaskLevel struct {
Id int `json:"id"`
LevelName string `json:"levelName"`
... ...
... ... @@ -8,26 +8,28 @@ import (
// 任务
type Task struct {
tableName struct{} `comment:"任务" pg:"task"`
Id int `pg:"id,pk"` //
CreatedAt time.Time `pg:"created_at"` //
UpdatedAt time.Time `pg:"updated_at"` //
DeletedAt *time.Time `pg:"deleted_at"` //
Name string `pg:"name"` // 任务名称
Alias string `pg:"alias"` //
CompanyId int `pg:"company_id"` //
Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人
Status int `pg:"status,use_zero"` // 任务的状态
Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高
LevelName string `pg:"level_name"` // 优先级名称
RelatedUser []int `pg:"related_user"` //
LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失
RunAt int64 `pg:"run_at,use_zero"` // 启动的时间
StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间
Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量
WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记
CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失
SortBy int `pg:"sort_by,use_zero"` // 优先级排序;值越小优先级越高
EndTime int64 `pg:"end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndTime int `pg:"use_end_time,use_zero"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
tableName struct{} `comment:"任务" pg:"task"`
Id int `pg:"id,pk"` //
CreatedAt time.Time `pg:"created_at"` //
UpdatedAt time.Time `pg:"updated_at"` //
DeletedAt *time.Time `pg:"deleted_at"` //
Name string `pg:"name"` // 任务名称
Alias string `pg:"alias"` //
CompanyId int `pg:"company_id"` //
Leader domain.TaskLeader `pg:"leader,type:jsonb"` // 任务负责人
Status int `pg:"status,use_zero"` // 任务的状态
Level int `pg:"level,use_zero"` // 优先级,值越小优先级越高
LevelName string `pg:"level_name"` // 优先级名称
RelatedUser []int `pg:"related_user"` //
LastStage domain.TaskStage `pg:"last_stage,type:jsonb"` // 上一个完成的里程碑,添加type:jsonb 防止orm生成sql时字段丢失
RunAt int64 `pg:"run_at,use_zero"` // 启动的时间
StopAt int64 `pg:"stop_at,use_zero" ` // 停止的时间
Anomaly int `pg:"anomaly,use_zero"` // 异常反馈的数量
WarnFlag int `pg:"warn_flag,use_zero"` // 里程碑异常标记
CurrentStage domain.TaskStage `pg:"current_stage,type:jsonb"` // 添加type:jsonb 防止orm(可能是特性)生成sql时字段丢失
SortBy int `pg:"sort_by,use_zero"` // 优先级排序;值越小优先级越高
EndTime int64 `pg:"end_time,use_zero"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndTime int `pg:"use_end_time,use_zero"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
AssistFlag int `pg:"assist_flag"` // 辅导异常标记
AssistFlagMax int `pg:"assist_flag_max"` // 辅导异常标记最大值
}
... ...
... ... @@ -26,27 +26,29 @@ func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) *Ta
func (repo *TaskRepository) TransformToDomain(d *models.Task) *domain.Task {
return &domain.Task{
Id: d.Id,
CreatedAt: d.CreatedAt,
UpdatedAt: d.UpdatedAt,
DeletedAt: d.DeletedAt,
CompanyId: d.CompanyId,
Name: d.Name,
Alias: d.Alias,
Leader: d.Leader,
Status: domain.TaskState(d.Status),
Level: d.Level,
LevelName: d.LevelName,
SortBy: domain.TaskSortBy(d.SortBy),
EndTime: d.EndTime,
UseEndTime: d.UseEndTime,
RelatedUser: d.RelatedUser,
RunAt: d.RunAt,
StopAt: d.StopAt,
Anomaly: d.Anomaly,
WarnFlag: domain.TaskWarnFlag(d.WarnFlag),
CurrentStage: d.CurrentStage,
LastStage: d.LastStage,
Id: d.Id,
CreatedAt: d.CreatedAt,
UpdatedAt: d.UpdatedAt,
DeletedAt: d.DeletedAt,
CompanyId: d.CompanyId,
Name: d.Name,
Alias: d.Alias,
Leader: d.Leader,
Status: domain.TaskState(d.Status),
Level: d.Level,
LevelName: d.LevelName,
SortBy: domain.TaskSortBy(d.SortBy),
EndTime: d.EndTime,
UseEndTime: d.UseEndTime,
RelatedUser: d.RelatedUser,
RunAt: d.RunAt,
StopAt: d.StopAt,
Anomaly: d.Anomaly,
WarnFlag: domain.TaskWarnFlag(d.WarnFlag),
AssistFlag: d.AssistFlag,
AssistFlagMax: d.AssistFlagMax,
CurrentStage: d.CurrentStage,
LastStage: d.LastStage,
}
}
... ... @@ -56,27 +58,29 @@ func (repo *TaskRepository) Save(param *domain.Task) error {
param.CreatedAt = time.Now()
}
m := models.Task{
Id: param.Id,
CreatedAt: param.CreatedAt,
UpdatedAt: param.UpdatedAt,
DeletedAt: param.DeletedAt,
Name: param.Name,
Alias: param.Alias,
CompanyId: param.CompanyId,
Leader: param.Leader,
Status: int(param.Status),
Level: param.Level,
LevelName: param.LevelName,
RelatedUser: param.RelatedUser,
LastStage: param.LastStage,
RunAt: param.RunAt,
StopAt: param.StopAt,
Anomaly: param.Anomaly,
WarnFlag: int(param.WarnFlag),
CurrentStage: param.CurrentStage,
SortBy: int(param.SortBy),
EndTime: param.EndTime,
UseEndTime: param.UseEndTime,
Id: param.Id,
CreatedAt: param.CreatedAt,
UpdatedAt: param.UpdatedAt,
DeletedAt: param.DeletedAt,
Name: param.Name,
Alias: param.Alias,
CompanyId: param.CompanyId,
Leader: param.Leader,
Status: int(param.Status),
Level: param.Level,
LevelName: param.LevelName,
RelatedUser: param.RelatedUser,
LastStage: param.LastStage,
RunAt: param.RunAt,
StopAt: param.StopAt,
Anomaly: param.Anomaly,
WarnFlag: int(param.WarnFlag),
CurrentStage: param.CurrentStage,
SortBy: int(param.SortBy),
EndTime: param.EndTime,
UseEndTime: param.UseEndTime,
AssistFlag: param.AssistFlag,
AssistFlagMax: param.AssistFlagMax,
}
db := repo.transactionContext.PgTx
if m.Id == 0 {
... ...