zhaopeiqing 6 місяців тому
батько
коміт
2ad47f7b72
17 змінених файлів з 310 додано та 249 видалено
  1. 14 2
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/business/AttendanceBusinessController.java
  2. 33 47
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/business/vo/AttendanceBusinessRespVO.java
  3. 28 2
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/AttendanceInfoController.java
  4. 9 4
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/vo/AttendanceDailyInfoRespVO.java
  5. 15 8
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/vo/AttendanceMonthlyInfoRespVO.java
  6. 24 3
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/AttendanceLeaveController.java
  7. 0 2
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/vo/AttendanceLeaveRespVO.java
  8. 14 2
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/out/AttendanceOutController.java
  9. 30 44
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/out/vo/AttendanceOutRespVO.java
  10. 14 2
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/conversion/RelationsConversionController.java
  11. 19 34
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/conversion/vo/RelationsConversionRespVO.java
  12. 24 2
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/RelationsEntryController.java
  13. 3 16
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/vo/RelationsEntryRespVO.java
  14. 14 2
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/renew/RelationsRenewController.java
  15. 27 45
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/renew/vo/RelationsRenewRespVO.java
  16. 23 2
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/RelationsTurnoverController.java
  17. 19 32
      yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/vo/RelationsTurnoverRespVO.java

+ 14 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/business/AttendanceBusinessController.java

@@ -122,10 +122,22 @@ public class AttendanceBusinessController {
     public void exportBusinessExcel(@Valid AttendanceBusinessPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<AttendanceBusinessDO> list = businessService.getBusinessPage(pageReqVO).getList();
+        PageResult<AttendanceBusinessDO> pageResult = businessService.getBusinessPage(pageReqVO);
+        PageResult<AttendanceBusinessRespVO> result = BeanUtils.toBean(pageResult, AttendanceBusinessRespVO.class);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "出差信息.xls", "数据", AttendanceBusinessRespVO.class,
-                        BeanUtils.toBean(list, AttendanceBusinessRespVO.class));
+                result.getList());
     }
 
 }

+ 33 - 47
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/business/vo/AttendanceBusinessRespVO.java

@@ -16,103 +16,89 @@ import com.alibaba.excel.annotation.*;
 public class AttendanceBusinessRespVO {
 
     @Schema(description = "出差表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21097")
-    @ExcelProperty("出差表单主键")
     private Long id;
 
     @Schema(description = "uuid", example = "20857")
-    @ExcelProperty("uuid")
     private String businessId;
 
     @Schema(description = "出差人id", example = "797")
-    @ExcelProperty("出差人id")
     private Long employeeId;
 
     @Schema(description = "出差人uuid", example = "5176")
-    @ExcelProperty("出差人uuid")
     private String employeeUuid;
 
     @Schema(description = "出差员工姓名", example = "芋艿")
-    @ExcelProperty("出差员工姓名")
+    @ExcelProperty("出差")
     private String employeeName;
 
-    @Schema(description = "出差员工手机号")
-    @ExcelProperty("出差员工手机号")
-    private String employeePhone;
-
-    @Schema(description = "用户账号id", example = "25207")
-    @ExcelProperty("用户账号id")
-    private Long userId;
-
-    @Schema(description = "用户账号uuid", example = "28825")
-    @ExcelProperty("用户账号uuid")
-    private String userUuid;
-
-    @Schema(description = "部门id", example = "17524")
-    @ExcelProperty("部门id")
-    private Long deptId;
-
-    @Schema(description = "部门uuid", example = "30513")
-    @ExcelProperty("部门uuid")
-    private String deptUuid;
-
     @Schema(description = "部门名称", example = "财务部")
-    @ExcelProperty("部门名称")
+    @ExcelProperty("部门")
     private String deptName;
 
     @Schema(description = "职位")
     @ExcelProperty("职位")
     private String position;
 
-    @Schema(description = "出差事由", example = "不好")
-    @ExcelProperty("出差事由")
-    private String reason;
+    @Schema(description = "出差员工手机号")
+    @ExcelProperty("手机号")
+    private String employeePhone;
 
     @Schema(description = "出差目的地")
-    @ExcelProperty("出差目的地")
+    @ExcelProperty("出差地点")
     private String destination;
 
     @Schema(description = "出差开始日期")
-    @ExcelProperty("出差开始日期")
+    @ExcelProperty("开始日期")
     private String startDate;
 
     @Schema(description = "出差结束日期")
-    @ExcelProperty("出差结束日期")
+    @ExcelProperty("结束日期")
     private String endDate;
 
     @Schema(description = "出差天数(d)")
-    @ExcelProperty("出差天数(d)")
+    @ExcelProperty("出差天数")
     private String day;
 
     @Schema(description = "出差预算费用,单位(元)", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("出差预算费用,单位(元)")
+    @ExcelProperty("预估费用(元)")
     private BigDecimal estimatedCost;
 
+    @Schema(description = "创建人员工姓名", example = "张三")
+    @ExcelProperty("创建人")
+    private String creatorEmployeeName;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "用户账号id", example = "25207")
+    private Long userId;
+
+    @Schema(description = "用户账号uuid", example = "28825")
+    private String userUuid;
+
+    @Schema(description = "部门id", example = "17524")
+    private Long deptId;
+
+    @Schema(description = "部门uuid", example = "30513")
+    private String deptUuid;
+
+    @Schema(description = "出差事由", example = "不好")
+    private String reason;
+
     @Schema(description = "备注")
-    @ExcelProperty("备注")
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "创建人员工id", example = "13908")
-    @ExcelProperty("创建人员工id")
     private Long creatorEmployeeId;
 
