task_list.go 2.0 KB
package adapter

import (
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
)

type TaskItem struct {
	Id             int       `json:"id,string"`
	Name           string    `json:"name"`           // 任务名称
	Alias          string    `json:"alias"`          // 任务别名
	Leader         string    `json:"leader"`         // 任务负责人
	Status         int       `json:"status"`         // 任务的状态
	StatusDescript string    `json:"statusDescript"` //任务的整体状态描述
	SortBy         int       `json:"level"`          // 优先级,值越小优先级越高
	LevelName      string    `json:"levelName"`      // 任务分类名称
	StageA         TaskStage `json:"stageA"`         // 里程碑1
	StageB         TaskStage `json:"stageB"`         // 里程碑2
	StageC         TaskStage `json:"stageC"`         // 里程碑3
	StageD         TaskStage `json:"stageD"`         // 里程碑4
	StageE         TaskStage `json:"stageE"`         // 里程碑5
	LastStage      TaskStage `json:"lastStage"`      //
	CurrentStage   TaskStage `json:"currentStage"`   //
	UpdatedAt      string    `json:"updatedAt"`      //
	Anomaly        int       `json:"anomaly"`        //异常反馈情况
	WarnFlag       int       `json:"warnFlag"`       //里程碑完成时间异常标记  0:正常  1标记为异常
}

func (t *TaskItem) GenStatusDescript() {
	statusNamed := ""
	if domain.TaskState(t.Status) == domain.TaskRunning {
		statusNamed = "进行中"
	}
	if t.Anomaly > 0 {
		statusNamed = "反馈异常"
	}
	if domain.TaskWarnFlag(t.WarnFlag) == domain.TaskWarn {
		statusNamed = "里程碑异常"
	}
	if domain.TaskState(t.Status) == domain.TaskStop {
		statusNamed = "已停止"
	}
	if t.CurrentStage.Id == 0 && t.LastStage.PlanCompletedAt < t.LastStage.RealCompletedAt {
		statusNamed = "逾期完成"
	}
	if t.CurrentStage.Id == 0 && t.LastStage.PlanCompletedAt >= t.LastStage.RealCompletedAt {
		statusNamed = "如期完成"
	}

	t.StatusDescript = statusNamed
}