Browse Source

大数据导出方法

feature/codemove
zhangyuan 3 years ago
parent
commit
0a4ea5f29f
  1. 14
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java
  2. 61
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingExportServer.java
  3. 3
      epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml

14
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; 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.api.version.ApiVersion;
import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant; 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.PersonTestingExcel;
import com.elink.esua.epdc.modules.epidemic.excel.PersonTestingImportMoudleExcel; 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.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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -62,6 +66,9 @@ public class PersonTestingV2Controller {
@Autowired @Autowired
private PersonTestingService personTestingService; private PersonTestingService personTestingService;
@Autowired
private PersonTestingExportServer exportServer;
@Autowired @Autowired
private PersonTestingDao personTestingDao; private PersonTestingDao personTestingDao;
@ -115,6 +122,13 @@ public class PersonTestingV2Controller {
ExcelUtils.exportExcelToTarget(response, null, list, PersonTestingExcel.class); ExcelUtils.exportExcelToTarget(response, null, list, PersonTestingExcel.class);
} }
@GetMapping("exportBig")
public void exportBig(@ApiIgnore @RequestParam Map<String, Object> 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 * @return Result
* @describe: 读卡器录入数据 * @describe: 读卡器录入数据

61
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<Object> selectListForExcelExport(Object queryParams, int page) {
Map<String, Object> params = (Map<String, Object>) 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<PersonTestingPageDTO> recordList = personTestingDao.getTestingPage(params);
List<Object> 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;
}
}

3
epdc-cloud-custom/src/main/resources/mapper/epidemic/PersonTestingDao.xml

@ -79,6 +79,9 @@
OR find_in_set(#{gridId},t2.ALL_DEPT_IDS)) OR find_in_set(#{gridId},t2.ALL_DEPT_IDS))
</if> </if>
order by t.CREATED_TIME desc order by t.CREATED_TIME desc
<if test="excelBigDataPageSize != null and excelBigDataPageIndex != null">
limit #{excelBigDataPageIndex},#{excelBigDataPageSize}
</if>
</select> </select>
<select id="getMobileByIdCard" resultType="java.lang.String"> <select id="getMobileByIdCard" resultType="java.lang.String">
select MOBILE select MOBILE

Loading…
Cancel
Save