From 0a4ea5f29f74b8a0c7760363434551655d2d44bb Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Mon, 11 Apr 2022 10:58:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/PersonTestingV2Controller.java | 14 +++++ .../impl/PersonTestingExportServer.java | 61 +++++++++++++++++++ .../mapper/epidemic/PersonTestingDao.xml | 3 + 3 files changed, 78 insertions(+) create mode 100644 epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingExportServer.java diff --git a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java index 54c3f5d..321ca73 100644 --- a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java +++ b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java @@ -17,6 +17,7 @@ package com.elink.esua.epdc.modules.epidemic.controller.v2; +import cn.afterturn.easypoi.excel.entity.ExportParams; import com.elink.esua.epdc.commons.api.version.ApiVersion; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; @@ -37,9 +38,12 @@ import com.elink.esua.epdc.modules.epidemic.dao.PersonTestingDao; import com.elink.esua.epdc.modules.epidemic.excel.PersonTestingExcel; import com.elink.esua.epdc.modules.epidemic.excel.PersonTestingImportMoudleExcel; import com.elink.esua.epdc.modules.epidemic.service.PersonTestingService; +import com.elink.esua.epdc.modules.epidemic.service.impl.PersonTestingExportServer; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -62,6 +66,9 @@ public class PersonTestingV2Controller { @Autowired private PersonTestingService personTestingService; + @Autowired + private PersonTestingExportServer exportServer; + @Autowired private PersonTestingDao personTestingDao; @@ -115,6 +122,13 @@ public class PersonTestingV2Controller { ExcelUtils.exportExcelToTarget(response, null, list, PersonTestingExcel.class); } + @GetMapping("exportBig") + public void exportBig(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception { + ExportParams exportParams = new ExportParams(); + exportParams.setHeight((short) (2 * 256)); + ExcelUtils.exportBigExcel(StringUtils.EMPTY, params, exportServer, response, new ExportParams(), PersonTestingExcel.class); + } + /** * @return Result * @describe: 读卡器录入数据 diff --git a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingExportServer.java b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingExportServer.java new file mode 100644 index 0000000..42da7ed --- /dev/null +++ b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingExportServer.java @@ -0,0 +1,61 @@ +package com.elink.esua.epdc.modules.epidemic.service.impl; + +import cn.afterturn.easypoi.handler.inter.IExcelExportServer; +import cn.hutool.core.collection.CollUtil; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.exception.RenException; +import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; +import com.elink.esua.epdc.commons.tools.security.user.UserDetail; +import com.elink.esua.epdc.dto.PersonTestingPageDTO; +import com.elink.esua.epdc.modules.epidemic.dao.PersonTestingDao; +import com.elink.esua.epdc.modules.epidemic.excel.PersonTestingExcel; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 人员信息数据导出 + * + * @author work@yujt.net.cn + * @date 2021/6/17 14:04 + */ +@Service +public class PersonTestingExportServer implements IExcelExportServer { + + @Autowired + private PersonTestingDao personTestingDao; + + @Override + public List selectListForExcelExport(Object queryParams, int page) { + Map params = (Map) queryParams; + params.put("excelBigDataPageSize", 30000); + params.put("excelBigDataPageIndex", (page - 1) * 30000); + + UserDetail user = SecurityUser.getUser(); + if (user == null) { + throw new RenException("用户未登录"); + } + // 街道和超管有权查看所有数据 + if (NumConstant.ZERO == user.getSuperAdmin() && user.getDeptId() != 1258587398679126017L) { + params.put("deptIdList", user.getDeptIdList()); + params.put("creatorId", user.getId()); + } + + List recordList = personTestingDao.getTestingPage(params); + List targetList = new ArrayList<>(); + if (CollUtil.isNotEmpty(recordList)) { + Object target; + for (int i = 0; i < recordList.size(); i++) { + target = new PersonTestingExcel(); + BeanUtils.copyProperties(recordList.get(i), target); + targetList.add(target); + } + } + return targetList; + } + +} diff --git a/epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml b/epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml index 83aa0ca..317d175 100644 --- a/epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml +++ b/epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml @@ -79,6 +79,9 @@ OR find_in_set(#{gridId},t2.ALL_DEPT_IDS)) order by t.CREATED_TIME desc + + limit #{excelBigDataPageIndex},#{excelBigDataPageSize} +