Browse Source

网格员巡查记录导出

master
sunyuchao 4 years ago
parent
commit
8e36fd2841
  1. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java
  2. 71
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java
  3. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java
  4. 41
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

25
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java

@ -1,23 +1,37 @@
package com.epmet.controller; package com.epmet.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto; 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.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.form.patrol.PcworkRecordListFormDTO; import com.epmet.dto.form.patrol.PcworkRecordListFormDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.excel.StaffPatrolRecordExcel;
import com.epmet.service.StaffPatrolDetailService; import com.epmet.service.StaffPatrolDetailService;
import com.epmet.service.StaffPatrolRecordService; import com.epmet.service.StaffPatrolRecordService;
import com.epmet.util.TestFileUtil;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List; import java.util.List;
/** /**
@ -167,4 +181,15 @@ public class StaffPatrolController {
return new Result<PcworkRecordListResultDTO>().ok(staffPatrolRecordService.pcworkRecordList(formDTO)); return new Result<PcworkRecordListResultDTO>().ok(staffPatrolRecordService.pcworkRecordList(formDTO));
} }
/**
* @Author sun
* @Description 网格员工作统计巡查记录列表导出
**/
@NoRepeatSubmit
@PostMapping("pcwork/record-list/export")
public void pcworkRecordListExport(HttpServletResponse response, @RequestBody PcworkRecordListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, PcworkRecordListFormDTO.Staff.class);
staffPatrolRecordService.pcworkRecordListExport(response, formDTO);
}
} }

71
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java

@ -0,0 +1,71 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
/**
* @Description 网格员工作统计巡查记录列表导出
* @Author sun
*/
@Getter
@Setter
@EqualsAndHashCode
public class StaffPatrolRecordExcel {
@ExcelProperty("人员ID")
private String staffId;
@ExcelProperty("人员名称")
private String staffName;
@ExcelProperty("网格ID")
private String gridId;
@ExcelProperty("网格名称")
private String gridName;
@ExcelProperty("状态(英文key)")
private String status;
@ExcelProperty("状态(中文)")
private String statusName;
@DateTimeFormat("yyyy年MM月dd日")
@ExcelProperty("巡查开始时间")
private String patrolStartTime;
@DateTimeFormat("yyyy年MM月dd日")
@ExcelProperty("巡查结束时间")
private String patrolEndTime;
@ExcelProperty("巡查时长")
private String totalTime;
@ExcelIgnore
private String aa;
}

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java

@ -24,6 +24,7 @@ import com.epmet.dto.form.patrol.PcworkRecordListFormDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.StaffPatrolRecordEntity; import com.epmet.entity.StaffPatrolRecordEntity;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
@ -116,4 +117,7 @@ public interface StaffPatrolRecordService extends BaseService<StaffPatrolRecordE
* @Description 网格员工作统计巡查记录列表 * @Description 网格员工作统计巡查记录列表
**/ **/
PcworkRecordListResultDTO pcworkRecordList(PcworkRecordListFormDTO formDTO); PcworkRecordListResultDTO pcworkRecordList(PcworkRecordListFormDTO formDTO);
void pcworkRecordListExport(HttpServletResponse response, PcworkRecordListFormDTO formDTO);
} }

41
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

@ -1,6 +1,9 @@
package com.epmet.service.impl; package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -13,7 +16,9 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.PatrolConstant; import com.epmet.constant.PatrolConstant;
import com.epmet.constant.SystemMessageType; import com.epmet.constant.SystemMessageType;
@ -29,6 +34,7 @@ import com.epmet.dto.result.*;
import com.epmet.entity.StaffPatrolDetailEntity; import com.epmet.entity.StaffPatrolDetailEntity;
import com.epmet.entity.StaffPatrolRecordEntity; import com.epmet.entity.StaffPatrolRecordEntity;
import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; import com.epmet.entity.StatsStaffPatrolRecordDailyEntity;
import com.epmet.excel.StaffPatrolRecordExcel;
import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.feign.GovProjectOpenFeignClient;
@ -46,6 +52,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -503,4 +512,36 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
resultDTO.setList(result.getList()); resultDTO.setList(result.getList());
return resultDTO; return resultDTO;
} }
/**
* @Author sun
* @Description 网格员工作统计巡查记录列表导出
**/
@Override
public void pcworkRecordListExport(HttpServletResponse response, PcworkRecordListFormDTO 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(StaffPatrolRecordExcel.class);
int num = NumConstant.ZERO;
//一千条一循环分批写入
do {
List<PcworkRecordListResultDTO.StaffPatrol> list = staffPatrolRecordDao.pcworkRecordList(formDTO);
List<StaffPatrolRecordExcel> data = ConvertUtils.sourceToTarget(list, StaffPatrolRecordExcel.class);
excelWriter.write(data, writeSheet);
num = data.size();
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
} while (num == formDTO.getPageSize());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
} }

Loading…
Cancel
Save