-    @Schema(description = "创建人员工姓名", example = "张三")
-    @ExcelProperty("创建人员工姓名")
-    private String creatorEmployeeName;
-
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("创建时间")
-    private LocalDateTime createTime;
-
     @Schema(description = "租户编号", example = "1")
-    @ExcelProperty("租户编号")
     private Long tenantId;
 
     @Schema(description = "附件列表")

+ 28 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/AttendanceInfoController.java

@@ -1,6 +1,5 @@
 package cn.iocoder.yudao.module.attendance.controller.admin.info;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.module.attendance.controller.admin.info.vo.*;
 import cn.iocoder.yudao.module.attendance.dal.dataobject.info.AttendanceInfoDO;
 import cn.iocoder.yudao.module.attendance.service.info.AttendanceInfoService;
@@ -37,7 +36,6 @@ import javax.validation.Valid;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
 import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.ATTENDANCE_EXCEL_FORMAT_ERROR;
-import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.ATTENDANCE_INFO_IMPORT_LIST_IS_EMPTY;
 
 @Tag(name = "管理后台 - 考勤信息")
 @RestController
@@ -147,6 +145,19 @@ public class AttendanceInfoController {
 
     }
 
+    @GetMapping("/export-daily-excel")
+    @Operation(summary = "导出每日考勤信息 Excel")
+    @PreAuthorize("@ss.hasPermission('attendance:info:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportDailyExcel(@Valid AttendanceDailyInfoPageReqVO pageReqVO,
+                                 HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<AttendanceDailyInfoRespVO> list = infoService.getDailyInfoPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "每日考勤信息.xls", "数据", AttendanceDailyInfoRespVO.class,
+                list);
+    }
+
     @GetMapping("/monthlyPage")
     @Operation(summary = "获得月度考勤信息分页")
     @PreAuthorize("@ss.hasPermission('attendance:info:query')")
@@ -154,4 +165,19 @@ public class AttendanceInfoController {
         return success(infoService.getMonthlyInfoPage(pageReqVO));
     }
 
+    @GetMapping("/export-monthly-excel")
+    @Operation(summary = "导出月度考勤信息 Excel")
+    @PreAuthorize("@ss.hasPermission('attendance:info:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportMonthlyExcel(@Valid AttendanceMonthlyInfoPageReqVO pageReqVO,
+                                   HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<AttendanceMonthlyInfoRespVO> list = infoService.getMonthlyInfoPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "月度考勤信息.xls", "数据", AttendanceMonthlyInfoRespVO.class,
+                list);
+    }
+
+
+
 }

+ 9 - 4
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/vo/AttendanceDailyInfoRespVO.java

