diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java
index 1ef5a72d6335b9d4298fcef175ef87952d3fafd3..b00a7d42c731b408e01a0a877d02ae5bcddf9ec9 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordController.java
@@ -1,13 +1,18 @@
 package com.mortals.xhx.module.attendance.web;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ReflectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.mortals.framework.annotation.Excel;
 import com.mortals.framework.common.Rest;
 import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.OrderCol;
+import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.service.ICacheService;
+import com.mortals.framework.util.StringUtils;
+import com.mortals.framework.utils.ReflectUtils;
 import com.mortals.framework.utils.ServletUtils;
+import com.mortals.framework.utils.poi.ExcelUtil;
 import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
 import com.mortals.xhx.base.system.param.service.ParamService;
 import com.mortals.xhx.base.system.upload.service.UploadService;
@@ -27,6 +32,7 @@ import com.mortals.xhx.module.dept.service.DeptService;
 import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
 import com.mortals.xhx.module.perform.model.vo.AppealInfo;
 import com.mortals.xhx.module.staff.service.StaffService;
+import org.apache.poi.ss.formula.functions.T;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -127,7 +133,7 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
 
     @Override
     public void doExportAfter(Context context, List<AttendanceRecordEntity> list) throws AppException {
-        ArrayList<AttendanceRecordEntity> attendanceRecordEntities = new ArrayList<>();
+      /*  ArrayList<AttendanceRecordEntity> attendanceRecordEntities = new ArrayList<>();
 
         for (AttendanceRecordEntity recordEntity : list) {
             List<AttendanceRecordDetailEntity> attendanceRecordDetailList = recordEntity.getAttendanceRecordDetailList();
@@ -150,9 +156,93 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
         if (!ObjectUtils.isEmpty(attendanceRecordEntities)) {
             list.clear();
             list.addAll(attendanceRecordEntities);
-        }
+        }*/
     }
 
+    @Override
+    public void exportExcel(@RequestBody AttendanceRecordEntity query) {
+        Context context = getContext();
+        String busiDesc = "瀵煎嚭" + getModuleDesc();
+        List<String> properties = new ArrayList<>();
+        try {
+            doExportBefore(context, query, properties);
+            String name = StringUtils.trim(this.moduleDesc);
+            if (StringUtils.isEmpty(name)) {
+                name = System.currentTimeMillis() + "";
+            }
+
+            String fileName = name + ".xlsx";
+            PageInfo pageInfo = new PageInfo(-1);
+            List<AttendanceRecordEntity> list = this.service.find(query, pageInfo, getContext()).getList();
+            Class<AttendanceRecordEntity> tClass = ReflectUtils.getClassGenricType(getClass(), 1);
+            ExcelUtil<AttendanceRecordEntity, Long> util = new ExcelUtil<>(tClass);
+            doExportAfter(context, list);
+            //姹傝缁嗘渶澶ф暟閲�
+            final Integer colSize = list.parallelStream().map(i -> i.getAttendanceRecordDetailList().size()).max(Comparator.comparing(Integer::intValue)).orElseGet(() -> 0);
+            //鏋勫缓鍔ㄦ€乴ist
+            List<List<Map<String, Object>>> lists = list.stream().map(item -> {
+                List<AttendanceRecordDetailEntity> attendanceRecordDetailList = item.getAttendanceRecordDetailList();
+                List<Map<String, Object>> mapList = new ArrayList<>();
+
+                for (int i = 0; i < colSize; i++) {
+
+                    if (attendanceRecordDetailList.size() > i) {
+                        AttendanceRecordDetailEntity detailEntity = attendanceRecordDetailList.get(i);
+                        //鐢熸垚涓婄彮  缁撴灉  涓嬬彮 缁撴灉 4涓猰ap
+                        Map<String, Object> map = new HashMap<>();
+                        map.put("name", String.format("涓婄彮鎵撳崱鏃堕棿%d", i + 1));
+                        map.put("value", DateUtil.formatDateTime(detailEntity.getGoWorkDate()));
+                        mapList.add(map);
+
+                        map = new HashMap<>();
+                        map.put("name", String.format("涓婄彮鎵撳崱缁撴灉%d", i + 1));
+                        map.put("value", GoWorkResultEnum.getByValue(detailEntity.getGoWorkResult()).getDesc());
+                        mapList.add(map);
+
+                        map = new HashMap<>();
+                        map.put("name", String.format("涓嬬彮鎵撳崱鏃堕棿%d", i + 1));
+                        map.put("value", DateUtil.formatDateTime(detailEntity.getOffWorkDate()));
+                        mapList.add(map);
+
+                        map = new HashMap<>();
+                        map.put("name", String.format("涓嬬彮鎵撳崱缁撴灉%d", i + 1));
+                        map.put("value", OffWorkResultEnum.getByValue(detailEntity.getOffWorkResult()).getDesc());
+                        mapList.add(map);
+                    } else {
+                        Map<String, Object> map = new HashMap<>();
+                        map.put("name", String.format("涓婄彮鎵撳崱鏃堕棿%d", i + 1));
+                        map.put("value", "--");
+                        mapList.add(map);
+
+                        map = new HashMap<>();
+                        map.put("name", String.format("涓婄彮鎵撳崱缁撴灉%d", i + 1));
+                        map.put("value", "--");
+                        mapList.add(map);
+
+                        map = new HashMap<>();
+                        map.put("name", String.format("涓嬬彮鎵撳崱鏃堕棿%d", i + 1));
+                        map.put("value", "--");
+                        mapList.add(map);
+
+                        map = new HashMap<>();
+                        map.put("name", String.format("涓嬬彮鎵撳崱缁撴灉%d", i + 1));
+                        map.put("value", "--");
+                        mapList.add(map);
+                    }
+                }
+                return mapList;
+            }).collect(Collectors.toList());
+
+            byte[] data = util.exportExcel(list, properties, lists, name);
+
+            // byte[] data = util.exportExcel(list, properties, name);
+            doExportFileAfter(data, query, context);
+            this.responseStream(response, data, fileName);
+            recordSysLog(request, busiDesc + " 銆愭垚鍔熴€�");
+        } catch (Exception e) {
+            this.doException(request, "瀵煎嚭寮傚父", new HashMap<>(), e);
+        }
+    }
 
     @Override
     public void doExportFileAfter(byte[] data, AttendanceRecordEntity query, Context context) throws AppException {