Browse Source

【网格员工作统计】项目列表导出

dev
zhaoqifeng 4 years ago
parent
commit
f2661fee75
  1. 19
      epmet-module/gov-project/gov-project-server/pom.xml
  2. 17
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
  3. 29
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java
  4. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
  5. 46
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

19
epmet-module/gov-project/gov-project-server/pom.xml

@ -65,6 +65,25 @@
<version>4.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.3</version>
<exclusions>
<exclusion>
<artifactId>poi</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
<exclusion>
<artifactId>poi-ooxml</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
<exclusion>
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- 替换Feign原生httpclient -->
<dependency>
<groupId>io.github.openfeign</groupId>

17
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<ApprovaledListResultDTO> result = projectTraceService.approvaledList(formDTO);
return new Result<PageData<ApprovaledListResultDTO>>().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);
}
}

29
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;
}

11
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<ApprovaledListResultDTO> approvaledList(ApprovaledListFromDTO formDTO);
/**
* 网格员工作统计项目列表导出
*
* @Param formDTO
* @Return {@link PageData< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 15:33
*/
void approvaledListExport(HttpServletResponse response, ApprovaledListFromDTO formDTO);
}

46
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<ProjectTagService> 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<ApprovaledListResultDTO> list = approvaledList(formDTO).getList();
List<ApprovaledListExcel> 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<StaffListResultDTO> queryStaffListRes(List<TickStaffFormDTO> staffList,String currentUserId) {
List<String> staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList());
staffIdList.add(currentUserId);

Loading…
Cancel
Save