package controllers import ( "github.com/linmadan/egglib-go/core/application" "github.com/linmadan/egglib-go/web/beego" "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/application/staff_assess/service" "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/middlewares" ) type StaffAssessController struct { beego.BaseController } // 获取个人的自评反馈历史记录列表 func (c *StaffAssessController) AssessSelfMeList() { srv := service.NewStaffAssessServeice() paramReq := &query.AssessSelfListQuery{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) data, err := srv.AssessSelfList(paramReq) c.Response(data, err) } // 更具项目评估的配置,创建员工的评估任务,(调试用) func (c *StaffAssessController) CreateStaffAssessTask() { srv := service.NewStaffAssessServeice() paramReq := &command.CreateStaffAssessTask{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } //服务调用,实际由定时任务触发 data, err := srv.InvokCreateStaffAssessTask(paramReq) c.Response(data, err) } // 保存我邀请的员工 func (c *StaffAssessController) SaveAssessMeInviteUser() { srv := service.NewStaffAssessServeice() paramReq := &command.SaveAssessInvite{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } //TODO 获取当前用户信息 // paramReq.CompanyId = 1 // paramReq.UserId = 1 userReq := middlewares.GetUser(c.Ctx) paramReq.TargetUserId = int(userReq.UserId) data, err := srv.SaveAssessInviteUser(paramReq) c.Response(data, err) } // 员工邀请的人选择列表 func (c *StaffAssessController) SelectAssessInviteUser() { srv := service.NewStaffAssessServeice() paramReq := &query.SelectAssessInviteUser{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) paramReq.TargetUserId = int(userReq.UserId) data, err := srv.SelectAssessInviteUserV2(paramReq) c.Response(data, err) } // 获取评估内容详情 func (c *StaffAssessController) GetAssessInfo() { srv := service.NewStaffAssessServeice() paramReq := &query.AssessInfoQuery{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } // paramReq.CompanyId = 1 userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) 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 } userReq := middlewares.GetUser(c.Ctx) paramReq.ExecutorId = int(userReq.UserId) paramReq.CompanyId = int(userReq.CompanyId) data, err := srv.SaveAssessInfo(paramReq) c.Response(data, err) } // 获取周期列表 func (c *StaffAssessController) ListAssessCycle() { srv := service.NewStaffAssessServeice() userReq := middlewares.GetUser(c.Ctx) data, err := srv.ListAllAssessCycle(int(userReq.CompanyId)) c.Response(data, err) } // 获取周期里的考核日期 func (c *StaffAssessController) ListAssessCycleDay() { srv := service.NewStaffAssessServeice() paramReq := &query.ListAssessCycleDay{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) data, err := srv.ListAllAssessCycleDay(paramReq) c.Response(data, err) } // 根据周期里的考核日期,获取员工填写评估内容列表 func (c *StaffAssessController) ListAssessContentCycleDay() { srv := service.NewStaffAssessServeice() paramReq := &query.ListAssessContentCycleDay{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) paramReq.OperaterId = int(userReq.UserId) data, err := srv.ListUserAssessContentCycleDayV2(paramReq) c.Response(data, err) } // 根据周期里的考核日期,获取员工填写评估内容列表的评估项 func (c *StaffAssessController) ListAssessContentIndicator() { srv := service.NewStaffAssessServeice() paramReq := &query.ListAssessContentCycleDay{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) paramReq.OperaterId = int(userReq.UserId) data, err := srv.QueryPerformanceIndicator(paramReq) c.Response(data, err) } // 根据周期里的考核日期,获取员工填写评估内容列表,导出为xlsx文件 func (c *StaffAssessController) ExportAssessContentCycleDay() { srv := service.NewStaffAssessServeice() paramReq := &query.ExportAssessContentCycleDay{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) paramReq.OperaterId = int(userReq.UserId) data, err := srv.ExportUserAssess(paramReq) if err != nil { c.Response(nil, err) return } c.Ctx.Output.Header("Content-Disposition", "attachment;filename=每日绩效汇总") c.Ctx.Output.Header("Content-Description", "FileTransfer") c.Ctx.Output.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") c.Ctx.Output.Header("Content-Transfer-Encoding", "binary") c.Ctx.Output.Header("Expires", "0") data.Write(c.Ctx.ResponseWriter) } // SaveAssessCache 保存评估内容(缓存) func (c *StaffAssessController) SaveAssessCache() { cacheService := service.NewStaffAssessCacheService() in := &command.SaveAssessCacheCommand{} if err := c.Unmarshal(in); err != nil { c.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) } else { c.Response(cacheService.SaveAssessCache(in)) } } // QuerySummary 员工绩效-项目管理-查询总览 func (c *StaffAssessController) QuerySummary() { srv := service.NewStaffAssessServeice() in := &query.SummaryCommand{} if err := c.Unmarshal(in); err != nil { c.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) } else { if user := middlewares.GetUser(c.Ctx); user != nil { in.CompanyId = int(user.CompanyId) in.OperatorId = int(user.UserId) } c.Response(srv.QuerySummary(in)) } } // QueryMemberSummary 员工绩效-综合管理-成员列表统计 func (c *StaffAssessController) QueryMemberSummary() { srv := service.NewStaffAssessServeice() in := &query.MemberSummaryListCommand{} if err := c.Unmarshal(in); err != nil { c.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) } else { if user := middlewares.GetUser(c.Ctx); user != nil { in.CompanyId = int(user.CompanyId) in.OperatorId = int(user.UserId) } c.Response(srv.QueryMemberSummary(in)) } } // QueryMemberPerformanceIndicator 员工绩效-综合管理-绩效导出指标 func (c *StaffAssessController) QueryMemberPerformanceIndicator() { srv := service.NewStaffAssessServeice() in := &query.MemberPerformanceIndicatorCommand{} if err := c.Unmarshal(in); err != nil { c.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) } else { if user := middlewares.GetUser(c.Ctx); user != nil { in.CompanyId = int(user.CompanyId) in.OperatorId = int(user.UserId) } c.Response(srv.QueryMemberPerformanceIndicator(in)) } } // ExportPerformanceIndicator 导出表格-员工绩效-综合管理-绩效导出指标- func (c *StaffAssessController) ExportPerformanceIndicator() { srv := service.NewStaffAssessServeice() in := &query.ExportPerformanceIndicatorCommand{} if err := c.Unmarshal(in); err != nil { c.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) } else { if user := middlewares.GetUser(c.Ctx); user != nil { in.CompanyId = int(user.CompanyId) in.OperatorId = int(user.UserId) } f, err := srv.ExportPerformanceIndicator(in) if err != nil { c.Response(nil, err) return } fileName := "个人绩效指标" c.Ctx.Output.Header("Content-Disposition", "attachment;filename="+fileName) c.Ctx.Output.Header("Content-Description", "FileTransfer") c.Ctx.Output.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") c.Ctx.Output.Header("Content-Transfer-Encoding", "binary") c.Ctx.Output.Header("Expires", "0") f.Write(c.Ctx.ResponseWriter) } } // 员工绩效-项目管理-矩阵分析 func (c *StaffAssessController) AnalysisData() { srv := service.NewStaffAssessServeice() paramReq := &query.ListAssessContentCycleDay{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) paramReq.OperaterId = int(userReq.UserId) data, err := srv.AnalysisData(paramReq) c.Response(data, err) } // 根据周期里的考核日期,获取员工填写评估内容列表,导出为xlsx文件 func (c *StaffAssessController) ExportUserAssess2() { srv := service.NewStaffAssessServeice() paramReq := &query.ExportUserAssess2Commad{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } if len(paramReq.ExportUserId) == 0 { e := application.ThrowError(application.ARG_ERROR, "请选择人员进行绩效下载") c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) paramReq.OperatorId = int(userReq.UserId) data, err := srv.ExportUserAssess2V2(paramReq) if err != nil { c.Response(nil, err) return } fileName := "个人绩效评估等级统计表" c.Ctx.Output.Header("Content-Disposition", "attachment;filename="+fileName) c.Ctx.Output.Header("Content-Description", "FileTransfer") c.Ctx.Output.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") c.Ctx.Output.Header("Content-Transfer-Encoding", "binary") c.Ctx.Output.Header("Expires", "0") data.Write(c.Ctx.ResponseWriter) } // ListTargetUserSelfCycle 获取目标员工自评周期列表 func (c *StaffAssessController) ListTargetUserSelfCycle() { srv := service.NewStaffAssessServeice() paramReq := &query.ListTargetUserCycleQuery{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) data, err := srv.ListTargetUserSelfCycle(paramReq) c.Response(data, err) } // ListTargetUserSelfCycle 按照周期获取员工的每日自评小结 func (c *StaffAssessController) GetStaffAsessSelfCountLevel() { srv := service.NewStaffAssessServeice() paramReq := &query.StaffAsessSelfCountLevel{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) data, err := srv.GetStaffAsessSelfCountLevel(paramReq) c.Response(data, err) } // 获取未完成评估任务的执行人员名单 func (c *StaffAssessController) ListExcutorUncompleted() { srv := service.NewStaffAssessServeice() paramReq := &query.ListExecutorQuery{} err := c.BindJSON(paramReq) if err != nil { e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error()) c.Response(nil, e) return } userReq := middlewares.GetUser(c.Ctx) paramReq.CompanyId = int(userReq.CompanyId) data, err := srv.ListExcutorUncompleted(paramReq) c.Response(data, err) }