|
@@ -227,38 +227,7 @@ func (srv StaffAssessServeice) ExportUserAssess(param *query.ListAssessContentCy |
|
@@ -227,38 +227,7 @@ func (srv StaffAssessServeice) ExportUserAssess(param *query.ListAssessContentCy |
|
227
|
if err != nil {
|
227
|
if err != nil {
|
|
228
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
228
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
229
|
}
|
229
|
}
|
|
230
|
- //roleRepo := factory.CreateRoleRepository(map[string]interface{}{
|
|
|
|
231
|
- // "transactionContext": transactionContext,
|
|
|
|
232
|
- //})
|
|
|
|
233
|
- //roleUserRepo := factory.CreateRoleUserRepository(map[string]interface{}{
|
|
|
|
234
|
- // "transactionContext": transactionContext,
|
|
|
|
235
|
- //})
|
|
|
|
236
|
- //_, roleList, err := roleRepo.Find(map[string]interface{}{
|
|
|
|
237
|
- // "type": domain.RoleTypeSystem,
|
|
|
|
238
|
- // "companyId": param.CompanyId,
|
|
|
|
239
|
- //})
|
|
|
|
240
|
- //if err != nil {
|
|
|
|
241
|
- // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取角色信息列表"+err.Error())
|
|
|
|
242
|
- //}
|
|
|
|
243
|
- //_, userRoleList, err := roleUserRepo.Find(map[string]interface{}{
|
|
|
|
244
|
- // "companyId": param.CompanyId,
|
|
|
|
245
|
- // "userId": param.OperaterId,
|
|
|
|
246
|
- //})
|
|
|
|
247
|
- //if err != nil {
|
|
|
|
248
|
- // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error())
|
|
|
|
249
|
- //}
|
|
|
|
250
|
- //hrbp := -1
|
|
|
|
251
|
- //for _, v := range userRoleList {
|
|
|
|
252
|
- // for _, v2 := range roleList {
|
|
|
|
253
|
- // if v.RoleId == v2.Id {
|
|
|
|
254
|
- // hrbp = 1
|
|
|
|
255
|
- // break
|
|
|
|
256
|
- // }
|
|
|
|
257
|
- // }
|
|
|
|
258
|
- // if hrbp == 1 {
|
|
|
|
259
|
- // break
|
|
|
|
260
|
- // }
|
|
|
|
261
|
- //}
|
230
|
+
|
|
262
|
assessDao := dao.NewStaffAssessDao(map[string]interface{}{
|
231
|
assessDao := dao.NewStaffAssessDao(map[string]interface{}{
|
|
263
|
"transactionContext": transactionContext,
|
232
|
"transactionContext": transactionContext,
|
|
264
|
})
|
233
|
})
|
|
@@ -595,56 +564,99 @@ func (srv StaffAssessServeice) ExportUserAssess2(param *query.SummaryCommand) (* |
|
@@ -595,56 +564,99 @@ func (srv StaffAssessServeice) ExportUserAssess2(param *query.SummaryCommand) (* |
|
595
|
defer func() {
|
564
|
defer func() {
|
|
596
|
_ = transactionContext.RollbackTransaction()
|
565
|
_ = transactionContext.RollbackTransaction()
|
|
597
|
}()
|
566
|
}()
|
|
598
|
-
|
|
|
|
599
|
- roleRepo := factory.CreateRoleRepository(map[string]interface{}{
|
|
|
|
600
|
- "transactionContext": transactionContext,
|
|
|
|
601
|
- })
|
|
|
|
602
|
- roleUserRepo := factory.CreateRoleUserRepository(map[string]interface{}{
|
|
|
|
603
|
- "transactionContext": transactionContext,
|
|
|
|
604
|
- })
|
|
|
|
605
|
- _, roleList, err := roleRepo.Find(map[string]interface{}{
|
|
|
|
606
|
- "type": domain.RoleTypeSystem,
|
|
|
|
607
|
- "companyId": param.CompanyId,
|
|
|
|
608
|
- })
|
567
|
+ hrbp, err := srv.getHRBP(transactionContext, param.CompanyId, param.OperatorId)
|
|
609
|
if err != nil {
|
568
|
if err != nil {
|
|
610
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error())
|
569
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
611
|
}
|
570
|
}
|
|
612
|
- _, userRoleList, err := roleUserRepo.Find(map[string]interface{}{
|
|
|
|
613
|
- "companyId": param.CompanyId,
|
|
|
|
614
|
- "userId": param.OperatorId,
|
571
|
+ assessDao := dao.NewStaffAssessDao(map[string]interface{}{
|
|
|
|
572
|
+ "transactionContext": transactionContext,
|
|
615
|
})
|
573
|
})
|
|
|
|
574
|
+ // 获取所有的评估项
|
|
|
|
575
|
+ categoryNameList, err := assessDao.SearchContentCategoryName(param.CompanyId, param.CycleId, param.OperatorId, hrbp)
|
|
616
|
if err != nil {
|
576
|
if err != nil {
|
|
617
|
- return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取用户的角色信息列表"+err.Error())
|
|
|
|
618
|
- }
|
|
|
|
619
|
- hrbp := -1
|
|
|
|
620
|
- for _, v := range userRoleList {
|
|
|
|
621
|
- for _, v2 := range roleList {
|
|
|
|
622
|
- if v.RoleId == v2.Id {
|
|
|
|
623
|
- hrbp = 1
|
|
|
|
624
|
- break
|
|
|
|
625
|
- }
|
|
|
|
626
|
- }
|
|
|
|
627
|
- if hrbp == 1 {
|
|
|
|
628
|
- break
|
577
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
629
|
}
|
578
|
}
|
|
|
|
579
|
+ //获取员工填写的评估
|
|
|
|
580
|
+ userAssessList, err := assessDao.ExportDataUserAssess2(
|
|
|
|
581
|
+ param.CompanyId,
|
|
|
|
582
|
+ param.CycleId,
|
|
|
|
583
|
+ param.OperatorId,
|
|
|
|
584
|
+ hrbp,
|
|
|
|
585
|
+ )
|
|
|
|
586
|
+ if err != nil {
|
|
|
|
587
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
630
|
}
|
588
|
}
|
|
631
|
- // assessDao := dao.NewStaffAssessDao(map[string]interface{}{
|
|
|
|
632
|
- // "transactionContext": transactionContext,
|
|
|
|
633
|
- // })
|
|
|
|
634
|
- // 获取所有的评估项
|
|
|
|
635
|
- // categoryNameList, err := assessDao.SearchContentCategoryName(param.CompanyId, param.CycleId, param.OperatorId, hrbp)
|
|
|
|
636
|
- // if err != nil {
|
|
|
|
637
|
- // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
|
638
|
- // }
|
|
|
|
639
|
- // categoryNameTree := map[string]headerLevel{}
|
|
|
|
640
|
- // userNameMap := map[string]struct{}{} //处理员工重名
|
|
|
|
641
|
- // userIdMap := map[string]string{} //映射员工id和员工名称
|
|
|
|
642
|
- // userNameList := []string{} //员工名称列表
|
|
|
|
643
|
if err := transactionContext.CommitTransaction(); err != nil {
|
589
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
644
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
590
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
645
|
}
|
591
|
}
|
|
646
|
-
|
|
|
|
647
|
- // tableHeader := excelTableHeader{}
|
|
|
|
648
|
-
|
|
|
|
649
|
- return nil, nil
|
592
|
+ eData := newExportData()
|
|
|
|
593
|
+ eData.setCategoryNameList(categoryNameList)
|
|
|
|
594
|
+ eData.setData(userAssessList)
|
|
|
|
595
|
+ xlsxFile := excelize.NewFile()
|
|
|
|
596
|
+ //设置默认的第一个sheet
|
|
|
|
597
|
+ sheetIndex := xlsxFile.GetActiveSheetIndex()
|
|
|
|
598
|
+ firstSheetName := xlsxFile.GetSheetName(sheetIndex)
|
|
|
|
599
|
+ cycleName := ""
|
|
|
|
600
|
+ if len(userAssessList) > 0 {
|
|
|
|
601
|
+ cycleName = userAssessList[0].CycleName
|
|
|
|
602
|
+ }
|
|
|
|
603
|
+ //填入excel 文件
|
|
|
|
604
|
+ for _, v := range eData.userName {
|
|
|
|
605
|
+ // 根据员工名称 添加一个sheet
|
|
|
|
606
|
+ xlsxFile.NewSheet(v)
|
|
|
|
607
|
+ //填写前4行数据
|
|
|
|
608
|
+ tableHeader, ok := eData.tableHeader[v]
|
|
|
|
609
|
+ if !ok {
|
|
|
|
610
|
+ continue
|
|
|
|
611
|
+ }
|
|
|
|
612
|
+ xlsxFile.SetCellStr(v, "B2", v)
|
|
|
|
613
|
+ //填充第一列数据
|
|
|
|
614
|
+ xlsxFile.SetCellStr(v, "A2", cycleName)
|
|
|
|
615
|
+ xlsxFile.SetCellStr(v, "A1", tableHeader.Name)
|
|
|
|
616
|
+ xlsxFile.SetCellStr(v, "A5", "权重")
|
|
|
|
617
|
+ xlsxFile.SetCellStr(v, "A6", "评估标准")
|
|
|
|
618
|
+ //日期
|
|
|
|
619
|
+ dayList := eData.userDayMap[v]
|
|
|
|
620
|
+ for ii, vv := range dayList {
|
|
|
|
621
|
+ if ii == 0 {
|
|
|
|
622
|
+ axis := fmt.Sprintf("A%d", ii+7)
|
|
|
|
623
|
+ xlsxFile.SetCellStr(v, axis, vv)
|
|
|
|
624
|
+ } else {
|
|
|
|
625
|
+ axis := fmt.Sprintf("A%d", ii+7+2)
|
|
|
|
626
|
+ xlsxFile.SetCellStr(v, axis, vv)
|
|
|
|
627
|
+ }
|
|
|
|
628
|
+ }
|
|
|
|
629
|
+ for _, v2 := range tableHeader.Child {
|
|
|
|
630
|
+ //第二行
|
|
|
|
631
|
+ for _, v3 := range v2.Child {
|
|
|
|
632
|
+ //第三行
|
|
|
|
633
|
+ for i4, v4 := range v3.Child {
|
|
|
|
634
|
+ //按列填充数据
|
|
|
|
635
|
+ colName, _ := excelize.ColumnNumberToName(i4 + 3) //第3列开始
|
|
|
|
636
|
+ xlsxFile.SetCellStr(v, colName+"2", v2.Name) //分类
|
|
|
|
637
|
+ xlsxFile.SetCellStr(v, colName+"3", v3.Name) //加分项 得分项
|
|
|
|
638
|
+ xlsxFile.SetCellStr(v, colName+"4", v4.Name) // 评估项名称
|
|
|
|
639
|
+ //权重 填写第5行数据
|
|
|
|
640
|
+ k23 := eData.data23Key(v, v2.Name, v3.Name, v4.Name)
|
|
|
|
641
|
+ xlsxFile.SetCellStr(v, colName+"5", eData.data3[k23])
|
|
|
|
642
|
+ //评估标准 填写第6行数据
|
|
|
|
643
|
+ xlsxFile.SetCellStr(v, colName+"6", eData.data2[k23])
|
|
|
|
644
|
+ //按日期填充评估的填写的值
|
|
|
|
645
|
+ for i5, v5 := range dayList {
|
|
|
|
646
|
+ k1 := eData.dataKey(v, v5, v2.Name, v3.Name, v4.Name)
|
|
|
|
647
|
+ if i5 > 0 {
|
|
|
|
648
|
+ axis := fmt.Sprintf("%s%d", colName, i5+7+2) //单元格高度按三个单元格合并
|
|
|
|
649
|
+ xlsxFile.SetCellStr(v, axis, eData.data[k1].String())
|
|
|
|
650
|
+ } else {
|
|
|
|
651
|
+ axis := fmt.Sprintf("%s%d", colName, i5+7)
|
|
|
|
652
|
+ xlsxFile.SetCellStr(v, axis, eData.data[k1].String())
|
|
|
|
653
|
+ }
|
|
|
|
654
|
+ }
|
|
|
|
655
|
+ }
|
|
|
|
656
|
+ }
|
|
|
|
657
|
+ }
|
|
|
|
658
|
+ }
|
|
|
|
659
|
+ //删除默认的第一个sheet
|
|
|
|
660
|
+ xlsxFile.DeleteSheet(firstSheetName)
|
|
|
|
661
|
+ return xlsxFile, nil
|
|
650
|
} |
662
|
} |