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. 111
      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. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java
  8. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java
  9. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java
  10. 4
      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> <gson.version>2.8.6</gson.version>
<jsoup.version>1.11.3</jsoup.version> <jsoup.version>1.11.3</jsoup.version>
<lombok.version>1.18.4</lombok.version> <lombok.version>1.18.4</lombok.version>
<easyexcel.version>3.0.3</easyexcel.version>
</properties> </properties>
<dependencies> <dependencies>
@ -177,6 +178,25 @@
<artifactId>javase</artifactId> <artifactId>javase</artifactId>
<version>3.4.1</version> <version>3.4.1</version>
</dependency> </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> </dependencies>
<build> <build>

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

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

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

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

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

@ -18,25 +18,6 @@
<artifactId>epmet-admin-client</artifactId> <artifactId>epmet-admin-client</artifactId>
<version>2.0.0</version> <version>2.0.0</version>
</dependency> </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> <dependency>
<groupId>com.epmet</groupId> <groupId>com.epmet</groupId>
<artifactId>epmet-user-client</artifactId> <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; 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.annotation.LoginUser;
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.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto; 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.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.IcNatDTO; 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.MyNatListResultDTO;
import com.epmet.dto.result.NatListResultDTO; import com.epmet.dto.result.NatListResultDTO;
import com.epmet.service.IcNatService; import com.epmet.service.IcNatService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
@ -30,6 +38,7 @@ import java.util.List;
* @author generator generator@elink-cn.com * @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-25 * @since v1.0.0 2022-03-25
*/ */
@Slf4j
@RestController @RestController
@RequestMapping("icNat") @RequestMapping("icNat")
public class IcNatController { public class IcNatController {
@ -69,10 +78,10 @@ public class IcNatController {
**/ **/
@NoRepeatSubmit @NoRepeatSubmit
@PostMapping("natlist") @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.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId()); 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();
}
}
}
} }

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

@ -29,11 +29,11 @@ public interface IcNatDao extends BaseDao<IcNatEntity> {
* @Author sun * @Author sun
* @Description 核酸核酸检测信息列表 * @Description 核酸核酸检测信息列表
**/ **/
List<NatListResultDTO.NatListDTO> getNatList(MyNatListFormDTO formDTO); List<NatListResultDTO> getNatList(MyNatListFormDTO formDTO);
/** /**
* @Author sun * @Author sun
* @Description 删除/取消同步操作--物理删除业务数据 * @Description 删除/取消同步操作--物理删除业务数据
**/ **/
int delById(@Param("icNatId") String icNatId); int delById(@Param("icNatId") String icNatId);
} }

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

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

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

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

@ -25,7 +25,7 @@
ORDER BY nat_time DESC ORDER BY nat_time DESC
</select> </select>
<select id="getNatList" resultType="com.epmet.dto.result.NatListResultDTO$NatListDTO"> <select id="getNatList" resultType="com.epmet.dto.result.NatListResultDTO">
SELECT SELECT
id icNatId, id icNatId,
agency_id agencyId, agency_id agencyId,
@ -67,4 +67,4 @@
DELETE FROM ic_nat WHERE id = #{icNatId} DELETE FROM ic_nat WHERE id = #{icNatId}
</delete> </delete>
</mapper> </mapper>

Loading…
Cancel
Save