审查视图

pkg/domain/evaluation_project.go 2.3 KB
郑周 authored
1 2 3 4 5 6
package domain

import (
	"time"
)
郑周 authored
7 8 9 10
const (
	ProjectStateWaitConfig int = 0 // 项目状态-待完成配置
	ProjectStateWaitActive int = 1 // 项目状态-待启用
	ProjectStateEnable     int = 2 // 项目状态-启用
郑周 authored
11
	ProjectStateDisable    int = 3 // 项目状态-停用(假状态)
郑周 authored
12 13
)
Your Name authored
14
// 项目的评估内容配置
郑周 authored
15
type EvaluationProject struct {
tangxvhui authored
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
	Id           int64               `json:"id,string" comment:"ID"`
	Name         string              `json:"name" comment:"名称"`
	Describe     string              `json:"describe" comment:"描述"`
	CompanyId    int64               `json:"companyId,string" comment:"公司ID"`
	CycleId      int64               `json:"cycleId,string" comment:"周期ID"`
	CreatorId    int64               `json:"creatorId,string" comment:"创建人ID"`
	State        int                 `json:"state" comment:"状态(0待完成配置、1待启用、2启用、3结束)"`
	SummaryState ProjectSummaryState `json:"summaryState" comment:"周期评估是否下发"`
	HrBp         int                 `json:"hrBp" comment:"HR角色权限"`
	Pmp          int                 `json:"pmp" comment:"PM角色权限"`
	PmpIds       []string            `json:"pmpIds" comment:"项目管理员ID"`
	Recipients   []string            `json:"recipients" comment:"被评估人ID"`
	Template     *EvaluationTemplate `json:"template" comment:"评估模板"`
	BeginTime    time.Time           `json:"beginTime" comment:"项目起始时间"`
	EndTime      time.Time           `json:"endTime" comment:"项目截至时间"`
	CreatedAt    time.Time           `json:"createdAt" comment:"创建时间"`
	UpdatedAt    time.Time           `json:"updatedAt" comment:"更新时间"`
	DeletedAt    *time.Time          `json:"deletedAt" comment:"删除时间"`
郑周 authored
34
}
35
tangxvhui authored
36
// 周期评估的下发状态
tangxvhui authored
37 38 39
type ProjectSummaryState int

const (
tangxvhui authored
40 41
	ProjectSummaryStateNo  ProjectSummaryState = 0 //未下发
	ProjectSummaryStateYes ProjectSummaryState = 1 //已经下发
tangxvhui authored
42 43
)
44 45 46 47
type EvaluationProjectRepository interface {
	Insert(project *EvaluationProject) (*EvaluationProject, error)
	Remove(project *EvaluationProject) (*EvaluationProject, error)
	FindOne(queryOptions map[string]interface{}) (*EvaluationProject, error)
郑周 authored
48
	Find(queryOptions map[string]interface{}, excludeColumns ...string) (int64, []*EvaluationProject, error)
49 50
	Count(queryOptions map[string]interface{}) (int64, error)
}