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 76aab37e9c..d9cffa07c0 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.*; @@ -50,6 +51,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; @@ -930,6 +932,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);