正在显示
10 个修改的文件
包含
96 行增加
和
48 行删除
| @@ -137,10 +137,10 @@ func CreateStaffAssessContentRepository(options map[string]interface{}) domain.S | @@ -137,10 +137,10 @@ func CreateStaffAssessContentRepository(options map[string]interface{}) domain.S | ||
| 137 | return repository.NewStaffAssessContentRepository(transactionContext) | 137 | return repository.NewStaffAssessContentRepository(transactionContext) |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | -func CreateStaffAssessTaskRepository(options map[string]interface{}) domain.StaffAssessContentRepository { | 140 | +func CreateStaffAssessTaskRepository(options map[string]interface{}) domain.StaffAssessTaskRepository { |
| 141 | var transactionContext *pg.TransactionContext | 141 | var transactionContext *pg.TransactionContext |
| 142 | if value, ok := options["transactionContext"]; ok { | 142 | if value, ok := options["transactionContext"]; ok { |
| 143 | transactionContext = value.(*pg.TransactionContext) | 143 | transactionContext = value.(*pg.TransactionContext) |
| 144 | } | 144 | } |
| 145 | - return repository.NewStaffAssessContentRepository(transactionContext) | 145 | + return repository.NewStaffAssessTaskRepository(transactionContext) |
| 146 | } | 146 | } |
| @@ -4,7 +4,7 @@ type SearchAssessMeResp struct { | @@ -4,7 +4,7 @@ type SearchAssessMeResp struct { | ||
| 4 | AssessTaskId int `json:"assessTaskId"` | 4 | AssessTaskId int `json:"assessTaskId"` |
| 5 | BeginTime string `json:"beginTime"` | 5 | BeginTime string `json:"beginTime"` |
| 6 | EndTime string `json:"endTime"` | 6 | EndTime string `json:"endTime"` |
| 7 | - CycleId int `json:"cycleId"` | 7 | + CycleId int64 `json:"cycleId"` |
| 8 | CycleName string `json:"cycleName"` | 8 | CycleName string `json:"cycleName"` |
| 9 | EvaluationProjectId int `json:"evaluationProjectId"` | 9 | EvaluationProjectId int `json:"evaluationProjectId"` |
| 10 | EvaluationProjectName string `json:"evaluationProjectName"` | 10 | EvaluationProjectName string `json:"evaluationProjectName"` |
| 1 | package query | 1 | package query |
| 2 | 2 | ||
| 3 | type SearchAssessMeQuery struct { | 3 | type SearchAssessMeQuery struct { |
| 4 | - UserId int // 当前登录人的用户id | ||
| 5 | - CompanyId int //当前登录人的公司Id | ||
| 6 | - CurrentTime string // 日期 2006-01-02 | 4 | + UserId int `json:"userId"` // 当前登录人的用户id |
| 5 | + CompanyId int `json:"companyId"` //当前登录人的公司Id | ||
| 6 | + PageSize int `json:"pageSize"` //每页的记录数 | ||
| 7 | + PageNumber int `json:"pageNumber"` //页码 | ||
| 7 | } | 8 | } |
| 1 | package service | 1 | package service |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | - "time" | ||
| 5 | - | ||
| 6 | "github.com/linmadan/egglib-go/core/application" | 4 | "github.com/linmadan/egglib-go/core/application" |
| 7 | "github.com/linmadan/egglib-go/utils/tool_funs" | 5 | "github.com/linmadan/egglib-go/utils/tool_funs" |
| 8 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" |
| @@ -13,8 +11,8 @@ import ( | @@ -13,8 +11,8 @@ import ( | ||
| 13 | type StaffAssessServeice struct { | 11 | type StaffAssessServeice struct { |
| 14 | } | 12 | } |
| 15 | 13 | ||
| 16 | -// 获取我参与过的评估项目列表 | ||
| 17 | -func (srv StaffAssessServeice) SearchAssessMe(param *query.SearchAssessMeQuery) (map[string]interface{}, error) { | 14 | +// 获取我参与过的评估任务列表 |
| 15 | +func (srv StaffAssessServeice) SearchAssessTaskMe(param *query.SearchAssessMeQuery) (map[string]interface{}, error) { | ||
| 18 | transactionContext, err := factory.CreateTransactionContext(nil) | 16 | transactionContext, err := factory.CreateTransactionContext(nil) |
| 19 | if err != nil { | 17 | if err != nil { |
| 20 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 18 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -25,35 +23,45 @@ func (srv StaffAssessServeice) SearchAssessMe(param *query.SearchAssessMeQuery) | @@ -25,35 +23,45 @@ func (srv StaffAssessServeice) SearchAssessMe(param *query.SearchAssessMeQuery) | ||
| 25 | defer func() { | 23 | defer func() { |
| 26 | _ = transactionContext.RollbackTransaction() | 24 | _ = transactionContext.RollbackTransaction() |
| 27 | }() | 25 | }() |
| 28 | - cycleRepo := factory.CreateEvaluationCycleRepository(map[string]interface{}{ | 26 | + staffAssessTaskRepo := factory.CreateStaffAssessTaskRepository(map[string]interface{}{ |
| 29 | "transactionContext": transactionContext, | 27 | "transactionContext": transactionContext, |
| 30 | }) | 28 | }) |
| 31 | - currentTime, err := time.ParseInLocation("2006-01-02", param.CurrentTime, time.Local) | ||
| 32 | - if err != nil { | ||
| 33 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, "时间条件填写错误") | ||
| 34 | - } | ||
| 35 | - //获取param.CurrentTime 对应的周期 | ||
| 36 | - _, cycleList, err := cycleRepo.Find(map[string]interface{}{ | ||
| 37 | - "companyId": param.CompanyId, | ||
| 38 | - "timeStart": currentTime, | ||
| 39 | - "timeEnd": currentTime, | ||
| 40 | - "limit": 1, | ||
| 41 | - }) | 29 | + var limit int = 20 |
| 30 | + var offset int = 0 | ||
| 31 | + if param.PageSize > 0 { | ||
| 32 | + limit = param.PageSize | ||
| 33 | + } | ||
| 34 | + offset = (param.PageNumber - 1) * param.PageSize | ||
| 35 | + condition := map[string]interface{}{ | ||
| 36 | + "executorId": param.UserId, | ||
| 37 | + "companyId": param.CompanyId, | ||
| 38 | + "limit": limit, | ||
| 39 | + } | ||
| 40 | + if offset > 0 { | ||
| 41 | + condition["offset"] = offset | ||
| 42 | + } | ||
| 43 | + cnt, assessTaskList, err := staffAssessTaskRepo.Find(condition) | ||
| 42 | if err != nil { | 44 | if err != nil { |
| 43 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询周期"+err.Error()) | 45 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询周期"+err.Error()) |
| 44 | } | 46 | } |
| 45 | - if len(cycleList) == 0 { | ||
| 46 | - listData := []adapter.SearchAssessMeResp{} | ||
| 47 | - return tool_funs.SimpleWrapGridMap(0, listData), nil | ||
| 48 | - } | ||
| 49 | - | ||
| 50 | - //更具周期和param.UserId 获取评估项目列表 | ||
| 51 | if err := transactionContext.CommitTransaction(); err != nil { | 47 | if err := transactionContext.CommitTransaction(); err != nil { |
| 52 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 48 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 53 | } | 49 | } |
| 54 | - var cnt int64 | ||
| 55 | - var listData []adapter.SearchAssessMeResp | ||
| 56 | - return tool_funs.SimpleWrapGridMap(cnt, listData), nil | 50 | + listData := make([]adapter.SearchAssessMeResp, 0, len(assessTaskList)) |
| 51 | + var temp adapter.SearchAssessMeResp | ||
| 52 | + for _, v := range assessTaskList { | ||
| 53 | + temp = adapter.SearchAssessMeResp{ | ||
| 54 | + AssessTaskId: v.Id, | ||
| 55 | + BeginTime: v.BeginTime.Format("2006-01-02 15:04:05"), | ||
| 56 | + EndTime: v.EndTime.Format("2006-01-02 15:04:05"), | ||
| 57 | + CycleId: v.CycleId, | ||
| 58 | + CycleName: v.CycleName, | ||
| 59 | + EvaluationProjectId: v.EvaluationProjectId, | ||
| 60 | + EvaluationProjectName: v.EvaluationProjectName, | ||
| 61 | + } | ||
| 62 | + listData = append(listData, temp) | ||
| 63 | + } | ||
| 64 | + return tool_funs.SimpleWrapGridMap(int64(cnt), listData), nil | ||
| 57 | } | 65 | } |
| 58 | 66 | ||
| 59 | // 获取项目评估进度描述 | 67 | // 获取项目评估进度描述 |
| @@ -98,3 +106,22 @@ func (srv StaffAssessServeice) AssessSelfList(param query.AssessTaskDescQuery) ( | @@ -98,3 +106,22 @@ func (srv StaffAssessServeice) AssessSelfList(param query.AssessTaskDescQuery) ( | ||
| 98 | result["userInfo"] = userInfo | 106 | result["userInfo"] = userInfo |
| 99 | return result, nil | 107 | return result, nil |
| 100 | } | 108 | } |
| 109 | + | ||
| 110 | +// 更具项目评估的配置,创建员工的评估任务 | ||
| 111 | +func (srv StaffAssessServeice) CreateStaffAssessTask() error { | ||
| 112 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 113 | + if err != nil { | ||
| 114 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 115 | + } | ||
| 116 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 117 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 118 | + } | ||
| 119 | + defer func() { | ||
| 120 | + _ = transactionContext.RollbackTransaction() | ||
| 121 | + }() | ||
| 122 | + | ||
| 123 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 124 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 125 | + } | ||
| 126 | + return nil | ||
| 127 | +} |
| @@ -21,7 +21,7 @@ const ( | @@ -21,7 +21,7 @@ const ( | ||
| 21 | StaffAssessCompleted StaffAssessStatus = "completed" //已完成 | 21 | StaffAssessCompleted StaffAssessStatus = "completed" //已完成 |
| 22 | ) | 22 | ) |
| 23 | 23 | ||
| 24 | -// 记录用户需要的评估项 | 24 | +// 记录用户需要的评估项目 |
| 25 | type StaffAssess struct { | 25 | type StaffAssess struct { |
| 26 | Id int `json:"id"` //id | 26 | Id int `json:"id"` //id |
| 27 | CompanyId int `json:"companyId"` //公司id | 27 | CompanyId int `json:"companyId"` //公司id |
| @@ -26,6 +26,7 @@ type StaffAssessTask struct { | @@ -26,6 +26,7 @@ type StaffAssessTask struct { | ||
| 26 | BeginTime time.Time `json:"beginTime"` //绩效考核开始时间 | 26 | BeginTime time.Time `json:"beginTime"` //绩效考核开始时间 |
| 27 | EndTime time.Time `json:"endTime"` //绩效考核截止时间 | 27 | EndTime time.Time `json:"endTime"` //绩效考核截止时间 |
| 28 | StepList []AssessTaskStep `json:"steps"` //考评的流程 | 28 | StepList []AssessTaskStep `json:"steps"` //考评的流程 |
| 29 | + ExecutorId []int `json:"executorId"` //参与此次考评的人 | ||
| 29 | CreatedAt time.Time `json:"createdAt"` //数据创建时间 | 30 | CreatedAt time.Time `json:"createdAt"` //数据创建时间 |
| 30 | UpdatedAt time.Time `json:"updatedAt"` //数据更新时间 | 31 | UpdatedAt time.Time `json:"updatedAt"` //数据更新时间 |
| 31 | DeletedAt time.Time `json:"deletedAt"` //数据删除时间 | 32 | DeletedAt time.Time `json:"deletedAt"` //数据删除时间 |
| 1 | package models | 1 | package models |
| 2 | 2 | ||
| 3 | -import "time" | 3 | +import ( |
| 4 | + "time" | ||
| 5 | + | ||
| 6 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
| 7 | +) | ||
| 4 | 8 | ||
| 5 | // 执行评估的任务列表 | 9 | // 执行评估的任务列表 |
| 6 | type StaffAssessTask struct { | 10 | type StaffAssessTask struct { |
| 7 | - tableName struct{} `pg:"staff_assess_task" comment:"执行评估的任务列表"` | ||
| 8 | - Id int `pg:",pk"` | ||
| 9 | - CompanyId int `` //公司id | ||
| 10 | - EvaluationProjectId int `` //项目id | ||
| 11 | - EvaluationProjectName string `` //项目名称 | ||
| 12 | - CycleId int64 //对应的周期id | ||
| 13 | - CycleName string //对应周期的名称 | ||
| 14 | - BeginTime time.Time //开始时间 | ||
| 15 | - EndTime time.Time //截止时间 | ||
| 16 | - CreatedAt time.Time //数据创建时间 | ||
| 17 | - UpdatedAt time.Time //数据更新时间 | ||
| 18 | - DeletedAt time.Time //数据删除时间 | 11 | + tableName struct{} `pg:"staff_assess_task" comment:"执行评估的任务列表"` |
| 12 | + Id int `pg:",pk"` | ||
| 13 | + CompanyId int `` //公司id | ||
| 14 | + EvaluationProjectId int `` //项目id | ||
| 15 | + EvaluationProjectName string `` //项目名称 | ||
| 16 | + CycleId int64 //对应的周期id | ||
| 17 | + CycleName string //对应周期的名称 | ||
| 18 | + ExecutorId []int //参与考评的人 | ||
| 19 | + StepList []domain.AssessTaskStep `` //考评的流程 | ||
| 20 | + BeginTime time.Time //开始时间 | ||
| 21 | + EndTime time.Time //截止时间 | ||
| 22 | + CreatedAt time.Time //数据创建时间 | ||
| 23 | + UpdatedAt time.Time //数据更新时间 | ||
| 24 | + DeletedAt time.Time //数据删除时间 | ||
| 19 | } | 25 | } |
| @@ -107,7 +107,7 @@ func (repo *StaffAssessRepository) Find(queryOptions map[string]interface{}) (in | @@ -107,7 +107,7 @@ func (repo *StaffAssessRepository) Find(queryOptions map[string]interface{}) (in | ||
| 107 | tx := repo.transactionContext.PgTx | 107 | tx := repo.transactionContext.PgTx |
| 108 | var m []*models.StaffAssess | 108 | var m []*models.StaffAssess |
| 109 | query := tx.Model(&m). | 109 | query := tx.Model(&m). |
| 110 | - Where("deleted_at isnull").Limit(20) | 110 | + Where("deleted_at isnull") |
| 111 | if companyId, ok := queryOptions["companyId"]; ok { | 111 | if companyId, ok := queryOptions["companyId"]; ok { |
| 112 | query.Where("company_id = ?", companyId) | 112 | query.Where("company_id = ?", companyId) |
| 113 | } | 113 | } |
| @@ -117,7 +117,16 @@ func (repo *StaffAssessRepository) Find(queryOptions map[string]interface{}) (in | @@ -117,7 +117,16 @@ func (repo *StaffAssessRepository) Find(queryOptions map[string]interface{}) (in | ||
| 117 | if v, ok := queryOptions["offset"].(int); ok { | 117 | if v, ok := queryOptions["offset"].(int); ok { |
| 118 | query.Offset(v) | 118 | query.Offset(v) |
| 119 | } | 119 | } |
| 120 | + if v, ok := queryOptions["targetUserId"].(int); ok && v > 0 { | ||
| 121 | + query.Where(`target_user->>'userId'='?'`, v) | ||
| 122 | + } | ||
| 123 | + if v, ok := queryOptions["executorId"].(int); ok && v > 0 { | ||
| 124 | + query.Where(`executor->>'userId'='?'`, v) | ||
| 125 | + } | ||
| 120 | 126 | ||
| 127 | + if v, ok := queryOptions["cycleId"].(int64); ok && v > 0 { | ||
| 128 | + query.Where(`cycle_id=?`, v) | ||
| 129 | + } | ||
| 121 | count, err := query.SelectAndCount() | 130 | count, err := query.SelectAndCount() |
| 122 | if err != nil { | 131 | if err != nil { |
| 123 | return 0, nil, err | 132 | return 0, nil, err |
| @@ -111,7 +111,9 @@ func (repo *StaffAssessTaskRepository) Find(queryOptions map[string]interface{}) | @@ -111,7 +111,9 @@ func (repo *StaffAssessTaskRepository) Find(queryOptions map[string]interface{}) | ||
| 111 | if v, ok := queryOptions["offset"].(int); ok { | 111 | if v, ok := queryOptions["offset"].(int); ok { |
| 112 | query.Offset(v) | 112 | query.Offset(v) |
| 113 | } | 113 | } |
| 114 | - | 114 | + if v, ok := queryOptions["executorId"].(int); ok && v > 0 { |
| 115 | + query.Where(`executorId @>[?]`, v) | ||
| 116 | + } | ||
| 115 | count, err := query.SelectAndCount() | 117 | count, err := query.SelectAndCount() |
| 116 | if err != nil { | 118 | if err != nil { |
| 117 | return 0, nil, err | 119 | return 0, nil, err |
-
请 注册 或 登录 后发表评论