From 3069f4872ff205dbc59faa441204079f0ef5614f Mon Sep 17 00:00:00 2001 From: YUJT Date: Fri, 18 Jun 2021 14:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=87=BA=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=9B=E4=BF=AE=E6=94=B9=E6=8E=A5=E7=A7=8D=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epdc-cloud-commons-yushan | 2 +- .../src/main/resources/logback-spring.xml | 2 + .../EpidemicUserInfoController.java | 15 ++++++ .../impl/EpidemicUserInfoExportServer.java | 46 +++++++++++++++++++ .../impl/VaccinationUserRoleServiceImpl.java | 8 ++++ .../src/main/resources/application.yml | 2 +- .../src/main/resources/logback-spring.xml | 1 - .../mapper/epidemic/EpidemicUserInfoDao.xml | 3 ++ .../mapper/vim/VaccinationUserRoleDao.xml | 13 +++--- 9 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoExportServer.java diff --git a/epdc-cloud-commons-yushan b/epdc-cloud-commons-yushan index 5b077ff..4bc760d 160000 --- a/epdc-cloud-commons-yushan +++ b/epdc-cloud-commons-yushan @@ -1 +1 @@ -Subproject commit 5b077ffda98e46ce47e9c5540dabbc50f092968d +Subproject commit 4bc760d91246751ea4d99ab2e382518f87389ed0 diff --git a/epdc-cloud-custom/src/main/resources/logback-spring.xml b/epdc-cloud-custom/src/main/resources/logback-spring.xml index c2c8936..0a63ecd 100644 --- a/epdc-cloud-custom/src/main/resources/logback-spring.xml +++ b/epdc-cloud-custom/src/main/resources/logback-spring.xml @@ -139,6 +139,8 @@ + + diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java index 1937c5c..01569b5 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java @@ -20,6 +20,8 @@ import com.elink.esua.epdc.vaccine.epidemic.dto.result.EpidemicPageResultDTO; import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO; import com.elink.esua.epdc.vaccine.epidemic.excel.EpidecmicUserNewExcel; import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService; +import com.elink.esua.epdc.vaccine.epidemic.service.impl.EpidemicUserInfoExportServer; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -39,9 +41,13 @@ import java.util.Map; @RestController @RequestMapping("epidemicuserinfo") public class EpidemicUserInfoController { + @Autowired private EpidemicUserInfoService epidemicUserInfoService; + @Autowired + private EpidemicUserInfoExportServer exportServer; + @GetMapping("page") public Result> page(@RequestParam Map params) { // 按人员往返时间倒序排列 @@ -83,6 +89,14 @@ public class EpidemicUserInfoController { return epidemicUserInfoService.deleteUserById(ids); } + @GetMapping("export") + @LogOperation("导出") + public void export(@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(), EpidecmicUserNewExcel.class); + } +/* @GetMapping("export") @LogOperation("导出") public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { @@ -90,6 +104,7 @@ public class EpidemicUserInfoController { ExcelUtils.exportExcelToTarget(response, null, list, EpidecmicUserNewExcel.class); } +*/ /** * @return io.pingyin.common.utils.Result> diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoExportServer.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoExportServer.java new file mode 100644 index 0000000..f61c761 --- /dev/null +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoExportServer.java @@ -0,0 +1,46 @@ +package com.elink.esua.epdc.vaccine.epidemic.service.impl; + +import cn.afterturn.easypoi.handler.inter.IExcelExportServer; +import cn.hutool.core.collection.CollUtil; +import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao; +import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicRecordListDTO; +import com.elink.esua.epdc.vaccine.epidemic.excel.EpidecmicUserNewExcel; +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 EpidemicUserInfoExportServer implements IExcelExportServer { + + @Autowired + private EpidemicUserInfoDao epidemicUserInfoDao; + + @Override + public List selectListForExcelExport(Object queryParams, int page) { + Map params = (Map) queryParams; + params.put("excelBigDataPageSize", 50000); + params.put("excelBigDataPageIndex", (page - 1) * 50000); + List recordList = epidemicUserInfoDao.getEpidemicUserRecordList(params); + List targetList = new ArrayList<>(); + if (CollUtil.isNotEmpty(recordList)) { + Object target; + for (int i = 0; i < recordList.size(); i++) { + target = new EpidecmicUserNewExcel(); + BeanUtils.copyProperties(recordList.get(i), target); + targetList.add(target); + } + } + return targetList; + } + +} diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationUserRoleServiceImpl.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationUserRoleServiceImpl.java index 663ba2e..61e2b4f 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationUserRoleServiceImpl.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationUserRoleServiceImpl.java @@ -17,6 +17,8 @@ package com.elink.esua.epdc.vaccine.vim.service.impl; +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; @@ -71,6 +73,12 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl page(Map params) { + String userIdStr = MapUtil.getStr(params, "userIdList"); + if (StringUtils.isBlank(userIdStr)) { + params.put("userIdList", new ArrayList<>()); + } else { + params.put("userIdList", JSONArray.parseArray(userIdStr)); + } IPage page = getPage(params, FieldConstant.CREATED_TIME, false); List list = baseDao.getList(params); return new PageData<>(list, page.getTotal()); diff --git a/epdc-cloud-vim-yushan/src/main/resources/application.yml b/epdc-cloud-vim-yushan/src/main/resources/application.yml index 0941351..d58d78d 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/application.yml +++ b/epdc-cloud-vim-yushan/src/main/resources/application.yml @@ -25,4 +25,4 @@ mybatis-plus: map-underscore-to-camel-case: true cache-enabled: false call-setters-on-nulls: true - jdbc-type-for-null: 'null' \ No newline at end of file + jdbc-type-for-null: 'null' diff --git a/epdc-cloud-vim-yushan/src/main/resources/logback-spring.xml b/epdc-cloud-vim-yushan/src/main/resources/logback-spring.xml index 775c3c4..d3c387d 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/logback-spring.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/logback-spring.xml @@ -6,7 +6,6 @@ - diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml index 563d0ed..1e39fee 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml @@ -126,6 +126,9 @@ GROUP BY ui.ID ORDER BY uir.CREATED_TIME DESC + + limit #{excelBigDataPageIndex},#{excelBigDataPageSize} + SELECT - ur.*, u.username AS userName, + ur.*, group_concat(r.ROLE_NAME) AS roleNames FROM vaccination_user_role ur - INNER JOIN sys_user u ON u.id = ur.USER_ID INNER JOIN vaccination_role r ON r.id = ur.ROLE_ID WHERE ur.DEL_FLAG = '0' - AND u.del_flag = '0' - AND r.DEL_FLAG = '0' - - AND u.username LIKE concat('%', #{userName}, '%') + AND r.DEL_FLAG = '0' + + AND ur.USER_ID in + + #{userId} + GROUP BY ur.USER_ID