diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml
index f06e68a08f..6aa5b1b477 100644
--- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml
+++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml
@@ -448,7 +448,8 @@
             DATE_FORMAT(i.CANCEL_TIME,'%Y-%m-%d %H:%i') cancelTime,
             i.UNIT_ID AS unitId,
             i.SERVICE_MATTER AS serviceMatter,
-            i.TARGET AS target
+            i.TARGET AS target,
+            i.act_type as actType
         FROM
             act_info i
             LEFT JOIN (SELECT count(1) signupNum, re.ACT_ID from act_user_relation re WHERE re.DEL_FLAG = '0' AND re.`STATUS` != 'refused' AND re.`STATUS` != 'canceled' GROUP BY re.ACT_ID) c ON c.ACT_ID = i.ID
diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml
index c04583b7d5..4acd534d5b 100644
--- a/epmet-module/gov-project/gov-project-server/pom.xml
+++ b/epmet-module/gov-project/gov-project-server/pom.xml
@@ -65,6 +65,25 @@
             4.3
             compile
         
+        
+            com.alibaba
+            easyexcel
+            3.0.3
+            
+                
+                    poi
+                    org.apache.poi
+                
+                
+                    poi-ooxml
+                    org.apache.poi
+                
+                
+                    poi-ooxml-schemas
+                    org.apache.poi
+                
+            
+        
         
         
             io.github.openfeign
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
index f7d44f5f94..66074acfa2 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -397,5 +398,21 @@ public class ProjectTraceController {
 		PageData result = projectTraceService.approvaledList(formDTO);
 		return new Result>().ok(result);
 	}
+
+	/**
+	 * 【网格员工作统计】项目列表 导出
+	 *
+	 * @Param tokenDto
+	 * @Param formDTO
+	 * @Return
+	 * @Author zhaoqifeng
+	 * @Date 2022/1/5 14:58
+	 */
+	@PostMapping("pcwork/approvaled-list/export")
+	public void approvaledListExport(HttpServletResponse response, @LoginUser TokenDto tokenDto, @RequestBody ApprovaledListFromDTO formDTO) {
+		ValidatorUtils.validateEntity(formDTO);
+		formDTO.setCustomerId(tokenDto.getCustomerId());
+		projectTraceService.approvaledListExport(response, formDTO);
+	}
 }
 
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java
new file mode 100644
index 0000000000..ef08b3cc39
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java
@@ -0,0 +1,29 @@
+package com.epmet.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @Author zhaoqifeng
+ * @Date 2022/1/5 15:00
+ */
+@Getter
+@Setter
+@EqualsAndHashCode
+public class ApprovaledListExcel {
+    @ExcelProperty("项目事件标题")
+    private String title;
+    @ExcelProperty("项目事件类别")
+    private String projectCategory;
+    @ExcelProperty("发生地点")
+    private String locateAddress;
+    @ExcelProperty("发生日期")
+    private String happenTime;
+    @ExcelProperty("网格员")
+    private String staffName;
+    @ExcelProperty("提交日期")
+    private String createdTime;
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
index eb25d072a4..133711aea9 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
@@ -5,6 +5,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.dto.form.*;
 import com.epmet.dto.result.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -194,4 +195,14 @@ public interface ProjectTraceService {
 	 * @Date 2022/1/4 15:33
 	 */
 	PageData  approvaledList(ApprovaledListFromDTO formDTO);
+
+	/**
+	 * 【网格员工作统计】项目列表导出
+	 *
+	 * @Param formDTO
+	 * @Return {@link PageData< ApprovaledListResultDTO>}
+	 * @Author zhaoqifeng
+	 * @Date 2022/1/4 15:33
+	 */
+	void approvaledListExport(HttpServletResponse response, ApprovaledListFromDTO formDTO);
 }
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
index d4c774331e..d2e88367c3 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
@@ -1,5 +1,8 @@
 package com.epmet.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
@@ -19,10 +22,7 @@ import com.epmet.commons.tools.scan.param.TextTaskDTO;
 import com.epmet.commons.tools.scan.result.SyncScanResult;
 import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.security.user.LoginUserUtil;
-import com.epmet.commons.tools.utils.ConvertUtils;
-import com.epmet.commons.tools.utils.IpUtils;
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.commons.tools.utils.ScanContentUtils;
+import com.epmet.commons.tools.utils.*;
 import com.epmet.constant.*;
 import com.epmet.dao.ProjectOrgRelationDao;
 import com.epmet.dao.ProjectProcessAttachmentDao;
@@ -34,6 +34,7 @@ import com.epmet.dto.ProjectStaffDTO;
 import com.epmet.dto.form.*;
 import com.epmet.dto.result.*;
 import com.epmet.entity.*;
+import com.epmet.excel.ApprovaledListExcel;
 import com.epmet.feign.*;
 import com.epmet.send.SendMqMsgUtil;
 import com.epmet.service.*;
@@ -51,6 +52,7 @@ import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -935,6 +937,42 @@ public class ProjectTraceServiceImpl implements ProjectTraceS
 		return result;
 	}
 
