springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseUseEnum.java
New file @@ -0,0 +1,45 @@ package com.panzhihua.common.enums; /** 实有房屋使用类型 * @author xyh * @date 2021/6/11 9:33 */ public enum PopulHouseUseEnum { SELF(1,"自住"), RENT(2,"租住"), ; private final Integer code; private final String name; PopulHouseUseEnum(Integer code,String name){ this.code = code; this.name = name; } public Integer getCode() { return code; } public String getName() { return name; } public static int getCodeByName(String name) { for (PopulHouseUseEnum item : PopulHouseUseEnum.values()) { if (item.getName().equals(name)) { return item.getCode(); } } return -1; } public static String getCnDescByName(Integer code) { for (PopulHouseUseEnum item : PopulHouseUseEnum.values()) { if (item.getCode().equals(code)) { return item.getName(); } } return "其他"; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java
New file @@ -0,0 +1,152 @@ package com.panzhihua.common.listen; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; import com.panzhihua.common.enums.*; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO; import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.*; import lombok.extern.slf4j.Slf4j; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; /** * @description: 社区楼栋导入监听 * @author: xyh */ @Slf4j public class ComMngBuildingExcelListen extends AnalysisEventListener<Map<Integer, String>> { private CommunityService communityService; private Long communityId; private static int headSize = 0; private Map<Integer, String> headData; public ComMngBuildingExcelListen(CommunityService communityService, Long communityId) { this.communityService = communityService; this.communityId = communityId; } private static final int BATCH_COUNT = 5000; List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>(); @Override public void invoke(Map<Integer, String> data, AnalysisContext context) { list.add(data); if (list.size() >= BATCH_COUNT) { saveData(); list.clear(); } } /** * * @param headMap * @param context */ @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { headSize = headMap.size(); headData = headMap; } @Override public void doAfterAllAnalysed(AnalysisContext context) { saveData(); log.info("所有数据解析完成!"); } /** * 不是固定的列只能手动处理 */ private void saveData() { try { ArrayList<ComMngBuildingExcelVO> voList = Lists.newArrayList(); List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>(); for(int i =1;i<list.size();i++){ Map<Integer, String> oneData = list.get(i); ComMngBuildingExcelVO vo = new ComMngBuildingExcelVO(); vo.setId(Snowflake.getId()); vo.setUseType(oneData.get(1)); vo.setBuildType(oneData.get(2)); vo.setAlley(oneData.get(3)); vo.setVillageName(oneData.get(4)); vo.setDoorNo(oneData.get(5)); vo.setName(oneData.get(6)); try{ vo.setUnitTotal(oneData.get(7)==null?0:Integer.valueOf(oneData.get(7))); }catch (Exception e){ vo.setUnitTotal(0); } try{ vo.setBuildFloorSum(oneData.get(8)==null?0:Integer.valueOf(oneData.get(8))); }catch (Exception e){ vo.setBuildFloorSum(0); } try{ vo.setEveryFloorSum(oneData.get(9)==null?0:Integer.valueOf(oneData.get(9))); }catch (Exception e){ vo.setEveryFloorSum(0); } try{ vo.setBuildUserSum(oneData.get(10)==null?0:Integer.valueOf(oneData.get(10))); }catch (Exception e){ vo.setBuildUserSum(0); } try{ vo.setElevatorTotal(oneData.get(11)==null?0:Integer.valueOf(oneData.get(11))); }catch (Exception e){ vo.setElevatorTotal(0); } vo.setPropertyCompanyName(oneData.get(12)); try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); vo.setBuildDate(sdf.parse(oneData.get(13))); }catch (Exception e){ } vo.setRemark(oneData.get(14)); vo.setGrid(oneData.get(15)); voList.add(vo); } //根据list中的IdCard城市来去重 List<ComMngBuildingExcelVO> newVoList = voList.stream().filter(ListUtils.distinctByKey(ComMngBuildingExcelVO::getName)).collect(Collectors.toList()); R r = communityService.listSaveBuildingExcelVO(newVoList, communityId,123141L); if (!R.isOk(r)) { String errMsg = r.getMsg(); List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class); if(!errorList.isEmpty()){ populationImportErrorVOList.addAll(errorList); } throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList)); }else{ if(!populationImportErrorVOList.isEmpty()){ throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList)); } } } catch (NumberFormatException e) { } } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -16,10 +16,12 @@ import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; /** @@ -135,15 +137,15 @@ } } if(StringUtils.isNotEmpty(oneData.get(2))){ String nation = oneData.get(2); if(!nation.contains("族")){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第3列"); importErrorVO.setErrorMsg("您填写的民族格式有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } // String nation = oneData.get(2); // if(!nation.contains("族")){ // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); // importErrorVO.setErrorPosition("第" + index + "行,第3列"); // importErrorVO.setErrorMsg("您填写的民族格式有误"); // populationImportErrorVOList.add(importErrorVO); // index++; // continue; // } vo.setNation(oneData.get(2)); } if(StringUtils.isNotEmpty(oneData.get(3))){ @@ -159,7 +161,7 @@ vo.setPoliticalOutlook(isOk); } if(StringUtils.isNotEmpty(oneData.get(4))){ Integer isOk = PopulIsOkEnum.getCodeByName(oneData.get(4)); Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第5列"); @@ -170,6 +172,7 @@ } vo.setIsRent(isOk); } //TODO 先存中文后期改为枚举 if(StringUtils.isNotEmpty(oneData.get(5))){ Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(5)); if(isOk.equals(-1)){ @@ -228,64 +231,16 @@ } vo.setHouseNo(oneData.get(10).trim()); if(StringUtils.isNotEmpty(oneData.get(11))){ vo.setPhone(oneData.get(11).trim()); vo.setBuildPurpose(oneData.get(11).trim()); } if(StringUtils.isNotEmpty(oneData.get(12))){ vo.setNativePlace(oneData.get(12).trim()); vo.setBuildArea(oneData.get(12).trim()); } if(StringUtils.isNotEmpty(oneData.get(13))){ Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(13)); Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim()); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第14列"); importErrorVO.setErrorMsg("您填写的文化程度有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setCultureLevel(isOk); } if(StringUtils.isNotEmpty(oneData.get(14))){ Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(14)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第14列"); importErrorVO.setErrorMsg("您填写的婚姻状况有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setMarriage(isOk); } if(StringUtils.isNotEmpty(oneData.get(15))){ vo.setHealthy(oneData.get(15).trim()); } if(StringUtils.isNotEmpty(oneData.get(16))){ vo.setWorkCompany(oneData.get(16).trim()); } if(StringUtils.isNotEmpty(oneData.get(17))){ vo.setRemark(oneData.get(17).trim()); } if(StringUtils.isNotEmpty(oneData.get(18))){ vo.setCensusRegister(oneData.get(18).trim()); } if(StringUtils.isNotEmpty(oneData.get(19))){ Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(19)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第20列"); importErrorVO.setErrorMsg("您填写的外地or本地有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setOutOrLocal(isOk); } if(StringUtils.isNotEmpty(oneData.get(20))){ Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(20)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第21列"); importErrorVO.setErrorMsg("您填写的房屋状态有误"); populationImportErrorVOList.add(importErrorVO); index++; @@ -293,43 +248,96 @@ } vo.setHouseStatus(isOk); } if(StringUtils.isNotEmpty(oneData.get(21))){ Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(21)); if(StringUtils.isNotEmpty(oneData.get(14))){ Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第22列"); importErrorVO.setErrorPosition("第" + index + "行,第15列"); importErrorVO.setErrorMsg("您填写的房屋用途有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setHousePurpose(isOk); vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim())); } if(StringUtils.isNotEmpty(oneData.get(22))){ Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(22)); if(StringUtils.isNotEmpty(oneData.get(15))){ Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第23列"); importErrorVO.setErrorPosition("第" + index + "行,第16列"); importErrorVO.setErrorMsg("您填写的管控状态有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setControlStatus(isOk); vo.setHouseStatus(isOk); } if(StringUtils.isNotEmpty(oneData.get(23))){ Integer isOk = PopulIsOksEnum.getCodeByName(oneData.get(23)); if(StringUtils.isNotEmpty(oneData.get(16))){ vo.setPhone(oneData.get(16).trim()); } if(StringUtils.isNotEmpty(oneData.get(17))){ vo.setNativePlace(oneData.get(17).trim()); } if(StringUtils.isNotEmpty(oneData.get(18))){ Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(18)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第23列"); importErrorVO.setErrorMsg("您填写的是否是居住地有误"); importErrorVO.setErrorPosition("第" + index + "行,第19列"); importErrorVO.setErrorMsg("您填写的文化程度有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setIsResidence(isOk); vo.setCultureLevel(isOk); } for (int i = 24; i < headSize; i++) { if(StringUtils.isNotEmpty(oneData.get(19))){ Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(19)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第20列"); importErrorVO.setErrorMsg("您填写的婚姻状况有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setMarriage(isOk); } if(StringUtils.isNotEmpty(oneData.get(20))){ vo.setHealthy(oneData.get(20).trim()); } if(StringUtils.isNotEmpty(oneData.get(21))){ vo.setWorkCompany(oneData.get(21).trim()); } if(StringUtils.isNotEmpty(oneData.get(22))){ Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(22)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第23列"); importErrorVO.setErrorMsg("您填写的外地or本地有误"); populationImportErrorVOList.add(importErrorVO); index++; continue; } vo.setOutOrLocal(isOk); } if(StringUtils.isNotEmpty(oneData.get(23))){ vo.setCensusRegister(oneData.get(23).trim()); } if(StringUtils.isNotEmpty(oneData.get(24))){ vo.setRemark(oneData.get(24).trim()); } if(StringUtils.isNotEmpty(oneData.get(25))){ vo.setIdCardPositive(oneData.get(25).trim()); } if(StringUtils.isNotEmpty(oneData.get(26))){ vo.setIdCardBack(oneData.get(26).trim()); } if(StringUtils.isNotEmpty(oneData.get(27))){ vo.setHouseHold(oneData.get(27).trim()); } for (int i = 28; i < headSize; i++) { if (oneData.get(i) != null && oneData.get(i).equals("是")) { vo.getUserTagStr().add(headData.get(i).substring(0,headData.get(i).indexOf("("))); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngBuildingExcelVO.java
New file @@ -0,0 +1,63 @@ package com.panzhihua.common.model.vos.community; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @author xyh * @date 2021/6/10 12:43 */ @Data public class ComMngBuildingExcelVO implements Serializable { private static final long serialVersionUID = 1719392023800643085L; private Long id; @ExcelProperty(value = "楼房属性", index = 1) private String useType; @ExcelProperty(value = "建筑类型", index = 2) private String buildType; @ExcelProperty(value = "街路巷", index = 3) private String alley; @ExcelProperty(value = "小区名称", index = 4) private String villageName; @ExcelProperty(value = "门牌号", index = 5) private String doorNo; @ExcelProperty(value = "楼栋号/楼栋名称", index = 6) private String name; @ExcelProperty(value = "单元数", index = 7) private Integer unitTotal; @ExcelProperty(value = "楼层数", index = 8) private Integer buildFloorSum; @ExcelProperty(value = "每层户数", index = 9) private Integer everyFloorSum; @ExcelProperty(value = "总户数", index = 10) private Integer buildUserSum; @ExcelProperty(value = "电梯", index = 11) private Integer elevatorTotal; @ExcelProperty(value = "物业公司名称", index = 12) private String propertyCompanyName; @ExcelProperty(value = "建筑年代", index = 13) private Date buildDate; @ExcelProperty(value = "备注", index = 14) private String remark; @ExcelProperty(value = "网格划分", index = 15) private String grid; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
@@ -35,7 +35,7 @@ @ExcelProperty(value = "街路巷", index = 6) private String road; @ExcelProperty(value = "门牌号", index = 7) @ExcelProperty(value = "小区号", index = 7) private String doorNo; @ExcelProperty(value = "楼排号", index = 8) @@ -47,43 +47,81 @@ @ExcelProperty(value = "户室(房间号)", index = 10) private String houseNo; @ExcelProperty(value = "联系方式", index = 11) private String phone; @ExcelProperty(value = "建筑用途", index = 11) private String buildPurpose; @ExcelProperty(value = "籍贯", index = 12) private String nativePlace; @ExcelProperty(value = "建筑面积", index = 12) private String buildArea; @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 13) private Integer cultureLevel; @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 14) private Integer marriage; @ExcelProperty(value = "健康状况", index = 15) private String healthy; @ExcelProperty(value = "工作单位", index = 16) private String workCompany; @ExcelProperty(value = "备注", index = 17) private String remark; @ExcelProperty(value = "户口所在地", index = 18) private String censusRegister; @ExcelProperty(value = "外地or本地(1.本地 2.外地)", index = 19) private Integer outOrLocal; @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 20) @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 13) private Integer houseStatus; @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 21) @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 14) private Integer housePurpose; @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 22) @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 15) private Integer controlStatus; @ExcelProperty(value = "是否是居住地(1.是 2.否)", index = 23) @ExcelProperty(value = "联系方式", index = 16) private String phone; @ExcelProperty(value = "籍贯", index = 17) private String nativePlace; @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 18) private Integer cultureLevel; @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 19) private Integer marriage; @ExcelProperty(value = "健康状况", index = 20) private String healthy; @ExcelProperty(value = "工作单位", index = 21) private String workCompany; @ExcelProperty(value = "外地or本地(1.本地 2.外地)", index = 22) private Integer outOrLocal; @ExcelProperty(value = "户口所在地", index = 23) private String censusRegister; @ExcelProperty(value = "备注", index = 24) private String remark; @ExcelProperty(value = "证件照(人面像)照片", index = 25) private String idCardPositive; @ExcelProperty(value = "证件照(国徽面)照片", index = 26) private String idCardBack; @ExcelProperty(value = "户口本照片", index = 27) private String houseHold; @ExcelProperty(value = "退役军人(是/否)", index = 28) private Integer veterans; @ExcelProperty(value = "残疾人(是/否)", index = 29) private Integer disabled; @ExcelProperty(value = "低保户(是/否)", index = 30) private Integer lowIncomeHold; @ExcelProperty(value = "低收入人员(是/否)", index = 31) private Integer lowIncome; @ExcelProperty(value = "高龄老人(是/否)", index = 32) private Integer elder; @ExcelProperty(value = "特服家庭(是/否)", index = 33) private Integer specialFamily; @ExcelProperty(value = "重点人员(是/否)", index = 34) private Integer important; @ExcelProperty(value = "特殊情况(重大病史/孕)(是/否)", index = 35) private Integer specialCase; private Integer isResidence; /** springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2727,4 +2727,13 @@ */ @PostMapping("/vaccines/admin/enroll/type/list") R getEnrollTypeListByAdmin(); /** * 批量保存楼栋 * @param newVoList * @param communityId * @return */ @PostMapping("/building/batchSave") R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,@RequestParam("communityId") Long communityId,@RequestParam("streetId")Long streetId); } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
New file @@ -0,0 +1,54 @@ package com.panzhihua.community_backstage.api; import com.alibaba.excel.EasyExcel; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.listen.ComMngBuildingExcelListen; import com.panzhihua.common.listen.ComMngPopulationServeExcelListen; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; /** * @author xyh * @date 2021/6/10 12:34 */ @Slf4j @Api(tags = {"社区管理"}) @RestController @RequestMapping("/building") public class BuildingApi extends BaseController { @Resource private CommunityService communityService; @ApiOperation(value = "excel导入楼栋信息") @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date") public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) { // String fileName = file.getOriginalFilename(); // log.info("传入文件名字【{}】", fileName); InputStream inputStream; try { inputStream = file.getInputStream(); long communityId = 45L; ComMngBuildingExcelListen comMngBuildingExcelListen = new ComMngBuildingExcelListen(communityService, communityId); EasyExcel.read(inputStream, null, comMngBuildingExcelListen).sheet().doRead(); } catch (IOException e) { log.error("导入模板失败【{}】", e.getMessage()); e.printStackTrace(); } return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -88,8 +88,8 @@ InputStream inputStream = null; try { inputStream = file.getInputStream(); LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, loginUserInfo.getCommunityId()); // LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, 45L); EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead(); } catch (IOException e) { log.error("导入模板失败【{}】", e.getMessage()); springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java
New file @@ -0,0 +1,31 @@ package com.panzhihua.service_community.api; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.service_community.service.ComActBuildingService; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.A; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * @author xyh * @date 2021/6/10 13:39 */ @Slf4j @RestController @RequestMapping("/building") public class BuildingApi { @Resource private ComActBuildingService comActBuildingService; @PostMapping("/batchSave") R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList, @RequestParam("communityId") Long communityId, @RequestParam("streetId")Long streetId){ return comActBuildingService.batchSaveBuilding(newVoList,communityId,streetId); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java
New file @@ -0,0 +1,18 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.service_community.model.dos.ComMngBuildingDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; /** * @author xyh * @date 2021/6/10 13:47 */ @Mapper public interface ComMngBuildingDAO extends BaseMapper<ComMngBuildingDO> { @Select("select street_id,act_id,village_id,name from com_mng_building") List<ComMngBuildingDO> findAllBuilding(); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngBuildingDO.java
New file @@ -0,0 +1,124 @@ package com.panzhihua.service_community.model.dos; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * <p> * 楼栋表 * </p> * * @author xyh * @since 2021-06-10 */ @Data @TableName(value = "com_mng_building") public class ComMngBuildingDO implements Serializable { private static final long serialVersionUID = 7264872297827113113L; @TableId(value = "id",type = IdType.INPUT) private Long id; /** * 街道Id */ private Long streetId; /** * 社区id */ private Long actId; /** * 小区ID */ private Long villageId; /** * 楼栋号 */ private String name; /** * 楼层数量 */ private Integer buildFloorSum; /** * 每个楼层有多少户 */ private Integer everyFloorSum; /** * 栋楼总共有多少户 */ private Integer buildUserSum; /** * 建筑类型(高层、洋房等) */ private String buildType; /** * 使用类型 */ private String useType; /** * 建成时间 */ private Date buildDate; /** * 单元数 */ private Integer unitTotal; /** * 电梯数 */ private Integer elevatorTotal; /** * 楼栋状态(在用、待拆迁等) */ private Long buildStatus; /** * 层次递归字段(街道>社区>小区>楼栋) */ private String path; /** * 经度 */ private String lng; /** * 维度 */ private String lat; /** * 创建时间 */ private Date createAt; /** * 更新时间 */ private Date updateAt; /** * 备注 */ private String remark; private Long gridId; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java
New file @@ -0,0 +1,18 @@ package com.panzhihua.service_community.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.service_community.model.dos.ComMngBuildingDO; import java.util.List; /** * @author xyh * @date 2021/6/10 13:41 */ public interface ComActBuildingService extends IService<ComMngBuildingDO> { R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId, Long streetId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
New file @@ -0,0 +1,59 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComActVillageDAO; import com.panzhihua.service_community.dao.ComMngBuildingDAO; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.model.dos.ComMngBuildingDO; import com.panzhihua.service_community.model.dos.ComMngVillageDO; import com.panzhihua.service_community.service.ComActBuildingService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; /** * @author xyh * @date 2021/6/10 13:46 */ @Service public class ComActBuildingServiceImpl extends ServiceImpl<ComMngBuildingDAO, ComMngBuildingDO> implements ComActBuildingService { @Resource private ComActVillageDAO comActVillageDAO; @Resource private ComActDAO comActDAO; @Override public R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId, Long streetId) { ArrayList<ComMngBuildingDO> list = Lists.newArrayList(); for(ComMngBuildingExcelVO vo:newVoList){ ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley",vo.getAlley()).eq("house_num",vo.getDoorNo()).eq("community_id",communityId)); if(comMngVillageDO == null){ continue; } ComMngBuildingDO comMngBuildingDO = new ComMngBuildingDO(); BeanUtils.copyProperties(vo,comMngBuildingDO); comMngBuildingDO.setActId(comMngVillageDO.getCommunityId()); comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId()); comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId()); ComActDO actDO = comActDAO.selectById(comMngVillageDO.getCommunityId()); StringBuilder path = new StringBuilder(); path.append(vo.getAlley()).append(">").append(actDO.getName()).append(vo.getVillageName()).append(">").append(vo.getName()); comMngBuildingDO.setPath(path.toString()); comMngBuildingDO.setGridId(null); list.add(comMngBuildingDO); } this.saveBatch(list); return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.base.Joiner; import com.google.common.collect.Lists; import com.panzhihua.common.enums.PopulHouseUseEnum; import com.panzhihua.common.enums.PopulIsOksEnum; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.*; @@ -35,6 +36,7 @@ import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.*; @@ -354,12 +356,22 @@ //查询该房屋未建立,执行建立房屋信息 populationHouseDO = new ComMngPopulationHouseDO(); populationHouseDO.setVillageId(comMngVillageDO.getVillageId()); populationHouseDO.setAlley(vo.getRoad()); populationHouseDO.setHouseNum(vo.getDoorNo()); populationHouseDO.setCode(vo.getDoorNo()); populationHouseDO.setStatus(vo.getIsRent()); populationHouseDO.setCommunityId(communityId); populationHouseDO.setFloor(vo.getFloor()); populationHouseDO.setUnitNo(vo.getUnitNo()); populationHouseDO.setHouseNo(vo.getHouseNo()); populationHouseDO.setAddress(address); populationHouseDO.setUpdateAt(new Date()); populationHouseDO.setConstructPurpose(vo.getBuildPurpose()); try { populationHouseDO.setConstructArea(new BigDecimal(vo.getBuildArea())); }catch (Exception e){ } if(StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())){ populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode()); } @@ -445,7 +457,7 @@ } }else { //实有人口已存在,判断录入的这个房屋信息是否是用户的居住地 if(vo.getIsResidence() != null && vo.getIsResidence().equals(PopulIsOksEnum.YES.getCode())){ if(vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())){ populationDO.setRoad(vo.getRoad()); populationDO.setDoorNo(vo.getDoorNo()); populationDO.setFloor(vo.getFloor());