Merge branch 'dev-tangxvhui' of http://gitlab.fjmaimaimai.com/allied-creation/pe…
…rformance into dev-tangxvhui
正在显示
15 个修改的文件
包含
154 行增加
和
67 行删除
| @@ -20,8 +20,9 @@ type AssessInfoResp struct { | @@ -20,8 +20,9 @@ type AssessInfoResp struct { | ||
| 20 | CompanyLogo string `json:"companyLogo,string,"` //公司logo | 20 | CompanyLogo string `json:"companyLogo,string,"` //公司logo |
| 21 | CompanyName string `json:"companyName"` //公司名称 | 21 | CompanyName string `json:"companyName"` //公司名称 |
| 22 | SupperUser string `json:"superUser"` //目标用户的上级 | 22 | SupperUser string `json:"superUser"` //目标用户的上级 |
| 23 | - DutyTime string `json:"dutyTime"` //入职时间 // | 23 | + DutyTime string `json:"dutyTime"` //入职时间 |
| 24 | AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容 | 24 | AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容 |
| 25 | + TaskRecords []*domain.TaskRecord `json:"taskRecords"` //里程碑内容 | ||
| 25 | } | 26 | } |
| 26 | 27 | ||
| 27 | // 周期内的每日自评小结 | 28 | // 周期内的每日自评小结 |
| @@ -9,6 +9,7 @@ import ( | @@ -9,6 +9,7 @@ import ( | ||
| 9 | type SaveAssessCacheCommand struct { | 9 | type SaveAssessCacheCommand struct { |
| 10 | AssessId int64 `cname:"评估项ID" json:"assessId,string"` | 10 | AssessId int64 `cname:"评估项ID" json:"assessId,string"` |
| 11 | AssessContent []domain.AssessContent `cname:"评估数据" json:"assessContent"` | 11 | AssessContent []domain.AssessContent `cname:"评估数据" json:"assessContent"` |
| 12 | + AssessTaskStages []domain.AssessTaskStage `cname:"里程碑内容" json:"assessTaskStages"` | ||
| 12 | } | 13 | } |
| 13 | 14 | ||
| 14 | func (in *SaveAssessCacheCommand) Valid(validation *validation.Validation) { | 15 | func (in *SaveAssessCacheCommand) Valid(validation *validation.Validation) { |
| @@ -30,14 +30,16 @@ func (srv StaffAssessCacheService) SaveAssessCache(in *command.SaveAssessCacheCo | @@ -30,14 +30,16 @@ func (srv StaffAssessCacheService) SaveAssessCache(in *command.SaveAssessCacheCo | ||
| 30 | } | 30 | } |
| 31 | var cache *domain.StaffAssessCache | 31 | var cache *domain.StaffAssessCache |
| 32 | if len(caches) == 0 { | 32 | if len(caches) == 0 { |
| 33 | - cache = &domain.StaffAssessCache{} | ||
| 34 | - cache.Id = 0 | ||
| 35 | - cache.AssessId = in.AssessId | ||
| 36 | - cache.AssessContent = in.AssessContent | 33 | + cache = &domain.StaffAssessCache{ |
| 34 | + Id: 0, | ||
| 35 | + AssessId: in.AssessId, | ||
| 36 | + } | ||
| 37 | } else { | 37 | } else { |
| 38 | cache = caches[0] | 38 | cache = caches[0] |
| 39 | - cache.AssessContent = in.AssessContent | ||
| 40 | } | 39 | } |
| 40 | + cache.AssessContent = in.AssessContent | ||
| 41 | + cache.AssessTaskStages = in.AssessTaskStages | ||
| 42 | + | ||
| 41 | if _, err = cacheRepository.Save(cache); err != nil { | 43 | if _, err = cacheRepository.Save(cache); err != nil { |
| 42 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 44 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 43 | } | 45 | } |
| @@ -1230,7 +1230,7 @@ func (srv StaffAssessServeice) SaveSelfAssess(in *command.SaveSelfAssessCommand) | @@ -1230,7 +1230,7 @@ func (srv StaffAssessServeice) SaveSelfAssess(in *command.SaveSelfAssessCommand) | ||
| 1230 | } | 1230 | } |
| 1231 | // 任务负责人才能提交里程碑数据 | 1231 | // 任务负责人才能提交里程碑数据 |
| 1232 | if project.PrincipalId != strconv.Itoa(in.ExecutorId) { | 1232 | if project.PrincipalId != strconv.Itoa(in.ExecutorId) { |
| 1233 | - return nil, application.ThrowError(application.BUSINESS_ERROR, "当前用户不能提交里程碑完成情况") | 1233 | + return nil, application.ThrowError(application.BUSINESS_ERROR, "当前用户没有里程碑提交权限") |
| 1234 | } | 1234 | } |
| 1235 | 1235 | ||
| 1236 | recordMap := map[int]domain.AssessTaskStage{} | 1236 | recordMap := map[int]domain.AssessTaskStage{} |
| @@ -1253,11 +1253,19 @@ func (srv StaffAssessServeice) SaveSelfAssess(in *command.SaveSelfAssessCommand) | @@ -1253,11 +1253,19 @@ func (srv StaffAssessServeice) SaveSelfAssess(in *command.SaveSelfAssessCommand) | ||
| 1253 | it.AssistLevel = v.AssistLevel // 更新上级辅导情况 | 1253 | it.AssistLevel = v.AssistLevel // 更新上级辅导情况 |
| 1254 | it.AssistContent = v.AssistContent // 更新上级辅导内容 | 1254 | it.AssistContent = v.AssistContent // 更新上级辅导内容 |
| 1255 | if v.TaskStageId == it.TaskStageCheck.Id { // 更新里程碑状态 | 1255 | if v.TaskStageId == it.TaskStageCheck.Id { // 更新里程碑状态 |
| 1256 | - it.TaskStageCheck.Status = v.Status | 1256 | + if v.Check == domain.TaskStageUncompleted { |
| 1257 | + it.TaskStageCheck.RealCompletedAt = 0 | ||
| 1258 | + } else { | ||
| 1259 | + it.TaskStageCheck.RealCompletedAt = time.Now().Unix() | ||
| 1260 | + } | ||
| 1257 | } | 1261 | } |
| 1258 | for j := range it.TaskStages { | 1262 | for j := range it.TaskStages { |
| 1259 | if v.TaskStageId == it.TaskStages[j].Id { // 更新里程碑状态 | 1263 | if v.TaskStageId == it.TaskStages[j].Id { // 更新里程碑状态 |
| 1260 | - it.TaskStages[j].Status = v.Status | 1264 | + if v.Check == domain.TaskStageUncompleted { |
| 1265 | + it.TaskStages[j].RealCompletedAt = 0 | ||
| 1266 | + } else { | ||
| 1267 | + it.TaskStages[j].RealCompletedAt = time.Now().Unix() | ||
| 1268 | + } | ||
| 1261 | } | 1269 | } |
| 1262 | } | 1270 | } |
| 1263 | _, err := taskRecordRepository.Insert(it) | 1271 | _, err := taskRecordRepository.Insert(it) |
| @@ -1302,11 +1310,14 @@ func (srv StaffAssessServeice) getStaffSuper(transactionContext application.Tran | @@ -1302,11 +1310,14 @@ func (srv StaffAssessServeice) getStaffSuper(transactionContext application.Tran | ||
| 1302 | return userData, nil | 1310 | return userData, nil |
| 1303 | } | 1311 | } |
| 1304 | 1312 | ||
| 1305 | -func (srv StaffAssessServeice) recoverAssessCache(context application.TransactionContext, assessId int, dataArray []*domain.StaffAssessContent) { | 1313 | +func (srv StaffAssessServeice) recoverAssessCache(context application.TransactionContext, assessId int, dataArray []*domain.StaffAssessContent) *domain.StaffAssessCache { |
| 1306 | cacheRepository := factory.CreateStaffAssessCacheRepository(map[string]interface{}{"transactionContext": context}) | 1314 | cacheRepository := factory.CreateStaffAssessCacheRepository(map[string]interface{}{"transactionContext": context}) |
| 1307 | _, caches, err := cacheRepository.Find(map[string]interface{}{"assessId": assessId, "limit": 1}) | 1315 | _, caches, err := cacheRepository.Find(map[string]interface{}{"assessId": assessId, "limit": 1}) |
| 1308 | - if err != nil || len(caches) == 0 { | ||
| 1309 | - return | 1316 | + if err != nil { |
| 1317 | + return nil | ||
| 1318 | + } | ||
| 1319 | + if len(caches) == 0 { | ||
| 1320 | + return nil | ||
| 1310 | } | 1321 | } |
| 1311 | cacheArray := caches[0].AssessContent | 1322 | cacheArray := caches[0].AssessContent |
| 1312 | cacheLen := len(cacheArray) | 1323 | cacheLen := len(cacheArray) |
| @@ -1326,6 +1337,27 @@ func (srv StaffAssessServeice) recoverAssessCache(context application.Transactio | @@ -1326,6 +1337,27 @@ func (srv StaffAssessServeice) recoverAssessCache(context application.Transactio | ||
| 1326 | } | 1337 | } |
| 1327 | } | 1338 | } |
| 1328 | } | 1339 | } |
| 1340 | + return caches[0] | ||
| 1341 | +} | ||
| 1342 | + | ||
| 1343 | +func (srv StaffAssessServeice) recoverCacheWithTaskRecord(cache *domain.StaffAssessCache, dataArray []*domain.TaskRecord) { | ||
| 1344 | + if cache == nil || len(cache.AssessTaskStages) == 0 || len(dataArray) == 0 { | ||
| 1345 | + return | ||
| 1346 | + } | ||
| 1347 | + cacheArray := cache.AssessTaskStages | ||
| 1348 | + cacheMap := map[int]domain.AssessTaskStage{} | ||
| 1349 | + for i := range cacheArray { | ||
| 1350 | + it := cacheArray[i] | ||
| 1351 | + cacheMap[it.TaskRecordId] = it | ||
| 1352 | + } | ||
| 1353 | + | ||
| 1354 | + for i := range dataArray { | ||
| 1355 | + it := dataArray[i] | ||
| 1356 | + if item, ok := cacheMap[it.Id]; ok { | ||
| 1357 | + it.AssistLevel = item.AssistLevel | ||
| 1358 | + it.AssistContent = item.AssistContent | ||
| 1359 | + } | ||
| 1360 | + } | ||
| 1329 | } | 1361 | } |
| 1330 | 1362 | ||
| 1331 | // 获取目标员工自评周期列表 | 1363 | // 获取目标员工自评周期列表 |
| @@ -719,9 +719,8 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -719,9 +719,8 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
| 719 | defer func() { | 719 | defer func() { |
| 720 | _ = transactionContext.RollbackTransaction() | 720 | _ = transactionContext.RollbackTransaction() |
| 721 | }() | 721 | }() |
| 722 | - assessReps := factory.CreateStaffAssessRepository(map[string]interface{}{ | ||
| 723 | - "transactionContext": transactionContext, | ||
| 724 | - }) | 722 | + |
| 723 | + assessReps := factory.CreateStaffAssessRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
| 725 | // 获取员工的评估 | 724 | // 获取员工的评估 |
| 726 | _, assessList, err := assessReps.Find(map[string]interface{}{ | 725 | _, assessList, err := assessReps.Find(map[string]interface{}{ |
| 727 | "companyId": param.CompanyId, | 726 | "companyId": param.CompanyId, |
| @@ -739,15 +738,11 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -739,15 +738,11 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
| 739 | } | 738 | } |
| 740 | assessData := assessList[0] | 739 | assessData := assessList[0] |
| 741 | 740 | ||
| 742 | - assessContentList := []*domain.StaffAssessContent{} | 741 | + var assessContentList []*domain.StaffAssessContent |
| 743 | if assessData.Status == domain.StaffAssessCompleted { | 742 | if assessData.Status == domain.StaffAssessCompleted { |
| 744 | //已完成 | 743 | //已完成 |
| 745 | - assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{ | ||
| 746 | - "transactionContext": transactionContext, | ||
| 747 | - }) | ||
| 748 | - _, assessContentList, err = assessContentRepo.Find(map[string]interface{}{ | ||
| 749 | - "staffAssessId": assessData.Id, | ||
| 750 | - }) | 744 | + assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{"transactionContext": transactionContext}) |
| 745 | + _, assessContentList, err = assessContentRepo.Find(map[string]interface{}{"staffAssessId": assessData.Id}) | ||
| 751 | if err != nil { | 746 | if err != nil { |
| 752 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) | 747 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) |
| 753 | } | 748 | } |
| @@ -759,13 +754,37 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -759,13 +754,37 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
| 759 | } | 754 | } |
| 760 | } | 755 | } |
| 761 | 756 | ||
| 762 | - // 恢复缓存数据 | 757 | + //获取员工描述 |
| 758 | + staffDesc, _ := srv.getStaffDescrip(transactionContext, int64(param.TargetUserId)) | ||
| 759 | + | ||
| 760 | + var cache *domain.StaffAssessCache | ||
| 761 | + // 恢复缓存数据(填写内容) | ||
| 763 | if param.AcquireCache != 0 { | 762 | if param.AcquireCache != 0 { |
| 764 | - srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) | 763 | + cache = srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) |
| 764 | + } | ||
| 765 | + // 获取项目信息 | ||
| 766 | + projectRepository := factory.CreateEvaluationProjectRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
| 767 | + project, err := projectRepository.FindOne(map[string]interface{}{"id": assessData.EvaluationProjectId}) | ||
| 768 | + if err != nil { | ||
| 769 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目错误:"+err.Error()) | ||
| 770 | + } | ||
| 771 | + | ||
| 772 | + taskRecords := make([]*domain.TaskRecord, 0) | ||
| 773 | + // 任务负责人才能显示里程碑数据 | ||
| 774 | + if project.PrincipalId == strconv.Itoa(param.TargetUserId) { | ||
| 775 | + // 获取里程碑数据 | ||
| 776 | + taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
| 777 | + _, taskRecords, err = taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) | ||
| 778 | + if err != nil { | ||
| 779 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) | ||
| 780 | + } | ||
| 781 | + | ||
| 782 | + // 恢复缓存数据(里程碑记录) | ||
| 783 | + if param.AcquireCache != 0 { | ||
| 784 | + srv.recoverCacheWithTaskRecord(cache, taskRecords) | ||
| 785 | + } | ||
| 765 | } | 786 | } |
| 766 | 787 | ||
| 767 | - //获取员工描述 | ||
| 768 | - staffDesc, _ := srv.getStaffDescrip(transactionContext, int64(param.TargetUserId)) | ||
| 769 | if err := transactionContext.CommitTransaction(); err != nil { | 788 | if err := transactionContext.CommitTransaction(); err != nil { |
| 770 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 789 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 771 | } | 790 | } |
| @@ -788,6 +807,7 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -788,6 +807,7 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
| 788 | SupperUser: "", | 807 | SupperUser: "", |
| 789 | DutyTime: "", | 808 | DutyTime: "", |
| 790 | AssessContent: assessContentList, | 809 | AssessContent: assessContentList, |
| 810 | + TaskRecords: taskRecords, | ||
| 791 | } | 811 | } |
| 792 | if staffDesc != nil { | 812 | if staffDesc != nil { |
| 793 | result.CompanyName = staffDesc.CompanyName | 813 | result.CompanyName = staffDesc.CompanyName |
| @@ -2,12 +2,19 @@ package domain | @@ -2,12 +2,19 @@ package domain | ||
| 2 | 2 | ||
| 3 | import "time" | 3 | import "time" |
| 4 | 4 | ||
| 5 | +type TaskStageCheck int | ||
| 6 | + | ||
| 7 | +const ( | ||
| 8 | + TaskStageUncompleted TaskStageCheck = 0 // 里程碑未完成 | ||
| 9 | + TaskStageCompleted TaskStageCheck = 1 // 里程碑完成 | ||
| 10 | +) | ||
| 11 | + | ||
| 5 | // StaffAssessCache 填写评估数据(缓存暂未提交) | 12 | // StaffAssessCache 填写评估数据(缓存暂未提交) |
| 6 | type StaffAssessCache struct { | 13 | type StaffAssessCache struct { |
| 7 | Id int64 `json:"id,string" comment:"ID"` | 14 | Id int64 `json:"id,string" comment:"ID"` |
| 8 | AssessId int64 `json:"assessId,string" comment:"评估项ID"` | 15 | AssessId int64 `json:"assessId,string" comment:"评估项ID"` |
| 9 | AssessContent []AssessContent `json:"assessContent" comment:"评估项提交数据"` | 16 | AssessContent []AssessContent `json:"assessContent" comment:"评估项提交数据"` |
| 10 | - AssessTaskStages []AssessTaskStage `json:"assessTaskStages" comment:"里程碑内容"` | 17 | + AssessTaskStages []AssessTaskStage `json:"assessTaskStages" comment:"任务里程碑内容"` |
| 11 | CreatedAt time.Time `json:"createdAt" comment:"创建时间"` | 18 | CreatedAt time.Time `json:"createdAt" comment:"创建时间"` |
| 12 | UpdatedAt time.Time `json:"updatedAt" comment:"更新时间"` | 19 | UpdatedAt time.Time `json:"updatedAt" comment:"更新时间"` |
| 13 | DeletedAt *time.Time `json:"deletedAt" comment:"删除时间"` | 20 | DeletedAt *time.Time `json:"deletedAt" comment:"删除时间"` |
| @@ -26,11 +33,9 @@ type RemarkText struct { | @@ -26,11 +33,9 @@ type RemarkText struct { | ||
| 26 | } | 33 | } |
| 27 | 34 | ||
| 28 | type AssessTaskStage struct { | 35 | type AssessTaskStage struct { |
| 29 | - Category string `json:"category"` | ||
| 30 | - Name string `json:"name"` | ||
| 31 | - TaskRecordId int `json:"taskRecordId" comment:"任务记录ID"` | ||
| 32 | - TaskStageId int `json:"taskStageId" comment:"里程碑ID"` | ||
| 33 | - Status TaskStageState `json:"status" comment:"里程碑完成情况"` | 36 | + TaskRecordId int `json:"taskRecordId,string" comment:"任务记录ID"` |
| 37 | + TaskStageId int `json:"taskStageId,string" comment:"里程碑ID"` | ||
| 38 | + Check TaskStageCheck `json:"check" comment:"里程碑完成情况"` | ||
| 34 | AssistLevel int `json:"assistLevel" comment:"上级辅导情况"` | 39 | AssistLevel int `json:"assistLevel" comment:"上级辅导情况"` |
| 35 | AssistContent string `json:"assistContent" comment:"上级辅导内容"` | 40 | AssistContent string `json:"assistContent" comment:"上级辅导内容"` |
| 36 | } | 41 | } |
| @@ -11,10 +11,11 @@ const ( | @@ -11,10 +11,11 @@ const ( | ||
| 11 | 11 | ||
| 12 | // TaskRecord 任务反馈情况记录 | 12 | // TaskRecord 任务反馈情况记录 |
| 13 | type TaskRecord struct { | 13 | type TaskRecord struct { |
| 14 | - Id int `json:"id,string" comment:"ID"` | 14 | + Id int `json:"id,string" comment:"记录ID"` |
| 15 | CompanyId int `json:"companyId,string" comment:"公司ID"` | 15 | CompanyId int `json:"companyId,string" comment:"公司ID"` |
| 16 | StaffAssessId int `json:"staffAssessId,string" comment:"每日评估的ID"` | 16 | StaffAssessId int `json:"staffAssessId,string" comment:"每日评估的ID"` |
| 17 | TaskId int `json:"taskId,string" comment:"任务ID"` | 17 | TaskId int `json:"taskId,string" comment:"任务ID"` |
| 18 | + TaskCategory string `json:"taskCategory" comment:"任务类别"` | ||
| 18 | TaskName string `json:"taskName" comment:"任务名称"` | 19 | TaskName string `json:"taskName" comment:"任务名称"` |
| 19 | TaskAlias string `json:"taskAlias" comment:"任务别名"` | 20 | TaskAlias string `json:"taskAlias" comment:"任务别名"` |
| 20 | TaskLeader TaskLeader `json:"taskLeader" comment:"任务负责人"` | 21 | TaskLeader TaskLeader `json:"taskLeader" comment:"任务负责人"` |
| @@ -2,26 +2,25 @@ package domain | @@ -2,26 +2,25 @@ package domain | ||
| 2 | 2 | ||
| 3 | import "time" | 3 | import "time" |
| 4 | 4 | ||
| 5 | -type TaskStageState int | ||
| 6 | - | ||
| 7 | -const ( | ||
| 8 | - TaskStageUncompleted TaskStageState = 1 //里程碑未完成 | ||
| 9 | - TaskStageCompleted TaskStageState = 2 //里程碑完成 | ||
| 10 | - | ||
| 11 | -) | 5 | +//type TaskStageState int |
| 6 | +// | ||
| 7 | +//const ( | ||
| 8 | +// TaskStageUncompleted TaskStageState = 1 //里程碑未完成 | ||
| 9 | +// TaskStageCompleted TaskStageState = 2 //里程碑完成 | ||
| 10 | +// | ||
| 11 | +//) | ||
| 12 | 12 | ||
| 13 | // 任务阶段 | 13 | // 任务阶段 |
| 14 | type TaskStage struct { | 14 | type TaskStage struct { |
| 15 | - Id int `json:"id"` | ||
| 16 | - TaskId int `json:"taskId"` | 15 | + Id int `json:"id,string"` |
| 16 | + TaskId int `json:"taskId,string"` | ||
| 17 | CreatedAt time.Time `json:"createdAt"` | 17 | CreatedAt time.Time `json:"createdAt"` |
| 18 | UpdatedAt time.Time `json:"updatedAt"` | 18 | UpdatedAt time.Time `json:"updatedAt"` |
| 19 | DeletedAt *time.Time `json:"deletedAt"` | 19 | DeletedAt *time.Time `json:"deletedAt"` |
| 20 | - Name string `json:"name"` //里程碑名称 | ||
| 21 | - SortBy int `json:"sortBy"` //排序 | ||
| 22 | - // Status TaskStageState `json:"status"` //里程碑完成情况 | ||
| 23 | - PlanCompletedAt int64 `json:"planCompletedAt"` //计划完成时间戳,秒 | ||
| 24 | - RealCompletedAt int64 `json:"realCompletedAt"` //时间完成时间戳,秒 | 20 | + Name string `json:"name"` // 里程碑名称 |
| 21 | + SortBy int `json:"sortBy"` // 排序 | ||
| 22 | + PlanCompletedAt int64 `json:"planCompletedAt"` // 计划完成时间戳,秒 | ||
| 23 | + RealCompletedAt int64 `json:"realCompletedAt"` // 实际完成时间戳,秒 | ||
| 25 | } | 24 | } |
| 26 | type TaskStageRepository interface { | 25 | type TaskStageRepository interface { |
| 27 | Save(param []*TaskStage) error | 26 | Save(param []*TaskStage) error |
| @@ -55,6 +55,7 @@ func init() { | @@ -55,6 +55,7 @@ func init() { | ||
| 55 | &models.Task{}, | 55 | &models.Task{}, |
| 56 | &models.TaskStage{}, | 56 | &models.TaskStage{}, |
| 57 | &models.TaskIgnore{}, | 57 | &models.TaskIgnore{}, |
| 58 | + &models.TaskRecord{}, | ||
| 58 | } | 59 | } |
| 59 | for _, model := range tables { | 60 | for _, model := range tables { |
| 60 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ | 61 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ |
| @@ -12,6 +12,7 @@ type TaskRecord struct { | @@ -12,6 +12,7 @@ type TaskRecord struct { | ||
| 12 | CompanyId int `comment:"公司ID"` | 12 | CompanyId int `comment:"公司ID"` |
| 13 | StaffAssessId int `comment:"每日评估的ID"` | 13 | StaffAssessId int `comment:"每日评估的ID"` |
| 14 | TaskId int `comment:"任务ID"` | 14 | TaskId int `comment:"任务ID"` |
| 15 | + TaskCategory string `comment:"任务类别"` | ||
| 15 | TaskName string `comment:"任务名称"` | 16 | TaskName string `comment:"任务名称"` |
| 16 | TaskAlias string `comment:"任务别名"` | 17 | TaskAlias string `comment:"任务别名"` |
| 17 | TaskLeader domain.TaskLeader `comment:"任务负责人"` | 18 | TaskLeader domain.TaskLeader `comment:"任务负责人"` |
| @@ -25,6 +25,7 @@ func (repo *TaskRecordRepository) TransformToDomain(m *models.TaskRecord) domain | @@ -25,6 +25,7 @@ func (repo *TaskRecordRepository) TransformToDomain(m *models.TaskRecord) domain | ||
| 25 | CompanyId: m.CompanyId, | 25 | CompanyId: m.CompanyId, |
| 26 | StaffAssessId: m.StaffAssessId, | 26 | StaffAssessId: m.StaffAssessId, |
| 27 | TaskId: m.TaskId, | 27 | TaskId: m.TaskId, |
| 28 | + TaskCategory: m.TaskCategory, | ||
| 28 | TaskName: m.TaskName, | 29 | TaskName: m.TaskName, |
| 29 | TaskAlias: m.TaskAlias, | 30 | TaskAlias: m.TaskAlias, |
| 30 | TaskLeader: m.TaskLeader, | 31 | TaskLeader: m.TaskLeader, |
| @@ -44,6 +45,7 @@ func (repo *TaskRecordRepository) TransformToModel(d *domain.TaskRecord) models. | @@ -44,6 +45,7 @@ func (repo *TaskRecordRepository) TransformToModel(d *domain.TaskRecord) models. | ||
| 44 | CompanyId: d.CompanyId, | 45 | CompanyId: d.CompanyId, |
| 45 | StaffAssessId: d.StaffAssessId, | 46 | StaffAssessId: d.StaffAssessId, |
| 46 | TaskId: d.TaskId, | 47 | TaskId: d.TaskId, |
| 48 | + TaskCategory: d.TaskCategory, | ||
| 47 | TaskName: d.TaskName, | 49 | TaskName: d.TaskName, |
| 48 | TaskAlias: d.TaskAlias, | 50 | TaskAlias: d.TaskAlias, |
| 49 | TaskLeader: d.TaskLeader, | 51 | TaskLeader: d.TaskLeader, |
| @@ -140,9 +142,9 @@ func (repo *TaskRecordRepository) Find(queryOptions map[string]interface{}) (int | @@ -140,9 +142,9 @@ func (repo *TaskRecordRepository) Find(queryOptions map[string]interface{}) (int | ||
| 140 | query.Where("company_id = ?", v) | 142 | query.Where("company_id = ?", v) |
| 141 | } | 143 | } |
| 142 | 144 | ||
| 143 | - //if v, ok := queryOptions["state"]; ok && v.(int) >= 0 { | ||
| 144 | - // query.Where("state = ?", v) | ||
| 145 | - //} | 145 | + if v, ok := queryOptions["staffAssessId"]; ok { |
| 146 | + query.Where("staff_assess_id = ?", v) | ||
| 147 | + } | ||
| 146 | 148 | ||
| 147 | if v, ok := queryOptions["limit"].(int64); ok { | 149 | if v, ok := queryOptions["limit"].(int64); ok { |
| 148 | query.Limit(int(v)) | 150 | query.Limit(int(v)) |
| @@ -114,6 +114,23 @@ func (c *StaffAssessController) SaveAssessInfo() { | @@ -114,6 +114,23 @@ func (c *StaffAssessController) SaveAssessInfo() { | ||
| 114 | c.Response(data, err) | 114 | c.Response(data, err) |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | +// SaveSelfAssess 提交自评反馈-当前登录用户 | ||
| 118 | +func (c *StaffAssessController) SaveSelfAssess() { | ||
| 119 | + srv := service.NewStaffAssessServeice() | ||
| 120 | + paramReq := &command.SaveSelfAssessCommand{} | ||
| 121 | + err := c.BindJSON(paramReq) | ||
| 122 | + if err != nil { | ||
| 123 | + e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | ||
| 124 | + c.Response(nil, e) | ||
| 125 | + return | ||
| 126 | + } | ||
| 127 | + userReq := middlewares.GetUser(c.Ctx) | ||
| 128 | + paramReq.ExecutorId = int(userReq.UserId) | ||
| 129 | + paramReq.CompanyId = int(userReq.CompanyId) | ||
| 130 | + data, err := srv.SaveSelfAssess(paramReq) | ||
| 131 | + c.Response(data, err) | ||
| 132 | +} | ||
| 133 | + | ||
| 117 | // 获取周期列表 | 134 | // 获取周期列表 |
| 118 | func (c *StaffAssessController) ListAssessCycle() { | 135 | func (c *StaffAssessController) ListAssessCycle() { |
| 119 | srv := service.NewStaffAssessServeice() | 136 | srv := service.NewStaffAssessServeice() |
| @@ -100,7 +100,7 @@ func (c *StaffAssessControllerV2) GetAssessMeInviteUser() { | @@ -100,7 +100,7 @@ func (c *StaffAssessControllerV2) GetAssessMeInviteUser() { | ||
| 100 | c.Response(data, err) | 100 | c.Response(data, err) |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | -// 获取当前登录员工自评详情 | 103 | +// GetAssessSelfMeInfo 获取自评详情-目标是登录员工 |
| 104 | func (c *StaffAssessControllerV2) GetAssessSelfMeInfo() { | 104 | func (c *StaffAssessControllerV2) GetAssessSelfMeInfo() { |
| 105 | srv := service.NewStaffAssessServeice() | 105 | srv := service.NewStaffAssessServeice() |
| 106 | paramReq := &query.GetExecutorSelfAssessQuery{} | 106 | paramReq := &query.GetExecutorSelfAssessQuery{} |
| @@ -117,25 +117,24 @@ func (c *StaffAssessControllerV2) GetAssessSelfMeInfo() { | @@ -117,25 +117,24 @@ func (c *StaffAssessControllerV2) GetAssessSelfMeInfo() { | ||
| 117 | c.Response(data, err) | 117 | c.Response(data, err) |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | -// 被评估的员工的评估列表-360评估 | ||
| 121 | -func (c *StaffAssessControllerV2) ListTargetUserInviteAssess() { | 120 | +// GetAssessTargetUserSelfInfo 获取自评详情-目标是员工 |
| 121 | +func (c *StaffAssessControllerV2) GetAssessTargetUserSelfInfo() { | ||
| 122 | srv := service.NewStaffAssessServeice() | 122 | srv := service.NewStaffAssessServeice() |
| 123 | - paramReq := &query.ListTargetAssessQuery{} | 123 | + paramReq := &query.GetExecutorSelfAssessQuery{} |
| 124 | err := c.BindJSON(paramReq) | 124 | err := c.BindJSON(paramReq) |
| 125 | if err != nil { | 125 | if err != nil { |
| 126 | e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | 126 | e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) |
| 127 | c.Response(nil, e) | 127 | c.Response(nil, e) |
| 128 | return | 128 | return |
| 129 | } | 129 | } |
| 130 | - | ||
| 131 | userReq := middlewares.GetUser(c.Ctx) | 130 | userReq := middlewares.GetUser(c.Ctx) |
| 132 | paramReq.CompanyId = int(userReq.CompanyId) | 131 | paramReq.CompanyId = int(userReq.CompanyId) |
| 133 | - data, err := srv.ListTargetUserInviteAssess(paramReq) | 132 | + data, err := srv.GetAssessSelfInfoV2(paramReq) |
| 134 | c.Response(data, err) | 133 | c.Response(data, err) |
| 135 | } | 134 | } |
| 136 | 135 | ||
| 137 | -// 被评估的员工的评估列表-当前登录用户-上级评估 | ||
| 138 | -func (c *StaffAssessControllerV2) ListTargetUserMeSupperAssess() { | 136 | +// 被评估的员工的评估列表-360评估 |
| 137 | +func (c *StaffAssessControllerV2) ListTargetUserInviteAssess() { | ||
| 139 | srv := service.NewStaffAssessServeice() | 138 | srv := service.NewStaffAssessServeice() |
| 140 | paramReq := &query.ListTargetAssessQuery{} | 139 | paramReq := &query.ListTargetAssessQuery{} |
| 141 | err := c.BindJSON(paramReq) | 140 | err := c.BindJSON(paramReq) |
| @@ -144,16 +143,15 @@ func (c *StaffAssessControllerV2) ListTargetUserMeSupperAssess() { | @@ -144,16 +143,15 @@ func (c *StaffAssessControllerV2) ListTargetUserMeSupperAssess() { | ||
| 144 | c.Response(nil, e) | 143 | c.Response(nil, e) |
| 145 | return | 144 | return |
| 146 | } | 145 | } |
| 147 | - paramReq.CompanyId = 1 | 146 | + |
| 148 | userReq := middlewares.GetUser(c.Ctx) | 147 | userReq := middlewares.GetUser(c.Ctx) |
| 149 | paramReq.CompanyId = int(userReq.CompanyId) | 148 | paramReq.CompanyId = int(userReq.CompanyId) |
| 150 | - paramReq.TargetUserId = int(userReq.UserId) | ||
| 151 | - data, err := srv.ListTargetUserSuperAssess(paramReq) | 149 | + data, err := srv.ListTargetUserInviteAssess(paramReq) |
| 152 | c.Response(data, err) | 150 | c.Response(data, err) |
| 153 | } | 151 | } |
| 154 | 152 | ||
| 155 | -// 被评估的员工的评估列表-上级评估 | ||
| 156 | -func (c *StaffAssessControllerV2) ListTargetUserSupperAssess() { | 153 | +// 被评估的员工的评估列表-当前登录用户-上级评估 |
| 154 | +func (c *StaffAssessControllerV2) ListTargetUserMeSupperAssess() { | ||
| 157 | srv := service.NewStaffAssessServeice() | 155 | srv := service.NewStaffAssessServeice() |
| 158 | paramReq := &query.ListTargetAssessQuery{} | 156 | paramReq := &query.ListTargetAssessQuery{} |
| 159 | err := c.BindJSON(paramReq) | 157 | err := c.BindJSON(paramReq) |
| @@ -165,23 +163,25 @@ func (c *StaffAssessControllerV2) ListTargetUserSupperAssess() { | @@ -165,23 +163,25 @@ func (c *StaffAssessControllerV2) ListTargetUserSupperAssess() { | ||
| 165 | paramReq.CompanyId = 1 | 163 | paramReq.CompanyId = 1 |
| 166 | userReq := middlewares.GetUser(c.Ctx) | 164 | userReq := middlewares.GetUser(c.Ctx) |
| 167 | paramReq.CompanyId = int(userReq.CompanyId) | 165 | paramReq.CompanyId = int(userReq.CompanyId) |
| 166 | + paramReq.TargetUserId = int(userReq.UserId) | ||
| 168 | data, err := srv.ListTargetUserSuperAssess(paramReq) | 167 | data, err := srv.ListTargetUserSuperAssess(paramReq) |
| 169 | c.Response(data, err) | 168 | c.Response(data, err) |
| 170 | } | 169 | } |
| 171 | 170 | ||
| 172 | -// 获取员工自评详情 | ||
| 173 | -func (c *StaffAssessControllerV2) GetAssessTargetUserSelfInfo() { | 171 | +// 被评估的员工的评估列表-上级评估 |
| 172 | +func (c *StaffAssessControllerV2) ListTargetUserSupperAssess() { | ||
| 174 | srv := service.NewStaffAssessServeice() | 173 | srv := service.NewStaffAssessServeice() |
| 175 | - paramReq := &query.GetExecutorSelfAssessQuery{} | 174 | + paramReq := &query.ListTargetAssessQuery{} |
| 176 | err := c.BindJSON(paramReq) | 175 | err := c.BindJSON(paramReq) |
| 177 | if err != nil { | 176 | if err != nil { |
| 178 | e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | 177 | e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) |
| 179 | c.Response(nil, e) | 178 | c.Response(nil, e) |
| 180 | return | 179 | return |
| 181 | } | 180 | } |
| 181 | + paramReq.CompanyId = 1 | ||
| 182 | userReq := middlewares.GetUser(c.Ctx) | 182 | userReq := middlewares.GetUser(c.Ctx) |
| 183 | paramReq.CompanyId = int(userReq.CompanyId) | 183 | paramReq.CompanyId = int(userReq.CompanyId) |
| 184 | - data, err := srv.GetAssessSelfInfoV2(paramReq) | 184 | + data, err := srv.ListTargetUserSuperAssess(paramReq) |
| 185 | c.Response(data, err) | 185 | c.Response(data, err) |
| 186 | } | 186 | } |
| 187 | 187 |
| @@ -29,6 +29,7 @@ func init() { | @@ -29,6 +29,7 @@ func init() { | ||
| 29 | web.NSCtrlPost("/me/invite-user/select", (*controllers.StaffAssessController).SelectAssessInviteUser), //选择我邀请的员工 | 29 | web.NSCtrlPost("/me/invite-user/select", (*controllers.StaffAssessController).SelectAssessInviteUser), //选择我邀请的员工 |
| 30 | web.NSCtrlPost("/info", (*controllers.StaffAssessController).GetAssessInfo), //通用获取员工评估的详情 | 30 | web.NSCtrlPost("/info", (*controllers.StaffAssessController).GetAssessInfo), //通用获取员工评估的详情 |
| 31 | web.NSCtrlPut("/info", (*controllers.StaffAssessController).SaveAssessInfo), //通用保存员工评估的详情 | 31 | web.NSCtrlPut("/info", (*controllers.StaffAssessController).SaveAssessInfo), //通用保存员工评估的详情 |
| 32 | + web.NSCtrlPut("/info-self", (*controllers.StaffAssessController).SaveSelfAssess), //提交自评反馈-当前登录用户 | ||
| 32 | web.NSCtrlPut("/info-cache", (*controllers.StaffAssessController).SaveAssessCache), //通用保存员工评估的详情(缓存) | 33 | web.NSCtrlPut("/info-cache", (*controllers.StaffAssessController).SaveAssessCache), //通用保存员工评估的详情(缓存) |
| 33 | web.NSCtrlPost("/summary", (*controllers.StaffAssessController).QuerySummary), //员工绩效-项目管理-总览 | 34 | web.NSCtrlPost("/summary", (*controllers.StaffAssessController).QuerySummary), //员工绩效-项目管理-总览 |
| 34 | web.NSCtrlPost("/summary/users", (*controllers.StaffAssessController).QueryMemberSummary), //员工绩效-综合管理-成员列表 | 35 | web.NSCtrlPost("/summary/users", (*controllers.StaffAssessController).QueryMemberSummary), //员工绩效-综合管理-成员列表 |
| @@ -6,3 +6,7 @@ COMMENT ON COLUMN public.evaluation_item_used.indicator_type IS '指标类型'; | @@ -6,3 +6,7 @@ COMMENT ON COLUMN public.evaluation_item_used.indicator_type IS '指标类型'; | ||
| 6 | -- 增加项目表-任务负责人ID | 6 | -- 增加项目表-任务负责人ID |
| 7 | ALTER TABLE public.evaluation_project ADD principal_id text NULL; | 7 | ALTER TABLE public.evaluation_project ADD principal_id text NULL; |
| 8 | COMMENT ON COLUMN public.evaluation_project.principal_id IS '任务负责人ID'; | 8 | COMMENT ON COLUMN public.evaluation_project.principal_id IS '任务负责人ID'; |
| 9 | + | ||
| 10 | +-- 增加评估Cache数据缓存表-任务里程碑JSON | ||
| 11 | +ALTER TABLE public.staff_assess_cache ADD assess_task_stages jsonb NULL; | ||
| 12 | +COMMENT ON COLUMN public.staff_assess_cache.assess_task_stages IS '任务里程碑内容'; |
-
请 注册 或 登录 后发表评论