作者 tangxvhui

任务完成后(最后一个里程碑完成时),隔日日评中的里程碑和上级辅导均要取消

... ... @@ -493,7 +493,9 @@ func (srv StaffAssessServeice) buildTaskRecord(staffAssess *domain.StaffAssess)
}
}
}
taskRecordList = append(taskRecordList, &newTaskRecord)
if newTaskRecord.TaskStageCheck.Id > 0 {
taskRecordList = append(taskRecordList, &newTaskRecord)
}
}
if err := transactionContext.CommitTransaction(); err != nil {
... ...
... ... @@ -73,7 +73,7 @@ func (srv TaskService) CreateTask(transactionContext application.TransactionCont
return application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询任务失败:"+err.Error())
}
if cnt > 0 {
//TODO
//任务已存在
return nil
}
... ... @@ -172,11 +172,11 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
defer func() {
_ = transactionContext.RollbackTransaction()
}()
if len(param.StageList) < 3 {
return map[string]interface{}{
"id": param.Id,
}, application.ThrowError(application.INTERNAL_SERVER_ERROR, "里程碑数量至少3个")
}
// if len(param.StageList) < 3 {
// return map[string]interface{}{
// "id": param.Id,
// }, application.ThrowError(application.INTERNAL_SERVER_ERROR, "里程碑数量至少3个")
// }
if len(param.StageList) > 5 {
return map[string]interface{}{
"id": param.Id,
... ... @@ -212,31 +212,15 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
var relatedUser []*domain.User
if len(relatedUserIds) > 0 {
_, relatedUser, err = userRepo.Find(map[string]interface{}{
"ids": relatedUserIds,
"ids": relatedUserIds,
"companyId": param.CompanyId,
})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取任务的相关人员"+err.Error())
}
}
_, leaderList, err := userRepo.Find(map[string]interface{}{
"id": taskData.Leader.Id,
})
if err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询人员失败:"+err.Error())
}
if len(leaderList) == 0 {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "没有查询到人员")
}
leaderData := leaderList[0]
//更新相关人员
taskData.RelatedUser = []int{int(leaderData.Id)}
if leaderData.ParentId != 0 {
taskData.RelatedUser = append(taskData.RelatedUser, int(leaderData.ParentId))
}
taskData.RelatedUser = []int{}
for _, val := range relatedUser {
if val.Id == leaderData.Id || val.Id == leaderData.ParentId {
continue
}
taskData.RelatedUser = append(taskData.RelatedUser, int(val.Id))
}
//更新任务名称
... ... @@ -323,7 +307,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]
messageRepo := factory.CreateMessagePersonalRepository(map[string]interface{}{
"transactionContext": transactionContext,
})
//更具markStage 记录的里程碑数据生成通知
//根据markStage 记录的里程碑数据生成通知
for _, val := range markStage {
for _, val2 := range taskData.RelatedUser {
t1 := time.Unix(val.PlanCompletedAt, 0).Format("2006-01-02")
... ...
... ... @@ -27,7 +27,7 @@ type Task struct {
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"` // 优先级排序;值越小优先级越高
EndTime int64 `pg:"end_time"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间
UseEndTime int `pg:"use_end_time"` // 是否应用任务截止的时间;默认值0:不应用,1:应用
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:应用
}
... ...
-- 修改task表结构
ALTER TABLE public.task
ADD sort_by int8 NOT NULL DEFAULT 0;
ALTER TABLE public.task
ADD end_time int8 NOT NULL DEFAULT 0;
ALTER TABLE public.task
ADD use_end_time int8 NOT NULL DEFAULT 0;
... ...