作者 郑周

Merge remote-tracking branch 'origin/test' into test

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)