Browse Source

导出核酸检测

dev
jianjun 3 years ago
parent
commit
567479cb6f
  1. 20
      epmet-commons/epmet-commons-tools/pom.xml
  2. 6
      epmet-module/data-report/data-report-server/pom.xml
  3. 13
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java
  4. 29
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java
  5. 19
      epmet-user/epmet-user-server/pom.xml
  6. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java
  7. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java
  8. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java
  9. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java
  10. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml

20
epmet-commons/epmet-commons-tools/pom.xml

@ -24,6 +24,7 @@
<gson.version>2.8.6</gson.version>
<jsoup.version>1.11.3</jsoup.version>
<lombok.version>1.18.4</lombok.version>
<easyexcel.version>3.0.3</easyexcel.version>
</properties>
<dependencies>
@ -177,6 +178,25 @@
<artifactId>javase</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</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>
</dependencies>
<build>

6
epmet-module/data-report/data-report-server/pom.xml

@ -100,12 +100,6 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

13
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyNatListFormDTO.java

@ -1,17 +1,17 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 核酸检测-我的上报记录
* @Author sun
*/
@Data
public class MyNatListFormDTO implements Serializable {
public class MyNatListFormDTO extends PageFormDTO {
private static final long serialVersionUID = 9156247659994638103L;
public interface MyNat extends CustomerClientShowGroup {
@ -49,11 +49,6 @@ public class MyNatListFormDTO implements Serializable {
* 检测结束时间yyyy-MM-dd HH:mm间yy-mm-dd
*/
private String endTime;
/**
* 分页参数
*/
private Integer pageNo = 1;
private Integer pageSize = 10;
/**
* 核酸记录Id
@ -61,7 +56,9 @@ public class MyNatListFormDTO implements Serializable {
@NotBlank(message = "核酸记录Id不能为空", groups = { Detail.class, Del.class, Synchro.class})
private String icNatId;
//token信息
/**
* token里设置
*/
private String customerId;
private String userId;

29
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java

@ -1,12 +1,13 @@
package com.epmet.dto.result;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @Description 核酸检测-我的上报记录
@ -16,61 +17,69 @@ import java.util.List;
public class NatListResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
//总条数
private Integer total;
List<NatListDTO> list = new ArrayList<>();
@Data
public static class NatListDTO {
/**
* 核酸记录Id
*/
@ExcelIgnore
private String icNatId;
/**
* 组织Id
*/
@ExcelIgnore
private String agencyId;
/**
* 居民端小程序的用户id数字社区的icResiUserId其他情况无值
*/
@ExcelIgnore
private String userId;
/**
* 居民端小程序的人resi;数字社区的居民icresi;未关联上的other
*/
@ExcelIgnore
private String userType;
/**
* 姓名
*/
@ColumnWidth(20)
@ExcelProperty("姓名")
private String name;
/**
* 手机号
*/
@ColumnWidth(20)
@ExcelProperty("手机号")
private String mobile;
/**
* 身份证号
*/
@ColumnWidth(25)
@ExcelProperty("身份证号")
private String idCard;
/**
* 检测时间,yyyy-MM-dd HH:mm
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
@ColumnWidth(25)
@ExcelProperty("检测时间")
private Date natTime;
/**
* 检测结果
*/
@ColumnWidth(20)
@ExcelProperty("检测结果")
private String natResult;
/**
* 检测地点
*/
@ColumnWidth(30)
@ExcelProperty("检测地点")
private String natAddress;
}
}

19
epmet-user/epmet-user-server/pom.xml

@ -18,25 +18,6 @@
<artifactId>epmet-admin-client</artifactId>
<version>2.0.0</version>
</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>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-user-client</artifactId>

53
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java

@ -1,8 +1,14 @@
package com.epmet.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.IcNatDTO;
@ -11,6 +17,8 @@ import com.epmet.dto.form.MyNatListFormDTO;
import com.epmet.dto.result.MyNatListResultDTO;
import com.epmet.dto.result.NatListResultDTO;
import com.epmet.service.IcNatService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
@ -30,6 +38,7 @@ import java.util.List;
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-25
*/
@Slf4j
@RestController
@RequestMapping("icNat")
public class IcNatController {
@ -69,10 +78,10 @@ public class IcNatController {
**/
@NoRepeatSubmit
@PostMapping("natlist")
public Result<NatListResultDTO> natList(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) {
public Result<PageData<NatListResultDTO>> natList(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
return new Result<NatListResultDTO>().ok(icNucleinService.natList(formDTO));
return new Result<PageData<NatListResultDTO>>().ok(icNucleinService.natList(formDTO));
}
/**
@ -148,5 +157,45 @@ public class IcNatController {
}
/**
* @Author sun
* @Description 核酸核酸检测信息列表
**/
@NoRepeatSubmit
@PostMapping("export")
public void export(@LoginUser TokenDto tokenDto, @RequestBody MyNatListFormDTO formDTO, HttpServletResponse response) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
//formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");
//formDTO.setUserId("73ae6280e46a6653a5605d51d5462725");
formDTO.setPage(false);
ExcelWriter excelWriter = null;
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
int pageNo = formDTO.getPageNo();
try {
// 这里 需要指定写用哪个class去写
String fileName = "核酸检测信息.xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response),NatListResultDTO.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
PageData<NatListResultDTO> data = null;
do {
data = icNucleinService.natList(formDTO);
formDTO.setPageNo(++pageNo);
excelWriter.write(data.getList(), writeSheet);
} while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size()==formDTO.getPageSize());
}catch (Exception e){
log.error("export exception", e);
}finally {
// 千万别忘记finish 会帮忙关闭流
if (excelWriter != null) {
excelWriter.finish();
}
}
}
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java

@ -29,7 +29,7 @@ public interface IcNatDao extends BaseDao<IcNatEntity> {
* @Author sun
* @Description 核酸核酸检测信息列表
**/
List<NatListResultDTO.NatListDTO> getNatList(MyNatListFormDTO formDTO);
List<NatListResultDTO> getNatList(MyNatListFormDTO formDTO);
/**
* @Author sun

6
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java

@ -1,6 +1,7 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcNatDTO;
import com.epmet.dto.form.AddIcNatFormDTO;
import com.epmet.dto.form.MyNatListFormDTO;
@ -33,8 +34,9 @@ public interface IcNatService extends BaseService<IcNatEntity> {
/**
* @Author sun
* @Description 核酸核酸检测信息列表
**/
NatListResultDTO natList(MyNatListFormDTO formDTO);
*
* @return*/
PageData<NatListResultDTO> natList(MyNatListFormDTO formDTO);
/**
* @Author sun

14
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
@ -90,10 +91,10 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
/**
* @Author sun
* @Description 核酸核酸检测信息列表
**/
*
* @return*/
@Override
public NatListResultDTO natList(MyNatListFormDTO formDTO) {
NatListResultDTO resultDTO = new NatListResultDTO();
public PageData<NatListResultDTO> natList(MyNatListFormDTO formDTO) {
//1.根据orgType值判断是查询当前组织下还是整个客户下数据
if ("current".equals(formDTO.getOrgType())) {
//获取工作人员缓存信息
@ -105,12 +106,9 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
}
//2.按条件查询业务数据
PageInfo<NatListResultDTO.NatListDTO> data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize())
PageInfo<NatListResultDTO> data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.isPage())
.doSelectPageInfo(() -> baseDao.getNatList(formDTO));
resultDTO.setTotal((int) data.getTotal());
resultDTO.setList(data.getList());
return resultDTO;
return new PageData(data.getList(),data.getTotal());
}
/**

2
epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml

@ -25,7 +25,7 @@
ORDER BY nat_time DESC
</select>
<select id="getNatList" resultType="com.epmet.dto.result.NatListResultDTO$NatListDTO">
<select id="getNatList" resultType="com.epmet.dto.result.NatListResultDTO">
SELECT
id icNatId,
agency_id agencyId,

Loading…
Cancel
Save