diff --git a/pkg/application/staff_assess/adapter/list_supper_assess.go b/pkg/application/staff_assess/adapter/list_supper_assess.go
index 9fe9002..bbfb6ea 100644
--- a/pkg/application/staff_assess/adapter/list_supper_assess.go
+++ b/pkg/application/staff_assess/adapter/list_supper_assess.go
@@ -1,12 +1,12 @@
 package adapter
 
 type ListSupperAssessResp struct {
-	AssessId          int    `json:"assessId"`          //
-	UserName          string `json:"userName"`          //用户名称
-	EndTime           string `json:"endTime"`           //截止时间
-	InviteTotal       int    `json:"inviteCompleted"`   //邀请总数
-	InviteUncompleted int    `json:"inviteUncompleted"` //邀请未完成
-	Department        string `json:"department"`        //部门
-	Position          string `json:"position"`          //职位
-	DutyTime          string `json:"dutyTime"`          //入职时间
+	AssessId        int    `json:"assessId"`        //
+	UserName        string `json:"userName"`        //用户名称
+	EndTime         string `json:"endTime"`         //截止时间
+	InviteTotal     int    `json:"inviteTota"`      //邀请总数
+	InviteCompleted int    `json:"inviteCompleted"` //邀请未完成
+	Department      string `json:"department"`      //部门
+	Position        string `json:"position"`        //职位
+	DutyTime        string `json:"dutyTime"`        //入职时间
 }
diff --git a/pkg/application/staff_assess/command/save_assess_info.go b/pkg/application/staff_assess/command/save_assess_info.go
new file mode 100644
index 0000000..a5642d3
--- /dev/null
+++ b/pkg/application/staff_assess/command/save_assess_info.go
@@ -0,0 +1,19 @@
+package command
+
+//保存员工填写评估内容
+type SaveAssessInfoCommand struct {
+	AssessId      int              `json:"assessId"`
+	AssessContent []AssesssContent `json:"assessContent"`
+}
+
+type AssesssContent struct {
+	Category string       `json:"category"`
+	Name     string       `json:"name"`
+	Value    string       `json:"value"`
+	Remark   []RemarkText `json:"remark"`
+}
+
+type RemarkText struct {
+	Title      string `json:"title"`
+	RemarkText string `json:"remarkText"`
+}
diff --git a/pkg/application/staff_assess/query/List_supper_assess.go b/pkg/application/staff_assess/query/List_supper_assess.go
new file mode 100644
index 0000000..12dab59
--- /dev/null
+++ b/pkg/application/staff_assess/query/List_supper_assess.go
@@ -0,0 +1,10 @@
+package query
+
+type ListSupperAssessQuery struct {
+	PageNumber   int    `json:"pageNumber"`
+	PageSize     int    `json:"pageSize"`
+	UserName     string `json:"userName"`     //查询条件 员工的名称
+	CompanyId    int    `json:"companyId"`    //
+	ExecutorId   int    `json:"executorId"`   //评估的执行人
+	AssessTaskId int    `json:"assessTaskId"` //评估任务id
+}
diff --git a/pkg/application/staff_assess/query/assess_self_info.go b/pkg/application/staff_assess/query/assess_self_info.go
index 192f2ca..b2bf244 100644
--- a/pkg/application/staff_assess/query/assess_self_info.go
+++ b/pkg/application/staff_assess/query/assess_self_info.go
@@ -2,7 +2,7 @@ package query
 
 //获取员工自评填写详情
 type AssessSelfInfoQuery struct {
-	AssessTaskId int `json:"assessTaskId"` //StaffAssess 的id
+	AssessTaskId int `json:"assessTaskId"` //assessTaskId 的id
 	TargetUserId int `json:"targetUserId"` //被评估的人id
 	CompanyId    int `json:"companyId"`    //公司id
 
diff --git a/pkg/application/staff_assess/query/list_invite_user_assess copy.go b/pkg/application/staff_assess/query/list_invite_user_assess copy.go
deleted file mode 100644
index ac7fc1b..0000000
--- a/pkg/application/staff_assess/query/list_invite_user_assess copy.go
+++ /dev/null
@@ -1,10 +0,0 @@
-package query
-
-type ListSupperAssessQuery struct {
-	PageNumber    int    `json:"pageNumber"`
-	PageSize      int    `json:"pageSize"`
-	UserName      string `json:"userName"`     //查询条件 员工的名称
-	CompanyId     int    `json:"companyId"`    //
-	ExecutorId    int    `json:"executorId"`   //评估的执行人
-	AssessTaskkId int    `json:"assessTaskId"` //评估任务id
-}
diff --git a/pkg/application/staff_assess/query/list_invite_user_assess.go b/pkg/application/staff_assess/query/list_invite_user_assess.go
index 4fc9bd5..e2a122c 100644
--- a/pkg/application/staff_assess/query/list_invite_user_assess.go
+++ b/pkg/application/staff_assess/query/list_invite_user_assess.go
@@ -5,6 +5,6 @@ type ListInviteUserAssessQuery struct {
 	PageSize      int    `json:"pageSize"`
 	UserName      string `json:"userName"`     //查询条件 员工的名称
 	CompanyId     int    `json:"companyId"`    //
-	ExecutorId    int    `json:"executorId"`   //评估的执行人
-	AssessTaskkId int    `json:"assessTaskId"` //评估任务id
+	ExecutorId    int    `json:"executorId"`   //评估的执行人,必填
+	AssessTaskkId int    `json:"assessTaskId"` //评估任务id 必填
 }
diff --git a/pkg/application/staff_assess/query/list_target_user_assess.go b/pkg/application/staff_assess/query/list_target_user_assess.go
new file mode 100644
index 0000000..94792a9
--- /dev/null
+++ b/pkg/application/staff_assess/query/list_target_user_assess.go
@@ -0,0 +1,9 @@
+package query
+
+//获取员工 被评估的列表
+type ListTargetUserAssessQuery struct {
+	AssessTaskId int      `json:"assessTaskId"`
+	TargetUserId int      `json:"targetUserId"`
+	CompanyId    int      `json:"companyId"`
+	Types        []string `json:"tyspes"`
+}
diff --git a/pkg/application/staff_assess/service/service.go b/pkg/application/staff_assess/service/service.go
index 97baef5..32b7580 100644
--- a/pkg/application/staff_assess/service/service.go
+++ b/pkg/application/staff_assess/service/service.go
@@ -12,6 +12,7 @@ import (
 	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/command"
 	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/query"
 	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
+	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/dao"
 	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/log"
 )
 
@@ -321,16 +322,15 @@ func (srv StaffAssessServeice) AssessSelfList(param *query.AssessSelfListQuery) 
 		DutyTime:       userData.CreatedAt.Local().Format("2006-01-02 15:04:05"),
 	}
 	for _, v := range supperUserList {
-		userInfo.SupperUserName = userInfo.SupperUserName + v.Name + ";"
+		userInfo.SupperUserName = userInfo.SupperUserName + v.Name + " "
 	}
 	result := tool_funs.SimpleWrapGridMap(int64(cnt), listData)
 	result["userInfo"] = userInfo
 	return result, nil
 }
 
