|  | @ -18,13 +18,17 @@ | 
			
		
	
		
		
			
				
					|  |  | package com.epmet.controller; |  |  | package com.epmet.controller; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; |  |  | import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.alibaba.excel.EasyExcel; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.alibaba.excel.ExcelWriter; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 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.constant.NumConstant; |  |  | import com.epmet.commons.tools.constant.NumConstant; | 
			
		
	
		
		
			
				
					|  |  | 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.security.dto.TokenDto; |  |  | import com.epmet.commons.tools.security.dto.TokenDto; | 
			
		
	
		
		
			
				
					
					|  |  | import com.epmet.commons.tools.utils.ExcelPoiUtils; |  |  | import com.epmet.commons.tools.utils.*; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  | import com.epmet.commons.tools.utils.ExcelUtils; |  |  | import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; | 
			
				
				
			
		
	
		
		
			
				
					|  |  | 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.form.AddSocietyOrgFormDTO; |  |  | import com.epmet.dto.form.AddSocietyOrgFormDTO; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.dto.form.EditSocietyOrgFormDTO; |  |  | import com.epmet.dto.form.EditSocietyOrgFormDTO; | 
			
		
	
	
		
		
			
				
					|  | @ -33,18 +37,26 @@ import com.epmet.dto.form.demand.ServiceQueryFormDTO; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.dto.result.GetListSocietyOrgResultDTO; |  |  | import com.epmet.dto.result.GetListSocietyOrgResultDTO; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.dto.result.demand.OptionDTO; |  |  | import com.epmet.dto.result.demand.OptionDTO; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.excel.IcSocietyOrgExcel; |  |  | import com.epmet.excel.IcSocietyOrgExcel; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.epmet.excel.IcSocietyOrgExportExcel; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.service.IcSocietyOrgService; |  |  | import com.epmet.service.IcSocietyOrgService; | 
			
		
	
		
		
			
				
					|  |  | import lombok.extern.slf4j.Slf4j; |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 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.util.CollectionUtils; |  |  | import org.springframework.util.CollectionUtils; | 
			
		
	
		
		
			
				
					|  |  | import org.springframework.web.bind.annotation.*; |  |  | import org.springframework.web.bind.annotation.*; | 
			
		
	
		
		
			
				
					|  |  | import org.springframework.web.multipart.MultipartFile; |  |  | import org.springframework.web.multipart.MultipartFile; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import javax.servlet.ServletOutputStream; | 
			
		
	
		
		
			
				
					|  |  | import javax.servlet.http.HttpServletResponse; |  |  | import javax.servlet.http.HttpServletResponse; | 
			
		
	
		
		
			
				
					|  |  | import java.io.IOException; |  |  | import java.io.IOException; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import java.io.InputStream; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import java.io.PrintWriter; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import java.net.URLEncoder; | 
			
		
	
		
		
			
				
					|  |  | import java.text.ParseException; |  |  | import java.text.ParseException; | 
			
		
	
		
		
			
				
					|  |  | import java.util.ArrayList; |  |  | import java.util.ArrayList; | 
			
		
	
		
		
			
				
					|  |  | import java.util.Collections; |  |  | import java.util.Collections; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import java.util.Date; | 
			
		
	
		
		
			
				
					|  |  | import java.util.List; |  |  | import java.util.List; | 
			
		
	
		
		
			
				
					|  |  | import java.util.stream.Collectors; |  |  | import java.util.stream.Collectors; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  | @ -129,11 +141,46 @@ public class IcSocietyOrgController { | 
			
		
	
		
		
			
				
					|  |  |      **/ |  |  |      **/ | 
			
		
	
		
		
			
				
					|  |  |     @PostMapping("export") |  |  |     @PostMapping("export") | 
			
		
	
		
		
			
				
					|  |  |     public void export(@LoginUser TokenDto tokenDto, @RequestBody GetListSocietyOrgFormDTO formDTO, HttpServletResponse response) throws Exception { |  |  |     public void export(@LoginUser TokenDto tokenDto, @RequestBody GetListSocietyOrgFormDTO formDTO, HttpServletResponse response) throws Exception { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //废弃原来的导出
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // formDTO.setCustomerId(tokenDto.getCustomerId());
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // formDTO.setStaffId(tokenDto.getUserId());
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // formDTO.setIsPage(false);
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // GetListSocietyOrgResultDTO list = societyOrgService.getList(formDTO);
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // ExcelUtils.exportExcelToTarget(response, null, list.getList(), IcSocietyOrgExportExcel.class);
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         formDTO.setCustomerId(tokenDto.getCustomerId()); |  |  |         formDTO.setCustomerId(tokenDto.getCustomerId()); | 
			
		
	
		
		
			
				
					|  |  |         formDTO.setStaffId(tokenDto.getUserId()); |  |  |         formDTO.setStaffId(tokenDto.getUserId()); | 
			
		
	
		
		
			
				
					|  |  |         formDTO.setIsPage(false); |  |  |         formDTO.setIsPage(false); | 
			
		
	
		
		
			
				
					
					|  |  |         GetListSocietyOrgResultDTO list = societyOrgService.getList(formDTO); |  |  |         ExcelWriter excelWriter = null; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         ExcelUtils.exportExcelToTarget(response, null, list.getList(), IcSocietyOrgExcel.class); |  |  |         formDTO.setPageNo(NumConstant.ONE); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  |         formDTO.setPageSize(NumConstant.TEN_THOUSAND); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         try { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             String fileName = "社会组织" + DateUtils.format(new Date()) + ".xlsx"; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcSocietyOrgExportExcel.class).build(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             GetListSocietyOrgResultDTO data = null; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             List<IcSocietyOrgExportExcel> list = null; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             do { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 data = societyOrgService.getList(formDTO); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 list = ConvertUtils.sourceToTarget(data.getList(), IcSocietyOrgExportExcel.class); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 excelWriter.write(list, writeSheet); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             } while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list) && list.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(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     /** |  |  |     /** | 
			
		
	
	
		
		
			
				
					|  | @ -168,4 +215,29 @@ public class IcSocietyOrgController { | 
			
		
	
		
		
			
				
					|  |  |         return new Result().ok(str); |  |  |         return new Result().ok(str); | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     /** | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      * 下载社会组织导入模板 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      * @param response | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      * @throws IOException | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      */ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     @RequestMapping(value = "import-template-download", method = {RequestMethod.GET, RequestMethod.POST}) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     public void downloadTemplate(HttpServletResponse response) throws IOException { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         response.setCharacterEncoding("UTF-8"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("社区组织导入模板", "UTF-8") + ".xlsx"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/societyorg_import_template.xlsx"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         try { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             ServletOutputStream os = response.getOutputStream(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             IOUtils.copy(is, os); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } finally { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             if (is != null) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 is.close(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | } |  |  | } | 
			
		
	
	
		
		
			
				
					|  | 
 |