task_record.go 2.6 KB
package domain

import (
	"time"
)

const (
	AssistLevel1 int = 1 // 未辅导
	AssistLevel2 int = 2 // 已辅导-辅导对里程碑无作用
	AssistLevel3 int = 3 // 已辅导-辅导对里程碑作用一般
	AssistLevel4 int = 4 // 已辅导-辅导对里程碑作用很好
)

const (
	AnomalyStateInit int = -1 // 初始值
	AnomalyState0    int = 0  // 异常
	AnomalyState1    int = 1  // 正常
)

// TaskRecord 任务反馈情况记录
type TaskRecord struct {
	Id             int         `json:"id,string" comment:"记录ID"`
	CompanyId      int         `json:"companyId,string" comment:"公司ID"`
	StaffAssessId  int         `json:"staffAssessId,string" comment:"每日评估的ID"`
	TaskId         int         `json:"taskId,string" comment:"任务ID"`
	TaskCategory   string      `json:"taskCategory" comment:"任务类别"`
	TaskName       string      `json:"taskName" comment:"任务名称"`
	TaskAlias      string      `json:"taskAlias" comment:"任务别名"`
	TaskLeader     TaskLeader  `json:"taskLeader" comment:"任务负责人"`
	AssistLevel    int         `json:"assistLevel" comment:"上级辅导情况"`
	AssistContent  string      `json:"assistContent" comment:"上级辅导内容"`
	AnomalyState   int         `json:"anomalyState" comment:"异常是否反馈状态(-1初始状态、0异常、1正常)"`
	TaskStages     []TaskStage `json:"taskStages" comment:"里程碑列表"`
	TaskStageCheck TaskStage   `json:"taskStageCheck" comment:"提交的里程碑"`
	CreatedAt      time.Time   `json:"createdAt" comment:"创建时间"`
	UpdatedAt      time.Time   `json:"updatedAt" comment:"更新时间"`
	DeletedAt      *time.Time  `json:"deletedAt" comment:"删除时间"`
	TaskCreatedBy  int         `json:"taskCreatedBy" comment:"任务的创建方式"` // 任务的创建方式 0: 根据模板中的任务创建,1:页面主动直接创建
}

type TaskRecordRepository interface {
	Insert(t *TaskRecord) (*TaskRecord, error)
	Remove(t *TaskRecord) (*TaskRecord, error)
	FindOne(queryOptions map[string]interface{}) (*TaskRecord, error)
	Find(queryOptions map[string]interface{}) (int, []*TaskRecord, error)
}

// 是否取消任务的里程碑反馈异常记录
// func (record *TaskRecord) CanTaskAnomaly() bool {
// 	trimSpace := strings.TrimLeft(record.AssistContent, "\n") // 去掉前换行符
// 	trimSpace = strings.TrimRight(trimSpace, "\n")            // 去掉后换行符
// 	trimSpace = strings.TrimSpace(trimSpace)                  // 去掉前后空格符
// 	// 上级填写内容有值,选项是已辅导,变为正常
// 	if !(len(trimSpace) == 0 || trimSpace == "无") && record.AssistLevel != AssistLevel1 {
// 		return true
// 	}
// 	return false
// }