+	/**
+	 * 【网格员工作统计】项目列表导出
+	 *
+	 * @param formDTO
+	 * @Param formDTO
+	 * @Return {@link PageData< ApprovaledListResultDTO>}
+	 * @Author zhaoqifeng
+	 * @Date 2022/1/4 15:33
+	 */
+	@Override
+	public void approvaledListExport(HttpServletResponse response,  ApprovaledListFromDTO formDTO) {
+		formDTO.setPageNo(NumConstant.ONE);
+		formDTO.setPageSize(NumConstant.ONE_THOUSAND);
+		ExcelWriter excelWriter = null;
+		try {
+			excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("直接立项记录.xlsx", response)).build();
+			WriteSheet writeSheet = EasyExcel.writerSheet().build();
+			writeSheet.setClazz(ApprovaledListExcel.class);
+			Integer num;
+			//一千条一循环分批写入
+			do {
+				List list = approvaledList(formDTO).getList();
+				List data = ConvertUtils.sourceToTarget(list, ApprovaledListExcel.class);
+				excelWriter.write(data, writeSheet);
+				num = data.size();
+				formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
+			} while (num > NumConstant.ZERO && num.compareTo(formDTO.getPageSize()) == NumConstant.ZERO);
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if (excelWriter != null) {
+				excelWriter.finish();
+			}
+		}
+	}
+
 	private List queryStaffListRes(List staffList,String currentUserId) {
 		List staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList());
 		staffIdList.add(currentUserId);
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java
index afc01d60c2..13e8562e2e 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java
@@ -49,6 +49,8 @@ public class PcWorkListResultDTO implements Serializable {
          */
         private String isNormal;
 
+        private String workTypeNames;
+
         /**
          * 发生地点
          */
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java
index a7ff4f318d..88a9661478 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java
@@ -1,9 +1,12 @@
 package com.epmet.dto.result;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -33,11 +36,15 @@ public class PcworkRecordListResultDTO implements Serializable {
         //状态(中文)
         private String statusName;
         //巡查开始时间  返回返回格式化字符串,yyyy-MM-dd HH:mm:ss
-        private String patrolStartTime;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private Date patrolStartTime;
         //巡查结束时间  返回返回格式化字符串,yyyy-MM-dd HH:mm:ss
-        private String patrolEndTime;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+        private Date patrolEndTime;
         //巡查时长 xx小时xx分钟
         private String totalTime;
+        @JsonIgnore
+        private Integer totalTimeNum;
     }
 
 }
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java
index 7d1633cf13..12199212a6 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java
@@ -1,7 +1,9 @@
 package com.epmet.excel;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -20,38 +22,50 @@ import java.util.List;
 public class PcWorkListExport {
 
     @ExcelProperty("事项名称")
+    @ColumnWidth(20)
     private String title;
 
     @ExcelProperty("事项类型码")
+    @ColumnWidth(20)
+    @ExcelIgnore
     private String workTypeCode;
 
     @ExcelProperty("事项类型名称")
-    private String workTypeName;
+    @ColumnWidth(40)
+    private String workTypeNames;
 
     @ExcelProperty("有无异常")
     private String isNormal;
 
     @ExcelProperty("发生地点")
+    @ColumnWidth(20)
     private String happenAddress;
 
     @ExcelProperty("发生时间")
+    @ColumnWidth(20)
     private String happenTime;
 
     @ExcelProperty("人员ID")
+    @ExcelIgnore
     private String staffId;
 
     @ExcelProperty("人员姓名")
+    @ColumnWidth(20)
     private String staffName;
 
     @ExcelProperty("网格ID")
+    @ExcelIgnore
     private String gridId;
 
     @ExcelProperty("网格名字")
+    @ColumnWidth(20)
     private String gridName;
 
     @ExcelProperty("提交日期")
+    @ColumnWidth(30)
     private String createdTime;
 
     @ExcelProperty("工作内容")
+    @ColumnWidth(60)
     private String workContent;
 }
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java
index 7ac5a9eed9..1542e379be 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java
@@ -20,10 +20,13 @@ package com.epmet.excel;
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * @Description 【网格员工作统计】巡查记录列表导出
  * @Author sun
