Browse Source

导出一户一档 暂存3

dev
jianjun 3 years ago
parent
commit
d2ae84dc81
  1. 11
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ExcelFillCellMergeStrategy.java
  2. 3
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java
  3. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  4. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  5. 19
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

11
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ExcelFillCellMergeStrategy.java

@ -28,6 +28,10 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
* 从下标n行开始合并
*/
private int mergeRowIndex;
/**
* 默认隐藏第一列 用于合并数据
*/
private boolean hiddenFirst = true;
public ExcelFillCellMergeStrategy() {
}
@ -36,6 +40,11 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
this.mergeRowIndex = mergeRowIndex;
this.mergeColumnIndexArr = mergeColumnIndexArr;
}
public ExcelFillCellMergeStrategy(int mergeRowIndex, int[] mergeColumnIndexArr,boolean hiddenFirst) {
this.mergeRowIndex = mergeRowIndex;
this.mergeColumnIndexArr = mergeColumnIndexArr;
this.hiddenFirst = hiddenFirst;
}
@Override
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) {
@ -45,8 +54,10 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
@Override
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
// 隐藏id列
if (hiddenFirst ){
writeSheetHolder.getSheet().setColumnHidden(0, true);
}
}
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {

3
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java

@ -17,6 +17,9 @@ import java.io.Serializable;
public class HouseMemberResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ExcelProperty(value = {"序号","序号"},index = 0)
private Integer num;
@ExcelProperty(value = {"房屋信息","所属组织"},index = 1)
private String agencyName;
@ExcelProperty(value = {"房屋信息","所属网格"},index = 2)

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -346,7 +346,7 @@ public class HouseController implements ResultDataResolver {
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("一户一档信息.xlsx", response), HouseMemberResultDTO.class)
.registerWriteHandler(new FreezeAndFilter())
.build();
int[] mergeRowArr = new int[]{0,1,2,3,4,5,6,7,8,9,10};
int[] mergeRowArr = new int[]{0,1,2,3,4,5,6,7,8,9,10,11,12};
// 头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
@ -356,19 +356,20 @@ public class HouseController implements ResultDataResolver {
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
FreezeAndFilter writeHandler = new FreezeAndFilter();
ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr);
WriteSheet writeSheet = EasyExcel.writerSheet().registerWriteHandler(mergeStrategy)
writeHandler.rowSplit = 2;
ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr,false);
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(mergeStrategy)
.registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.registerWriteHandler(writeHandler)
.build();
List<HouseMemberResultDTO> dataList = null;
PageData<HouseMemberResultDTO> dataList = null;
do {
dataList = houseService.getHouseUser(tokenDto,formDTO);
System.out.println("====:"+JSON.toJSONString(dataList));
excelWriter.write(dataList,writeSheet);
excelWriter.write(dataList.getList(), writeSheet);
formDTO.setPageSize(formDTO.getPageSize()+1);
}while (dataList != null && dataList.size() == formDTO.getPageSize());
}while (dataList != null && dataList.getTotal() == formDTO.getPageSize());
//获取导出配置
} catch (EpmetException e) {

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java

@ -102,5 +102,5 @@ public interface HouseService {
* @param formDTO
* @return
*/
List<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO);
PageData<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO);
}

19
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -190,7 +190,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
item.setPurpose(HousePurposeEnums.getTypeValue(item.getPurposeKey()));
});
return new PageData<>(records,pageInfo.getTotal());
return new PageData<>(records == null? new ArrayList<>():records,pageInfo.getTotal());
}
public String getPids(String agencyId){
String pids = null;
@ -473,9 +474,9 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
icBuildingService.update(icBuildingDTO);
}
}
//Cache<String,>
Cache<String,Integer> exportNumCacheMap = CacheBuilder.newBuilder().build();
@Override
public List<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO) {
public PageData<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO) {
RentTenantDataFormDTO resiParam = new RentTenantDataFormDTO();
resiParam.setCustomerId(tokenDto.getCustomerId());
resiParam.setAgencyId(formDTO.getAgencyId());
@ -494,11 +495,13 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
searchLevel = 2;
}
PageData<IcHouseListResultDTO> houseList = this.getHouseList(formDTO);
List<HouseMemberResultDTO> resultDTOS = ConvertUtils.sourceToTarget(houseList.getList(), HouseMemberResultDTO.class);
PageData<IcHouseListResultDTO> houseData = this.getHouseList(formDTO);
List<HouseMemberResultDTO> resultDTOS = ConvertUtils.sourceToTarget(houseData.getList(), HouseMemberResultDTO.class);
List<HouseMemberResultDTO> result = new ArrayList<>();
List<HouseMemberResultDTO> resultList = new ArrayList<>();
PageData<HouseMemberResultDTO> result = new PageData<>(resultList,houseData.getList().size());
int finalSearchLevel = searchLevel;
AtomicInteger num = new AtomicInteger((formDTO.getPageNo()-1) * formDTO.getPageSize());
Cache<String,List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.SECONDS).build();
resultDTOS.parallelStream().forEach(o ->{
resiParam.setNeighborHoodId(o.getNeighborHoodId());
@ -513,8 +516,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
if (members == null){
return;
}
int n = num.incrementAndGet();
members.forEach(m->{
HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(m, HouseMemberResultDTO.class);
resultDTO.setNum(n);
resultDTO.setAgencyName(o.getAgencyName());
resultDTO.setGridName(o.getGridName());
resultDTO.setNeighborHoodName(o.getNeighborHoodName());
@ -527,7 +532,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
resultDTO.setOwnerName(o.getOwnerName());
resultDTO.setOwnerPhone(o.getOwnerPhone());
resultDTO.setOwnerIdCard(o.getOwnerIdCard());
result.add(resultDTO);
resultList.add(resultDTO);
});
});
return result;

Loading…
Cancel
Save