staff_assess.go 2.5 KB
package domain

import "time"

//填写评估的类型
type StaffAssessType string

const (
	AssessSelf            StaffAssessType = "self"              //自评
	AssessSuper           StaffAssessType = "super"             //上级评估
	AssessInviteSameSuper StaffAssessType = "invite_same_super" //360 邀请评估-相同上级的同事
	AssessInviteDiffSuper StaffAssessType = "invite_diff_super" //360 邀请评估-不同上级的同事
)

//填写评估的状态
type StaffAssessStatus string

const (
	StaffAssessUnstart     StaffAssessStatus = "unstart"     //未开始
	StaffAssessUncompleted StaffAssessStatus = "uncompleted" //未完成
	StaffAssessCompleted   StaffAssessStatus = "completed"   //已完成
)

// 记录用户需要的评估项
type StaffAssess struct {
	Id                  int               `json:"id"`                  //id
	CompanyId           int               `json:"companyId"`           //公司id
	EvaluationProjectId int               `json:"evaluationProjectId"` //对应的项目id
	CycleId             int64             `json:"cycleId"`             //对应的周期id
	StaffAssessTaskId   int               `json:"staffAssessTaskId"`   //执行评估的任务id
	TargetUser          StaffDesc         `json:"targetUser"`          //被评估的目标用户
	TargetDepartment    []StaffDepartment `json:"targetDepartment"`    //被评估的目标用户所在的部门
	Executor            StaffDesc         `json:"executor"`            //填写评估的用户
	Types               StaffAssessType   `json:"types"`               //填写评估对应的类型
	LinkNodeId          int               `json:"linkNodeId"`          //评估环节对应的id,用于调取评估模板
	Status              StaffAssessStatus `json:"status"`              //评估的填写状态
	BeginTime           time.Time         `json:"beginTime"`           //开始时间
	EndTime             time.Time         `json:"endTime"`             //截止时间
	CreatedAt           time.Time         `json:"createdAt"`           //数据创建时间
	UpdatedAt           time.Time         `json:"updatedAt"`           //数据更新时间
	DeletedAt           *time.Time        `json:"deletedAt"`           //数据删除时间
}

type StaffAssessRepository interface {
	Save(param *StaffAssess) (*StaffAssess, error)
	Remove(id int) error
	FindOne(queryOptions map[string]interface{}) (*StaffAssess, error)
	Find(queryOptions map[string]interface{}) (int, []*StaffAssess, error)
}