作者 tangxvhui

添加导出功能

@@ -207,7 +207,7 @@ type excelTableHeader struct { @@ -207,7 +207,7 @@ type excelTableHeader struct {
207 Level4 string 207 Level4 string
208 } 208 }
209 209
210 -func (srv StaffAssessServeice) ExportUserAssess(param *query.ListAssessContentCycleDay) ([]byte, error) { 210 +func (srv StaffAssessServeice) ExportUserAssess(param *query.ListAssessContentCycleDay) (*excelize.File, error) {
211 transactionContext, err := factory.CreateTransactionContext(nil) 211 transactionContext, err := factory.CreateTransactionContext(nil)
212 if err != nil { 212 if err != nil {
213 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 213 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
@@ -413,6 +413,5 @@ func (srv StaffAssessServeice) ExportUserAssess(param *query.ListAssessContentCy @@ -413,6 +413,5 @@ func (srv StaffAssessServeice) ExportUserAssess(param *query.ListAssessContentCy
413 } 413 }
414 } 414 }
415 } 415 }
416 -  
417 - return nil, nil 416 + return xlsxFile, nil
418 } 417 }
1 package controllers 1 package controllers
2 2
3 import ( 3 import (
  4 + "fmt"
  5 +
4 "github.com/linmadan/egglib-go/core/application" 6 "github.com/linmadan/egglib-go/core/application"
5 "github.com/linmadan/egglib-go/web/beego" 7 "github.com/linmadan/egglib-go/web/beego"
6 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/command" 8 "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/command"
@@ -320,3 +322,29 @@ func (c *StaffAssessController) ListAssessContentCycleDay() { @@ -320,3 +322,29 @@ func (c *StaffAssessController) ListAssessContentCycleDay() {
320 data, err := srv.ListUserAssessContentCycleDay(paramReq) 322 data, err := srv.ListUserAssessContentCycleDay(paramReq)
321 c.Response(data, err) 323 c.Response(data, err)
322 } 324 }
  325 +
  326 +//根据周期里的考核日期,获取员工填写评估内容列表,导出为xlsx文件
  327 +func (c *StaffAssessController) ExportAssessContentCycleDay() {
  328 + srv := service.NewStaffAssessServeice()
  329 + paramReq := &query.ListAssessContentCycleDay{}
  330 + err := c.BindJSON(paramReq)
  331 + if err != nil {
  332 + e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
  333 + c.Response(nil, e)
  334 + return
  335 + }
  336 + userReq := middlewares.GetUser(c.Ctx)
  337 + paramReq.CompanyId = int(userReq.CompanyId)
  338 + paramReq.OperaterId = int(userReq.UserId)
  339 + data, err := srv.ExportUserAssess(paramReq)
  340 + if err != nil {
  341 + c.Response(nil, err)
  342 + }
  343 + fileName := fmt.Sprintf("每日绩效汇总%s", paramReq.BeginDay)
  344 + c.Ctx.Output.Header("Content-Disposition", "attachment;filename="+fileName)
  345 + c.Ctx.Output.Header("Content-Description", "FileTransfer")
  346 + c.Ctx.Output.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
  347 + c.Ctx.Output.Header("Content-Transfer-Encoding", "binary")
  348 + c.Ctx.Output.Header("Expires", "0")
  349 + data.Write(c.Ctx.ResponseWriter)
  350 +}
@@ -10,12 +10,13 @@ import ( @@ -10,12 +10,13 @@ import (
10 func init() { 10 func init() {
11 assessTaskNS := web.NewNamespace("/v1/staff-assess-task", 11 assessTaskNS := web.NewNamespace("/v1/staff-assess-task",
12 web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()), 12 web.NSBefore(filters.AllowCors(), middlewares.CheckFontToken()),
13 - web.NSCtrlPost("/search/me", (*controllers.StaffAssessController).SearchAssessTaskMe), //获取我参与过的评估项目列表  
14 - web.NSCtrlPost("/desc/me", (*controllers.StaffAssessController).AssessTaskMeDesc), //获取我的项目评估进度描述  
15 - web.NSCtrlPost("/", (*controllers.StaffAssessController).CreateStaffAssessTask), //创建员工的评估任务  
16 - web.NSCtrlGet("/cycle", (*controllers.StaffAssessController).ListAssessCycle), //获取周期列表  
17 - web.NSCtrlPost("/cycle/day", (*controllers.StaffAssessController).ListAssessCycleDay), //获取周期中的考核日期  
18 - web.NSCtrlPost("/cycle/day/content", (*controllers.StaffAssessController).ListAssessContentCycleDay), //根据周期里的考核日期,获取员工填写评估内容列表 13 + web.NSCtrlPost("/search/me", (*controllers.StaffAssessController).SearchAssessTaskMe), //获取我参与过的评估项目列表
  14 + web.NSCtrlPost("/desc/me", (*controllers.StaffAssessController).AssessTaskMeDesc), //获取我的项目评估进度描述
  15 + web.NSCtrlPost("/", (*controllers.StaffAssessController).CreateStaffAssessTask), //创建员工的评估任务
  16 + web.NSCtrlGet("/cycle", (*controllers.StaffAssessController).ListAssessCycle), //获取周期列表
  17 + web.NSCtrlPost("/cycle/day", (*controllers.StaffAssessController).ListAssessCycleDay), //获取周期中的考核日期
  18 + web.NSCtrlPost("/cycle/day/content", (*controllers.StaffAssessController).ListAssessContentCycleDay), //根据周期里的考核日期,获取员工填写评估内容列表
  19 + web.NSCtrlPost("/cycle/day/content/export", (*controllers.StaffAssessController).ListAssessContentCycleDay), //根据周期里的考核日期,导出员工填写评估内容列表
19 ) 20 )
20 // /v1/staff-assess/self/me/list 21 // /v1/staff-assess/self/me/list
21 assessNS := web.NewNamespace("/v1/staff-assess", 22 assessNS := web.NewNamespace("/v1/staff-assess",