diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java
index 773291dfcc..6dae6eb249 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java
@@ -19,8 +19,8 @@ import org.springframework.util.CollectionUtils;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
@@ -121,5 +121,14 @@ public class ExcelUtils {
         out.flush();
         out.close();
     }
+    public static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
+        fileName = URLEncoder.encode(fileName, "UTF-8");
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf8");
+        response.setHeader("Content-Disposition", "attachment;filename=" +  fileName);
+        response.addHeader("Access-Control-Expose-Headers", "Content-disposition");
+
+        return response.getOutputStream();
+    }
 
 }
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java
index 8cd3a4f083..c7a585ec6c 100644
--- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java
@@ -35,4 +35,10 @@ public class ProjectCategoryFormDTO implements Serializable {
      * 开始时间
      */
     private String startTime;
+
+    /**
+     * 组织名称
+     */
+    @NotBlank(message = "组织名称不能为空",groups = CategoryProjectExportForm.class)
+    private String orgName;
 }
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java
index 5250826a3c..ec8694fd1b 100644
--- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java
@@ -25,6 +25,11 @@ public class CategoryProjectListResultDTO implements Serializable {
      */
     private String projectStatus;
 
+    /**
+     * 项目状态:待处理 pending,结案closed
+     */
+    private String projectStatusDesc;
+
     /**
      * 项目标题
      */
@@ -69,8 +74,13 @@ public class CategoryProjectListResultDTO implements Serializable {
     public CategoryProjectListResultDTO() {
         this.category = "";
         this.projectStatus = "";
+        this.projectStatusDesc = "";
         this.projectTitle = "";
         this.gridName = "";
         this.createTime = "";
     }
+
+    public String getProjectStatusDesc() {
+        return "closed".equals(projectStatus)?"已结案":"处理中";
+    }
 }
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index 15936771b6..25a8220b54 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -100,6 +100,12 @@
             2.0.0
             compile
         
+        
+            com.alibaba
+            easyexcel
+            3.0.3
+            compile
+        
     
 
     
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java
index 87aa340fac..98cda05a2b 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java
@@ -2,12 +2,15 @@ package com.epmet.datareport.controller.screen;
 
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
 import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.constant.NumConstant;
 import com.epmet.commons.tools.constant.StrConstant;
-import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
-import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
 import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.utils.ExcelUtils;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.commons.tools.validator.ValidatorUtils;
 import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectOrgDailyService;
@@ -34,6 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -209,10 +213,9 @@ public class ScreenProjectController {
             e.setIndex(1);
             resultDTOList.addAll(ConvertUtils.sourceToTarget(e.getChildren(),ProjectCategoryResultDTO.class));
         });
-        CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
         Map mapData = new HashMap<>();
         mapData.put("list",resultDTOList);
-        mapData.put("orgName",staffInfo.getAgencyName());
+        mapData.put("orgName", formDTO.getOrgName());
         mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime()));
         Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData);
         response.setHeader("content-Type", "application/vnd.ms-excel");
