正在显示
1 个修改的文件
包含
129 行增加
和
50 行删除
| @@ -352,36 +352,103 @@ func (srv StaffAssessServeice) CreateStaffAssessTask(transactionContext applicat | @@ -352,36 +352,103 @@ func (srv StaffAssessServeice) CreateStaffAssessTask(transactionContext applicat | ||
| 352 | } | 352 | } |
| 353 | nowTime := time.Now() | 353 | nowTime := time.Now() |
| 354 | 354 | ||
| 355 | - _, assassessTaskList, err := assessTaskRepo.Find(map[string]interface{}{ | ||
| 356 | - "evaluationProjectId": param.EvaluationProjectId, | ||
| 357 | - "beginDay": taskBeginTime.Local().Format("2006-01-02"), | ||
| 358 | - }) | ||
| 359 | - if err != nil { | ||
| 360 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询同日期同项目已存在的评估任务"+err.Error()) | ||
| 361 | - } | ||
| 362 | - var assessTaskData *domain.StaffAssessTask | ||
| 363 | - //更新旧数据或者新建数据 | ||
| 364 | - if len(assassessTaskList) > 0 { | ||
| 365 | - assessTaskData = assassessTaskList[0] | ||
| 366 | - assessTaskData.UpdatedAt = nowTime | ||
| 367 | - } else { | ||
| 368 | - //建立新的评估任务 | ||
| 369 | - assessTaskData = &domain.StaffAssessTask{ | ||
| 370 | - Id: 0, | ||
| 371 | - CompanyId: param.CompanyId, | ||
| 372 | - EvaluationProjectId: param.EvaluationProjectId, | ||
| 373 | - EvaluationProjectName: param.EvaluationProjectName, | ||
| 374 | - CycleId: param.CycleId, | ||
| 375 | - CycleName: param.CycleName, | ||
| 376 | - BeginTime: taskBeginTime, | ||
| 377 | - EndTime: taskEndTime, | ||
| 378 | - StepList: []domain.AssessTaskStep{}, | ||
| 379 | - ExecutorId: []int{}, | ||
| 380 | - CreatedAt: nowTime, | ||
| 381 | - UpdatedAt: nowTime, | ||
| 382 | - DeletedAt: nil, | ||
| 383 | - BeginDay: taskBeginTime.Local().Format("2006-01-02"), | ||
| 384 | - } | 355 | + // _, assassessTaskList, err := assessTaskRepo.Find(map[string]interface{}{ |
| 356 | + // "evaluationProjectId": param.EvaluationProjectId, | ||
| 357 | + // "beginDay": taskBeginTime.Local().Format("2006-01-02"), | ||
| 358 | + // }) | ||
| 359 | + // if err != nil { | ||
| 360 | + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询同日期同项目已存在的评估任务"+err.Error()) | ||
| 361 | + // } | ||
| 362 | + // var assessTaskData *domain.StaffAssessTask | ||
| 363 | + // //更新旧数据或者新建数据 | ||
| 364 | + // if len(assassessTaskList) > 0 { | ||
| 365 | + // assessTaskData = assassessTaskList[0] | ||
| 366 | + // assessTaskData.UpdatedAt = nowTime | ||
| 367 | + // } else { | ||
| 368 | + // //建立新的评估任务 | ||
| 369 | + // assessTaskData = &domain.StaffAssessTask{ | ||
| 370 | + // Id: 0, | ||
| 371 | + // CompanyId: param.CompanyId, | ||
| 372 | + // EvaluationProjectId: param.EvaluationProjectId, | ||
| 373 | + // EvaluationProjectName: param.EvaluationProjectName, | ||
| 374 | + // CycleId: param.CycleId, | ||
| 375 | + // CycleName: param.CycleName, | ||
| 376 | + // BeginTime: taskBeginTime, | ||
| 377 | + // EndTime: taskEndTime, | ||
| 378 | + // StepList: []domain.AssessTaskStep{}, | ||
| 379 | + // ExecutorId: []int{}, | ||
| 380 | + // CreatedAt: nowTime, | ||
| 381 | + // UpdatedAt: nowTime, | ||
| 382 | + // DeletedAt: nil, | ||
| 383 | + // BeginDay: taskBeginTime.Local().Format("2006-01-02"), | ||
| 384 | + // } | ||
| 385 | + // } | ||
| 386 | + // executorIds := []int{} //提取评估的参与人id | ||
| 387 | + // executorIdMap := map[int]struct{}{} //过滤重复的用户 | ||
| 388 | + // //从入参中提取参与人 | ||
| 389 | + // for _, v := range param.ExecutorId { | ||
| 390 | + // if _, ok := executorIdMap[v]; ok { | ||
| 391 | + // continue | ||
| 392 | + // } | ||
| 393 | + // executorIdMap[v] = struct{}{} | ||
| 394 | + // executorIds = append(executorIds, v) | ||
| 395 | + // } | ||
| 396 | + // //就数据中提取参与人 | ||
| 397 | + // for _, v := range assessTaskData.ExecutorId { | ||
| 398 | + // if _, ok := executorIdMap[v]; ok { | ||
| 399 | + // continue | ||
| 400 | + // } | ||
| 401 | + // executorIdMap[v] = struct{}{} | ||
| 402 | + // executorIds = append(executorIds, v) | ||
| 403 | + // } | ||
| 404 | + // //填入新的参与人id | ||
| 405 | + // assessTaskData.ExecutorId = executorIds | ||
| 406 | + // //填充新的评估环节 | ||
| 407 | + // loop: | ||
| 408 | + // for _, v := range param.StepList { | ||
| 409 | + // for _, vv := range assessTaskData.StepList { | ||
| 410 | + // if vv.LinkNodeId == v.LinkNodeId { | ||
| 411 | + // continue loop | ||
| 412 | + // } | ||
| 413 | + // } | ||
| 414 | + // stepBeginTime, err := time.ParseInLocation("2006-01-02 15:04:05", param.BeginTime, time.Local) | ||
| 415 | + // if err != nil { | ||
| 416 | + // return nil, application.ThrowError(application.ARG_ERROR, "评估环节开始时间填写错误,"+param.BeginTime) | ||
| 417 | + // } | ||
| 418 | + // stepEndTime, err := time.ParseInLocation("2006-01-02 15:04:05", param.EndTime, time.Local) | ||
| 419 | + // if err != nil { | ||
| 420 | + // return nil, application.ThrowError(application.ARG_ERROR, "评估环节结束时间填写错误,"+param.EndTime) | ||
| 421 | + // } | ||
| 422 | + // step := domain.AssessTaskStep{ | ||
| 423 | + // SortBy: v.SortBy, | ||
| 424 | + // LinkNodeId: v.LinkNodeId, | ||
| 425 | + // LinkNodeName: v.LinkNodeName, | ||
| 426 | + // LinkNodeType: v.LinkNodeType, | ||
| 427 | + // BeginTime: stepBeginTime, | ||
| 428 | + // EndTime: stepEndTime, | ||
| 429 | + // } | ||
| 430 | + // assessTaskData.StepList = append(assessTaskData.StepList, step) | ||
| 431 | + // } | ||
| 432 | + // //排序流程环节 | ||
| 433 | + // stepList := domain.SortTaskStep(assessTaskData.StepList) | ||
| 434 | + // sort.Sort(stepList) | ||
| 435 | + // assessTaskData.StepList = stepList | ||
| 436 | + | ||
| 437 | + assessTaskData := &domain.StaffAssessTask{ | ||
| 438 | + Id: 0, | ||
| 439 | + CompanyId: param.CompanyId, | ||
| 440 | + EvaluationProjectId: param.EvaluationProjectId, | ||
| 441 | + EvaluationProjectName: param.EvaluationProjectName, | ||
| 442 | + CycleId: param.CycleId, | ||
| 443 | + CycleName: param.CycleName, | ||
| 444 | + BeginTime: taskBeginTime, | ||
| 445 | + EndTime: taskEndTime, | ||
| 446 | + StepList: []domain.AssessTaskStep{}, | ||
| 447 | + ExecutorId: []int{}, | ||
| 448 | + CreatedAt: nowTime, | ||
| 449 | + UpdatedAt: nowTime, | ||
| 450 | + DeletedAt: nil, | ||
| 451 | + BeginDay: taskBeginTime.Local().Format("2006-01-02"), | ||
| 385 | } | 452 | } |
| 386 | executorIds := []int{} //提取评估的参与人id | 453 | executorIds := []int{} //提取评估的参与人id |
| 387 | executorIdMap := map[int]struct{}{} //过滤重复的用户 | 454 | executorIdMap := map[int]struct{}{} //过滤重复的用户 |
| @@ -393,24 +460,8 @@ func (srv StaffAssessServeice) CreateStaffAssessTask(transactionContext applicat | @@ -393,24 +460,8 @@ func (srv StaffAssessServeice) CreateStaffAssessTask(transactionContext applicat | ||
| 393 | executorIdMap[v] = struct{}{} | 460 | executorIdMap[v] = struct{}{} |
| 394 | executorIds = append(executorIds, v) | 461 | executorIds = append(executorIds, v) |
| 395 | } | 462 | } |
| 396 | - //就数据中提取参与人 | ||
| 397 | - for _, v := range assessTaskData.ExecutorId { | ||
| 398 | - if _, ok := executorIdMap[v]; ok { | ||
| 399 | - continue | ||
| 400 | - } | ||
| 401 | - executorIdMap[v] = struct{}{} | ||
| 402 | - executorIds = append(executorIds, v) | ||
| 403 | - } | ||
| 404 | - //填入新的参与人id | ||
| 405 | assessTaskData.ExecutorId = executorIds | 463 | assessTaskData.ExecutorId = executorIds |
| 406 | - //填充新的评估环节 | ||
| 407 | -loop: | ||
| 408 | for _, v := range param.StepList { | 464 | for _, v := range param.StepList { |
| 409 | - for _, vv := range assessTaskData.StepList { | ||
| 410 | - if vv.LinkNodeId == v.LinkNodeId { | ||
| 411 | - continue loop | ||
| 412 | - } | ||
| 413 | - } | ||
| 414 | stepBeginTime, err := time.ParseInLocation("2006-01-02 15:04:05", param.BeginTime, time.Local) | 465 | stepBeginTime, err := time.ParseInLocation("2006-01-02 15:04:05", param.BeginTime, time.Local) |
| 415 | if err != nil { | 466 | if err != nil { |
| 416 | return nil, application.ThrowError(application.ARG_ERROR, "评估环节开始时间填写错误,"+param.BeginTime) | 467 | return nil, application.ThrowError(application.ARG_ERROR, "评估环节开始时间填写错误,"+param.BeginTime) |
| @@ -429,20 +480,45 @@ loop: | @@ -429,20 +480,45 @@ loop: | ||
| 429 | } | 480 | } |
| 430 | assessTaskData.StepList = append(assessTaskData.StepList, step) | 481 | assessTaskData.StepList = append(assessTaskData.StepList, step) |
| 431 | } | 482 | } |
| 432 | - //排序流程环节 | ||
| 433 | - stepList := domain.SortTaskStep(assessTaskData.StepList) | ||
| 434 | - sort.Sort(stepList) | ||
| 435 | - assessTaskData.StepList = stepList | ||
| 436 | //添加员工的节点任务 | 483 | //添加员工的节点任务 |
| 437 | assessList, err := srv.createStaffAssess(transactionContext, assessTaskData) | 484 | assessList, err := srv.createStaffAssess(transactionContext, assessTaskData) |
| 438 | if err != nil { | 485 | if err != nil { |
| 439 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "生成个人评估项"+err.Error()) | 486 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "生成个人评估项"+err.Error()) |
| 440 | } | 487 | } |
| 488 | + | ||
| 489 | + //合并项目评估的新旧数据 | ||
| 490 | + _, assassessTaskList, err := assessTaskRepo.Find(map[string]interface{}{ | ||
| 491 | + "evaluationProjectId": param.EvaluationProjectId, | ||
| 492 | + "beginDay": taskBeginTime.Local().Format("2006-01-02"), | ||
| 493 | + }) | ||
| 494 | + if err != nil { | ||
| 495 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "查询同日期同项目已存在的评估任务"+err.Error()) | ||
| 496 | + } | ||
| 497 | + | ||
| 498 | + if len(assassessTaskList) > 0 { | ||
| 499 | + //就数据中提取参与人 | ||
| 500 | + for _, v := range assessTaskData.ExecutorId { | ||
| 501 | + if _, ok := executorIdMap[v]; ok { | ||
| 502 | + continue | ||
| 503 | + } | ||
| 504 | + executorIdMap[v] = struct{}{} | ||
| 505 | + executorIds = append(executorIds, v) | ||
| 506 | + } | ||
| 507 | + assassessTaskList[0].UpdatedAt = time.Now() | ||
| 508 | + assassessTaskList[0].ExecutorId = executorIds | ||
| 509 | + //更新步骤 | ||
| 510 | + assassessTaskList[0].StepList = append(assassessTaskList[0].StepList, assessTaskData.StepList...)\ | ||
| 511 | + asassessTaskData=asassassessTaskList[0] | ||
| 512 | + //排序流程环节 | ||
| 513 | + stepList := domain.SortTaskStep(assessTaskData.StepList) | ||
| 514 | + sort.Sort(stepList) | ||
| 515 | + } | ||
| 441 | _, err = assessTaskRepo.Save(assessTaskData) | 516 | _, err = assessTaskRepo.Save(assessTaskData) |
| 442 | if err != nil { | 517 | if err != nil { |
| 443 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存评估任务"+err.Error()) | 518 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存评估任务"+err.Error()) |
| 444 | } | 519 | } |
| 445 | 520 | ||
| 521 | + //保存 员工的评估任务 | ||
| 446 | assessRepo := factory.CreateStaffAssessRepository(map[string]interface{}{ | 522 | assessRepo := factory.CreateStaffAssessRepository(map[string]interface{}{ |
| 447 | "transactionContext": transactionContext, | 523 | "transactionContext": transactionContext, |
| 448 | }) | 524 | }) |
| @@ -453,6 +529,9 @@ loop: | @@ -453,6 +529,9 @@ loop: | ||
| 453 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存个人评估项"+err.Error()) | 529 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存个人评估项"+err.Error()) |
| 454 | } | 530 | } |
| 455 | } | 531 | } |
| 532 | + | ||
| 533 | + //处理生成的项目评估 | ||
| 534 | + | ||
| 456 | return map[string]interface{}{ | 535 | return map[string]interface{}{ |
| 457 | "assessTaskId": assessTaskData.Id, | 536 | "assessTaskId": assessTaskData.Id, |
| 458 | }, nil | 537 | }, nil |
-
请 注册 或 登录 后发表评论