|
@ -3,6 +3,7 @@ package com.epmet.dataaggre.controller; |
|
|
import com.alibaba.excel.EasyExcel; |
|
|
import com.alibaba.excel.EasyExcel; |
|
|
import com.alibaba.excel.ExcelWriter; |
|
|
import com.alibaba.excel.ExcelWriter; |
|
|
import com.alibaba.excel.write.metadata.WriteSheet; |
|
|
import com.alibaba.excel.write.metadata.WriteSheet; |
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.epmet.commons.tools.annotation.LoginUser; |
|
|
import com.epmet.commons.tools.annotation.LoginUser; |
|
|
import com.epmet.commons.tools.annotation.RequirePermission; |
|
|
import com.epmet.commons.tools.annotation.RequirePermission; |
|
|
import com.epmet.commons.tools.aop.NoRepeatSubmit; |
|
|
import com.epmet.commons.tools.aop.NoRepeatSubmit; |
|
@ -18,7 +19,9 @@ import com.epmet.commons.tools.security.dto.TokenDto; |
|
|
import com.epmet.commons.tools.security.user.LoginUserUtil; |
|
|
import com.epmet.commons.tools.security.user.LoginUserUtil; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
|
|
|
|
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.utils.poi.excel.handler.FreezeAndFilter; |
|
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
|
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
|
|
import com.epmet.dataaggre.beans.GridMemberDataAnalysisExcelExportBean; |
|
|
import com.epmet.dataaggre.beans.GridMemberDataAnalysisExcelExportBean; |
|
|
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; |
|
|
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO; |
|
@ -27,6 +30,8 @@ import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; |
|
|
import com.epmet.dataaggre.dto.govorg.form.*; |
|
|
import com.epmet.dataaggre.dto.govorg.form.*; |
|
|
import com.epmet.dataaggre.dto.govorg.result.*; |
|
|
import com.epmet.dataaggre.dto.govorg.result.*; |
|
|
import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; |
|
|
import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; |
|
|
|
|
|
import com.epmet.dataaggre.excel.MemberProjectInfoExcel; |
|
|
|
|
|
import com.epmet.dataaggre.excel.OrgProjectDetailExcel; |
|
|
import com.epmet.dataaggre.service.AggreGridService; |
|
|
import com.epmet.dataaggre.service.AggreGridService; |
|
|
import com.epmet.dataaggre.service.govorg.GovOrgService; |
|
|
import com.epmet.dataaggre.service.govorg.GovOrgService; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
@ -39,11 +44,13 @@ import org.springframework.web.bind.annotation.*; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import java.io.FileInputStream; |
|
|
import java.io.FileInputStream; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
|
|
|
import java.io.PrintWriter; |
|
|
import java.net.URLEncoder; |
|
|
import java.net.URLEncoder; |
|
|
import java.nio.file.Files; |
|
|
import java.nio.file.Files; |
|
|
import java.nio.file.Path; |
|
|
import java.nio.file.Path; |
|
|
import java.nio.file.Paths; |
|
|
import java.nio.file.Paths; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
import java.util.concurrent.atomic.AtomicReference; |
|
|
import java.util.concurrent.atomic.AtomicReference; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -440,14 +447,110 @@ public class GovOrgController { |
|
|
return new Result<BuildingInfoCache>().ok(govOrgService.queryBuildingInfo(buildingId)); |
|
|
return new Result<BuildingInfoCache>().ok(govOrgService.queryBuildingInfo(buildingId)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 组织项目统计 |
|
|
|
|
|
* @Param tokenDto |
|
|
|
|
|
* @Param formDTO |
|
|
|
|
|
* @Return {@link Result< PageData< OrgProjectDetailResultDTO>>} |
|
|
|
|
|
* @Author zhaoqifeng |
|
|
|
|
|
* @Date 2022/7/28 10:34 |
|
|
|
|
|
*/ |
|
|
@PostMapping("orgProjectDetailList") |
|
|
@PostMapping("orgProjectDetailList") |
|
|
public Result<PageData<OrgProjectDetailResultDTO>> orgProjectDetailList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { |
|
|
public Result<PageData<OrgProjectDetailResultDTO>> orgProjectDetailList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { |
|
|
return new Result<PageData<OrgProjectDetailResultDTO>>().ok(govOrgService.orgProjectDetailList(tokenDto, formDTO)); |
|
|
return new Result<PageData<OrgProjectDetailResultDTO>>().ok(govOrgService.orgProjectDetailList(tokenDto, formDTO)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 网格员项目统计 |
|
|
|
|
|
* @Param tokenDto |
|
|
|
|
|
* @Param formDTO |
|
|
|
|
|
* @Return {@link Result< PageData< MemberProjectInfoResultDTO>>} |
|
|
|
|
|
* @Author zhaoqifeng |
|
|
|
|
|
* @Date 2022/7/28 10:34 |
|
|
|
|
|
*/ |
|
|
@PostMapping("memberProjectInfoList") |
|
|
@PostMapping("memberProjectInfoList") |
|
|
public Result<PageData<MemberProjectInfoResultDTO>> memberProjectInfoList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { |
|
|
public Result<PageData<MemberProjectInfoResultDTO>> memberProjectInfoList(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO) { |
|
|
return new Result<PageData<MemberProjectInfoResultDTO>>().ok(govOrgService.memberProjectInfoList(tokenDto, formDTO)); |
|
|
return new Result<PageData<MemberProjectInfoResultDTO>>().ok(govOrgService.memberProjectInfoList(tokenDto, formDTO)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@NoRepeatSubmit |
|
|
|
|
|
@PostMapping("orgProjectDetailList/export") |
|
|
|
|
|
public void orgProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO, HttpServletResponse response) throws Exception { |
|
|
|
|
|
formDTO.setCustomerId(tokenDto.getCustomerId()); |
|
|
|
|
|
formDTO.setIsPage(false); |
|
|
|
|
|
formDTO.setPageSize(NumConstant.TEN_THOUSAND); |
|
|
|
|
|
|
|
|
|
|
|
ExcelWriter excelWriter = null; |
|
|
|
|
|
AtomicInteger i = new AtomicInteger(1); |
|
|
|
|
|
try { |
|
|
|
|
|
String fileName = "组织项目统计.xlsx"; |
|
|
|
|
|
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), OrgProjectDetailExcel.class).build(); |
|
|
|
|
|
PageData<OrgProjectDetailResultDTO> page = null; |
|
|
|
|
|
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); |
|
|
|
|
|
do { |
|
|
|
|
|
page = govOrgService.orgProjectDetailList(tokenDto, formDTO); |
|
|
|
|
|
List<OrgProjectDetailExcel> list = ConvertUtils.sourceToTarget(page.getList(), OrgProjectDetailExcel.class); |
|
|
|
|
|
list.forEach(item -> { |
|
|
|
|
|
item.setIndex(i.getAndIncrement()); |
|
|
|
|
|
}); |
|
|
|
|
|
excelWriter.write(list, writeSheet); |
|
|
|
|
|
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); |
|
|
|
|
|
} while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); |
|
|
|
|
|
} catch (EpmetException e) { |
|
|
|
|
|
response.reset(); |
|
|
|
|
|
response.setCharacterEncoding("UTF-8"); |
|
|
|
|
|
response.setHeader("content-type", "application/json; charset=UTF-8"); |
|
|
|
|
|
PrintWriter printWriter = response.getWriter(); |
|
|
|
|
|
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); |
|
|
|
|
|
printWriter.write(JSON.toJSONString(result)); |
|
|
|
|
|
printWriter.close(); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("export exception", e); |
|
|
|
|
|
} finally { |
|
|
|
|
|
if (excelWriter != null) { |
|
|
|
|
|
excelWriter.finish(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@NoRepeatSubmit |
|
|
|
|
|
@PostMapping("memberProjectInfoList/export") |
|
|
|
|
|
public void memberProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgStatisticsFormDTO formDTO, HttpServletResponse response) throws Exception { |
|
|
|
|
|
formDTO.setCustomerId(tokenDto.getCustomerId()); |
|
|
|
|
|
formDTO.setIsPage(false); |
|
|
|
|
|
formDTO.setPageSize(NumConstant.TEN_THOUSAND); |
|
|
|
|
|
|
|
|
|
|
|
ExcelWriter excelWriter = null; |
|
|
|
|
|
AtomicInteger i = new AtomicInteger(1); |
|
|
|
|
|
try { |
|
|
|
|
|
String fileName = "网格员项目统计.xlsx"; |
|
|
|
|
|
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), MemberProjectInfoExcel.class).build(); |
|
|
|
|
|
PageData<MemberProjectInfoResultDTO> page = null; |
|
|
|
|
|
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); |
|
|
|
|
|
do { |
|
|
|
|
|
page = govOrgService.memberProjectInfoList(tokenDto, formDTO); |
|
|
|
|
|
List<MemberProjectInfoExcel> list = ConvertUtils.sourceToTarget(page.getList(), MemberProjectInfoExcel.class); |
|
|
|
|
|
list.forEach(item -> { |
|
|
|
|
|
item.setIndex(i.getAndIncrement()); |
|
|
|
|
|
}); |
|
|
|
|
|
excelWriter.write(list, writeSheet); |
|
|
|
|
|
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); |
|
|
|
|
|
} while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDTO.getPageSize()); |
|
|
|
|
|
} catch (EpmetException e) { |
|
|
|
|
|
response.reset(); |
|
|
|
|
|
response.setCharacterEncoding("UTF-8"); |
|
|
|
|
|
response.setHeader("content-type", "application/json; charset=UTF-8"); |
|
|
|
|
|
PrintWriter printWriter = response.getWriter(); |
|
|
|
|
|
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); |
|
|
|
|
|
printWriter.write(JSON.toJSONString(result)); |
|
|
|
|
|
printWriter.close(); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error("export exception", e); |
|
|
|
|
|
} finally { |
|
|
|
|
|
if (excelWriter != null) { |
|
|
|
|
|
excelWriter.finish(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|