@@ -34,36 +37,45 @@ import lombok.Setter;
 public class StaffPatrolRecordExcel {
 
     @ExcelProperty("人员ID")
+    @ExcelIgnore
     private String staffId;
 
     @ExcelProperty("人员名称")
+    @ColumnWidth(15)
     private String staffName;
 
     @ExcelProperty("网格ID")
+    @ExcelIgnore
     private String gridId;
 
     @ExcelProperty("网格名称")
+    @ColumnWidth(20)
     private String gridName;
 
     @ExcelProperty("状态(英文key)")
+    @ExcelIgnore
     private String status;
 
-    @ExcelProperty("状态(中文)")
+    @ExcelProperty("状态")
+    @ColumnWidth(18)
     private String statusName;
 
     @DateTimeFormat("yyyy年MM月dd日")
     @ExcelProperty("巡查开始时间")
-    private String patrolStartTime;
+    @ColumnWidth(20)
+    private Date patrolStartTime;
 
     @DateTimeFormat("yyyy年MM月dd日")
     @ExcelProperty("巡查结束时间")
-    private String patrolEndTime;
+    @ColumnWidth(20)
+    private Date patrolEndTime;
 
     @ExcelProperty("巡查时长")
+    @ColumnWidth(20)
     private String totalTime;
 
     @ExcelIgnore
-    private String aa;
+    private Integer totalTimeNum;;
 
 
 
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
index e66783f9c8..5d0aa60d4f 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
@@ -27,8 +27,12 @@ import com.epmet.commons.tools.constant.NumConstant;
 import com.epmet.commons.tools.constant.StrConstant;
 import com.epmet.commons.tools.dto.result.DictTreeResultDTO;
 import com.epmet.commons.tools.enums.DictTypeEnum;
+import com.epmet.commons.tools.enums.OrgTypeEnum;
 import com.epmet.commons.tools.exception.EpmetErrorCode;
 import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
+import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
+import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
 import com.epmet.commons.tools.security.user.LoginUserUtil;
 import com.epmet.commons.tools.utils.ConvertUtils;
 import com.epmet.commons.tools.utils.ExcelUtils;
@@ -63,6 +67,8 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.servlet.http.HttpServletResponse;
+import java.beans.Encoder;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -198,25 +204,30 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl data = ConvertUtils.sourceToTarget(pcWorkList(formDTO).getList(), PcWorkListExport.class);
+                List dtos = pcWorkList(formDTO).getList();
+                dtos.forEach(d -> {
+                    d.setWorkTypeNames(d.getWorkTypeName().toString());
+                });
+                List data = ConvertUtils.sourceToTarget(dtos, PcWorkListExport.class);
                 num = data.size();
                 excelWriter.write(data, writeSheet);
                 pageNo++;
             }while (num > NumConstant.ZERO && num.compareTo(pageSize) == NumConstant.ZERO);
-
         } finally {
             if (excelWriter != null) {
                 excelWriter.finish();
@@ -224,6 +235,31 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl 0 ? minutes / 60 + "小时" : "") + (minutes % 60 > 0 ? minutes % 60 + "分钟" : "0分钟");
+			r.setTotalTime(patrolDuration);
+
 		}
 		//3.封装数据并返回
 		resultDTO.setTotal((int)result.getTotal());
@@ -524,13 +530,15 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl list = staffPatrolRecordDao.pcworkRecordList(formDTO);
-				List data = ConvertUtils.sourceToTarget(list, StaffPatrolRecordExcel.class);
+				PcworkRecordListResultDTO dto = pcworkRecordList(formDTO);
+				List data = ConvertUtils.sourceToTarget(dto.getList(), StaffPatrolRecordExcel.class);
+				WriteSheet writeSheet = EasyExcel.writerSheet(formDTO.getPageNo(), "sheet" + formDTO.getPageNo()).build();
+				writeSheet.setClazz(StaffPatrolRecordExcel.class);
 				excelWriter.write(data, writeSheet);
 				num = data.size();
 				formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml
index b446fb23b2..fc1364a397 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml
@@ -84,7 +84,7 @@
             if(spr.`status`='patrolling', '巡查中', if(spr.is_hand_end=0, '结束巡查(系统自动)', '结束巡查'))statusName,
             spr.patrol_start_time patrolStartTime,
             spr.patrol_end_time patrolEndTime,
-            spr.total_time totalTime
+            spr.total_time totalTimeNum
         FROM
             staff_patrol_record spr
         LEFT JOIN customer_staff cs ON spr.staff_id = cs.user_id