Merge branch 'dev-zhengzhou' into test
正在显示
1 个修改的文件
包含
64 行增加
和
58 行删除
@@ -589,70 +589,76 @@ func (rs *EvaluationProjectService) Activate(in *command.ActivateProjectCommand) | @@ -589,70 +589,76 @@ func (rs *EvaluationProjectService) Activate(in *command.ActivateProjectCommand) | ||
589 | principalId = intId | 589 | principalId = intId |
590 | } | 590 | } |
591 | 591 | ||
592 | - now := time.Now().Local() | ||
593 | - year, month, day := now.Date() | ||
594 | - nowO := time.Date(year, month, day, 0, 0, 0, 0, time.Local) // 当前时间0点0分0秒时刻 | ||
595 | - for i := range project.Template.LinkNodes { | ||
596 | - node := project.Template.LinkNodes[i] | ||
597 | - task := &domain.NodeTask{ | ||
598 | - Id: 0, | ||
599 | - CompanyId: project.CompanyId, | ||
600 | - CycleId: project.CycleId, | ||
601 | - ProjectId: project.Id, | ||
602 | - NodeId: node.Id, | ||
603 | - NodeType: node.Type, | ||
604 | - NodeName: node.Name, | ||
605 | - NodeDescribe: node.Describe, | ||
606 | - NodeSort: i + 1, | ||
607 | - TimeStart: node.TimeStart, | ||
608 | - TimeEnd: node.TimeEnd, | ||
609 | - KpiCycle: node.KpiCycle, | ||
610 | - } | ||
611 | - | ||
612 | - // 环节起始和截止本地时间 | ||
613 | - startLocal := task.TimeStart.Local() | ||
614 | - sY, sM, sD := startLocal.Date() | ||
615 | - startLocal = time.Date(sY, sM, sD, 0, 0, 0, 0, time.Local) // 开始时间以0点开始计算 | ||
616 | - endLocal := task.TimeEnd.Local() | ||
617 | - | ||
618 | - // 在当前时间之前,则计算下一个周期时间 | ||
619 | - if startLocal.Before(nowO) { | ||
620 | - nextTime := utils.NextTime(nowO, startLocal, node.KpiCycle) | ||
621 | - task.NextSentAt = &nextTime | ||
622 | - } else { | ||
623 | - task.NextSentAt = &startLocal | ||
624 | - } | ||
625 | - // 如果超出截至时间,则周期置空 | ||
626 | - if task.NextSentAt.After(endLocal) { | ||
627 | - task.NextSentAt = nil | ||
628 | - } | 592 | + tasks, err := taskRepository.Find(map[string]interface{}{"projectId": project.Id}) |
593 | + if err != nil { | ||
594 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
595 | + } | ||
596 | + if len(tasks) == 0 { | ||
597 | + now := time.Now().Local() | ||
598 | + year, month, day := now.Date() | ||
599 | + nowO := time.Date(year, month, day, 0, 0, 0, 0, time.Local) // 当前时间0点0分0秒时刻 | ||
600 | + for i := range project.Template.LinkNodes { | ||
601 | + node := project.Template.LinkNodes[i] | ||
602 | + task := &domain.NodeTask{ | ||
603 | + Id: 0, | ||
604 | + CompanyId: project.CompanyId, | ||
605 | + CycleId: project.CycleId, | ||
606 | + ProjectId: project.Id, | ||
607 | + NodeId: node.Id, | ||
608 | + NodeType: node.Type, | ||
609 | + NodeName: node.Name, | ||
610 | + NodeDescribe: node.Describe, | ||
611 | + NodeSort: i + 1, | ||
612 | + TimeStart: node.TimeStart, | ||
613 | + TimeEnd: node.TimeEnd, | ||
614 | + KpiCycle: node.KpiCycle, | ||
615 | + } | ||
629 | 616 | ||
630 | - _, err := taskRepository.Insert(task) | ||
631 | - if err != nil { | ||
632 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
633 | - } | 617 | + // 环节起始和截止本地时间 |
618 | + startLocal := task.TimeStart.Local() | ||
619 | + sY, sM, sD := startLocal.Date() | ||
620 | + startLocal = time.Date(sY, sM, sD, 0, 0, 0, 0, time.Local) // 开始时间以0点开始计算 | ||
621 | + endLocal := task.TimeEnd.Local() | ||
634 | 622 | ||
635 | - // 任务指标生成任务 | ||
636 | - for j := range node.NodeContents { | ||
637 | - content := node.NodeContents[j] | ||
638 | - if content.IndicatorType == domain.IndicatorTypeTask { | ||
639 | - if principalId == 0 { | ||
640 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "请选择任务负责人") | ||
641 | - } | ||
642 | - err := projectTaskService.CreateTask(transactionContext, &taskCommand.CreateTaskCommand{ | ||
643 | - Name: content.Name, | ||
644 | - LeaderId: principalId, | ||
645 | - }) | ||
646 | - if err != nil { | ||
647 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 623 | + // 在当前时间之前,则计算下一个周期时间 |
624 | + if startLocal.Before(nowO) { | ||
625 | + nextTime := utils.NextTime(nowO, startLocal, node.KpiCycle) | ||
626 | + task.NextSentAt = &nextTime | ||
627 | + } else { | ||
628 | + task.NextSentAt = &startLocal | ||
629 | + } | ||
630 | + // 如果超出截至时间,则周期置空 | ||
631 | + if task.NextSentAt.After(endLocal) { | ||
632 | + task.NextSentAt = nil | ||
633 | + } | ||
634 | + | ||
635 | + _, err := taskRepository.Insert(task) | ||
636 | + if err != nil { | ||
637 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
638 | + } | ||
639 | + | ||
640 | + // 任务指标生成任务 | ||
641 | + for j := range node.NodeContents { | ||
642 | + content := node.NodeContents[j] | ||
643 | + if content.IndicatorType == domain.IndicatorTypeTask { | ||
644 | + if principalId == 0 { | ||
645 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "请选择任务负责人") | ||
646 | + } | ||
647 | + err := projectTaskService.CreateTask(transactionContext, &taskCommand.CreateTaskCommand{ | ||
648 | + Name: content.Name, | ||
649 | + LeaderId: principalId, | ||
650 | + }) | ||
651 | + if err != nil { | ||
652 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
653 | + } | ||
648 | } | 654 | } |
649 | } | 655 | } |
650 | } | 656 | } |
651 | - } | ||
652 | 657 | ||
653 | - err = rs.generateEvaluationItemUsed(transactionContext, project) | ||
654 | - if err != nil { | ||
655 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 658 | + err = rs.generateEvaluationItemUsed(transactionContext, project) |
659 | + if err != nil { | ||
660 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
661 | + } | ||
656 | } | 662 | } |
657 | 663 | ||
658 | if err := transactionContext.CommitTransaction(); err != nil { | 664 | if err := transactionContext.CommitTransaction(); err != nil { |
-
请 注册 或 登录 后发表评论