Merge remote-tracking branch 'origin/test' into test
正在显示
10 个修改的文件
包含
324 行增加
和
104 行删除
1 | package main | 1 | package main |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | - "fmt" | ||
5 | - | ||
6 | "github.com/beego/beego/v2/server/web" | 4 | "github.com/beego/beego/v2/server/web" |
7 | _ "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego" | 5 | _ "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego" |
8 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/consumer" | 6 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/consumer" |
9 | ) | 7 | ) |
10 | 8 | ||
11 | func main() { | 9 | func main() { |
12 | - tree := web.PrintTree() | ||
13 | - methods := tree["Data"].(web.M) | ||
14 | - for k, v := range methods { | ||
15 | - fmt.Printf("%s => %v \n", k, v) | ||
16 | - } | 10 | + // tree := web.PrintTree() |
11 | + // methods := tree["Data"].(web.M) | ||
12 | + // for k, v := range methods { | ||
13 | + // fmt.Printf("%s => %v \n", k, v) | ||
14 | + // } | ||
17 | go consumer.Run() | 15 | go consumer.Run() |
18 | web.Run() | 16 | web.Run() |
19 | } | 17 | } |
@@ -4,6 +4,7 @@ import "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | @@ -4,6 +4,7 @@ import "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
4 | 4 | ||
5 | //评估内容详情 | 5 | //评估内容详情 |
6 | type AssessInfoResp struct { | 6 | type AssessInfoResp struct { |
7 | + AssessId int `json:"assessId"` | ||
7 | CycleId int64 `json:"cycleId"` //周期id | 8 | CycleId int64 `json:"cycleId"` //周期id |
8 | CycleName string `json:"cycleName"` //周期名称 | 9 | CycleName string `json:"cycleName"` //周期名称 |
9 | EvaluationProjectId int `json:"evaluationProjectId"` //项目id | 10 | EvaluationProjectId int `json:"evaluationProjectId"` //项目id |
@@ -13,13 +14,21 @@ type AssessInfoResp struct { | @@ -13,13 +14,21 @@ type AssessInfoResp struct { | ||
13 | Status string `json:"status"` //完成状态 | 14 | Status string `json:"status"` //完成状态 |
14 | TargetUserId int `json:"targetUser"` // | 15 | TargetUserId int `json:"targetUser"` // |
15 | TargetUserName string `json:"targetUserName"` // | 16 | TargetUserName string `json:"targetUserName"` // |
16 | - AssessContent []AssessContent `json:"assessContent"` //评估内容 | 17 | + AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容 |
17 | } | 18 | } |
18 | 19 | ||
19 | type AssessContent struct { | 20 | type AssessContent struct { |
20 | - Category string `json:"category" comment:"类别"` | ||
21 | - Name string `json:"name" comment:"名称"` | ||
22 | - PromptTitle string `json:"promptTitle" comment:"提示项标题"` | ||
23 | - PromptText string `json:"promptText" comment:"提示项正文"` | ||
24 | - EntryItems []*domain.EntryItem `json:"entryItems" comment:"填写项"` | 21 | + Category string `json:"category"` //comment:"类别" |
22 | + Name string `json:"name"` // comment:"名称" | ||
23 | + PromptTitle string `json:"promptTitle"` //comment:"提示项标题" | ||
24 | + PromptText string `json:"promptText"` // comment:"提示项正文" | ||
25 | + Rule AssessContentRule `json:"rules"` //评定规则 | ||
26 | + Value string `json:"value"` // 实际填写评定值 | ||
27 | + Remark []domain.AssessContemtRemark `json:"entryItems"` // comment:"填写反馈" | ||
28 | +} | ||
29 | + | ||
30 | +type AssessContentRule struct { | ||
31 | + Types int `json:"types"` //评估方式(0评级、1评分) | ||
32 | + Rating domain.Rating `json:"rating"` //评级 | ||
33 | + Score domain.Score `json:"score"` //评分 | ||
25 | } | 34 | } |
@@ -2,6 +2,6 @@ package query | @@ -2,6 +2,6 @@ package query | ||
2 | 2 | ||
3 | type GetAssessInviteUserQuery struct { | 3 | type GetAssessInviteUserQuery struct { |
4 | CompanyId int `json:"companyId"` //对公司 | 4 | CompanyId int `json:"companyId"` //对公司 |
5 | - UsrId int `json:"usrId"` //被评估的员工id | 5 | + UserId int `json:"userId"` //被评估的员工id |
6 | AssessTaskId int `json:"assessTaskId"` //评估任务的id | 6 | AssessTaskId int `json:"assessTaskId"` //评估任务的id |
7 | } | 7 | } |
@@ -575,7 +575,7 @@ func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteU | @@ -575,7 +575,7 @@ func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteU | ||
575 | _, assessList, err := assessReps.Find(map[string]interface{}{ | 575 | _, assessList, err := assessReps.Find(map[string]interface{}{ |
576 | "typesList": []string{string(domain.AssessInviteDiffSuper), string(domain.AssessInviteSameSuper)}, | 576 | "typesList": []string{string(domain.AssessInviteDiffSuper), string(domain.AssessInviteSameSuper)}, |
577 | "staffAssessTaskId": param.AssessTaskId, | 577 | "staffAssessTaskId": param.AssessTaskId, |
578 | - "targetUserId": param.UsrId, | 578 | + "targetUserId": param.UserId, |
579 | }) | 579 | }) |
580 | if err != nil { | 580 | if err != nil { |
581 | return nil, application.ThrowError(application.ARG_ERROR, "获取个人评估任务"+err.Error()) | 581 | return nil, application.ThrowError(application.ARG_ERROR, "获取个人评估任务"+err.Error()) |
@@ -586,6 +586,8 @@ func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteU | @@ -586,6 +586,8 @@ func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteU | ||
586 | 586 | ||
587 | result := adapter.AssessInviteUserResp{ | 587 | result := adapter.AssessInviteUserResp{ |
588 | AssessTaskId: assessTaskData.Id, | 588 | AssessTaskId: assessTaskData.Id, |
589 | + InviteDiffSuper: []domain.StaffDesc{}, | ||
590 | + InviteSameSuper: []domain.StaffDesc{}, | ||
589 | } | 591 | } |
590 | for _, v := range assessTaskData.StepList { | 592 | for _, v := range assessTaskData.StepList { |
591 | if v.LinkNodeType != domain.LinkNodeAllInvite { | 593 | if v.LinkNodeType != domain.LinkNodeAllInvite { |
@@ -608,8 +610,8 @@ func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteU | @@ -608,8 +610,8 @@ func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteU | ||
608 | return &result, nil | 610 | return &result, nil |
609 | } | 611 | } |
610 | 612 | ||
611 | -// 获取某个员工360邀请的人员 | ||
612 | -func (srv StaffAssessServeice) SaveAssessInviteUser(param *command.SaveAssessInvite) (*adapter.AssessInviteUserResp, error) { | 613 | +// 保存某个员工360邀请的人员 |
614 | +func (srv StaffAssessServeice) SaveAssessInviteUser(param *command.SaveAssessInvite) (map[string]interface{}, error) { | ||
613 | inviteSameSuperId := []int{} | 615 | inviteSameSuperId := []int{} |
614 | InviteDiffSuperId := []int{} | 616 | InviteDiffSuperId := []int{} |
615 | for _, v := range param.InviteDiffSuper { | 617 | for _, v := range param.InviteDiffSuper { |
@@ -657,6 +659,19 @@ func (srv StaffAssessServeice) SaveAssessInviteUser(param *command.SaveAssessInv | @@ -657,6 +659,19 @@ func (srv StaffAssessServeice) SaveAssessInviteUser(param *command.SaveAssessInv | ||
657 | return nil, application.ThrowError(application.ARG_ERROR, "获取评估任务"+err.Error()) | 659 | return nil, application.ThrowError(application.ARG_ERROR, "获取评估任务"+err.Error()) |
658 | } | 660 | } |
659 | 661 | ||
662 | + //获取邀请评估的节点 | ||
663 | + var inviteNode *domain.AssessTaskStep | ||
664 | + for _, v := range assessTaskData.StepList { | ||
665 | + if v.LinkNodeType == domain.LinkNodeAllAssessment { | ||
666 | + cp := v | ||
667 | + inviteNode = &cp | ||
668 | + break | ||
669 | + } | ||
670 | + } | ||
671 | + if inviteNode == nil { | ||
672 | + return nil, application.ThrowError(application.ARG_ERROR, "评估任务没有邀请评估的环节") | ||
673 | + } | ||
674 | + | ||
660 | targetUser, err := userRepo.FindOne(map[string]interface{}{ | 675 | targetUser, err := userRepo.FindOne(map[string]interface{}{ |
661 | "id": param.TargetUserId, | 676 | "id": param.TargetUserId, |
662 | }) | 677 | }) |
@@ -713,46 +728,104 @@ func (srv StaffAssessServeice) SaveAssessInviteUser(param *command.SaveAssessInv | @@ -713,46 +728,104 @@ func (srv StaffAssessServeice) SaveAssessInviteUser(param *command.SaveAssessInv | ||
713 | }) | 728 | }) |
714 | } | 729 | } |
715 | } | 730 | } |
716 | - _ = assessReps | ||
717 | - _ = inviteSameSuper | ||
718 | - _ = inviteDiffSuper | ||
719 | - _ = targetUserDepartment | ||
720 | - // _, assessList, err := assessReps.Find(map[string]interface{}{ | ||
721 | - // "typesList": []string{string(domain.AssessInviteDiffSuper), string(domain.AssessInviteSameSuper)}, | ||
722 | - // "staffAssessTaskId": param.AssessTaskId, | ||
723 | - // "targetUserId": param.TargetUserId, | ||
724 | - // }) | ||
725 | - // if err != nil { | ||
726 | - // return nil, application.ThrowError(application.ARG_ERROR, "获取个人评估任务"+err.Error()) | ||
727 | - // } | ||
728 | - // TODO | ||
729 | - | 731 | + //获取员工邀请的人 |
732 | + _, assessList, err := assessReps.Find(map[string]interface{}{ | ||
733 | + "typesList": []string{string(domain.AssessInviteDiffSuper), string(domain.AssessInviteSameSuper)}, | ||
734 | + "staffAssessTaskId": param.AssessTaskId, | ||
735 | + "targetUserId": param.TargetUserId, | ||
736 | + }) | ||
737 | + if err != nil { | ||
738 | + return nil, application.ThrowError(application.ARG_ERROR, "获取员工邀请的人"+err.Error()) | ||
739 | + } | ||
740 | + //比对新旧数据 | ||
741 | + nowTime := time.Now() | ||
742 | + assessMap := map[string]*domain.StaffAssess{} | ||
743 | + for _, v := range assessList { | ||
744 | + //假设为删除 | ||
745 | + v.DeletedAt = &nowTime | ||
746 | + key := fmt.Sprintf("%s%d", string(v.Types), v.Executor.UserId) | ||
747 | + assessMap[key] = v | ||
748 | + } | ||
749 | + newAssessList := []*domain.StaffAssess{} | ||
750 | + //邀请同上级的员工 | ||
751 | + for _, v := range inviteSameSuper { | ||
752 | + key := fmt.Sprintf("%s%d", string(domain.AssessInviteSameSuper), v.UserId) | ||
753 | + if _, ok := assessMap[key]; ok { | ||
754 | + assessMap[key].DeletedAt = nil | ||
755 | + } else { | ||
756 | + newAssessList = append(newAssessList, &domain.StaffAssess{ | ||
757 | + Id: 0, | ||
758 | + CompanyId: assessTaskData.CompanyId, | ||
759 | + EvaluationProjectId: assessTaskData.EvaluationProjectId, | ||
760 | + EvaluationProjectName: assessTaskData.EvaluationProjectName, | ||
761 | + CycleId: assessTaskData.CycleId, | ||
762 | + CycleName: assessTaskData.CycleName, | ||
763 | + StaffAssessTaskId: assessTaskData.Id, | ||
764 | + TargetUser: domain.StaffDesc{ | ||
765 | + UserId: int(targetUser.Id), | ||
766 | + Account: targetUser.Account, | ||
767 | + UserName: targetUser.Name, | ||
768 | + }, | ||
769 | + TargetDepartment: targetUserDepartment, | ||
770 | + Executor: v, | ||
771 | + Types: domain.AssessInviteSameSuper, | ||
772 | + LinkNodeId: inviteNode.LinkNodeId, | ||
773 | + LinkNodeName: inviteNode.LinkNodeName, | ||
774 | + Status: domain.StaffAssessUncompleted, | ||
775 | + BeginTime: inviteNode.BeginTime, | ||
776 | + EndTime: inviteNode.EndTime, | ||
777 | + CreatedAt: nowTime, | ||
778 | + UpdatedAt: nowTime, | ||
779 | + DeletedAt: nil, | ||
780 | + }) | ||
781 | + } | ||
782 | + } | ||
783 | + for _, v := range inviteDiffSuper { | ||
784 | + key := fmt.Sprintf("%s%d", string(domain.AssessInviteDiffSuper), v.UserId) | ||
785 | + if _, ok := assessMap[key]; ok { | ||
786 | + assessMap[key].DeletedAt = nil | ||
787 | + } else { | ||
788 | + newAssessList = append(newAssessList, &domain.StaffAssess{ | ||
789 | + Id: 0, | ||
790 | + CompanyId: assessTaskData.CompanyId, | ||
791 | + EvaluationProjectId: assessTaskData.EvaluationProjectId, | ||
792 | + EvaluationProjectName: assessTaskData.EvaluationProjectName, | ||
793 | + CycleId: assessTaskData.CycleId, | ||
794 | + CycleName: assessTaskData.CycleName, | ||
795 | + StaffAssessTaskId: assessTaskData.Id, | ||
796 | + TargetUser: domain.StaffDesc{ | ||
797 | + UserId: int(targetUser.Id), | ||
798 | + Account: targetUser.Account, | ||
799 | + UserName: targetUser.Name, | ||
800 | + }, | ||
801 | + TargetDepartment: targetUserDepartment, | ||
802 | + Executor: v, | ||
803 | + Types: domain.AssessInviteDiffSuper, | ||
804 | + LinkNodeId: inviteNode.LinkNodeId, | ||
805 | + LinkNodeName: inviteNode.LinkNodeName, | ||
806 | + Status: domain.StaffAssessUncompleted, | ||
807 | + BeginTime: inviteNode.BeginTime, | ||
808 | + EndTime: inviteNode.EndTime, | ||
809 | + CreatedAt: nowTime, | ||
810 | + UpdatedAt: nowTime, | ||
811 | + DeletedAt: nil, | ||
812 | + }) | ||
813 | + } | ||
814 | + } | ||
815 | + assessList = append(assessList, newAssessList...) | ||
816 | + for i := range assessList { | ||
817 | + _, err = assessReps.Save(assessList[i]) | ||
818 | + if err != nil { | ||
819 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存员工邀请评估"+err.Error()) | ||
820 | + } | ||
821 | + } | ||
730 | if err := transactionContext.CommitTransaction(); err != nil { | 822 | if err := transactionContext.CommitTransaction(); err != nil { |
731 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 823 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
732 | } | 824 | } |
733 | - | ||
734 | - result := adapter.AssessInviteUserResp{ | ||
735 | - AssessTaskId: assessTaskData.Id, | 825 | + result := map[string]interface{}{ |
826 | + "assessTaskId": assessTaskData.Id, | ||
736 | } | 827 | } |
737 | - // for _, v := range assessTaskData.StepList { | ||
738 | - // if v.LinkNodeType != domain.LinkNodeAllInvite { | ||
739 | - // continue | ||
740 | - // } | ||
741 | - // result.LinkNodeId = v.LinkNodeId | ||
742 | - // result.LinkNodeName = v.LinkNodeName | ||
743 | - // result.BeginTime = v.BeginTime.Local().Format("2006-01-02 15:04:05") | ||
744 | - // result.EndTime = v.EndTime.Local().Format("2006-01-02 15:04:05") | ||
745 | - // break | ||
746 | - // } | ||
747 | - // for _, v := range assessList { | ||
748 | - // if v.Types == domain.AssessInviteDiffSuper { | ||
749 | - // result.InviteDiffSuper = append(result.InviteDiffSuper, v.Executor) | ||
750 | - // } | ||
751 | - // if v.Types == domain.AssessInviteSameSuper { | ||
752 | - // result.InviteSameSuper = append(result.InviteDiffSuper, v.Executor) | ||
753 | - // } | ||
754 | - // } | ||
755 | - return &result, nil | 828 | + return result, nil |
756 | } | 829 | } |
757 | 830 | ||
758 | // 获取员工自评的评估内容详情 | 831 | // 获取员工自评的评估内容详情 |
@@ -770,7 +843,6 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessInfoQuery) ( | @@ -770,7 +843,6 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessInfoQuery) ( | ||
770 | assessReps := factory.CreateStaffAssessRepository(map[string]interface{}{ | 843 | assessReps := factory.CreateStaffAssessRepository(map[string]interface{}{ |
771 | "transactionContext": transactionContext, | 844 | "transactionContext": transactionContext, |
772 | }) | 845 | }) |
773 | - | ||
774 | //获取员工的评估 | 846 | //获取员工的评估 |
775 | _, assessList, err := assessReps.Find(map[string]interface{}{ | 847 | _, assessList, err := assessReps.Find(map[string]interface{}{ |
776 | "companyId": param.CompanyId, | 848 | "companyId": param.CompanyId, |
@@ -785,43 +857,32 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessInfoQuery) ( | @@ -785,43 +857,32 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessInfoQuery) ( | ||
785 | return &adapter.AssessInfoResp{}, nil | 857 | return &adapter.AssessInfoResp{}, nil |
786 | } | 858 | } |
787 | assessData := assessList[0] | 859 | assessData := assessList[0] |
788 | - projectRepo := factory.CreateEvaluationProjectRepository(map[string]interface{}{ | 860 | + |
861 | + assessContentList := []*domain.StaffAssessContent{} | ||
862 | + if assessData.Status == domain.StaffAssessCompleted { | ||
863 | + //已完成 | ||
864 | + assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{ | ||
789 | "transactionContext": transactionContext, | 865 | "transactionContext": transactionContext, |
790 | }) | 866 | }) |
791 | - projectData, err := projectRepo.FindOne(map[string]interface{}{ | ||
792 | - "id": assessData.EvaluationProjectId, | 867 | + _, assessContentList, err = assessContentRepo.Find(map[string]interface{}{ |
868 | + "staffAssessId": assessData.Id, | ||
793 | }) | 869 | }) |
794 | if err != nil { | 870 | if err != nil { |
795 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目评估配置"+err.Error()) | ||
796 | - } | ||
797 | - if projectData.Template == nil { | ||
798 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "未获取到项目评估配置模板") | ||
799 | - } | ||
800 | - var selfLinkNode *domain.LinkNode | ||
801 | - for _, v := range projectData.Template.LinkNodes { | ||
802 | - if v.Type == domain.LinkNodeSelfAssessment { | ||
803 | - selfLinkNode = v | ||
804 | - break | 871 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) |
805 | } | 872 | } |
873 | + } else if assessData.Status == domain.StaffAssessUncompleted { | ||
874 | + //未完成 | ||
875 | + assessContentList, err = srv.getAssessSelfInfoUncompleted(transactionContext, assessData) | ||
876 | + if err != nil { | ||
877 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) | ||
806 | } | 878 | } |
807 | - if selfLinkNode == nil { | ||
808 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "未获取到项目评估自评配置") | ||
809 | } | 879 | } |
810 | - //获取员工评估的填写内容 | ||
811 | - // assessContentReps := factory.CreateStaffAssessContentRepository(map[string]interface{}{ | ||
812 | - // "transactionContext": transactionContext, | ||
813 | - // }) | ||
814 | - // _, assessContentList, err := assessContentReps.Find(map[string]interface{}{ | ||
815 | - // "staffAssessId": assessData.Id, | ||
816 | - // }) | ||
817 | - // if err != nil { | ||
818 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目评估员工填写的内容"+err.Error()) | ||
819 | - // } | ||
820 | if err := transactionContext.CommitTransaction(); err != nil { | 880 | if err := transactionContext.CommitTransaction(); err != nil { |
821 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 881 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
822 | } | 882 | } |
823 | 883 | ||
824 | result := adapter.AssessInfoResp{ | 884 | result := adapter.AssessInfoResp{ |
885 | + AssessId: assessData.Id, | ||
825 | CycleId: assessData.CycleId, | 886 | CycleId: assessData.CycleId, |
826 | CycleName: assessData.CycleName, | 887 | CycleName: assessData.CycleName, |
827 | EvaluationProjectId: assessData.EvaluationProjectId, | 888 | EvaluationProjectId: assessData.EvaluationProjectId, |
@@ -831,18 +892,82 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessInfoQuery) ( | @@ -831,18 +892,82 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessInfoQuery) ( | ||
831 | Status: string(assessData.Status), | 892 | Status: string(assessData.Status), |
832 | TargetUserId: assessData.TargetUser.UserId, | 893 | TargetUserId: assessData.TargetUser.UserId, |
833 | TargetUserName: assessData.TargetUser.UserName, | 894 | TargetUserName: assessData.TargetUser.UserName, |
834 | - AssessContent: nil, | 895 | + AssessContent: assessContentList, |
896 | + } | ||
897 | + return &result, nil | ||
898 | +} | ||
899 | + | ||
900 | +// 获取未完成的员工评估内容 | ||
901 | +func (srv StaffAssessServeice) getAssessSelfInfoUncompleted(transactionContext application.TransactionContext, | ||
902 | + assess *domain.StaffAssess) ([]*domain.StaffAssessContent, error) { | ||
903 | + projectRepo := factory.CreateEvaluationProjectRepository(map[string]interface{}{ | ||
904 | + "transactionContext": transactionContext, | ||
905 | + }) | ||
906 | + projectData, err := projectRepo.FindOne(map[string]interface{}{ | ||
907 | + "id": assess.EvaluationProjectId, | ||
908 | + }) | ||
909 | + if err != nil { | ||
910 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error()) | ||
835 | } | 911 | } |
836 | - assessContent := make([]adapter.AssessContent, 0) | ||
837 | - for _, v := range selfLinkNode.NodeContents { | ||
838 | - assessContent = append(assessContent, adapter.AssessContent{ | 912 | + var linkNode *domain.LinkNode |
913 | + for _, v := range projectData.Template.LinkNodes { | ||
914 | + if v.Id == int64(assess.LinkNodeId) { | ||
915 | + linkNode = v | ||
916 | + break | ||
917 | + } | ||
918 | + } | ||
919 | + if linkNode == nil { | ||
920 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "未获得评估环节配置"+err.Error()) | ||
921 | + } | ||
922 | + ruleRepo := factory.CreateEvaluationRuleRepository(map[string]interface{}{ | ||
923 | + "transactionContext": transactionContext, | ||
924 | + }) | ||
925 | + ruleMap := map[int64]*domain.EvaluationRule{} | ||
926 | + for _, v := range linkNode.NodeContents { | ||
927 | + if _, ok := ruleMap[v.RuleId]; ok { | ||
928 | + continue | ||
929 | + } | ||
930 | + ruleData, err := ruleRepo.FindOne(map[string]interface{}{ | ||
931 | + "id": v.RuleId, | ||
932 | + }) | ||
933 | + if err == nil { | ||
934 | + ruleMap[v.RuleId] = ruleData | ||
935 | + } | ||
936 | + } | ||
937 | + | ||
938 | + var contentList []*domain.StaffAssessContent | ||
939 | + nowTime := time.Now() | ||
940 | + for i, v := range linkNode.NodeContents { | ||
941 | + item := &domain.StaffAssessContent{ | ||
942 | + Id: 0, | ||
943 | + StaffAssessId: assess.Id, | ||
944 | + SortBy: i + 1, | ||
839 | Category: v.Category, | 945 | Category: v.Category, |
840 | Name: v.Name, | 946 | Name: v.Name, |
841 | PromptTitle: v.PromptTitle, | 947 | PromptTitle: v.PromptTitle, |
842 | PromptText: v.PromptText, | 948 | PromptText: v.PromptText, |
843 | - EntryItems: v.EntryItems, | ||
844 | - }) | 949 | + Remark: nil, |
950 | + Value: "", | ||
951 | + ReteResult: "", | ||
952 | + CreatedAt: nowTime, | ||
953 | + UpdatedAt: nowTime, | ||
954 | + DeletedAt: nil, | ||
955 | + // Rule: , | ||
845 | } | 956 | } |
846 | - result.AssessContent = assessContent | ||
847 | - return &result, nil | 957 | + if ruleVal, ok := ruleMap[v.RuleId]; ok { |
958 | + item.Rule = *ruleVal | ||
959 | + } | ||
960 | + var remarks []domain.AssessContemtRemark | ||
961 | + for _, vv := range v.EntryItems { | ||
962 | + ritem := domain.AssessContemtRemark{ | ||
963 | + Title: vv.Title, | ||
964 | + HintText: vv.HintText, | ||
965 | + RemarkText: "", | ||
966 | + } | ||
967 | + remarks = append(remarks, ritem) | ||
968 | + } | ||
969 | + item.Remark = remarks | ||
970 | + contentList = append(contentList, item) | ||
971 | + } | ||
972 | + return contentList, nil | ||
848 | } | 973 | } |
@@ -8,18 +8,22 @@ type StaffAssessContent struct { | @@ -8,18 +8,22 @@ type StaffAssessContent struct { | ||
8 | StaffAssessId int `json:"staffAssessId"` //用户需要的评估项id | 8 | StaffAssessId int `json:"staffAssessId"` //用户需要的评估项id |
9 | SortBy int `json:"sortBy"` //排序 | 9 | SortBy int `json:"sortBy"` //排序 |
10 | Category string `json:"category"` //类别 | 10 | Category string `json:"category"` //类别 |
11 | - Title string `json:"title"` //问题标题 | ||
12 | - Remark string `json:"remark"` //填写的反馈 | ||
13 | - Rate string `json:"rate"` //评估填写的值 | 11 | + Name string `json:"name"` //名称 |
12 | + PromptTitle string `json:"promptTitle"` //提示项标题 | ||
13 | + PromptText string `json:"promptText"` //提示项正文 | ||
14 | + Remark []AssessContemtRemark `json:"remark"` //填写的反馈 | ||
15 | + Value string `json:"value"` //评估填写的值 | ||
14 | ReteResult string `json:"reteResult"` //评估的结果 | 16 | ReteResult string `json:"reteResult"` //评估的结果 |
17 | + Rule EvaluationRule `json:"rule"` //评估的选项规则 | ||
15 | CreatedAt time.Time `json:"createdAt"` //数据创建时间 | 18 | CreatedAt time.Time `json:"createdAt"` //数据创建时间 |
16 | UpdatedAt time.Time `json:"updatedAt"` //数据更新时间 | 19 | UpdatedAt time.Time `json:"updatedAt"` //数据更新时间 |
17 | - //TODO | 20 | + DeletedAt *time.Time `json:"deletedAt"` |
18 | } | 21 | } |
19 | 22 | ||
20 | type AssessContemtRemark struct { | 23 | type AssessContemtRemark struct { |
21 | Title string `json:"title"` //comment:"填写标题" | 24 | Title string `json:"title"` //comment:"填写标题" |
22 | - RemarkText string `json:"hintText"` // comment:"填写文本内容" | 25 | + HintText string `json:"hintText"` // comment:"文本内容提示" |
26 | + RemarkText string `json:"remarkText"` // comment:"填写文本内容" | ||
23 | } | 27 | } |
24 | 28 | ||
25 | type StaffAssessContentRepository interface { | 29 | type StaffAssessContentRepository interface { |
@@ -42,6 +42,7 @@ func init() { | @@ -42,6 +42,7 @@ func init() { | ||
42 | &models.EvaluationProject{}, | 42 | &models.EvaluationProject{}, |
43 | &models.StaffAssess{}, | 43 | &models.StaffAssess{}, |
44 | &models.StaffAssessTask{}, | 44 | &models.StaffAssessTask{}, |
45 | + &models.StaffAssessContent{}, | ||
45 | } | 46 | } |
46 | for _, model := range tables { | 47 | for _, model := range tables { |
47 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ | 48 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ |
1 | package models | 1 | package models |
2 | 2 | ||
3 | -import "time" | 3 | +import ( |
4 | + "time" | ||
4 | 5 | ||
5 | -//填写的评估内容 | 6 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
7 | +) | ||
8 | + | ||
9 | +// 填写的评估内容 | ||
6 | type StaffAssessContent struct { | 10 | type StaffAssessContent struct { |
7 | tableName struct{} `pg:"staff_assess_content" comment:"填写的评估项"` | 11 | tableName struct{} `pg:"staff_assess_content" comment:"填写的评估项"` |
8 | Id int `pg:",pk"` //id | 12 | Id int `pg:",pk"` //id |
9 | StaffAssessId int //用户需要的评估项id | 13 | StaffAssessId int //用户需要的评估项id |
10 | SortBy int //排序 | 14 | SortBy int //排序 |
11 | Category string //类别 | 15 | Category string //类别 |
12 | - Title string //问题标题 | ||
13 | - Remark string //填写的反馈 | ||
14 | - Rate string //评估填写的值 | 16 | + Name string //名称 |
17 | + PromptTitle string //问题标题 | ||
18 | + PromptText string //提示项正文 | ||
19 | + Value string //评估填写的值 | ||
15 | ReteResult string //评估的结果 | 20 | ReteResult string //评估的结果 |
21 | + Rule domain.EvaluationRule | ||
22 | + Remark []domain.AssessContemtRemark | ||
16 | CreatedAt time.Time //数据创建时间 | 23 | CreatedAt time.Time //数据创建时间 |
17 | UpdatedAt time.Time //数据更新时间 | 24 | UpdatedAt time.Time //数据更新时间 |
25 | + DeletedAt *time.Time | ||
18 | } | 26 | } |
19 | 27 | ||
20 | type StaffAssessContentRepository interface { | 28 | type StaffAssessContentRepository interface { |
@@ -22,12 +22,40 @@ func NewStaffAssessContentRepository(transactionContext *pgTransaction.Transacti | @@ -22,12 +22,40 @@ func NewStaffAssessContentRepository(transactionContext *pgTransaction.Transacti | ||
22 | } | 22 | } |
23 | 23 | ||
24 | func (repo *StaffAssessContentRepository) TransformToDomain(d *models.StaffAssessContent) *domain.StaffAssessContent { | 24 | func (repo *StaffAssessContentRepository) TransformToDomain(d *models.StaffAssessContent) *domain.StaffAssessContent { |
25 | - return &domain.StaffAssessContent{} | 25 | + return &domain.StaffAssessContent{ |
26 | + Id: d.Id, | ||
27 | + StaffAssessId: d.StaffAssessId, | ||
28 | + SortBy: d.SortBy, | ||
29 | + Category: d.Category, | ||
30 | + Name: d.Name, | ||
31 | + PromptTitle: d.PromptTitle, | ||
32 | + PromptText: d.PromptText, | ||
33 | + Remark: d.Remark, | ||
34 | + Value: d.Value, | ||
35 | + ReteResult: d.ReteResult, | ||
36 | + Rule: d.Rule, | ||
37 | + CreatedAt: d.CreatedAt, | ||
38 | + UpdatedAt: d.UpdatedAt, | ||
39 | + DeletedAt: nil, | ||
40 | + } | ||
26 | } | 41 | } |
27 | 42 | ||
28 | func (repo *StaffAssessContentRepository) Save(d *domain.StaffAssessContent) (*domain.StaffAssessContent, error) { | 43 | func (repo *StaffAssessContentRepository) Save(d *domain.StaffAssessContent) (*domain.StaffAssessContent, error) { |
29 | - saveModel := models.StaffAssess{ | 44 | + saveModel := models.StaffAssessContent{ |
30 | Id: d.Id, | 45 | Id: d.Id, |
46 | + StaffAssessId: d.StaffAssessId, | ||
47 | + SortBy: d.SortBy, | ||
48 | + Category: d.Category, | ||
49 | + Name: d.Name, | ||
50 | + PromptTitle: d.PromptTitle, | ||
51 | + PromptText: d.PromptText, | ||
52 | + Remark: d.Remark, | ||
53 | + Value: d.Value, | ||
54 | + ReteResult: d.ReteResult, | ||
55 | + Rule: d.Rule, | ||
56 | + CreatedAt: d.CreatedAt, | ||
57 | + UpdatedAt: d.UpdatedAt, | ||
58 | + DeletedAt: nil, | ||
31 | } | 59 | } |
32 | tx := repo.transactionContext.PgTx | 60 | tx := repo.transactionContext.PgTx |
33 | var err error | 61 | var err error |
@@ -79,7 +107,7 @@ func (repo *StaffAssessContentRepository) Find(queryOptions map[string]interface | @@ -79,7 +107,7 @@ func (repo *StaffAssessContentRepository) Find(queryOptions map[string]interface | ||
79 | tx := repo.transactionContext.PgTx | 107 | tx := repo.transactionContext.PgTx |
80 | var m []*models.StaffAssessContent | 108 | var m []*models.StaffAssessContent |
81 | query := tx.Model(&m). | 109 | query := tx.Model(&m). |
82 | - Where("deleted_at isnull").Limit(20) | 110 | + Where("deleted_at isnull") |
83 | if companyId, ok := queryOptions["companyId"]; ok { | 111 | if companyId, ok := queryOptions["companyId"]; ok { |
84 | query.Where("company_id = ?", companyId) | 112 | query.Where("company_id = ?", companyId) |
85 | } | 113 | } |
@@ -78,10 +78,55 @@ func (c *StaffAssessController) CreateStaffAssessTask() { | @@ -78,10 +78,55 @@ func (c *StaffAssessController) CreateStaffAssessTask() { | ||
78 | c.Response(data, err) | 78 | c.Response(data, err) |
79 | } | 79 | } |
80 | 80 | ||
81 | -//获取员工自评详情 | 81 | +// 获取员工自评详情 |
82 | +func (c *StaffAssessController) GetAssessSelfInfo() { | ||
83 | + srv := service.NewStaffAssessServeice() | ||
84 | + paramReq := &query.AssessInfoQuery{} | ||
85 | + err := c.BindJSON(paramReq) | ||
86 | + if err != nil { | ||
87 | + e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | ||
88 | + c.Response(nil, e) | ||
89 | + return | ||
90 | + } | ||
91 | + //TODO 获取当前用户信息 | ||
92 | + paramReq.CompanyId = 1 | ||
93 | + paramReq.TargetUserId = 1 | ||
94 | + data, err := srv.GetAssessSelfInfo(paramReq) | ||
95 | + c.Response(data, err) | ||
96 | +} | ||
82 | 97 | ||
83 | //保存员工自评填写内容 | 98 | //保存员工自评填写内容 |
84 | 99 | ||
85 | -//获取员工邀请的人 | 100 | +// 获取员工邀请的人 |
101 | +func (c *StaffAssessController) GetAssessInviteUser() { | ||
102 | + srv := service.NewStaffAssessServeice() | ||
103 | + paramReq := &query.GetAssessInviteUserQuery{} | ||
104 | + err := c.BindJSON(paramReq) | ||
105 | + if err != nil { | ||
106 | + e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) | ||
107 | + c.Response(nil, e) | ||
108 | + return | ||
109 | + } | ||
110 | + //TODO 获取当前用户信息 | ||
111 | + paramReq.CompanyId = 1 | ||
112 | + paramReq.UserId = 1 | ||
113 | + data, err := srv.GetAssessInviteUser(paramReq) | ||
114 | + c.Response(data, err) | ||
115 | +} | ||
86 | 116 | ||
87 | -//保持员工邀请的人 | 117 | +// 保持员工邀请的人 |
118 | +func (c *StaffAssessController) SaveAssessInviteUser() { | ||
119 | + srv := service.NewStaffAssessServeice() | ||
120 | + paramReq := &command.SaveAssessInvite{} | ||
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 | + //TODO 获取当前用户信息 | ||
128 | + // paramReq.CompanyId = 1 | ||
129 | + // paramReq.UserId = 1 | ||
130 | + data, err := srv.SaveAssessInviteUser(paramReq) | ||
131 | + c.Response(data, err) | ||
132 | +} |
@@ -16,7 +16,9 @@ func init() { | @@ -16,7 +16,9 @@ func init() { | ||
16 | assessNS := web.NewNamespace("/v1/staff-assess", | 16 | assessNS := web.NewNamespace("/v1/staff-assess", |
17 | // web.NSBefore(filters.AllowCors(), middlewares.CheckToken()), | 17 | // web.NSBefore(filters.AllowCors(), middlewares.CheckToken()), |
18 | web.NSCtrlPost("/self/me/list", (*controllers.StaffAssessController).AssessSelfMeList), //获取我的自评反馈列表 | 18 | web.NSCtrlPost("/self/me/list", (*controllers.StaffAssessController).AssessSelfMeList), //获取我的自评反馈列表 |
19 | - // web.NSCtrlPost("/self/me/info", (*controllers.StaffAssessController).AssessSelfMeList), | 19 | + web.NSCtrlPost("/self/me/info", (*controllers.StaffAssessController).GetAssessSelfInfo), //获取我的自评反馈详情 |
20 | + web.NSCtrlPost("/me/invite-user", (*controllers.StaffAssessController).GetAssessInviteUser), //获取邀请的员工 | ||
21 | + web.NSCtrlPost("/me/save-invite-user", (*controllers.StaffAssessController).SaveAssessInviteUser), //保存邀请的员工 | ||
20 | ) | 22 | ) |
21 | web.AddNamespace(assessTaskNS) | 23 | web.AddNamespace(assessTaskNS) |
22 | web.AddNamespace(assessNS) | 24 | web.AddNamespace(assessNS) |
-
请 注册 或 登录 后发表评论