staff_assess_task.go 2.4 KB
package domain

import "time"

// 执行评估的任务列表
type StaffAssessTask struct {
	Id                    int              `json:"id"`
	CompanyId             int              `json:"companyId"`             //公司id
	EvaluationProjectId   int              `json:"evaluationProjectId"`   //项目id
	EvaluationProjectName string           `json:"evaluationProjectName"` //项目名称
	CycleId               int64            `json:"cycleId"`               //对应的周期id
	CycleName             string           `json:"cycleName"`             //对应周期的名称
	BeginDay              string           `json:"beginDay"`              //绩效考核日期 ,2006-01-02
	BeginTime             time.Time        `json:"beginTime"`             //绩效考核开始时间
	EndTime               time.Time        `json:"endTime"`               //绩效考核截止时间
	StepList              []AssessTaskStep `json:"stepList"`              //考评的流程
	ExecutorId            []int            `json:"executorId"`            //参与此次考评的人
	CreatedAt             time.Time        `json:"createdAt"`             //数据创建时间
	UpdatedAt             time.Time        `json:"updatedAt"`             //数据更新时间
	DeletedAt             *time.Time       `json:"deletedAt"`             //数据删除时间
}

//考评的流程
type AssessTaskStep struct {
	SortBy       int       `json:"sortBy"`       //排序
	LinkNodeId   int       `json:"linkNodeId"`   //考评的流程id
	LinkNodeName string    `json:"linkNodeName"` //流程名称
	LinkNodeType int       `json:"linkNodeType"` //流程类型 同evaluation_template.go->LinkNode.Type
	BeginTime    time.Time `json:"beginTime"`    //绩效考核开始时间
	EndTime      time.Time `json:"endTime"`      //绩效考核截止时间
}

type SortTaskStep []AssessTaskStep

func (a SortTaskStep) Len() int           { return len(a) }
func (a SortTaskStep) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
func (a SortTaskStep) Less(i, j int) bool { return a[i].SortBy < a[j].SortBy }

type StaffAssessTaskRepository interface {
	Save(param *StaffAssessTask) (*StaffAssessTask, error)
	Remove(id int) error
	FindOne(queryOptions map[string]interface{}) (*StaffAssessTask, error)
	Find(queryOptions map[string]interface{}) (int, []*StaffAssessTask, error)
	RemoveByProjectId(id int) error
	RemoveByCycleId(id int) error
}