@@ -241,30 +244,56 @@ public class ScreenProjectController {
      * @date 2021/11/4 3:38 下午
      */
     @PostMapping("selectcategoryprojectlist/export")
-    public void selectProjectCategoryExport(@RequestBody CategoryProjectListFormDTO formDTO,@LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception {
-        //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548");
-        //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
-        formDTO.setIsPage(false);
-        //formDTO.setStatus("all");
-        //formDTO.setCategoryCode("0102");
-        ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class);
-        PageCategoryProjectListResultDTO data = screenProjectService.selectCategoryProjectList(formDTO,tokenDto);
-        String templatePath = "excel/project_temp.xlsx";
+    public void selectProjectCategoryExport(@RequestBody CategoryProjectListFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception {
+        ExcelWriter excelWriter = null;
+        try {
+            //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548");
+            //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
+            formDTO.setPageNo(NumConstant.ONE);
+            formDTO.setPageSize(NumConstant.ONE_THOUSAND);
+            formDTO.setIsPage(false);
+            ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class);
 
-        CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
-        Map mapData = new HashMap<>();
-        mapData.put("list",data.getList());
-        mapData.put("orgName",staffInfo.getAgencyName());
-        mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime()));
-        mapData.put("categoryName", formDTO.getCategoryName());
-        if (StringUtils.isNotBlank(formDTO.getParentCategoryName())){
-            mapData.put("categoryName", formDTO.getParentCategoryName().concat(StrConstant.HYPHEN).concat(formDTO.getCategoryName()));
-        }
+            Map mapData = new HashMap<>();
+            mapData.put("orgName", formDTO.getOrgName());
+            mapData.put("exportDate", getExportDateStr(formDTO.getStartTime(), formDTO.getEndTime()));
+            mapData.put("categoryName", formDTO.getCategoryName());
+            if (StringUtils.isNotBlank(formDTO.getParentCategoryName())) {
+                mapData.put("categoryName", formDTO.getParentCategoryName().concat(StrConstant.HYPHEN).concat(formDTO.getCategoryName()));
+            }
 
-        Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData);
-        response.setHeader("content-Type", "application/vnd.ms-excel");
-        response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目统计.xls", "UTF-8"));
-        workbook.write(response.getOutputStream());
+            String templatePath = "excel/project_temp_easy_excel.xlsx";
+            InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(templatePath);
+
+
+            //String template = this.getClass().getResource(templatePath).getPath();
+            String fileName = "项目统计.xlsx";
+            excelWriter = EasyExcel.write(ExcelUtils.getOutputStream(fileName, response)).withTemplate(inputStream).build();
+            WriteSheet writeSheet = EasyExcel.writerSheet().build();
+            excelWriter.fill(mapData, writeSheet);
+
+            PageCategoryProjectListResultDTO data = null;
+            do {
+                data = screenProjectService.selectCategoryProjectList(formDTO, tokenDto);
+                if (data.getList().isEmpty()) {
+                    break;
+                }
+                formDTO.setPageNo(formDTO.getPageNo() + 1);
+                excelWriter.fill(data.getList(), writeSheet);
+                data.getList().clear();
+            } while (data.getList().size() == formDTO.getPageSize());
+
+//        String templatePath = "excel/project_temp.xlsx";
+//        Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData);
+//        response.setHeader("content-Type", "application/vnd.ms-excel");
+//        response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目统计.xls", "UTF-8"));
+//        workbook.write(response.getOutputStream());
+
+        } finally {
+            if (excelWriter != null) {
+                excelWriter.finish();
+            }
+        }
     }
 
     @NotNull
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java
index 4c0833ba3e..bc23641267 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java
@@ -375,13 +375,11 @@ public class ScreenProjectServiceImpl implements ScreenProjectService {
         }
         PageCategoryProjectListResultDTO result = new PageCategoryProjectListResultDTO();
         List list;
-        if (formDTO.getIsPage()){
-            PageInfo objectPageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> screenProjectDataDao.selectCategoryProjectList(tokenDto.getCustomerId(), formDTO.getOrgId(), formDTO.getCategoryCode(), formDTO.getStatus()));
-            list = objectPageInfo.getList();
-            result.setTotal(Integer.valueOf(String.valueOf(objectPageInfo.getTotal())));
-        }else {
-            list = screenProjectDataDao.selectCategoryProjectList(tokenDto.getCustomerId(), formDTO.getOrgId(), formDTO.getCategoryCode(), formDTO.getStatus());
-        }
+        PageInfo objectPageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage())
+                .doSelectPageInfo(() -> screenProjectDataDao.selectCategoryProjectList(tokenDto.getCustomerId(), formDTO.getOrgId(), formDTO.getCategoryCode(), formDTO.getStatus()));
+        list = objectPageInfo.getList();
+        result.setTotal(Integer.valueOf(String.valueOf(objectPageInfo.getTotal())));
+
         if (!CollectionUtils.isEmpty(list)){
             list.forEach(l -> {
                 if (l.getOrgType().equals(FactConstant.AGENCY)){
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp_easy_excel.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp_easy_excel.xlsx
new file mode 100644
index 0000000000..41f27c780c
Binary files /dev/null and b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp_easy_excel.xlsx differ
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
index c053346087..6fefc845b6 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
@@ -943,9 +943,25 @@ public class DemoController {
     @Autowired
     private ScreenProjectCategoryOrgDailyService screenProjectCategoryOrgDailyService;
 
-    @PostMapping("orgdaily")
-    public Result orgDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId){
-        screenProjectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId,dateId);
+    @PostMapping("gridandorgdaily")
+    public Result orgDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId,
+                           @RequestParam(name = "startDate",required = false)String startDate,
+                           @RequestParam(name = "endDate",required = false)String endDate
+                           ){
+        long start = System.currentTimeMillis();
+        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){
+            List daysBetween = DateUtils.getDaysBetween(startDate, endDate);
+            daysBetween.forEach(d -> {
+                projectCategoryGridDailyService.extractProjectCategoryData(customerId,d);
+                screenProjectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId,d);
+            });
+        }else {
+            projectCategoryGridDailyService.extractProjectCategoryData(customerId,dateId);
+            screenProjectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId,dateId);
+        }
+        long end = System.currentTimeMillis();
+        long l = (end - start) / 1000;
+        log.info("gridAndOrgDaily耗时" + l+ "s");
         return new Result();
     }