@@ -24,18 +24,20 @@ public class AttendanceDailyInfoRespVO {
     @ExcelProperty("员工姓名")
     private String employeeName;
 
+    @Schema(description = "部门名称", example = "13463")
+    @ExcelProperty("部门")
+    private String deptName;
+
     @Schema(description = "员工手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13812345678")
+    @ExcelProperty("手机号")
     @NotEmpty(message = "员工手机号不能为空")
     private String employeeMobile;
 
     @Schema(description = "部门ID", example = "13463")
     private Long deptId;
 
-    @Schema(description = "部门名称", example = "13463")
-    private String deptName;
-
     @Schema(description = "考勤日期", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("考勤日期")
+    @ExcelProperty("日期")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate attendanceDate;
 
@@ -50,12 +52,15 @@ public class AttendanceDailyInfoRespVO {
     private LocalTime workEndTime;
 
     @Schema(description = "迟到时间(min)", example = "2")
+    @ExcelProperty("迟到时间(min)")
     private String lateMinute;
 
     @Schema(description = "早退时间(min)", example = "2")
+    @ExcelProperty("早退时间(min)")
     private String earlyMinute;
 
     @Schema(description = "总工作时间(min)", example = "2")
+    @ExcelProperty("总工作时间(min)")
     private String totalWorkingMinute;
 
 }

+ 15 - 8
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/info/vo/AttendanceMonthlyInfoRespVO.java

@@ -22,50 +22,57 @@ public class AttendanceMonthlyInfoRespVO {
     @ExcelProperty("员工姓名")
     private String employeeName;
 
-    @Schema(description = "员工手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13812345678")
-    @NotEmpty(message = "员工手机号不能为空")
-    private String employeeMobile;
-
     @Schema(description = "部门ID", example = "13463")
     private Long deptId;
 
     @Schema(description = "部门名称", example = "13463")
+    @ExcelProperty("部门")
     private String deptName;
 
+    @Schema(description = "员工手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13812345678")
+    @NotEmpty(message = "员工手机号不能为空")
+    @ExcelProperty("手机号")
+    private String employeeMobile;
+
     @Schema(description = "考勤月份", example = "2024-07")
     private String attendanceMonth;
 
     @Schema(description = "出勤天数", example = "13463")
-    private int attendanceDays = 0;
+    @ExcelProperty("出勤天数")
+    private int attendanceDays;
 
     @Schema(description = "正常打卡", example = "13463")
-    private int normalClockCount = 0;
+    @ExcelProperty("正常打卡")
+    private int normalClockCount;
 
     @Schema(description = "迟到次数", example = "13463")
+    @ExcelProperty("迟到次数")
     private int lateCount;
 
     @Schema(description = "旷工次数", example = "13463")
+    @ExcelProperty("旷工次数")
     private int absenteeismCount;
 
     @Schema(description = "早退次数", example = "13463")
+    @ExcelProperty("早退次数")
     private int earlyCount;
 
     @Schema(description = "缺卡次数", example = "13463")
+    @ExcelProperty("缺卡次数")
     private int missingClockCount;
 
     @Schema(description = "请假/出差次数", example = "13463")
+    @ExcelProperty("请假/出差次数")
     private int leaveCount;
 
     @Schema(description = "考勤规则", example = "9:00-18:00")
     private String attendanceRules;
 
     @Schema(description = "考勤设置上班时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("考勤设置上班时间")
     @JsonFormat(pattern = "HH:mm")
     private LocalTime startTime;
 
     @Schema(description = "考勤设置下班时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("考勤设置下班时间")
     @JsonFormat(pattern = "HH:mm")
     private LocalTime endTime;
 

+ 24 - 3
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/AttendanceLeaveController.java

@@ -148,11 +148,32 @@ public class AttendanceLeaveController {
     @ApiAccessLog(operateType = EXPORT)
     public void exportLeaveExcel(@Valid AttendanceLeavePageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<AttendanceLeaveDO> list = leaveService.getLeavePage(pageReqVO).getList();
+        PageResult<AttendanceLeaveDO> pageResult = leaveService.getLeavePage(pageReqVO);
+        PageResult<AttendanceLeaveRespVO> result = BeanUtils.toBean(pageResult, AttendanceLeaveRespVO.class);
+        // 请假类型
+        List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_LEAVE_TYPE.getType());
+        Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+                // 请假类型
+                if (StrUtil.isNotBlank(respVO.getLeaveType())) {
+                    String leaveTypeDesc = dictDataMap.get(respVO.getLeaveType());
+                    if (StrUtil.isNotBlank(leaveTypeDesc)) {
+                        respVO.setLeaveTypeDesc(leaveTypeDesc);
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "请假信息.xls", "数据", AttendanceLeaveRespVO.class,
-                        BeanUtils.toBean(list, AttendanceLeaveRespVO.class));
+                result.getList());
     }
 
 }

+ 0 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/leave/vo/AttendanceLeaveRespVO.java

@@ -56,7 +56,6 @@ public class AttendanceLeaveRespVO {
     private String employeePhone;
 
     @Schema(description = "请假类型", example = "1")
-    @ExcelProperty("请假类型")
     private String leaveType;
 
     @Schema(description="请假类型label")
@@ -88,7 +87,6 @@ public class AttendanceLeaveRespVO {
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")

+ 14 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/out/AttendanceOutController.java

@@ -122,10 +122,22 @@ public class AttendanceOutController {
     public void exportOutExcel(@Valid AttendanceOutPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<AttendanceOutDO> list = outService.getOutPage(pageReqVO).getList();
+        PageResult<AttendanceOutDO> pageResult = outService.getOutPage(pageReqVO);
+        PageResult<AttendanceOutRespVO> result = BeanUtils.toBean(pageResult, AttendanceOutRespVO.class);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "公务外出信息.xls", "数据", AttendanceOutRespVO.class,
-                        BeanUtils.toBean(list, AttendanceOutRespVO.class));
+                result.getList());
     }
 
 }

+ 30 - 44
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/out/vo/AttendanceOutRespVO.java

@@ -16,56 +16,32 @@ import com.alibaba.excel.annotation.*;
 public class AttendanceOutRespVO {
 
     @Schema(description = "出差表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28683")
-    @ExcelProperty("出差表单主键")
     private Long id;
 
     @Schema(description = "uuid", example = "16029")
-    @ExcelProperty("uuid")
     private String outId;
 
     @Schema(description = "外出人id", example = "27799")
-    @ExcelProperty("外出人id")
     private Long employeeId;
 
     @Schema(description = "外出人uuid", example = "22887")
-    @ExcelProperty("外出人uuid")
     private String employeeUuid;
 
     @Schema(description = "外出员工姓名", example = "芋艿")
-    @ExcelProperty("外出员工姓名")
+    @ExcelProperty("外出")
     private String employeeName;
 
-    @Schema(description = "外出员工手机号")
-    @ExcelProperty("外出员工手机号")
-    private String employeePhone;
-
-    @Schema(description = "用户账号id", example = "13471")
-    @ExcelProperty("用户账号id")
-    private Long userId;
-
-    @Schema(description = "用户账号uuid", example = "10860")
-    @ExcelProperty("用户账号uuid")
-    private String userUuid;
-
-    @Schema(description = "部门id", example = "7228")
-    @ExcelProperty("部门id")
-    private Long deptId;
-
-    @Schema(description = "部门uuid", example = "29774")
-    @ExcelProperty("部门uuid")
-    private String deptUuid;
-
     @Schema(description = "部门名称", example = "财务部")
-    @ExcelProperty("部门名称")
+    @ExcelProperty("部门")
     private String deptName;
 
     @Schema(description = "员工职位")
-    @ExcelProperty("员工职位")
+    @ExcelProperty("职位")
     private String position;
 
-    @Schema(description = "外出事由", example = "不好")
-    @ExcelProperty("外出事由")
-    private String reason;
+    @Schema(description = "外出员工手机号")
+    @ExcelProperty("手机号")
+    private String employeePhone;
 
     @Schema(description = "外出地点")
     @ExcelProperty("外出地点")
@@ -83,33 +59,43 @@ public class AttendanceOutRespVO {
     @ExcelProperty("外出时长,单位(小时)")
     private String hour;
 
+    @Schema(description = "创建人员工姓名", example = "芋艿")
+    @ExcelProperty("创建人")
+    private String creatorEmployeeName;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @Schema(description = "用户账号id", example = "13471")
+    private Long userId;
+
+    @Schema(description = "用户账号uuid", example = "10860")
+    private String userUuid;
+
+    @Schema(description = "部门id", example = "7228")
+    private Long deptId;
+
+    @Schema(description = "部门uuid", example = "29774")
+    private String deptUuid;
+
+    @Schema(description = "外出事由", example = "不好")
+    private String reason;
+
     @Schema(description = "备注")
-    @ExcelProperty("备注")
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "创建人员工id", example = "6769")
-    @ExcelProperty("创建人员工id")
     private Long creatorEmployeeId;
 
-    @Schema(description = "创建人员工姓名", example = "芋艿")
-    @ExcelProperty("创建人员工姓名")
-    private String creatorEmployeeName;
-
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createTime;
-
     @Schema(description = "租户编号", example = "1")
-    @ExcelProperty("租户编号")
     private Long tenantId;
 
     @Schema(description = "附件列表")

+ 14 - 2
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/conversion/RelationsConversionController.java

@@ -102,10 +102,22 @@ public class RelationsConversionController {
     public void exportConversionExcel(@Valid RelationsConversionPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<RelationsConversionDO> list = conversionService.getConversionPage(pageReqVO).getList();
+        PageResult<RelationsConversionDO> pageResult = conversionService.getConversionPage(pageReqVO);
+        PageResult<RelationsConversionRespVO> result = BeanUtils.toBean(pageResult, RelationsConversionRespVO.class);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "转正信息.xls", "数据", RelationsConversionRespVO.class,
-                        BeanUtils.toBean(list, RelationsConversionRespVO.class));
+                result.getList());
     }
 
 }

+ 19 - 34
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/conversion/vo/RelationsConversionRespVO.java

@@ -14,71 +14,60 @@ import com.alibaba.excel.annotation.*;
 public class RelationsConversionRespVO {
 
     @Schema(description = "转正表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15594")
-    @ExcelProperty("转正表单主键")
     private Long id;
 
     @Schema(description = "uuid", example = "182")
-    @ExcelProperty("uuid")
     private String conversionId;
 
     @Schema(description = "转正人id", example = "16390")
-    @ExcelProperty("转正人id")
     private Long employeeId;
 
     @Schema(description = "转正人uuid", example = "11168")
-    @ExcelProperty("转正人uuid")
     private String employeeUuid;
 
     @Schema(description = "转正员工姓名", example = "芋艿")
-    @ExcelProperty("转正员工姓名")
+    @ExcelProperty("转正")
     private String employeeName;
 
+    @Schema(description = "部门名称", example = "人事部")
+    @ExcelProperty("部门")
+    private String deptName;
+
+    @Schema(description = "职位")
+    @ExcelProperty("职位")
+    private String position;
+
     @Schema(description = "转正员工手机号")
-    @ExcelProperty("转正员工手机号")
+    @ExcelProperty("手机号")
     private String employeePhone;
 
+    @Schema(description = "入职日期")
+    @ExcelProperty("入职日期")
+    private String entryDate;
+
+    @Schema(description = "转正日期")
+    @ExcelProperty("转正日期")
+    private String conversionDate;
+
     @Schema(description = "用户账号id", example = "5018")
-    @ExcelProperty("用户账号id")
     private Long userId;
 
     @Schema(description = "用户账号uuid", example = "21562")
-    @ExcelProperty("用户账号uuid")
     private String userUuid;
 
     @Schema(description = "部门id", example = "2507")
-    @ExcelProperty("部门id")
     private Long deptId;
 
     @Schema(description = "部门uuid", example = "11190")
-    @ExcelProperty("部门uuid")
     private String deptUuid;
 
-    @Schema(description = "部门名称", example = "人事部")
-    @ExcelProperty("部门名称")
-    private String deptName;
-
-    @Schema(description = "职位")
-    @ExcelProperty("职位")
-    private String position;
-
-    @Schema(description = "入职日期")
-    @ExcelProperty("入职日期")
-    private String entryDate;
-
     @Schema(description = "试用期结束日期")
-    @ExcelProperty("试用期结束日期")
     private String probationEndDate;
 
-    @Schema(description = "转正日期")
-    @ExcelProperty("转正日期")
-    private String conversionDate;
-
     @Schema(description = "转正申请理由", example = "不香")
-    @ExcelProperty("转正申请理由")
     private String conversionReason;
 
     @Schema(description = "工作总结")
-    @ExcelProperty("工作总结")
     private String workSummary;
 
     @Schema(description = "备注")
@@ -86,19 +75,16 @@ public class RelationsConversionRespVO {
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "创建人员工id", example = "11670")
-    @ExcelProperty("创建人员工id")
     private Long creatorEmployeeId;
 
     @Schema(description = "创建人员工姓名", example = "赵六")
-    @ExcelProperty("创建人员工姓名")
+    @ExcelProperty("创建人")
     private String creatorEmployeeName;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -107,7 +93,6 @@ public class RelationsConversionRespVO {
     private LocalDateTime createTime;
 
     @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4014")
-    @ExcelProperty("租户编号")
     private Long tenantId;
 
     @Schema(description = "附件列表")

+ 24 - 2
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/RelationsEntryController.java

@@ -119,10 +119,32 @@ public class RelationsEntryController {
     public void exportEntryExcel(@Valid RelationsEntryPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<RelationsEntryDO> list = entryService.getEntryPage(pageReqVO).getList();
+        PageResult<RelationsEntryDO> pageResult = entryService.getEntryPage(pageReqVO);
+        PageResult<RelationsEntryRespVO> result = BeanUtils.toBean(pageResult, RelationsEntryRespVO.class);
+        // 员工类型
+        List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_EMPLOYEE_TYPE.getType());
+        Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+                // 员工类型
+                if (StrUtil.isNotBlank(respVO.getEmployeeType())) {
+                    String employeeTypeDesc = dictDataMap.get(respVO.getEmployeeType());
+                    if (StrUtil.isNotBlank(employeeTypeDesc)) {
+                        respVO.setEmployeeTypeDesc(employeeTypeDesc);
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "入职信息.xls", "数据", RelationsEntryRespVO.class,
-                        BeanUtils.toBean(list, RelationsEntryRespVO.class));
+                result.getList());
     }
 
 }

+ 3 - 16
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/entry/vo/RelationsEntryRespVO.java

@@ -14,11 +14,9 @@ import com.alibaba.excel.annotation.*;
 public class RelationsEntryRespVO {
 
     @Schema(description = "入职表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "30064")
-    @ExcelProperty("入职表单主键")
     private Long id;
 
     @Schema(description = "uuid", example = "20723")
-    @ExcelProperty("uuid")
     private String entryId;
 
     @Schema(description = "入职人", example = "王五")
@@ -26,11 +24,10 @@ public class RelationsEntryRespVO {
     private String entryName;
 
     @Schema(description = "部门", example = "24059")
-    @ExcelProperty("部门")
     private Long deptId;
 
     @Schema(description = "部门名称", example = "财务部")
-    @ExcelProperty("部门名称")
+    @ExcelProperty("部门")
     private String deptName;
 
     @Schema(description = "职位")
@@ -38,7 +35,6 @@ public class RelationsEntryRespVO {
     private String position;
 
     @Schema(description = "员工类型", example = "2")
-    @ExcelProperty("员工类型")
     private String employeeType;
 
     @Schema(description = "员工类型label")
@@ -49,8 +45,7 @@ public class RelationsEntryRespVO {
     @ExcelProperty("性别")
     private String gender;
 
-    @Schema(description = "出身日期")
-    @ExcelProperty("出身日期")
+    @Schema(description = "出生日期")
     private String birthday;
 
     @Schema(description = "联系电话")
@@ -58,15 +53,12 @@ public class RelationsEntryRespVO {
     private String contactNumber;
 
     @Schema(description = "电子邮箱")
-    @ExcelProperty("电子邮箱")
     private String email;
 
     @Schema(description = "教育背景")
-    @ExcelProperty("教育背景")
     private String education;
 
     @Schema(description = "工作经验")
-    @ExcelProperty("工作经验")
     private String workExperience;
 
     @Schema(description = "入职日期")
@@ -74,23 +66,19 @@ public class RelationsEntryRespVO {
     private String entryDate;
 
     @Schema(description = "备注")
-    @ExcelProperty("备注")
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "创建人员工id", example = "11779")
-    @ExcelProperty("创建人员工id")
     private Long creatorEmployeeId;
 
     @Schema(description = "创建人员工姓名", example = "赵六")
-    @ExcelProperty("创建人员工姓名")
+    @ExcelProperty("创建人")
     private String creatorEmployeeName;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -99,7 +87,6 @@ public class RelationsEntryRespVO {
     private LocalDateTime createTime;
 
     @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17470")
-    @ExcelProperty("租户编号")
     private Long tenantId;
 
     @Schema(description = "附件列表")

+ 14 - 2
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/renew/RelationsRenewController.java

@@ -104,10 +104,22 @@ public class RelationsRenewController {
     public void exportRenewExcel(@Valid RelationsRenewPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<RelationsRenewDO> list = renewService.getRenewPage(pageReqVO).getList();
+        PageResult<RelationsRenewDO> pageResult = renewService.getRenewPage(pageReqVO);
+        PageResult<RelationsRenewRespVO> result = BeanUtils.toBean(pageResult, RelationsRenewRespVO.class);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "续签信息.xls", "数据", RelationsRenewRespVO.class,
-                        BeanUtils.toBean(list, RelationsRenewRespVO.class));
+                result.getList());
     }
 
 }

+ 27 - 45
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/renew/vo/RelationsRenewRespVO.java

@@ -16,108 +16,90 @@ import com.alibaba.excel.annotation.*;
 public class RelationsRenewRespVO {
 
     @Schema(description = "续签表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25101")
-    @ExcelProperty("续签表单主键")
     private Long id;
 
     @Schema(description = "uuid", example = "14155")
-    @ExcelProperty("uuid")
     private String renewId;
 
     @Schema(description = "续签人id", example = "18481")
-    @ExcelProperty("续签人id")
     private Long employeeId;
 
     @Schema(description = "续签人uuid", example = "15219")
-    @ExcelProperty("续签人uuid")
     private String employeeUuid;
 
     @Schema(description = "续签员工姓名", example = "李四")
-    @ExcelProperty("续签员工姓名")
+    @ExcelProperty("续签")
     private String employeeName;
 
+    @Schema(description = "部门名称", example = "人事部")
+    @ExcelProperty("部门")
+    private String deptName;
+
+    @Schema(description = "职位")
+    @ExcelProperty("职位")
+    private String position;
+
     @Schema(description = "续签员工手机号")
-    @ExcelProperty("续签员工手机号")
+    @ExcelProperty("手机号")
     private String employeePhone;
 
+    @Schema(description = "续签开始日期")
+    @ExcelProperty("续签开始日期")
+    private String renewContractStartDate;
+
+    @Schema(description = "续签结束日期")
+    @ExcelProperty("续签结束日期")
+    private String renewContractEndDate;
+
+    @Schema(description = "创建人员工姓名", example = "李四")
+    @ExcelProperty("创建人员工姓名")
+    private String creatorEmployeeName;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
     @Schema(description = "用户账号id", example = "12361")
-    @ExcelProperty("用户账号id")
     private Long userId;
 
     @Schema(description = "用户账号uuid", example = "2148")
-    @ExcelProperty("用户账号uuid")
     private String userUuid;
 
     @Schema(description = "部门id", example = "9504")
-    @ExcelProperty("部门id")
     private Long deptId;
 
     @Schema(description = "部门uuid", example = "7043")
-    @ExcelProperty("部门uuid")
     private String deptUuid;
 
-    @Schema(description = "部门名称", example = "人事部")
-    @ExcelProperty("部门名称")
-    private String deptName;
-
-    @Schema(description = "职位")
-    @ExcelProperty("职位")
-    private String position;
-
     @Schema(description = "原合同开始日期")
-    @ExcelProperty("原合同开始日期")
     private String oldContractStartDate;
 
     @Schema(description = "原合同结束日期")
-    @ExcelProperty("原合同结束日期")
     private String oldContractEndDate;
 
     @Schema(description = "续签合同期限")
-    @ExcelProperty("续签合同期限")
     private String renewPeriod;
 
-    @Schema(description = "续签开始日期")
-    @ExcelProperty("续签开始日期")
-    private String renewContractStartDate;
-
-    @Schema(description = "续签结束日期")
-    @ExcelProperty("续签结束日期")
-    private String renewContractEndDate;
-
     @Schema(description = "续签理由", example = "不好")
-    @ExcelProperty("续签理由")
     private String renewReason;
 
     @Schema(description = "工作表现")
-    @ExcelProperty("工作表现")
     private String workPerformance;
 
     @Schema(description = "备注")
-    @ExcelProperty("备注")
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "创建人员工id", example = "27141")
-    @ExcelProperty("创建人员工id")
     private Long creatorEmployeeId;
 
-    @Schema(description = "创建人员工姓名", example = "李四")
-    @ExcelProperty("创建人员工姓名")
-    private String creatorEmployeeName;
-
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createTime;
-
     @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "618")
-    @ExcelProperty("租户编号")
     private Long tenantId;
 
     @Schema(description = "附件列表")

+ 23 - 2
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/RelationsTurnoverController.java

@@ -119,10 +119,31 @@ public class RelationsTurnoverController {
     public void exportTurnoverExcel(@Valid RelationsTurnoverPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<RelationsTurnoverDO> list = turnoverService.getTurnoverPage(pageReqVO).getList();
+        PageResult<RelationsTurnoverDO> pageResult = turnoverService.getTurnoverPage(pageReqVO);
+        PageResult<RelationsTurnoverRespVO> result = BeanUtils.toBean(pageResult, RelationsTurnoverRespVO.class);
+        // 离职原因
+        List<DictDataTenantRespDTO> dictDataList = dictDataTenantApi.getDictDataList(DictTypeTenantEnum.TENANT_TURNOVER_REASON.getType());
+        Map<String, String> dictDataMap = CollectionUtils.convertMap(dictDataList, DictDataTenantRespDTO::getValue, DictDataTenantRespDTO::getLabel);
+        if (result != null && result.getList() != null && result.getList().size() > 0) {
+            result.getList().forEach(respVO -> {
+                // 部门
+                if (respVO.getDeptId() != null) {
+                    DeptRespDTO dept = deptApi.getDept(respVO.getDeptId());
+                    if (dept != null && StringUtils.isNotBlank(dept.getName())) {
+                        respVO.setDeptName(dept.getName());
+                    }
+                }
+                if (StrUtil.isNotBlank(respVO.getTurnoverReason())) {
+                    String turnoverReasonDesc = dictDataMap.get(respVO.getTurnoverReason());
+                    if (StrUtil.isNotBlank(turnoverReasonDesc)) {
+                        respVO.setTurnoverReasonDesc(turnoverReasonDesc);
+                    }
+                }
+            });
+        }
         // 导出 Excel
         ExcelUtils.write(response, "离职信息.xls", "数据", RelationsTurnoverRespVO.class,
-                        BeanUtils.toBean(list, RelationsTurnoverRespVO.class));
+                        result.getList());
     }
 
 }

+ 19 - 32
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/controller/admin/turnover/vo/RelationsTurnoverRespVO.java

@@ -14,53 +14,33 @@ import com.alibaba.excel.annotation.*;
 public class RelationsTurnoverRespVO {
 
     @Schema(description = "离职表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "5207")
-    @ExcelProperty("离职表单主键")
     private Long id;
 
     @Schema(description = "uuid", example = "25144")
-    @ExcelProperty("uuid")
     private String turnoverId;
 
     @Schema(description = "离职人id", example = "28288")
-    @ExcelProperty("离职人id")
     private Long employeeId;
 
     @Schema(description = "离职人uuid", example = "32274")
-    @ExcelProperty("离职人uuid")
     private String employeeUuid;
 
     @Schema(description = "离职员工姓名", example = "张三")
-    @ExcelProperty("离职员工姓名")
+    @ExcelProperty("离职")
     private String employeeName;
 
-    @Schema(description = "续签员工手机号")
-    @ExcelProperty("续签员工手机号")
-    private String employeePhone;
-
-    @Schema(description = "用户账号id", example = "31092")
-    @ExcelProperty("用户账号id")
-    private Long userId;
-
-    @Schema(description = "用户账号uuid", example = "17689")
-    @ExcelProperty("用户账号uuid")
-    private String userUuid;
-
-    @Schema(description = "部门id", example = "19364")
-    @ExcelProperty("部门id")
-    private Long deptId;
-
-    @Schema(description = "部门uuid", example = "6524")
-    @ExcelProperty("部门uuid")
-    private String deptUuid;
-
     @Schema(description = "部门名称", example = "人事部")
-    @ExcelProperty("部门名称")
+    @ExcelProperty("部门")
     private String deptName;
 
     @Schema(description = "职位")
     @ExcelProperty("职位")
     private String position;
 
+    @Schema(description = "续签员工手机号")
+    @ExcelProperty("手机号")
+    private String employeePhone;
+
     @Schema(description = "入职日期")
     @ExcelProperty("入职日期")
     private String entryDate;
@@ -69,6 +49,18 @@ public class RelationsTurnoverRespVO {
     @ExcelProperty("离职日期")
     private String turnoverDate;
 
+    @Schema(description = "用户账号id", example = "31092")
+    private Long userId;
+
+    @Schema(description = "用户账号uuid", example = "17689")
+    private String userUuid;
+
+    @Schema(description = "部门id", example = "19364")
+    private Long deptId;
+
+    @Schema(description = "部门uuid", example = "6524")
+    private String deptUuid;
+
     @Schema(description = "离职原因value")
     private String turnoverReason;
 
@@ -76,23 +68,19 @@ public class RelationsTurnoverRespVO {
     private String turnoverReasonDesc;
 
     @Schema(description = "备注")
-    @ExcelProperty("备注")
     private String remarks;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @ExcelProperty("状态")
     private Integer status;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "创建人员工id", example = "29636")
-    @ExcelProperty("创建人员工id")
     private Long creatorEmployeeId;
 
     @Schema(description = "创建人员工姓名", example = "王五")
-    @ExcelProperty("创建人员工姓名")
+    @ExcelProperty("创建人")
     private String creatorEmployeeName;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -101,7 +89,6 @@ public class RelationsTurnoverRespVO {
     private LocalDateTime createTime;
 
     @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23947")
-    @ExcelProperty("租户编号")
     private Long tenantId;
 
     @Schema(description = "附件列表")