作者 tangxvhui

修复一些问题

@@ -7,7 +7,7 @@ type AssessInfoResp struct { @@ -7,7 +7,7 @@ type AssessInfoResp struct {
7 AssessId int `json:"assessId"` 7 AssessId int `json:"assessId"`
8 CycleId int64 `json:"cycleId,string"` //周期id 8 CycleId int64 `json:"cycleId,string"` //周期id
9 CycleName string `json:"cycleName"` //周期名称 9 CycleName string `json:"cycleName"` //周期名称
10 - EvaluationProjectId int `json:"evaluationProjectId"` //项目id 10 + EvaluationProjectId int `json:"evaluationProjectId,string"` //项目id
11 EvaluationProjectName string `json:"evaluationProjectName"` //项目名称 11 EvaluationProjectName string `json:"evaluationProjectName"` //项目名称
12 LinkNodeId int `json:"linkNodeId,string"` //评估环节id 12 LinkNodeId int `json:"linkNodeId,string"` //评估环节id
13 LinkNodeName string `json:"linkNodeName"` //评估环节名称 13 LinkNodeName string `json:"linkNodeName"` //评估环节名称
@@ -906,8 +906,8 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada @@ -906,8 +906,8 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada
906 return &adapter.AssessInfoResp{}, nil 906 return &adapter.AssessInfoResp{}, nil
907 } 907 }
908 assessData := assessList[0] 908 assessData := assessList[0]
909 - assessContentList := []*domain.StaffAssessContent{}  
910 - if assessData.Status == domain.StaffAssessCompleted { 909 + var assessContentList []*domain.StaffAssessContent
  910 +
911 //已完成 911 //已完成
912 assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{ 912 assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{
913 "transactionContext": transactionContext, 913 "transactionContext": transactionContext,
@@ -918,8 +918,8 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada @@ -918,8 +918,8 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada
918 if err != nil { 918 if err != nil {
919 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) 919 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
920 } 920 }
921 - } else if assessData.Status == domain.StaffAssessUncompleted {  
922 - //未完成 921 + if len(assessContentList) == 0 {
  922 + // 未完成
923 assessContentList, err = srv.getAssessInfoUncompletedV2(transactionContext, assessData) 923 assessContentList, err = srv.getAssessInfoUncompletedV2(transactionContext, assessData)
924 if err != nil { 924 if err != nil {
925 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) 925 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
@@ -1048,8 +1048,7 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma @@ -1048,8 +1048,7 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma
1048 "transactionContext": transactionContext, 1048 "transactionContext": transactionContext,
1049 }) 1049 })
1050 //待更新的评估填写信息 1050 //待更新的评估填写信息
1051 - assessContentList := []*domain.StaffAssessContent{}  
1052 - if assessData.Status == domain.StaffAssessCompleted { 1051 + var assessContentList []*domain.StaffAssessContent
1053 //已完成 1052 //已完成
1054 _, assessContentList, err = assessContentRepo.Find(map[string]interface{}{ 1053 _, assessContentList, err = assessContentRepo.Find(map[string]interface{}{
1055 "staffAssessId": assessData.Id, 1054 "staffAssessId": assessData.Id,
@@ -1057,8 +1056,9 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma @@ -1057,8 +1056,9 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma
1057 if err != nil { 1056 if err != nil {
1058 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) 1057 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
1059 } 1058 }
1060 - } else if assessData.Status == domain.StaffAssessUncompleted {  
1061 - //未完成 1059 +
  1060 + if len(assessContentList) == 0 {
  1061 + // 未完成
1062 assessContentList, err = srv.getAssessInfoUncompletedV2(transactionContext, assessData) 1062 assessContentList, err = srv.getAssessInfoUncompletedV2(transactionContext, assessData)
1063 if err != nil { 1063 if err != nil {
1064 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) 1064 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
@@ -1102,19 +1102,14 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma @@ -1102,19 +1102,14 @@ func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoComma
1102 } 1102 }
1103 } 1103 }
1104 //保存信息 1104 //保存信息
1105 - hasValue := false //评估是否有填写值 1105 +
1106 for i := range assessContentList { 1106 for i := range assessContentList {
1107 _, err = assessContentRepo.Save(assessContentList[i]) 1107 _, err = assessContentRepo.Save(assessContentList[i])
1108 if err != nil { 1108 if err != nil {
1109 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存评估填写内容"+err.Error()) 1109 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存评估填写内容"+err.Error())
1110 } 1110 }
1111 - if len(assessContentList[i].Value) > 0 {  
1112 - hasValue = true  
1113 - }  
1114 } 1111 }
1115 - if hasValue {  
1116 assessData.Status = domain.StaffAssessCompleted 1112 assessData.Status = domain.StaffAssessCompleted
1117 - }  
1118 assessData.UpdatedAt = time.Now() 1113 assessData.UpdatedAt = time.Now()
1119 _, err = assessReps.Save(assessData) 1114 _, err = assessReps.Save(assessData)
1120 if err != nil { 1115 if err != nil {
@@ -37,6 +37,9 @@ func (srv StaffAssessServeice) SearchAssessTaskMeV2(param *query.SearchAssessMeQ @@ -37,6 +37,9 @@ func (srv StaffAssessServeice) SearchAssessTaskMeV2(param *query.SearchAssessMeQ
37 if param.PageSize > 0 { 37 if param.PageSize > 0 {
38 limit = param.PageSize 38 limit = param.PageSize
39 } 39 }
  40 + if param.PageNumber <= 0 {
  41 + param.PageNumber = 1
  42 + }
40 offset = (param.PageNumber - 1) * param.PageSize 43 offset = (param.PageNumber - 1) * param.PageSize
41 44
42 assessCycleList, cnt, err := staffAssessDao.SearchExecutorAssessBeforeNow(param.UserId, param.CompanyId, limit, offset) 45 assessCycleList, cnt, err := staffAssessDao.SearchExecutorAssessBeforeNow(param.UserId, param.CompanyId, limit, offset)
@@ -1217,8 +1220,7 @@ func (srv StaffAssessServeice) getStaffAssessBeforeEdit(param *query.AssessInfoQ @@ -1217,8 +1220,7 @@ func (srv StaffAssessServeice) getStaffAssessBeforeEdit(param *query.AssessInfoQ
1217 return &adapter.AssessInfoResp{}, nil 1220 return &adapter.AssessInfoResp{}, nil
1218 } 1221 }
1219 assessData := assessList[0] 1222 assessData := assessList[0]
1220 - assessContentList := []*domain.StaffAssessContent{}  
1221 - if assessData.Status == domain.StaffAssessCompleted { 1223 + var assessContentList []*domain.StaffAssessContent
1222 //已完成 1224 //已完成
1223 assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{ 1225 assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{
1224 "transactionContext": transactionContext, 1226 "transactionContext": transactionContext,
@@ -1229,12 +1231,13 @@ func (srv StaffAssessServeice) getStaffAssessBeforeEdit(param *query.AssessInfoQ @@ -1229,12 +1231,13 @@ func (srv StaffAssessServeice) getStaffAssessBeforeEdit(param *query.AssessInfoQ
1229 if err != nil { 1231 if err != nil {
1230 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) 1232 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
1231 } 1233 }
1232 - } else if assessData.Status == domain.StaffAssessUncompleted { 1234 + if len(assessContentList) == 0 {
1233 //未完成 1235 //未完成
1234 assessContentList, err = srv.getAssessInfoUncompletedV2(transactionContext, assessData) 1236 assessContentList, err = srv.getAssessInfoUncompletedV2(transactionContext, assessData)
1235 if err != nil { 1237 if err != nil {
1236 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) 1238 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
1237 } 1239 }
  1240 +
1238 } 1241 }
1239 // 恢复缓存数据 1242 // 恢复缓存数据
1240 srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) 1243 srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList)
@@ -1306,7 +1306,7 @@ func (d *StaffAssessDao) SearchExecutorAssessBeforeNow(executorId int, companyId @@ -1306,7 +1306,7 @@ func (d *StaffAssessDao) SearchExecutorAssessBeforeNow(executorId int, companyId
1306 and staff_assess.deleted_at isnull 1306 and staff_assess.deleted_at isnull
1307 and staff_assess_task.deleted_at isnull 1307 and staff_assess_task.deleted_at isnull
1308 and ( 1308 and (
1309 - staff_assess.end_time < now() or staff_assess.status ='completed' 1309 + staff_assess.end_time < now()
1310 ) 1310 )
1311 and staff_assess.executor ->> 'userId'='?' 1311 and staff_assess.executor ->> 'userId'='?'
1312 order by begin_day desc 1312 order by begin_day desc
@@ -1325,7 +1325,7 @@ func (d *StaffAssessDao) SearchExecutorAssessBeforeNow(executorId int, companyId @@ -1325,7 +1325,7 @@ func (d *StaffAssessDao) SearchExecutorAssessBeforeNow(executorId int, companyId
1325 WHERE staff_assess.company_id=? 1325 WHERE staff_assess.company_id=?
1326 and staff_assess.deleted_at isnull 1326 and staff_assess.deleted_at isnull
1327 and ( 1327 and (
1328 - staff_assess.end_time < now() or staff_assess.status ='completed' 1328 + staff_assess.end_time < now()
1329 ) 1329 )
1330 and staff_assess_task.deleted_at isnull 1330 and staff_assess_task.deleted_at isnull
1331 and staff_assess.executor ->> 'userId'='?' 1331 and staff_assess.executor ->> 'userId'='?'
@@ -1362,7 +1362,7 @@ func (d *StaffAssessDao) SearchExecutorAssessAfterNow(executorId int, companyId @@ -1362,7 +1362,7 @@ func (d *StaffAssessDao) SearchExecutorAssessAfterNow(executorId int, companyId
1362 WHERE staff_assess.company_id=? 1362 WHERE staff_assess.company_id=?
1363 and staff_assess.deleted_at isnull 1363 and staff_assess.deleted_at isnull
1364 and ( 1364 and (
1365 - staff_assess.end_time >= now() and staff_assess.status ='uncompleted' 1365 + staff_assess.end_time >= now()
1366 ) 1366 )
1367 and staff_assess_task.deleted_at isnull 1367 and staff_assess_task.deleted_at isnull
1368 and staff_assess.executor ->> 'userId'='?' 1368 and staff_assess.executor ->> 'userId'='?'
@@ -299,21 +299,37 @@ func (d *StaffAssessDao) ListTargetUserNoInvite(companyId int, cycleId int, begi @@ -299,21 +299,37 @@ func (d *StaffAssessDao) ListTargetUserNoInvite(companyId int, cycleId int, begi
299 } 299 }
300 300
301 type UserSelfStaffAssess struct { 301 type UserSelfStaffAssess struct {
302 - CycleId string ``  
303 - AssessId string ``  
304 - TargetUserId string ``  
305 - TargetUserName string `` 302 + CycleId string `pg:"cycle_id"`
  303 + AssessId string `pg:"assess_id"`
  304 + TargetUserId string `pg:"target_user_id"`
  305 + TargetUserName string `pg:"target_user_name"`
  306 + EvaluationProjectId string `pg:"evaluation_project_id"`
  307 + EvaluationProjectName string `pg:"evaluation_project_name"`
  308 + CompanyId string `pg:"company_id"`
  309 + BeginDay string `pg:"begin_day"`
  310 +}
  311 +
  312 +type SearchConditin3 struct {
  313 + CompanyId int //公司id
  314 + CycleId int //周期id
  315 + BeginDay string //评估的日期
  316 + TargetUserName string //被评估人的名称
  317 + Limit int //分页
  318 + Offset int //分页
  319 + OperaterId int //用户的id是谁在搜索数据
  320 + Hrbp int //
  321 + Status string // 评估完成状态
306 } 322 }
307 323
308 // 根据周期的id和日期获取员工评估的评估任务。有进行查看权限过滤 324 // 根据周期的id和日期获取员工评估的评估任务。有进行查看权限过滤
309 -// companyId int 公司id  
310 -// cycleId int, 评估周期id 325 +// companyId int 公司id ,必填
  326 +// cycleId int, 评估周期id, 必填
311 // userId int, 用户id,谁要查看数据 327 // userId int, 用户id,谁要查看数据
312 // beginDay string, 周期中执行项目的时间 328 // beginDay string, 周期中执行项目的时间
313 // hrbp 是否搜索HRBP角色的用户可以查看,1:是;-1:否 329 // hrbp 是否搜索HRBP角色的用户可以查看,1:是;-1:否
314 // limit int, 分页条数 330 // limit int, 分页条数
315 // offset int 分页偏移 331 // offset int 分页偏移
316 -func (d *StaffAssessDao) SearchUserSelfStaffAssess(param SearchConditin1) ([]UserAssessContent, error) { 332 +func (d *StaffAssessDao) SearchUserSelfStaffAssess(param SearchConditin3) ([]UserSelfStaffAssess, error) {
317 withSql := d.catchProjectIdByPermission(param.CompanyId, param.CycleId, param.OperaterId, param.Hrbp) 333 withSql := d.catchProjectIdByPermission(param.CompanyId, param.CycleId, param.OperaterId, param.Hrbp)
318 sqlStr := `select 334 sqlStr := `select
319 staff_assess.cycle_id , 335 staff_assess.cycle_id ,
@@ -323,9 +339,9 @@ func (d *StaffAssessDao) SearchUserSelfStaffAssess(param SearchConditin1) ([]Use @@ -323,9 +339,9 @@ func (d *StaffAssessDao) SearchUserSelfStaffAssess(param SearchConditin1) ([]Use
323 staff_assess.evaluation_project_id , 339 staff_assess.evaluation_project_id ,
324 staff_assess.evaluation_project_name , 340 staff_assess.evaluation_project_name ,
325 staff_assess.company_id , 341 staff_assess.company_id ,
326 - staff_assess.begin_time 342 + to_char(staff_assess.begin_time at time zone 'PRC','YYYY-MM-DD') as begin_day
327 from staff_assess 343 from staff_assess
328 - join evaluation_project on staff_assess.evaluation_project_id =evaluation_project.id 344 + join t_project_4 on staff_assess.evaluation_project_id =t_project_4.project_id
329 where 1=1 345 where 1=1
330 and staff_assess.cycle_id =? 346 and staff_assess.cycle_id =?
331 and staff_assess.deleted_at isnull 347 and staff_assess.deleted_at isnull
@@ -339,19 +355,53 @@ func (d *StaffAssessDao) SearchUserSelfStaffAssess(param SearchConditin1) ([]Use @@ -339,19 +355,53 @@ func (d *StaffAssessDao) SearchUserSelfStaffAssess(param SearchConditin1) ([]Use
339 condition = append(condition, "%"+param.TargetUserName+"%") 355 condition = append(condition, "%"+param.TargetUserName+"%")
340 sqlStr += ` and staff_assess.target_user ->>'userName' like ? ` 356 sqlStr += ` and staff_assess.target_user ->>'userName' like ? `
341 } 357 }
342 - if len(param.TargetUserId) > 0 {  
343 - condition = append(condition, pg.In(param.TargetUserId))  
344 - sqlStr += ` and staff_assess.target_user ->>'userId' in (?) ` 358 + if len(param.Status) > 0 {
  359 + condition = append(condition, param.Status)
  360 + sqlStr += ` and staff_assess.status=? `
345 } 361 }
346 condition = append(condition, param.Limit, param.Offset) 362 condition = append(condition, param.Limit, param.Offset)
347 sqlStr += ` order by convert_to(staff_assess.target_user ->>'userName','GBK') limit ? offset ? ` 363 sqlStr += ` order by convert_to(staff_assess.target_user ->>'userName','GBK') limit ? offset ? `
348 364
349 sqlStr2 := withSql + withSql 365 sqlStr2 := withSql + withSql
350 - // and to_char(staff_assess.begin_time at time zone 'PRC','YYYY-MM-DD')='2023-03-29'  
351 - _ = sqlStr2  
352 - // and staff_assess.cycle_id =1639084510698016768  
353 - // -- and staff_assess.target_user ->>'userName' like '%陈%'  
354 - // -- and staff_assess.target_user ->>'userId' in ('')  
355 - // order by convert_to(staff_assess.target_user ->>'userName','GBK')  
356 - return nil, nil 366 + tx := d.transactionContext.PgTx
  367 + var result []UserSelfStaffAssess
  368 + _, err := tx.Query(&result, sqlStr2, condition...)
  369 + return result, err
  370 +}
  371 +
  372 +// 根据周期的id和日期获取员工评估的评估任务数量。有进行查看权限过滤
  373 +// companyId int 公司id
  374 +// cycleId int, 评估周期id
  375 +// userId int, 用户id,谁要查看数据
  376 +// beginDay string, 周期中执行项目的时间
  377 +// hrbp 是否搜索HRBP角色的用户可以查看,1:是;-1:否
  378 +func (d *StaffAssessDao) CountUserSelfStaffAssess(param SearchConditin3) (int, error) {
  379 + withSql := d.catchProjectIdByPermission(param.CompanyId, param.CycleId, param.OperaterId, param.Hrbp)
  380 + sqlStr := `select
  381 + count(*)
  382 + from staff_assess
  383 + join t_project_4 on staff_assess.evaluation_project_id =t_project_4.project_id
  384 + where 1=1
  385 + and staff_assess.cycle_id =?
  386 + and staff_assess.deleted_at isnull
  387 + `
  388 + condition := []interface{}{param.CycleId}
  389 + if len(param.BeginDay) > 0 {
  390 + condition = append(condition, param.BeginDay)
  391 + sqlStr += ` and to_char(staff_assess.begin_time at time zone 'PRC','YYYY-MM-DD')=? `
  392 + }
  393 + if len(param.TargetUserName) > 0 {
  394 + condition = append(condition, "%"+param.TargetUserName+"%")
  395 + sqlStr += ` and staff_assess.target_user ->>'userName' like ? `
  396 + }
  397 + if len(param.Status) > 0 {
  398 + condition = append(condition, param.Status)
  399 + sqlStr += ` and staff_assess.status=? `
  400 + }
  401 +
  402 + sqlStr2 := withSql + withSql
  403 + tx := d.transactionContext.PgTx
  404 + var result int
  405 + _, err := tx.Query(pg.Scan(&result), sqlStr2, condition...)
  406 + return result, err
357 } 407 }