springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java
@@ -5,6 +5,9 @@ import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO; import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComSwDangerReportVO; import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO; import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,10 +35,13 @@ * @param comSwPatrolRecordPageDTO 查询参数 * @return 分页集合 */ @ApiOperation(value = "分页查询巡查记录") @ApiOperation(value = "分页查询巡查记录", response = ComSwPatrolRecordVO.class) @PostMapping("/pagePatrolRecord") public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){ Long communityId = this.getCommunityId(); if (comSwPatrolRecordPageDTO.getSelectPerson().equals(1)) { comSwPatrolRecordPageDTO.setPatrolPerson(String.valueOf(this.getLoginUserInfo().getUserId())); } comSwPatrolRecordPageDTO.setCommunityId(communityId); return communityService.pagePatrolRecord(comSwPatrolRecordPageDTO); } @@ -59,7 +65,7 @@ * @param patrolRecordId 巡查记录id * @return 巡查记录详情查询结果 */ @ApiOperation(value = "根据巡查记录id查询详情") @ApiOperation(value = "根据巡查记录id查询详情", response = ComSwPatrolRecordVO.class) @PostMapping("/detailPatrolRecord") public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) { return communityService.detailPatrolRecord(patrolRecordId); @@ -70,7 +76,7 @@ * @param comSwPatrolRecordPageDTO 查询参数 * @return 安全工作记录分页集合 */ @ApiOperation(value = "分页查询安全工作记录") @ApiOperation(value = "分页查询安全工作记录", response = ComSwSafetyWorkRecordVO.class) @PostMapping("/pageSafetyWorkRecord") public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){ Long communityId = this.getCommunityId(); @@ -84,7 +90,7 @@ * @param safetyWorkRecordId 安全工作记录 * @return 安全工作记录详情查询结果 */ @ApiOperation(value = "根据安全工作记录id查询详情") @ApiOperation(value = "根据安全工作记录id查询详情", response = ComSwSafetyWorkRecordVO.class) @PostMapping("/detailSafetyWorkRecord") public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) { return communityService.detailSafetyWorkRecord(safetyWorkRecordId); @@ -95,7 +101,7 @@ * @param comSwPatrolRecordPageDTO 查询参数 * @return 隐患报告分页集合 */ @ApiOperation(value = "分页查询隐患报告") @ApiOperation(value = "分页查询隐患报告", response = ComSwDangerReportVO.class) @PostMapping("/pageDangerReport") public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){ Long communityId = this.getCommunityId(); @@ -109,7 +115,7 @@ * @param dangerReportId 隐患报告id * @return 隐患报告详情查询结果 */ @ApiOperation(value = "根据隐患报告id查询详情") @ApiOperation(value = "根据隐患报告id查询详情", response = ComSwDangerReportVO.class) @PostMapping("/detailDangerReport") public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) { return communityService.detailDangerReport(dangerReportId); @@ -121,7 +127,7 @@ * @param patrolRecordId 巡查记录id * @return 隐患报告详情查询结果 */ @ApiOperation(value = "根据隐患报告id查询详情") @ApiOperation(value = "根据巡查记录id查询隐患报告详情", response = ComSwDangerReportVO.class) @PostMapping("/detailDangerReportByPrId") public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) { return communityService.detailDangerReportByPrId(patrolRecordId); springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java
@@ -10,6 +10,7 @@ private String code; private String msg; private String data; public ServiceException() { super(); } @@ -27,6 +28,13 @@ this.msg = errorMsg; } public ServiceException(String errorCode, String errorMsg,String data) { super(errorCode); this.code = errorCode; this.msg = errorMsg; this.data = data; } public ServiceException(String errorCode, String errorMsg, Throwable cause) { super(errorCode, cause); this.code = errorCode; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -1,21 +1,37 @@ package com.panzhihua.common.listen; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import com.panzhihua.common.constants.BcDictionaryConstants; import com.panzhihua.common.enums.*; import com.panzhihua.common.excel.CustomSheetWriteHandler; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.BcDictionaryVO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO; import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.*; import io.swagger.models.auth.In; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.RequestBody; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -35,10 +51,25 @@ private Map<Integer, String> headData; private String userName; // FTP 登录密码 private String password; // FTP 服务器地址IP地址 private String host; // FTP 端口 private int port; private String excelUrl; public ComMngPopulationServeExcelListen(CommunityService communityService, Long communityId) { public static String loadUrl; public ComMngPopulationServeExcelListen(CommunityService communityService, Long communityId, String userName, String password, String host, int port, String excelUrl) { this.communityService = communityService; this.communityId = communityId; this.userName = userName; this.password = password; this.host = host; this.port = port; this.excelUrl = excelUrl; } /** @@ -91,25 +122,34 @@ try { ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList(); List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>(); ArrayList<ComMngPopulationMistakeExcelVO> mistakes = Lists.newArrayList(); for (Map<Integer, String> oneData : list) { ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO(); //姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日 if(StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))){ if(StringUtils.isEmpty(oneData.get(0))){ ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第1列"); importErrorVO.setErrorMsg("名字不可为空,请填写姓名"); populationImportErrorVOList.add(importErrorVO); index++; setMistake(oneData, mistake); mistake.setMistake("名字不可为空,请填写姓名"); mistakes.add(mistake); continue; } vo.setName(oneData.get(0)); if(StringUtils.isEmpty(oneData.get(1))){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1)); importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号"); populationImportErrorVOList.add(importErrorVO); index++; setMistake(oneData, mistake); mistake.setMistake("身份证号不可为空,请填写身份证号"); mistakes.add(mistake); continue; } @@ -120,6 +160,10 @@ importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确"); mistakes.add(mistake); continue; } vo.setCardNo(oneData.get(1).toUpperCase()); @@ -155,7 +199,20 @@ vo.setNation(oneData.get(2)); } if(StringUtils.isNotEmpty(oneData.get(3))){ vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3))); Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第4列"); importErrorVO.setErrorMsg("您填写的政治面貌有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的政治面貌有误"); mistakes.add(mistake); continue; } vo.setPoliticalOutlook(isOk); } if(StringUtils.isNotEmpty(oneData.get(4))){ Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4)); @@ -165,6 +222,10 @@ importErrorVO.setErrorMsg("您填写的是否租住有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的是否租住有误"); mistakes.add(mistake); continue; } vo.setIsRent(isOk); @@ -197,6 +258,10 @@ importErrorVO.setErrorMsg("您填写的与户主关系有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的与户主关系有误"); mistakes.add(mistake); continue; }else{ vo.setRelation(isOk); @@ -208,6 +273,10 @@ importErrorVO.setErrorMsg("街路巷不可为空"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("街路巷不可为空"); mistakes.add(mistake); continue; } vo.setRoad(oneData.get(6)); @@ -217,6 +286,10 @@ importErrorVO.setErrorMsg("小区号不可为空"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("小区号不可为空"); mistakes.add(mistake); continue; } vo.setDoorNo(oneData.get(7).trim()); @@ -226,6 +299,10 @@ importErrorVO.setErrorMsg("楼排号不可为空"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("楼排号不可为空"); mistakes.add(mistake); continue; } vo.setFloor(oneData.get(8).trim()); @@ -235,6 +312,10 @@ importErrorVO.setErrorMsg("单元号不可为空"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("单元号不可为空"); mistakes.add(mistake); continue; } vo.setUnitNo(oneData.get(9).trim()); @@ -244,6 +325,10 @@ importErrorVO.setErrorMsg("户室不可为空"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("户室不可为空"); mistakes.add(mistake); continue; } vo.setHouseNo(oneData.get(10).trim()); @@ -261,6 +346,10 @@ importErrorVO.setErrorMsg("您填写的房屋状态有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的房屋状态有误"); mistakes.add(mistake); continue; } vo.setHouseStatus(isOk); @@ -273,6 +362,10 @@ importErrorVO.setErrorMsg("您填写的房屋用途有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的房屋用途有误"); mistakes.add(mistake); continue; } vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim())); @@ -285,6 +378,10 @@ importErrorVO.setErrorMsg("您填写的管控状态有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的管控状态有误"); mistakes.add(mistake); continue; } vo.setControlStatus(isOk); @@ -297,7 +394,20 @@ vo.setNativePlace(oneData.get(17).trim()); } if(StringUtils.isNotEmpty(oneData.get(18))){ vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18))); Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(18)); if(isOk.equals(-1)){ ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); importErrorVO.setErrorPosition("第" + index + "行,第19列"); importErrorVO.setErrorMsg("您填写的文化程度有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的文化程度有误"); mistakes.add(mistake); continue; } vo.setCultureLevel(isOk); } if(StringUtils.isNotEmpty(oneData.get(19))){ // String ma = convertMarriage(oneData.get(19)); @@ -309,6 +419,10 @@ importErrorVO.setErrorMsg("您填写的婚姻状况有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的婚姻状况有误"); mistakes.add(mistake); continue; }else{ vo.setMarriage(isOk); @@ -339,6 +453,10 @@ importErrorVO.setErrorMsg("您填写的本地/外地有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的本地/外地有误"); mistakes.add(mistake); continue; } vo.setOutOrLocal(isOk); @@ -361,6 +479,10 @@ importErrorVO.setErrorMsg("您填写的人员类型有误"); populationImportErrorVOList.add(importErrorVO); index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); setMistake(oneData, mistake); mistake.setMistake("您填写的人员类型有误"); mistakes.add(mistake); continue; } vo.setPersonType(isOk); @@ -439,14 +561,29 @@ List<ComMngPopulationServeExcelVO> newVoList = voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass)).collect(Collectors.toList()); R r = communityService.listSavePopulationServeExcelVO(newVoList, communityId); if (!R.isOk(r)) { List<ComMngPopulationMistakeExcelVO> list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationMistakeExcelVO.class); String errMsg = r.getMsg(); List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class); if(!errorList.isEmpty()){ populationImportErrorVOList.addAll(errorList); } mistakes.addAll(list); R result = mistakeExportPopulation(mistakes); loadUrl = (String)result.getData(); ComMngPopulationImportErrorVO comMngPopulationImportErrorVO = new ComMngPopulationImportErrorVO(); comMngPopulationImportErrorVO.setErrorPosition("loadUrl"); comMngPopulationImportErrorVO.setErrorMsg(loadUrl); populationImportErrorVOList.add(comMngPopulationImportErrorVO); throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList)); }else{ // mistakes.addAll((List<ComMngPopulationMistakeExcelVO>)r.getData()); R result = mistakeExportPopulation(mistakes); loadUrl = (String)result.getData(); if(!populationImportErrorVOList.isEmpty()){ ComMngPopulationImportErrorVO comMngPopulationImportErrorVO = new ComMngPopulationImportErrorVO(); comMngPopulationImportErrorVO.setErrorPosition("loadUrl"); comMngPopulationImportErrorVO.setErrorMsg(loadUrl); populationImportErrorVOList.add(comMngPopulationImportErrorVO); throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList)); } } @@ -469,6 +606,96 @@ } } private void setMistake(Map<Integer, String> map, ComMngPopulationMistakeExcelVO vo){ vo.setName(map.get(0)); vo.setCardNo(map.get(1)); vo.setNation(map.get(2)); vo.setPoliticalOutlook(map.get(3)); vo.setIsRent(map.get(4)); vo.setRelation(map.get(5)); vo.setRoad(map.get(6)); vo.setDoorNo(map.get(7)); vo.setFloor(map.get(8)); vo.setUnitNo(map.get(9)); vo.setHouseNo(map.get(10)); vo.setBuildPurpose(map.get(11)); vo.setBuildArea(map.get(12)); vo.setHouseStatus(map.get(13)); vo.setHousePurpose(map.get(14)); vo.setControlStatus(map.get(15)); vo.setPhone(map.get(16)); vo.setNativePlace(map.get(17)); vo.setCultureLevel(map.get(18)); vo.setMarriage(map.get(19)); vo.setHealthy(map.get(20)); vo.setBloodType(map.get(21)); vo.setReligion(map.get(22)); vo.setProfession(map.get(23)); vo.setWorkCompany(map.get(24)); vo.setOutOrLocal(map.get(25)); vo.setCensusRegister(map.get(26)); vo.setResidence(map.get(27)); // vo.setAddress(map.get(28)); vo.setPersonType(map.get(28)); vo.setCountry(map.get(29)); vo.setStringOfDeparture(map.get(30)); vo.setPersonStatus(map.get(31)); vo.setMonthlyIncome(map.get(32)); vo.setFamilyStatus(map.get(33)); vo.setGoalInChina(map.get(34)); vo.setStringOfArrival(map.get(35)); vo.setRemark(map.get(36)); vo.setIdCardPositive(map.get(37)); vo.setIdCardBack(map.get(38)); vo.setHouseHold(map.get(39)); vo.setDeath(map.get(40)); } private R mistakeExportPopulation(List<ComMngPopulationMistakeExcelVO> vo) { //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址 String ftpUrl = "/mnt/data/web/excel/"; String name = "实有人口错误数据.xlsx"; try { SFTPUtil sftp = new SFTPUtil(userName, password, host, port); sftp.login(); boolean existDir = sftp.isExistDir(ftpUrl + name); if (!existDir) { String property = System.getProperty("user.dir"); String fileName = property + File.separator + name; // 这里 需要指定写用哪个class去写 ExcelWriter excelWriter = null; InputStream inputStream = null; try { excelWriter = EasyExcel.write(fileName, ComMngPopulationMistakeExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).registerWriteHandler(new CustomSheetWriteHandler()).build(); WriteSheet writeSheet = EasyExcel.writerSheet("实有人口错误数据").build(); excelWriter.write(vo, writeSheet); excelWriter.finish(); File file = new File(fileName); inputStream = new FileInputStream(file); sftp.uploadMore(ftpUrl, name, inputStream); sftp.logout(); inputStream.close(); String absolutePath = file.getAbsolutePath(); boolean delete = file.delete(); log.info("删除excel【{}】结果【{}】", absolutePath, delete); } finally { // 千万别忘记finish 会帮忙关闭流 if (inputStream != null) { inputStream.close(); } if (excelWriter != null) { excelWriter.finish(); } } } return R.ok(excelUrl + name); } catch (Exception e) { e.printStackTrace(); log.error("文件传输失败【{}】", e.getMessage()); return R.fail(); } } private String convertMarriage(String ma) { if(Objects.equals("已",ma) || Objects.equals("一",ma)){ springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordPageDTO.java
@@ -64,4 +64,10 @@ @ApiModelProperty("状态(1.待处理 2.待整改 3.已整改)") private String status; /** * 查看人(1.全部 2.只看我的) */ @ApiModelProperty("查看人(1.全部 2.只看我的)") private Integer selectPerson; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java
New file @@ -0,0 +1,148 @@ package com.panzhihua.common.model.vos.community; import com.alibaba.excel.annotation.ExcelProperty; import com.google.common.collect.Lists; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @description: 批量导入实有人口 * @author: llming */ @Data @EncryptDecryptClass public class ComMngPopulationMistakeExcelVO implements Serializable { @ExcelProperty(value = "姓名", index = 0) private String name; @EncryptDecryptField private String cardNo; @ExcelProperty(value = "民族", index = 2) private String nation; @ExcelProperty(value = "政治面貌(群众/中共党员/共青团员)", index = 3) private String politicalOutlook; @ExcelProperty(value = "是否租住", index = 4) private String isRent; @ExcelProperty(value = "与户主关系(户主/配偶/子女/孙女/父母/其他)", index = 5) private String relation; @ExcelProperty(value = "街/路/巷", index = 6) private String road; @ExcelProperty(value = "小区号(政府对于每个小区都有特定编号)", index = 7) private String doorNo; @ExcelProperty(value = "楼排号", index = 8) private String floor; @ExcelProperty(value = "单元号", index = 9) private String unitNo; @ExcelProperty(value = "户室(四位数表示。前两位楼层,后两位户号)", index = 10) private String houseNo; @ExcelProperty(value = "建筑用途", index = 11) private String buildPurpose; @ExcelProperty(value = "建筑面积", index = 12) private String buildArea; @ExcelProperty(value = "房屋状态(自住/租住/其他)", index = 13) private String houseStatus; @ExcelProperty(value = "房屋用途(住宅/公寓/宿舍/仓库/其他)", index = 14) private String housePurpose; @ExcelProperty(value = "管控状态(常规/关注/管控)", index = 15) private String controlStatus; @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 String cultureLevel; @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 19) private String marriage; @ExcelProperty(value = "健康状况", index = 20) private String healthy; @ExcelProperty(value = "血型", index = 21) private String bloodType; @ExcelProperty(value = "宗教信仰", index = 22) private String religion; @ExcelProperty(value = "职业", index = 23) private String profession; @ExcelProperty(value = "工作单位/学校", index = 24) private String workCompany; @ExcelProperty(value = "本地/外地", index = 25) private String outOrLocal; @ExcelProperty(value = "户口所在地", index = 26) private String censusRegister; @ExcelProperty(value = "是否居住地(是/否)", index = 27) private String residence; // @ExcelProperty(value = "居住地址", index = 28) // private String address; @ExcelProperty(value = "人员类型(户籍人员/留守人员/外地人员/境外人员)", index = 28) private String personType; @ExcelProperty(value = "国家", index = 29) private String country; @ExcelProperty(value = "离开日期(境外人员填写)", index = 30) private String StringOfDeparture; @ExcelProperty(value = "人员状态(正常/失联/出国)", index = 31) private String personStatus; @ExcelProperty(value = "月收入情况", index = 32) private String monthlyIncome; @ExcelProperty(value = "家庭情况", index = 33) private String familyStatus; @ExcelProperty(value = "来华目的(境外人员填写)", index = 34) private String goalInChina; @ExcelProperty(value = "抵达日期(境外人员填写)", index = 35) private String StringOfArrival; @ExcelProperty(value = "备注", index = 36) private String remark; @ExcelProperty(value = "证件照(人面像)照片", index = 37) private String idCardPositive; @ExcelProperty(value = "证件照(国徽面)照片", index = 38) private String idCardBack; @ExcelProperty(value = "户口本照片", index = 39) private String houseHold; @ExcelProperty(value = "是否死亡(是/否)", index = 40) private String death; @ExcelProperty(value = "错误信息", index = 41) private String mistake; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
@@ -172,6 +172,9 @@ @ExcelProperty(value = "特殊情况(重大病史/孕)(是/否)", index = 49) private Integer specialCase; @ExcelProperty(value = "错误信息", index = 50) private Integer mistake; /** * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行MD5加密实现去重 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java
@@ -49,7 +49,7 @@ */ @ApiModelProperty("巡查时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date PatrolTime; private Date patrolTime; /** * 天气 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -3832,4 +3832,12 @@ */ @PostMapping("/patrolRecord/dangerReport/export") R exportDangerReport(@RequestBody List<Long> dangerReportIds); /** * 巡查记录统计接口 * * @return 统计结果 */ @PostMapping("/patrolRecord/statistics") R patrolRecordStatistics(@RequestParam(value = "communityId") Long communityId); } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
@@ -11,9 +11,7 @@ import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO; import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngCarExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationTotalVO; import com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.SFTPUtil; import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler; @@ -65,7 +63,7 @@ * @param comSwPatrolRecordPageDTO 查询参数 * @return 分页集合 */ @ApiOperation(value = "分页查询巡查记录") @ApiOperation(value = "分页查询巡查记录", response = ComSwPatrolRecordVO.class) @PostMapping("/pagePatrolRecord") public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){ Long communityId = this.getCommunityId(); @@ -243,12 +241,17 @@ return R.fail("未查询到隐患报告"); } @ApiOperation(value = "巡查记录统计接口", response = ComMngPopulationTotalVO.class) @PostMapping("/statistics") public R getPopulationTotalByAdmin() { /** * 巡查记录统计接口 * * @return 统计结果 */ @ApiOperation(value = "巡查记录统计接口", response = ComSwPatrolRecordStatisticsVO.class) @PostMapping("/patrolRecordStatistics") public R patrolRecordStatistics() { //获取登陆用户绑定社区id Long communityId = this.getLoginUserInfo().getCommunityId(); return communityService.getPopulationTotalByAdmin(communityId); return communityService.patrolRecordStatistics(communityId); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -90,13 +90,13 @@ InputStream inputStream = null; try { inputStream = file.getInputStream(); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, this.getCommunityId()); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, this.getCommunityId(),userName,password,host,port,excelUrl); EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead(); } catch (IOException e) { log.error("导入模板失败【{}】", e.getMessage()); e.printStackTrace(); } return R.ok(); return R.ok(ComMngPopulationServeExcelListen.loadUrl); } /** @@ -134,7 +134,7 @@ try { Long communityId = Long.valueOf(request.getParameter("communityId")); inputStream = file.getInputStream(); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, communityId); ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, communityId,userName,password,host,port,excelUrl); 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/service/impl/ComMngPopulationServiceImpl.java
@@ -363,6 +363,7 @@ @Override @Transactional(rollbackFor = Exception.class) public R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId) throws Exception { List<ComMngPopulationMistakeExcelVO> mistakes = new ArrayList<>(); List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>(); //查询该社区 ComActDO comActDO = comActDAO.selectById(communityId); @@ -400,6 +401,11 @@ importErrorVO.setErrorPosition("街路巷:" + vo.getRoad() + ",小区号:" + vo.getDoorNo()); populationImportErrorVOList.add(importErrorVO); // index++; ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); BeanUtils.copyProperties(vo,mistake); setMistake(mistake, vo); mistake.setMistake("街路巷或小区号不存在,请先在“小区管理”中添加该小区:街路巷:"+ vo.getRoad() +",小区号:" + vo.getDoorNo()); mistakes.add(mistake); continue; } @@ -467,7 +473,7 @@ this.saveBatch(populationDOList);*/ if (!populationImportErrorVOList.isEmpty()) { return R.fail(JSON.toJSONString(populationImportErrorVOList)); return R.fail(mistakes,JSON.toJSONString(populationImportErrorVOList)); } return R.ok(); } @@ -1908,4 +1914,19 @@ return R.ok(this.baseMapper.getVillagePopulationAdmin(new Page(villagePopulationDTO.getPageNum(),villagePopulationDTO.getPageSize()),villagePopulationDTO)); } private void setMistake(ComMngPopulationMistakeExcelVO mvo, ComMngPopulationServeExcelVO vo){ mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook())); mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent())); mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation())); mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus())); mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose())); mvo.setControlStatus(PopulHouseControlStatusEnum.getCnDescByName(vo.getControlStatus())); mvo.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(vo.getCultureLevel())); mvo.setMarriage(PopulMarriageEnum.getCnDescByName(vo.getMarriage())); mvo.setOutOrLocal(PopulOutOrLocalEnum.getCnDescByName(vo.getOutOrLocal())); mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence())); mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType())); mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath())); } }