|
|
@ -20,7 +20,6 @@ package com.elink.esua.epdc.controller; |
|
|
|
import com.elink.esua.epdc.commons.tools.exception.RenException; |
|
|
|
import com.elink.esua.epdc.commons.tools.page.PageData; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.ExcelSelectionDto; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; |
|
|
|
import com.elink.esua.epdc.commons.tools.utils.Result; |
|
|
|
import com.elink.esua.epdc.commons.tools.validator.AssertUtils; |
|
|
@ -31,9 +30,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; |
|
|
|
import com.elink.esua.epdc.constant.PopulationDictConstant; |
|
|
|
import com.elink.esua.epdc.dto.*; |
|
|
|
import com.elink.esua.epdc.dto.epdc.form.SysPopulationSimpleDictFormDTO; |
|
|
|
import com.elink.esua.epdc.excel.BasePopulationInformationExcel; |
|
|
|
import com.elink.esua.epdc.excel.BasePopulationInformationExportExcel; |
|
|
|
import com.elink.esua.epdc.excel.BaseResidentInformationExcel; |
|
|
|
import com.elink.esua.epdc.excel.BaseResidentInformationExportExcel; |
|
|
|
import com.elink.esua.epdc.feign.AdminFeignClient; |
|
|
|
import com.elink.esua.epdc.service.HousingInformationService; |
|
|
@ -45,9 +42,11 @@ import org.springframework.web.multipart.MultipartFile; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.beans.IntrospectionException; |
|
|
|
import java.beans.PropertyDescriptor; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.OutputStream; |
|
|
|
import java.lang.reflect.InvocationTargetException; |
|
|
|
import java.lang.reflect.Method; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.net.URLEncoder; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
@ -234,258 +233,31 @@ public class HousingInformationController { |
|
|
|
return housingInformationService.importPopulationInfo(file,gridId); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 导出模板 |
|
|
|
* @Description 导出模板 |
|
|
|
* @Author songyunpeng |
|
|
|
* @Date 2020/8/27 |
|
|
|
* @Param [params, response] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
@GetMapping("exportModule") |
|
|
|
public void exportModule(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|
|
|
List<BasePopulationInformationExcel> basePopulationInformationExcels = new ArrayList<>(1); |
|
|
|
List<BaseResidentInformationExcel> baseResidentInformationExcels = new ArrayList<>(1); |
|
|
|
BasePopulationInformationExcel basePopulationInformationExcel = new BasePopulationInformationExcel(); |
|
|
|
basePopulationInformationExcel.setHouseAddress("XX小区XX号楼XX单元"); |
|
|
|
basePopulationInformationExcel.setBuyingTime("2020-02-02"); |
|
|
|
basePopulationInformationExcel.setHouseArea(new BigDecimal("0")); |
|
|
|
basePopulationInformationExcel.setPropertyOwner(""); |
|
|
|
basePopulationInformationExcel.setPropertyOwnerIdentityNo(""); |
|
|
|
basePopulationInformationExcel.setPropertyOwnerMobile(""); |
|
|
|
basePopulationInformationExcel.setHouseUse(""); |
|
|
|
basePopulationInformationExcel.setTenantName(""); |
|
|
|
basePopulationInformationExcel.setTenantPhone(""); |
|
|
|
basePopulationInformationExcel.setTenantIdentityNo(""); |
|
|
|
basePopulationInformationExcel.setEnterpriseName(""); |
|
|
|
basePopulationInformationExcel.setSocialUniformCode(""); |
|
|
|
basePopulationInformationExcel.setLegalRepresentative(""); |
|
|
|
basePopulationInformationExcel.setEnterprisePhone(""); |
|
|
|
basePopulationInformationExcel.setResidentsName(""); |
|
|
|
basePopulationInformationExcel.setResidentsNation(""); |
|
|
|
basePopulationInformationExcel.setEducationLevel(""); |
|
|
|
basePopulationInformationExcel.setPoliticsStatus(""); |
|
|
|
basePopulationInformationExcel.setJoinTime("2020-02-02"); |
|
|
|
basePopulationInformationExcel.setOrganizationalRelationshipLocation(""); |
|
|
|
basePopulationInformationExcel.setResidentsIdentityNo(""); |
|
|
|
basePopulationInformationExcel.setResidentsPhone(""); |
|
|
|
basePopulationInformationExcel.setBodyStatus(""); |
|
|
|
basePopulationInformationExcel.setMaritalStatus(""); |
|
|
|
basePopulationInformationExcel.setAccountType(""); |
|
|
|
basePopulationInformationExcel.setMilitaryService(""); |
|
|
|
basePopulationInformationExcel.setHouseholdRegistrationPlace(""); |
|
|
|
basePopulationInformationExcel.setEmploymentStatus(""); |
|
|
|
basePopulationInformationExcel.setCurrentEmployer(""); |
|
|
|
basePopulationInformationExcel.setCurrentEmployerAddress(""); |
|
|
|
basePopulationInformationExcel.setUnemploymentReason(""); |
|
|
|
basePopulationInformationExcel.setReemploymentPermit(""); |
|
|
|
basePopulationInformationExcel.setUnemploymentRegister(""); |
|
|
|
basePopulationInformationExcel.setUnemploymentRegisterTime("2020-02-02"); |
|
|
|
basePopulationInformationExcel.setFamilyCategory(""); |
|
|
|
basePopulationInformationExcel.setHelpStatus(""); |
|
|
|
basePopulationInformationExcel.setMotorVehicleNum(0); |
|
|
|
basePopulationInformationExcel.setMotorVehicleCategory(""); |
|
|
|
basePopulationInformationExcel.setDogStatus(""); |
|
|
|
BaseResidentInformationExcel baseResidentInformationExcel = new BaseResidentInformationExcel(); |
|
|
|
baseResidentInformationExcel.setResidentsIdentityNo("XX"); |
|
|
|
baseResidentInformationExcel.setHouseHeadRelation("XX"); |
|
|
|
baseResidentInformationExcel.setResidentsName("XX"); |
|
|
|
baseResidentInformationExcel.setResidentsSex("男"); |
|
|
|
baseResidentInformationExcel.setResidentsNation("汉"); |
|
|
|
baseResidentInformationExcel.setCurrentEmployer("XX"); |
|
|
|
baseResidentInformationExcel.setCurrentAddress("XX"); |
|
|
|
basePopulationInformationExcels.add(basePopulationInformationExcel); |
|
|
|
baseResidentInformationExcels.add(baseResidentInformationExcel); |
|
|
|
List<Class<?>> classes = new ArrayList<>(2); |
|
|
|
classes.add(basePopulationInformationExcel.getClass()); |
|
|
|
classes.add(baseResidentInformationExcel.getClass()); |
|
|
|
List<String> sheetNames = new ArrayList<>(2); |
|
|
|
sheetNames.add("房屋信息和户主信息"); |
|
|
|
sheetNames.add("居民信息"); |
|
|
|
//设置待选项
|
|
|
|
List<ExcelSelectionDto> excelSelectionDtos = new ArrayList<>(); |
|
|
|
//获取字典信息
|
|
|
|
SysPopulationSimpleDictFormDTO sysPopulationSimpleDictFormDTO = new SysPopulationSimpleDictFormDTO(); |
|
|
|
List<String> dicTypes = new ArrayList<>(); |
|
|
|
Collections.addAll(dicTypes, PopulationDictConstant.ACCOUNT_TYPE, PopulationDictConstant.BODY_STATUS, PopulationDictConstant.EDUCATION_LEVEL |
|
|
|
, PopulationDictConstant.EMPLOYMENT_STATUS, PopulationDictConstant.FAMILY_CATEGORY, PopulationDictConstant.GENDER, PopulationDictConstant.HELP_STATUS, PopulationDictConstant.MARITAL_STATUS |
|
|
|
, PopulationDictConstant.MOTOR_VEHICLE_CATEGORY, PopulationDictConstant.POLITICS_STATUS, PopulationDictConstant.UNEMPLOYMENT_REASON); |
|
|
|
sysPopulationSimpleDictFormDTO.setDicTypes(dicTypes); |
|
|
|
Result<List<SysPopulationSimpleDictDTO>> listResult = adminFeignClient.listPopulationSimple(sysPopulationSimpleDictFormDTO); |
|
|
|
if (listResult == null || !listResult.success()) { |
|
|
|
throw new RenException("获取字典信息失败"); |
|
|
|
} |
|
|
|
List<SysPopulationSimpleDictDTO> sysPopulationSimpleDictDTOS = listResult.getData(); |
|
|
|
ExcelSelectionDto houseUse = new ExcelSelectionDto(); |
|
|
|
houseUse.setSheetIndex(0); |
|
|
|
houseUse.setFirstCol(7); |
|
|
|
houseUse.setLastCol(7); |
|
|
|
houseUse.setExcelSelections(new String[]{"自住","租赁","经营"}); |
|
|
|
ExcelSelectionDto educationLevel = new ExcelSelectionDto(); |
|
|
|
educationLevel.setSheetIndex(0); |
|
|
|
educationLevel.setFirstCol(17); |
|
|
|
educationLevel.setLastCol(17); |
|
|
|
ExcelSelectionDto politicsStatus = new ExcelSelectionDto(); |
|
|
|
politicsStatus.setSheetIndex(0); |
|
|
|
politicsStatus.setFirstCol(18); |
|
|
|
politicsStatus.setLastCol(18); |
|
|
|
ExcelSelectionDto bodyStatus = new ExcelSelectionDto(); |
|
|
|
bodyStatus.setSheetIndex(0); |
|
|
|
bodyStatus.setFirstCol(23); |
|
|
|
bodyStatus.setLastCol(23); |
|
|
|
ExcelSelectionDto maritalStatus = new ExcelSelectionDto(); |
|
|
|
maritalStatus.setSheetIndex(0); |
|
|
|
maritalStatus.setFirstCol(24); |
|
|
|
maritalStatus.setLastCol(24); |
|
|
|
ExcelSelectionDto accountType = new ExcelSelectionDto(); |
|
|
|
accountType.setSheetIndex(0); |
|
|
|
accountType.setFirstCol(25); |
|
|
|
accountType.setLastCol(25); |
|
|
|
ExcelSelectionDto militaryService = new ExcelSelectionDto(); |
|
|
|
militaryService.setSheetIndex(0); |
|
|
|
militaryService.setFirstCol(26); |
|
|
|
militaryService.setLastCol(26); |
|
|
|
militaryService.setExcelSelections(new String[]{"是","否"}); |
|
|
|
ExcelSelectionDto employedStatus = new ExcelSelectionDto(); |
|
|
|
employedStatus.setSheetIndex(0); |
|
|
|
employedStatus.setFirstCol(28); |
|
|
|
employedStatus.setLastCol(28); |
|
|
|
ExcelSelectionDto unEmployedReason = new ExcelSelectionDto(); |
|
|
|
unEmployedReason.setSheetIndex(0); |
|
|
|
unEmployedReason.setFirstCol(31); |
|
|
|
unEmployedReason.setLastCol(31); |
|
|
|
ExcelSelectionDto reEmployedPermit = new ExcelSelectionDto(); |
|
|
|
reEmployedPermit.setSheetIndex(0); |
|
|
|
reEmployedPermit.setFirstCol(32); |
|
|
|
reEmployedPermit.setLastCol(32); |
|
|
|
reEmployedPermit.setExcelSelections(new String[]{"有","无"}); |
|
|
|
ExcelSelectionDto unEmployedRegister = new ExcelSelectionDto(); |
|
|
|
unEmployedRegister.setSheetIndex(0); |
|
|
|
unEmployedRegister.setFirstCol(33); |
|
|
|
unEmployedRegister.setLastCol(33); |
|
|
|
unEmployedRegister.setExcelSelections(new String[]{"是","否"}); |
|
|
|
ExcelSelectionDto familyCategory = new ExcelSelectionDto(); |
|
|
|
familyCategory.setSheetIndex(0); |
|
|
|
familyCategory.setFirstCol(35); |
|
|
|
familyCategory.setLastCol(35); |
|
|
|
ExcelSelectionDto helpStatus = new ExcelSelectionDto(); |
|
|
|
helpStatus.setSheetIndex(0); |
|
|
|
helpStatus.setFirstCol(36); |
|
|
|
helpStatus.setLastCol(36); |
|
|
|
ExcelSelectionDto motorVehicleCategory = new ExcelSelectionDto(); |
|
|
|
motorVehicleCategory.setSheetIndex(0); |
|
|
|
motorVehicleCategory.setFirstCol(38); |
|
|
|
motorVehicleCategory.setLastCol(38); |
|
|
|
ExcelSelectionDto dogStatus = new ExcelSelectionDto(); |
|
|
|
dogStatus.setSheetIndex(0); |
|
|
|
dogStatus.setFirstCol(39); |
|
|
|
dogStatus.setLastCol(39); |
|
|
|
dogStatus.setExcelSelections(new String[]{"有","无"}); |
|
|
|
ExcelSelectionDto houseHeadRelation = new ExcelSelectionDto(); |
|
|
|
houseHeadRelation.setSheetIndex(1); |
|
|
|
houseHeadRelation.setFirstCol(1); |
|
|
|
houseHeadRelation.setLastCol(1); |
|
|
|
houseHeadRelation.setExcelSelections(new String[]{"子女","夫妻","父母","其他"}); |
|
|
|
ExcelSelectionDto residentSex = new ExcelSelectionDto(); |
|
|
|
residentSex.setSheetIndex(1); |
|
|
|
residentSex.setFirstCol(3); |
|
|
|
residentSex.setLastCol(3); |
|
|
|
residentSex.setExcelSelections(new String[]{"男","女"}); |
|
|
|
//遍历赋值选项
|
|
|
|
for (SysPopulationSimpleDictDTO sysPopulationSimpleDictDTO : sysPopulationSimpleDictDTOS) { |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.EDUCATION_LEVEL)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
educationLevel.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.POLITICS_STATUS)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
politicsStatus.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.BODY_STATUS)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
bodyStatus.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.MARITAL_STATUS)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
maritalStatus.setExcelSelections(data); |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.ACCOUNT_TYPE)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
accountType.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.EMPLOYMENT_STATUS)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
employedStatus.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.UNEMPLOYMENT_REASON)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
unEmployedReason.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.FAMILY_CATEGORY)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
familyCategory.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.HELP_STATUS)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
helpStatus.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if(sysPopulationSimpleDictDTO.getDicType().equals(PopulationDictConstant.MOTOR_VEHICLE_CATEGORY)){ |
|
|
|
List<SysSimpleDictDTO> sysSimpleDicts = sysPopulationSimpleDictDTO.getSysSimpleDicts(); |
|
|
|
String[] data = new String[sysSimpleDicts.size()]; |
|
|
|
for (int i = 0;i<sysSimpleDicts.size();i++) { |
|
|
|
data[i] = sysSimpleDicts.get(i).getDictName(); |
|
|
|
} |
|
|
|
motorVehicleCategory.setExcelSelections(data); |
|
|
|
continue; |
|
|
|
} |
|
|
|
public void exportModule(HttpServletResponse res) throws Exception{ |
|
|
|
//获取要下载的模板名称
|
|
|
|
String fileName = "居民信息录入模板"; |
|
|
|
//设置要下载的文件的名称
|
|
|
|
res.setCharacterEncoding("UTF-8"); |
|
|
|
res.setHeader("content-Type", "application/vnd.ms-excel"); |
|
|
|
res.setHeader("Content-Disposition", |
|
|
|
"attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls"); |
|
|
|
//获取文件的路径
|
|
|
|
InputStream input = this.getClass().getResourceAsStream("/excel/居民信息录入模板.xls"); |
|
|
|
OutputStream out = res.getOutputStream(); |
|
|
|
byte[] b = new byte[2048]; |
|
|
|
int len; |
|
|
|
while ((len = input.read(b)) != -1) { |
|
|
|
out.write(b, 0, len); |
|
|
|
} |
|
|
|
Collections.addAll(excelSelectionDtos,houseUse,educationLevel,politicsStatus,bodyStatus,maritalStatus,accountType,employedStatus,unEmployedReason,familyCategory,helpStatus,motorVehicleCategory,dogStatus,unEmployedRegister,reEmployedPermit,militaryService,houseHeadRelation,residentSex); |
|
|
|
ExcelUtils.exportExcelToTargetWithSheets(response, "居民信息录入模板",sheetNames,classes,excelSelectionDtos,basePopulationInformationExcels,baseResidentInformationExcels); |
|
|
|
} |
|
|
|
input.close(); |
|
|
|
|
|
|
|
} |
|
|
|
} |