|
...
|
...
|
@@ -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())
|
|
...
|
...
|
@@ -605,6 +611,10 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte |
|
|
|
if err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息"+err.Error())
|
|
|
|
}
|
|
|
|
if hrbpFlag == domain.RoleTypeSystem {
|
|
|
|
listData, err := t.listTask2ForHrbp(param)
|
|
|
|
return listData, err
|
|
|
|
}
|
|
|
|
var limit = 20
|
|
|
|
var offset = 0
|
|
|
|
if param.PageSize > 0 {
|
|
...
|
...
|
@@ -623,22 +633,204 @@ func (t TaskService) ListTask2(param command.SearchTaskCommand) (map[string]inte |
|
|
|
LeaderId: param.LeaderId,
|
|
|
|
}
|
|
|
|
|
|
|
|
if hrbpFlag == domain.RoleTypeSystem {
|
|
|
|
//已hrbp权限获取
|
|
|
|
// info.IsHrbp = true
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
taskDato := dao.NewTaskDao(map[string]interface{}{
|
|
|
|
"transactionContext": transactionContext,
|
|
|
|
})
|
|
|
|
taskDato.ListTaskStageNotHrbp(condition)
|
|
|
|
tasklistData, err := taskDato.ListTaskStageNotHrbp(condition)
|
|
|
|
if err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取任务列表"+err.Error())
|
|
|
|
}
|
|
|
|
taskCount, err := taskDato.CountTaskStageNotHrbp(condition)
|
|
|
|
if err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "统计任务总数"+err.Error())
|
|
|
|
}
|
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
taskResult := []*adapter.TaskItem{}
|
|
|
|
taskMapResult := map[int]*adapter.TaskItem{}
|
|
|
|
for _, val := range tasklistData {
|
|
|
|
if _, ok := taskMapResult[val.TaskId]; ok {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
tk := adapter.TaskItem{
|
|
|
|
Id: val.TaskId,
|
|
|
|
Name: val.TaskName,
|
|
|
|
Alias: val.TaskAliasName,
|
|
|
|
Leader: val.LeaderName,
|
|
|
|
Status: val.TaskStatus,
|
|
|
|
Level: val.Level,
|
|
|
|
LevelName: val.LevelName,
|
|
|
|
// StageA: adapter.TaskStage{},
|
|
|
|
// StageB: adapter.TaskStage{},
|
|
|
|
// StageC: adapter.TaskStage{},
|
|
|
|
// StageD: adapter.TaskStage{},
|
|
|
|
// StageE: adapter.TaskStage{},
|
|
|
|
}
|
|
|
|
taskMapResult[val.TaskId] = &tk
|
|
|
|
taskResult = append(taskResult, &tk)
|
|
|
|
}
|
|
|
|
for _, val := range tasklistData {
|
|
|
|
taskData, ok := taskMapResult[val.TaskId]
|
|
|
|
if !ok {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
stage := adapter.TaskStage{
|
|
|
|
Id: val.StageId,
|
|
|
|
Name: val.StageName,
|
|
|
|
Status: val.StageStatus,
|
|
|
|
SortBy: val.StageSortBy,
|
|
|
|
}
|
|
|
|
switch val.StageSortBy {
|
|
|
|
case 1:
|
|
|
|
taskData.StageA = stage
|
|
|
|
case 2:
|
|
|
|
taskData.StageB = stage
|
|
|
|
case 3:
|
|
|
|
taskData.StageC = stage
|
|
|
|
case 4:
|
|
|
|
taskData.StageD = stage
|
|
|
|
case 5:
|
|
|
|
taskData.StageE = stage
|
|
|
|
}
|
|
|
|
}
|
|
|
|
result := tool_funs.SimpleWrapGridMap(int64(taskCount), taskResult)
|
|
|
|
return result, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// 以hrbp角色权限获取任务列表
|
|
|
|
func (t TaskService) ListTask2ForHrbp(param command.SearchTaskCommand) (map[string]interface{}, error) {
|
|
|
|
return nil, nil
|
|
|
|
func (t TaskService) listTask2ForHrbp(param *command.SearchTaskCommand) (map[string]interface{}, error) {
|
|
|
|
var limit = 20
|
|
|
|
var offset = 0
|
|
|
|
if param.PageSize > 0 {
|
|
|
|
limit = param.PageSize
|
|
|
|
if param.PageNumber > 0 {
|
|
|
|
offset = (param.PageNumber - 1) * param.PageSize
|
|
|
|
}
|
|
|
|
}
|
|
|
|
condition := dao.ListTaskCondition{
|
|
|
|
Limit: limit,
|
|
|
|
Offset: offset,
|
|
|
|
UserId: param.UserId,
|
|
|
|
TaskName: param.TaskName,
|
|
|
|
LevelName: param.LevelName,
|
|
|
|
OnlyMy: param.OnlyMy,
|
|
|
|
LeaderId: param.LeaderId,
|
|
|
|
}
|
|
|
|
transactionContext, err := factory.CreateTransactionContext(nil)
|
|
|
|
if err != nil {
|
|
|
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
|
}
|
|
|
|
if err := transactionContext.StartTransaction(); err != nil {
|
|
|
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
|
}
|
|
|
|
defer func() {
|
|
|
|
_ = transactionContext.RollbackTransaction()
|
|
|
|
}()
|
|
|
|
taskDato := dao.NewTaskDao(map[string]interface{}{
|
|
|
|
"transactionContext": transactionContext,
|
|
|
|
})
|
|
|
|
tasklistData, err := taskDato.ListTaskStageByHrbp(condition)
|
|
|
|
if err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取任务列表"+err.Error())
|
|
|
|
}
|
|
|
|
taskCount, err := taskDato.CountTaskStageByHrbp(condition)
|
|
|
|
if err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "统计任务总数"+err.Error())
|
|
|
|
}
|
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
|
}
|
|
|
|
taskResult := []*adapter.TaskItem{}
|
|
|
|
taskMapResult := map[int]*adapter.TaskItem{}
|
|
|
|
for _, val := range tasklistData {
|
|
|
|
if _, ok := taskMapResult[val.TaskId]; ok {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
tk := adapter.TaskItem{
|
|
|
|
Id: val.TaskId,
|
|
|
|
Name: val.TaskName,
|
|
|
|
Alias: val.TaskAliasName,
|
|
|
|
Leader: val.LeaderName,
|
|
|
|
Status: val.TaskStatus,
|
|
|
|
Level: val.Level,
|
|
|
|
LevelName: val.LevelName,
|
|
|
|
// StageA: adapter.TaskStage{},
|
|
|
|
// StageB: adapter.TaskStage{},
|
|
|
|
// StageC: adapter.TaskStage{},
|
|
|
|
// StageD: adapter.TaskStage{},
|
|
|
|
// StageE: adapter.TaskStage{},
|
|
|
|
}
|
|
|
|
taskMapResult[val.TaskId] = &tk
|
|
|
|
taskResult = append(taskResult, &tk)
|
|
|
|
}
|
|
|
|
for _, val := range tasklistData {
|
|
|
|
taskData, ok := taskMapResult[val.TaskId]
|
|
|
|
if !ok {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
stage := adapter.TaskStage{
|
|
|
|
Id: val.StageId,
|
|
|
|
Name: val.StageName,
|
|
|
|
Status: val.StageStatus,
|
|
|
|
SortBy: val.StageSortBy,
|
|
|
|
}
|
|
|
|
switch val.StageSortBy {
|
|
|
|
case 1:
|
|
|
|
taskData.StageA = stage
|
|
|
|
case 2:
|
|
|
|
taskData.StageB = stage
|
|
|
|
case 3:
|
|
|
|
taskData.StageC = stage
|
|
|
|
case 4:
|
|
|
|
taskData.StageD = stage
|
|
|
|
case 5:
|
|
|
|
taskData.StageE = stage
|
|
|
|
}
|
|
|
|
}
|
|
|
|
result := tool_funs.SimpleWrapGridMap(int64(taskCount), taskResult)
|
|
|
|
return result, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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
|
|
|
|
} |
...
|
...
|
|