-// 更具项目评估的配置,创建员工的评估任务
+// 根据项目评估的配置,创建员工的评估任务
 func (srv StaffAssessServeice) CreateStaffAssessTask(param *command.CreateStaffAssessTask) (map[string]interface{}, error) {
-
 	transactionContext, err := factory.CreateTransactionContext(nil)
 	if err != nil {
 		return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
@@ -546,7 +546,7 @@ func (srv StaffAssessServeice) createStaffAssessSupper(
 	return nil, nil
 }
 
-// 获取某个员工360邀请的人员
+// 获取某个员工360评估邀请的人员
 func (srv StaffAssessServeice) GetAssessInviteUser(param *query.GetAssessInviteUserQuery) (*adapter.AssessInviteUserResp, error) {
 	transactionContext, err := factory.CreateTransactionContext(nil)
 	if err != nil {
@@ -877,10 +877,12 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessSelfInfoQuer
 			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
 		}
 	}
+
+	//获取员工描述
+	staffDesc, _ := srv.getStaffDescrip(transactionContext, int64(param.TargetUserId))
 	if err := transactionContext.CommitTransaction(); err != nil {
 		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
 	}
-
 	result := adapter.AssessInfoResp{
 		AssessId:              assessData.Id,
 		CycleId:               assessData.CycleId,
@@ -892,8 +894,17 @@ func (srv StaffAssessServeice) GetAssessSelfInfo(param *query.AssessSelfInfoQuer
 		Status:                string(assessData.Status),
 		TargetUserId:          assessData.TargetUser.UserId,
 		TargetUserName:        assessData.TargetUser.UserName,
+		CompanyId:             assessData.CompanyId,
+		CompanyName:           "",
+		SupperUser:            "",
+		DutyTime:              "",
 		AssessContent:         assessContentList,
 	}
+	if staffDesc != nil {
+		result.CompanyName = staffDesc.CompanyName
+		result.SupperUser = staffDesc.SupperUserName
+		result.DutyTime = staffDesc.DutyTime
+	}
 	return &result, nil
 }
 
@@ -998,13 +1009,14 @@ func (srv StaffAssessServeice) SelectAssessInviteUser(param *query.SelectAssessI
 	departmentRepo := factory.CreateDepartmentRepository(map[string]interface{}{
 		"transactionContext": transactionContext,
 	})
-
-	_, targetUserDepartment, err := departmentRepo.Find(map[string]interface{}{
-		"ids": targetUser.DepartmentId,
-	})
-
-	if err != nil {
-		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取部门信息"+err.Error())
+	var targetUserDepartment []*domain.Department
+	if len(targetUser.DepartmentId) > 0 {
+		_, targetUserDepartment, err = departmentRepo.Find(map[string]interface{}{
+			"ids": targetUser.DepartmentId,
+		})
+		if err != nil {
+			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取部门信息"+err.Error())
+		}
 	}
 	//获取部门主管的id
 	targetUserCharge := map[int64]struct{}{}
@@ -1060,8 +1072,8 @@ func (srv StaffAssessServeice) SelectAssessInviteUser(param *query.SelectAssessI
 	return tool_funs.SimpleWrapGridMap(int64(cnt), listData), nil
 }
 
-// 获取我的360评估,用户列表和评估填写的值
-func (srv StaffAssessServeice) ListInviteUserAssess(param *query.ListInviteUserAssessQuery) (
+// 获取我要执行的的360评估,用户列表和评估填写的值
+func (srv StaffAssessServeice) ListExecutorInviteAssess(param *query.ListInviteUserAssessQuery) (
 	*adapter.ListInviteUserAssessResp, error) {
 	transactionContext, err := factory.CreateTransactionContext(nil)
 	if err != nil {
@@ -1105,6 +1117,7 @@ func (srv StaffAssessServeice) ListInviteUserAssess(param *query.ListInviteUserA
 			"status":   string(v.Status),
 			"types":    string(v.Types),
 			"endTime":  v.EndTime.Local().Format("2006-01-02 15:04:05"),
+			"assessId": strconv.Itoa(v.Id),
 		}
 		listData = append(listData, m)
 	}
@@ -1118,8 +1131,8 @@ func (srv StaffAssessServeice) ListInviteUserAssess(param *query.ListInviteUserA
 	return &result, nil
 }
 
-// 获取上级评估成员列表
-func (srv StaffAssessServeice) ListSupperAssess(param *query.ListSupperAssessQuery) (map[string]interface{}, error) {
+// 获取我需要执行的上级评估成员列表
+func (srv StaffAssessServeice) ListExecutorSupperAssess(param *query.ListSupperAssessQuery) (map[string]interface{}, error) {
 	transactionContext, err := factory.CreateTransactionContext(nil)
 	if err != nil {
 		return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
@@ -1134,15 +1147,70 @@ func (srv StaffAssessServeice) ListSupperAssess(param *query.ListSupperAssessQue
 	assessRepo := factory.CreateStaffAssessRepository(map[string]interface{}{
 		"transactionContext": transactionContext,
 	})
-	//获取 executorId 对应的上级评估列表
-	cnt, assessList, err := assessRepo.Find(map[string]interface{}{
-		"staffAssessTaskId": param.AssessTaskkId,
+
+	limit := 20
+	if param.PageSize > 0 {
+		limit = param.PageSize
+	}
+	condition := map[string]interface{}{
+		"staffAssessTaskId": param.AssessTaskId,
 		"executorId":        param.ExecutorId,
 		"typesList":         []string{string(domain.AssessSuper)},
-	})
+		"limit":             limit,
+		"targetUserName":    param.UserName,
+	}
+	offset := (param.PageNumber - 1) * param.PageSize
+	if offset > 0 {
+		condition["offset"] = offset
+	}
+	//获取 executorId 对应的上级评估列表
+	cnt, assessList, err := assessRepo.Find(condition)
 	if err != nil {
 		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
 	}
+
+	userIds := []int{}
+	for _, v := range assessList {
+		userIds = append(userIds, v.TargetUser.UserId)
+	}
+	//获取员工信息
+	userRepo := factory.CreateUserRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	var targetUserList []*domain.User
+	if len(userIds) > 0 {
+		_, targetUserList, _ = userRepo.Find(map[string]interface{}{
+			"ids": userIds,
+		})
+	}
+	//获取职位信息
+	positionRepo := factory.CreatePositionRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	//获取员工的职位
+	userPositionMap := map[int64][]*domain.Position{}
+	for _, v := range targetUserList {
+		if len(v.PositionId) == 0 {
+			continue
+		}
+		_, positionList, _ := positionRepo.Find(map[string]interface{}{
+			"ids": v.PositionId,
+		})
+		userPositionMap[v.Id] = positionList
+	}
+
+	//获取员工邀请的人完成360评估的数量
+	var inviteCompletedCount []dao.CountData
+	if len(userIds) > 0 {
+		d := dao.NewStaffAssessDao(map[string]interface{}{
+			"transactionContext": transactionContext,
+		})
+		inviteCompletedCount, err = d.CountInviteAssessByTargetUser(userIds, param.AssessTaskId)
+		if err != nil {
+			log.Logger.Error("获取员工邀请的人完成情况" + err.Error())
+		}
+	}
+
 	if err := transactionContext.CommitTransaction(); err != nil {
 		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
 	}
@@ -1150,19 +1218,39 @@ func (srv StaffAssessServeice) ListSupperAssess(param *query.ListSupperAssessQue
 	resultList := []adapter.ListSupperAssessResp{}
 	for _, v := range assessList {
 		item := adapter.ListSupperAssessResp{
-			AssessId:          v.Id,
-			UserName:          v.TargetUser.UserName,
-			EndTime:           v.EndTime.Local().Format("2006-01-02 15:04:05"),
-			InviteUncompleted: 0,
-			InviteTotal:       5,
-			Department:        "",
-			Position:          "",
-			DutyTime:          "",
+			AssessId:        v.Id,
+			UserName:        v.TargetUser.UserName,
+			EndTime:         v.EndTime.Local().Format("2006-01-02 15:04:05"),
+			InviteCompleted: 0,
+			InviteTotal:     5,
+			Department:      "",
+			Position:        "",
+			DutyTime:        "",
 		}
-
+		//填入部门
 		for _, vv := range v.TargetDepartment {
 			item.Department += vv.DepartmentName + " "
 		}
+		for _, vv := range targetUserList {
+			if vv.Id != int64(v.TargetUser.UserId) {
+				continue
+			}
+			//填入入职时间
+			item.DutyTime = vv.CreatedAt.Local().Format("2006-01-02 15:04:05")
+			//填入职位
+			for _, vvv := range userPositionMap[vv.Id] {
+				item.Position += vvv.Name + " "
+			}
+			break
+		}
+		//
+		for _, vv := range inviteCompletedCount {
+			if v.TargetUser.UserId == vv.TargetUserId {
+				item.InviteCompleted = vv.InviteCompleted
+				item.InviteTotal = vv.InviteTotal
+				break
+			}
+		}
 		resultList = append(resultList, item)
 	}
 	return tool_funs.SimpleWrapGridMap(int64(cnt), resultList), nil
@@ -1214,6 +1302,11 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada
 			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
 		}
 	}
+
+	targetUserDesc, err := srv.getStaffDescrip(transactionContext, int64(assessData.TargetUser.UserId))
+	if err != nil {
+		log.Logger.Error("获取员工描述" + err.Error())
+	}
 	if err := transactionContext.CommitTransaction(); err != nil {
 		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
 	}
@@ -1229,13 +1322,191 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada
 		Status:                string(assessData.Status),
 		TargetUserId:          assessData.TargetUser.UserId,
 		TargetUserName:        assessData.TargetUser.UserName,
+		CompanyId:             assessData.CompanyId,
+		CompanyName:           "",
+		SupperUser:            "",
+		DutyTime:              "",
 		AssessContent:         assessContentList,
 	}
+	if len(assessContentList) == 0 {
+		result.AssessContent = []*domain.StaffAssessContent{}
+	}
+	if targetUserDesc != nil {
+		result.CompanyName = targetUserDesc.CompanyName
+		result.SupperUser = targetUserDesc.SupperUserName
+		result.DutyTime = targetUserDesc.DutyTime
+	}
 	return &result, nil
 }
 
-// 获取员工的某次评估任务的360评估记录录
-// assessTaskId   targetUserId
-func (srv StaffAssessServeice) AssessInviteList() error {
-	return nil
+// 获取员工信息描述
+func (srv *StaffAssessServeice) getStaffDescrip(transactionContext application.TransactionContext, userid int64) (*adapter.StaffInfo, error) {
+	//获取用户数据
+	userRepo := factory.CreateUserRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	userData, err := userRepo.FindOne(map[string]interface{}{
+		"id": userid,
+	})
+	if err != nil {
+		log.Logger.Error("获取用户信息," + err.Error())
+		return nil, application.ThrowError(application.TRANSACTION_ERROR, "获取用户信息,"+err.Error())
+	}
+
+	//获取公司数据
+	companyRep := factory.CreateCompanyRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	companyData, err := companyRep.FindOne(map[string]interface{}{
+		"id": userData.CompanyId,
+	})
+	if err != nil {
+		log.Logger.Error("获取公司信息," + err.Error())
+		return nil, application.ThrowError(application.TRANSACTION_ERROR, "获取公司信息,"+err.Error())
+	}
+	departmentRepo := factory.CreateDepartmentRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	var supperUserList []*domain.User
+	if len(userData.DepartmentId) > 0 {
+		_, departmentList, err := departmentRepo.Find(map[string]interface{}{
+			"ids": userData.DepartmentId,
+		})
+		if err != nil {
+			return nil, application.ThrowError(application.TRANSACTION_ERROR, "获取部门信息,"+err.Error())
+		}
+		var chargeUserIds []int64
+		for _, v := range departmentList {
+			chargeUserIds = append(chargeUserIds, v.ChargeUserIds...)
+		}
+		if len(chargeUserIds) > 0 {
+			_, supperUserList, err = userRepo.Find(map[string]interface{}{
+				"ids": chargeUserIds,
+			})
+			if err != nil {
+				return nil, application.ThrowError(application.TRANSACTION_ERROR, "获取员工上级信息,"+err.Error())
+			}
+		}
+	}
+	userInfo := adapter.StaffInfo{
+		UserName:       userData.Name,
+		CompanyName:    companyData.Name,
+		SupperUserName: "",
+		DutyTime:       userData.CreatedAt.Local().Format("2006-01-02 15:04:05"),
+	}
+	for _, v := range supperUserList {
+		userInfo.SupperUserName = userInfo.SupperUserName + v.Name + " "
+	}
+	return &userInfo, nil
+}
+
+// 提交评估数据
+func (srv StaffAssessServeice) SaveAssessInfo(param *command.SaveAssessInfoCommand) (map[string]interface{}, error) {
+	transactionContext, err := factory.CreateTransactionContext(nil)
+	if err != nil {
+		return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
+	}
+	if err := transactionContext.StartTransaction(); err != nil {
+		return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
+	}
+	defer func() {
+		_ = transactionContext.RollbackTransaction()
+	}()
+	assessReps := factory.CreateStaffAssessRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	//获取员工的评估
+	assessData, err := assessReps.FindOne(map[string]interface{}{
+		"id": param.AssessId,
+	})
+	if err != nil {
+		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工的评估"+err.Error())
+	}
+	assessContentRepo := factory.CreateStaffAssessContentRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	//待更新的评估填写信息
+	assessContentList := []*domain.StaffAssessContent{}
+	if assessData.Status == domain.StaffAssessCompleted {
+		//已完成
+
+		_, assessContentList, err = assessContentRepo.Find(map[string]interface{}{
+			"staffAssessId": assessData.Id,
+		})
+		if err != nil {
+			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
+		}
+	} else if assessData.Status == domain.StaffAssessUncompleted {
+		//未完成
+		assessContentList, err = srv.getAssessSelfInfoUncompleted(transactionContext, assessData)
+		if err != nil {
+			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取项目填写内容"+err.Error())
+		}
+	}
+	//处理提交上来的数据
+	paramContentMap := map[string]command.AssesssContent{}
+	for i, v := range param.AssessContent {
+		key := fmt.Sprintf("%s-%s", v.Category, v.Name)
+		paramContentMap[key] = param.AssessContent[i]
+	}
+	//更新的评估填写信息
+	for _, v := range assessContentList {
+		key := fmt.Sprintf("%s-%s", v.Category, v.Name)
+		item, ok := paramContentMap[key]
+		if !ok {
+			continue
+		}
+		v.Value = item.Value
+		for ii := range v.Remark {
+			for _, vvv := range item.Remark {
+				if v.Remark[ii].Title == vvv.Title {
+					v.Remark[ii].RemarkText = vvv.RemarkText
+					break
+				}
+			}
+		}
+	}
+	//保存信息
+	for i := range assessContentList {
+		_, err = assessContentRepo.Save(assessContentList[i])
+		if err != nil {
+			return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "保存评估填写内容"+err.Error())
+		}
+	}
+	if err := transactionContext.CommitTransaction(); err != nil {
+		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
+	}
+	return map[string]interface{}{
+		"assessId": assessData.Id,
+	}, nil
+}
+
+// 获取员工被评估的列表 ,类型是360邀请的
+func (srv StaffAssessServeice) ListTargetUserAssess(param *query.ListTargetUserAssessQuery) (map[string]interface{}, error) {
+	transactionContext, err := factory.CreateTransactionContext(nil)
+	if err != nil {
+		return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
+	}
+	if err := transactionContext.StartTransaction(); err != nil {
+		return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
+	}
+	defer func() {
+		_ = transactionContext.RollbackTransaction()
+	}()
+	assessReps := factory.CreateStaffAssessRepository(map[string]interface{}{
+		"transactionContext": transactionContext,
+	})
+	//获取员工的评估
+	cnt, assessList, err := assessReps.Find(map[string]interface{}{
+		"assessTaskId": param.AssessTaskId,
+		"companyId":    param.CompanyId,
+		"targetUserId": param.TargetUserId,
+	})
+	if err != nil {
+		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取员工的评估"+err.Error())
+	}
+	if err := transactionContext.CommitTransaction(); err != nil {
+		return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
+	}
+	return tool_funs.SimpleWrapGridMap(int64(cnt), assessList), nil
 }
diff --git a/pkg/domain/position.go b/pkg/domain/position.go
index bd5c087..aa1da11 100644
--- a/pkg/domain/position.go
+++ b/pkg/domain/position.go
@@ -20,4 +20,5 @@ type PositionRepository interface {
 	Update(position *Position) (*Position, error)
 	Remove(ids []int64) error
 	FindOne(queryOption map[string]interface{}) (*Position, error)
+	Find(queryOptions map[string]interface{}) (int, []*Position, error)
 }
diff --git a/pkg/domain/staff_assess.go b/pkg/domain/staff_assess.go
index 9fff146..5fc6aa0 100644
--- a/pkg/domain/staff_assess.go
+++ b/pkg/domain/staff_assess.go
@@ -7,7 +7,7 @@ type StaffAssessType string
 
 const (
 	AssessSelf            StaffAssessType = "self"              //自评
-	AssessSuper           StaffAssessType = "super"             //上级评估
+	AssessSuper           StaffAssessType = "supper"            //上级评估
 	AssessInviteSameSuper StaffAssessType = "invite_same_super" //360 邀请评估-相同上级的同事
 	AssessInviteDiffSuper StaffAssessType = "invite_diff_super" //360 邀请评估-不同上级的同事
 )
diff --git a/pkg/domain/staff_desc.go b/pkg/domain/staff_desc.go
index 7c8fc4d..39e91f9 100644
--- a/pkg/domain/staff_desc.go
+++ b/pkg/domain/staff_desc.go
@@ -12,3 +12,8 @@ type StaffDepartment struct {
 	DepartmentId   int    `json:"departmentId"`   //部门id
 	DepartmentName string `json:"departmentName"` //部门名称
 }
+
+type StaffPosition struct {
+	PositionId   int    `json:"positionId"`
+	PositionName string `json:"positionName"`
+}
diff --git a/pkg/infrastructure/dao/staff_assess_dao.go b/pkg/infrastructure/dao/staff_assess_dao.go
new file mode 100644
index 0000000..8971b49
--- /dev/null
+++ b/pkg/infrastructure/dao/staff_assess_dao.go
@@ -0,0 +1,56 @@
+package dao
+
+import (
+	"strconv"
+
+	"github.com/go-pg/pg/v10"
+	pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
+)
+
+type StaffAssessDao struct {
+	transactionContext *pgTransaction.TransactionContext
+}
+
+func NewStaffAssessDao(options map[string]interface{}) *StaffAssessDao {
+	var transactionContext *pgTransaction.TransactionContext
+	if value, ok := options["transactionContext"]; ok {
+		transactionContext = value.(*pgTransaction.TransactionContext)
+	}
+	return &StaffAssessDao{
+		transactionContext: transactionContext,
+	}
+}
+
+type CountData struct {
+	TargetUserId    int
+	InviteTotal     int
+	InviteCompleted int
+}
+
+// 获取员工邀请的人完成360评估的数量
+func (d *StaffAssessDao) CountInviteAssessByTargetUser(userIds []int, assessTaskId int) ([]CountData, error) {
+	sqlStr := `SELECT staff_assess.target_user->>'userId' as target_user_id,
+ count(staff_assess."id") AS invite_total,
+ sum(
+	case WHEN staff_assess.status='completed' THEN 1
+	ELSE 0 END
+ ) as invite_completed
+ FROM staff_assess 
+ WHERE staff_assess.target_user->>'userId' IN(?)
+ AND staff_assess.types IN ('invite_same_super','invite_diff_super')
+ AND staff_assess.staff_assess_task_id = ?
+ GROUP BY userId`
+
+	userIdList := []string{}
+	for _, v := range userIds {
+		uid := strconv.Itoa(v)
+		userIdList = append(userIdList, uid)
+	}
+	condition := []interface{}{
+		pg.In(userIdList), assessTaskId,
+	}
+	tx := d.transactionContext.PgTx
+	result := []CountData{}
+	_, err := tx.Query(&result, sqlStr, condition...)
+	return result, err
+}
diff --git a/pkg/infrastructure/repository/pg_position_repository.go b/pkg/infrastructure/repository/pg_position_repository.go
index c37998d..aeb4319 100644
--- a/pkg/infrastructure/repository/pg_position_repository.go
+++ b/pkg/infrastructure/repository/pg_position_repository.go
@@ -1,11 +1,12 @@
 package repository
 
 import (
+	"time"
+
 	"github.com/go-pg/pg/v10"
 	pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
 	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
 	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg/models"
-	"time"
 )
 
 type PositionRepository struct {
@@ -66,6 +67,37 @@ func (repository *PositionRepository) FindOne(queryOption map[string]interface{}
 	return repository.transferToDomain(position), nil
 }
 
+func (repo *PositionRepository) Find(queryOptions map[string]interface{}) (int, []*domain.Position, error) {
+	tx := repo.transactionContext.PgTx
+	positionModel := []models.Position{}
+	query := tx.Model(&positionModel)
+	if v, ok := queryOptions["id"]; ok {
+		query.Where("id=?", v)
+	}
+	if v, ok := queryOptions["ids"]; ok {
+		query.Where("id in(?)", pg.In(v))
+	}
+	if v, ok := queryOptions["companyId"]; ok {
+		query.Where("company_id=?", v)
+	}
+	if v, ok := queryOptions["offset"]; ok {
+		query.Offset(v.(int))
+	}
+	if v, ok := queryOptions["limit"]; ok {
+		query.Limit(v.(int))
+	}
+	cnt, err := query.SelectAndCount()
+	if err != nil {
+		return 0, nil, err
+	}
+	var resultList []*domain.Position
+	for i := range positionModel {
+		result := repo.transferToDomain(&positionModel[i])
+		resultList = append(resultList, result)
+	}
+	return cnt, resultList, nil
+}
+
 func (repository *PositionRepository) transferToDomain(model *models.Position) *domain.Position {
 	return &domain.Position{
 		Id:        model.Id,
diff --git a/pkg/infrastructure/repository/pg_staff_assess_repository.go b/pkg/infrastructure/repository/pg_staff_assess_repository.go
index b7437c5..f18cae7 100644
--- a/pkg/infrastructure/repository/pg_staff_assess_repository.go
+++ b/pkg/infrastructure/repository/pg_staff_assess_repository.go
@@ -130,6 +130,10 @@ func (repo *StaffAssessRepository) Find(queryOptions map[string]interface{}) (in
 	if v, ok := queryOptions["targetUserId"].(int); ok && v > 0 {
 		query.Where(`target_user->>'userId'='?'`, v)
 	}
+
+	if v, ok := queryOptions["targetUserName"].(int); ok && v > 0 {
+		query.Where(`target_user->>'userName' like ?`, fmt.Sprintf("%%%v%%", v))
+	}
 	if v, ok := queryOptions["executorId"].(int); ok && v > 0 {
 		query.Where(`executor->>'userId'='?'`, v)
 	}
diff --git a/pkg/port/beego/controllers/staff_assess_controller.go b/pkg/port/beego/controllers/staff_assess_controller.go
index 63057be..1432b1d 100644
--- a/pkg/port/beego/controllers/staff_assess_controller.go
+++ b/pkg/port/beego/controllers/staff_assess_controller.go
@@ -149,7 +149,7 @@ func (c *StaffAssessController) SelectAssessInviteUser() {
 }
 
 // 获取我要执行360评估,用户列表和评估填写的值
-func (c *StaffAssessController) ListInviteUserAssess() {
+func (c *StaffAssessController) ListMeInviteUserAssess() {
 	srv := service.NewStaffAssessServeice()
 	paramReq := &query.ListInviteUserAssessQuery{}
 	err := c.BindJSON(paramReq)
@@ -161,12 +161,12 @@ func (c *StaffAssessController) ListInviteUserAssess() {
 	//TODO 获取当前用户信息
 	paramReq.CompanyId = 1
 	paramReq.ExecutorId = 1
-	data, err := srv.ListInviteUserAssess(paramReq)
+	data, err := srv.ListExecutorInviteAssess(paramReq)
 	c.Response(data, err)
 }
 
-// 获取上级评估成员列表
-func (c *StaffAssessController) ListSupperAssess() {
+// 获取我要执行的上级评估成员列表
+func (c *StaffAssessController) ListMeSupperAssess() {
 	srv := service.NewStaffAssessServeice()
 	paramReq := &query.ListSupperAssessQuery{}
 	err := c.BindJSON(paramReq)
@@ -178,7 +178,7 @@ func (c *StaffAssessController) ListSupperAssess() {
 	//TODO 获取当前用户信息
 	paramReq.CompanyId = 1
 	paramReq.ExecutorId = 1
-	data, err := srv.ListSupperAssess(paramReq)
+	data, err := srv.ListExecutorSupperAssess(paramReq)
 	c.Response(data, err)
 }
 
@@ -211,3 +211,17 @@ func (c *StaffAssessController) GetAssessInfo() {
 	data, err := srv.GetAssessInfo(paramReq)
 	c.Response(data, err)
 }
+
+// 保存评估内容详情
+func (c *StaffAssessController) SaveAssessInfo() {
+	srv := service.NewStaffAssessServeice()
+	paramReq := &command.SaveAssessInfoCommand{}
+	err := c.BindJSON(paramReq)
+	if err != nil {
+		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
+		c.Response(nil, e)
+		return
+	}
+	data, err := srv.SaveAssessInfo(paramReq)
+	c.Response(data, err)
+}
diff --git a/pkg/port/beego/routers/staff_assess_router.go b/pkg/port/beego/routers/staff_assess_router.go
index a6c405c..144e75d 100644
--- a/pkg/port/beego/routers/staff_assess_router.go
+++ b/pkg/port/beego/routers/staff_assess_router.go
@@ -15,13 +15,17 @@ func init() {
 	// /v1/staff-assess/self/me/list
 	assessNS := web.NewNamespace("/v1/staff-assess",
 		// web.NSBefore(filters.AllowCors(), middlewares.CheckToken()),
-		web.NSCtrlPost("/self/me/list", (*controllers.StaffAssessController).AssessSelfMeList),                //获取我的自评反馈列表
-		web.NSCtrlPost("/self/me/info", (*controllers.StaffAssessController).GetAssessSelfMeInfo),             //获取我的自评反馈详情
-		web.NSCtrlPost("/me/invite-user", (*controllers.StaffAssessController).GetAssessInviteUser),           //获取邀请的员工
-		web.NSCtrlPost("/me/save-invite-user", (*controllers.StaffAssessController).SaveAssessInviteUser),     //保存我邀请的员工
-		web.NSCtrlPost("/me/invite-user/select", (*controllers.StaffAssessController).SelectAssessInviteUser), //选择我邀请的员工
-		web.NSCtrlPost("/self/info", (*controllers.StaffAssessController).GetAssessSelfInfo),                  //获取我的自评反馈详情
-		web.NSCtrlPost("/info", (*controllers.StaffAssessController).GetAssessInfo),                           //获取我的自评反馈详情
+		web.NSCtrlPost("/self/me/list", (*controllers.StaffAssessController).AssessSelfMeList),                 //获取我的自评反馈列表
+		web.NSCtrlPost("/self/me/info", (*controllers.StaffAssessController).GetAssessSelfMeInfo),              //获取我的自评反馈详情
+		web.NSCtrlPost("/me/invite-user", (*controllers.StaffAssessController).GetAssessInviteUser),            //获取邀请的员工
+		web.NSCtrlPost("/me/save-invite-user", (*controllers.StaffAssessController).SaveAssessInviteUser),      //保存我邀请的员工
+		web.NSCtrlPost("/me/invite-user/select", (*controllers.StaffAssessController).SelectAssessInviteUser),  //选择我邀请的员工
+		web.NSCtrlPost("/me/execute/invite/list", (*controllers.StaffAssessController).ListMeInviteUserAssess), //我要执行的360评估的用户列表
+		web.NSCtrlPost("/me/execute/supper/list", (*controllers.StaffAssessController).ListMeSupperAssess),     //我要执行的360评估的用户列表
+		web.NSCtrlPost("/self/info", (*controllers.StaffAssessController).GetAssessSelfInfo),                   //获取员工的自评反馈详情
+		web.NSCtrlPost("/info", (*controllers.StaffAssessController).GetAssessInfo),                            //获取员工评估的详情
+		web.NSCtrlPut("/info", (*controllers.StaffAssessController).SaveAssessInfo),                            //保存员工评估的详情
+
 	)
 	web.AddNamespace(assessTaskNS)
 	web.AddNamespace(assessNS)