staff_assess_task.go
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package domain
import "time"
//评估任务重复执行的方式
type AssessTaskRepeatWay string
const (
AssessTaskRepeatDay AssessTaskRepeatWay = "day" //按天重复
AssessTaskRepeatWeek AssessTaskRepeatWay = "week" //按周重复
AssessTaskRepeatMonth AssessTaskRepeatWay = "month" //按月
AssessTaskRepeatMonthDouble AssessTaskRepeatWay = "month_double" //按双月
AssessTaskRepeatQuarter AssessTaskRepeatWay = "quarter" //按季度
AssessTaskRepeatYearHalf AssessTaskRepeatWay = "year_half" //按半年
AssessTaskRepeatYear AssessTaskRepeatWay = "year" //按年
)
// 执行评估的任务列表
type StaffAssessTask struct {
Id int `json:"id"`
CompanyId int `json:"companyId"` //公司id
EvaluationProjectId int `json:"evaluationProjectId"` //项目id
CycleId int64 `json:"cycleId"` //对应的周期id
Types StaffAssessType `json:"types"` //填写评估对应的类型
BeginTime time.Time `json:"beginTime"` //开始时间
EndTime time.Time `json:"endTime"` //截止时间
RepeatWay AssessTaskRepeatWay `json:"repeatWay"` //重复执行的方式
NextActiveTime int64 `json:"nextActveTime"` //下一次执行的任务的时间
CreatedAt time.Time `json:"createdAt"` //数据创建时间
UpdatedAt time.Time `json:"updatedAt"` //数据更新时间
DeletedAt time.Time `json:"deletedAt"` //数据删除时间
}
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)
}
//计算下一次执行任务的时间
func (task *StaffAssessTask) NewNextActveTime() {
if task.NextActiveTime == 0 {
task.NextActiveTime = task.BeginTime.Unix()
}
//Todo 根据重复执行的方式,计算下一次执行的时间点
}