From 2e2a241d0365acf73dfe17087f2541b1a1edb337 Mon Sep 17 00:00:00 2001 From: 罗元桥 <2376770955@qq.com> Date: 星期一, 18 十月 2021 18:05:23 +0800 Subject: [PATCH] Merge branch 'test' into 'test_bak' --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java | 197 ++++++++++++++++++++++++++++--------------------- 1 files changed, 113 insertions(+), 84 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java index 4793173..e9ca33d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java @@ -4,21 +4,28 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.google.common.collect.Lists; +import com.panzhihua.common.constants.Constants; 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.service.community.CommunityService; import com.panzhihua.common.service.grid.GridService; +import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.ValueOperations; /** * @description: 社区楼栋导入监听 @@ -30,12 +37,14 @@ private static int headSize = 0; List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>(); private CommunityService communityService; + private StringRedisTemplate stringRedisTemplate; private GridService gridService; private Long communityId; private Map<Integer, String> headData; - public ComMngBuildingExcelListen(CommunityService communityService, Long communityId) { + public ComMngBuildingExcelListen(CommunityService communityService, Long communityId, StringRedisTemplate stringRedisTemplate) { this.communityService = communityService; this.communityId = communityId; + this.stringRedisTemplate = stringRedisTemplate; } @Override @@ -71,103 +80,123 @@ int index = 2; ArrayList<ComMngBuildingExcelVO> voList = Lists.newArrayList(); List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>(); - for (int i = 1; i < list.size(); i++) { + ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue(); + String key = Constants.BUILDING_ERROR_LIST + communityId; + for (int i = 0; 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)); - if (StringUtils.isEmpty(oneData.get(oneData.get(3)))) { - ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); +// vo.setUseType(oneData.get(0)); +// vo.setBuildType(oneData.get(1)); + if (StringUtils.isEmpty(oneData.get(0))) { + ComMngPopulationImportErrorVO importErrorVO = setError(oneData); importErrorVO.setErrorMsg("街路巷不能为空"); - importErrorVO.setErrorPosition("第" + index + "行"); populationImportErrorVOList.add(importErrorVO); - vo.setAlley(oneData.get(3)); + continue; } - - 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) { - if (StringUtils.isEmpty(oneData.get(oneData.get(5)))) { - ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); - importErrorVO.setErrorMsg("门牌号不能为空"); - importErrorVO.setErrorPosition("第" + index + "行"); - populationImportErrorVOList.add(importErrorVO); - vo.setDoorNo(oneData.get(5)); - } - - if (StringUtils.isEmpty(oneData.get(oneData.get(5)))) { - ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); - importErrorVO.setErrorMsg("楼栋号不能为空"); - importErrorVO.setErrorPosition("第" + index + "行"); - populationImportErrorVOList.add(importErrorVO); - vo.setName(oneData.get(6)); - } - - try { - vo.setUnitTotal(oneData.get(7) == null ? 0 : Integer.valueOf(oneData.get(7))); - } catch (Exception e1) { - vo.setUnitTotal(0); - } - try { - vo.setBuildFloorSum(oneData.get(8) == null ? 0 : Integer.valueOf(oneData.get(8))); - } catch (Exception e1) { - vo.setBuildFloorSum(0); - } - - try { - vo.setEveryFloorSum(oneData.get(9) == null ? 0 : Integer.valueOf(oneData.get(9))); - } catch (Exception e1) { - vo.setEveryFloorSum(0); - } - - try { - vo.setBuildUserSum(oneData.get(10) == null ? 0 : Integer.valueOf(oneData.get(10))); - } catch (Exception e1) { - vo.setBuildUserSum(0); - } - try { - vo.setElevatorTotal(oneData.get(11) == null ? 0 : Integer.valueOf(oneData.get(11))); - } catch (Exception e1) { - vo.setElevatorTotal(0); - } - - vo.setPropertyCompanyName(oneData.get(12)); - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); - vo.setBuildDate(sdf.parse(oneData.get(13))); - } catch (Exception e1) { - - } - vo.setRemark(oneData.get(14)); - vo.setGridId(oneData.get(15)); - vo.setGridName(oneData.get(15)); - voList.add(vo); - index++; + vo.setAlley(oneData.get(0)); + vo.setVillageName(oneData.get(1)); + if (StringUtils.isEmpty(oneData.get(2))) { + ComMngPopulationImportErrorVO importErrorVO = setError(oneData); + importErrorVO.setErrorMsg("门牌号不能为空"); + populationImportErrorVOList.add(importErrorVO); + continue; } + vo.setDoorNo(oneData.get(2)); - R r = communityService.listSaveBuildingExcelVO(voList, communityId); - 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)); - } + if (StringUtils.isEmpty(oneData.get(3))) { + ComMngPopulationImportErrorVO importErrorVO = setError(oneData); + importErrorVO.setErrorMsg("楼栋号不能为空"); + populationImportErrorVOList.add(importErrorVO); + continue; } + vo.setName(oneData.get(3)); +// try { +// vo.setUnitTotal(oneData.get(6) == null ? 0 : Integer.valueOf(oneData.get(6))); +// } catch (Exception e1) { +// vo.setUnitTotal(0); +// } +// try { +// vo.setBuildFloorSum(oneData.get(7) == null ? 0 : Integer.valueOf(oneData.get(7))); +// } catch (Exception e1) { +// vo.setBuildFloorSum(0); +// } +// +// try { +// vo.setEveryFloorSum(oneData.get(8) == null ? 0 : Integer.valueOf(oneData.get(8))); +// } catch (Exception e1) { +// vo.setEveryFloorSum(0); +// } +// +// try { +// vo.setBuildUserSum(oneData.get(9) == null ? 0 : Integer.valueOf(oneData.get(9))); +// } catch (Exception e1) { +// vo.setBuildUserSum(0); +// } +// try { +// vo.setElevatorTotal(oneData.get(10) == null ? 0 : Integer.valueOf(oneData.get(10))); +// } catch (Exception e1) { +// vo.setElevatorTotal(0); +// } +// +// vo.setPropertyCompanyName(oneData.get(11)); +// try { +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); +// vo.setBuildDate(sdf.parse(oneData.get(12))); +// } catch (Exception e1) { +// vo.setBuildDate(null); +// } +// vo.setRemark(oneData.get(13)); +// vo.setGridId(oneData.get(14)); +// vo.setGridName(oneData.get(14)); + voList.add(vo); + index++; } + R r = communityService.listSaveBuildingExcelVO(voList, communityId); + if (!R.isOk(r)) { + List<ComMngPopulationImportErrorVO> errorList = + JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationImportErrorVO.class); + if (!errorList.isEmpty()) { + populationImportErrorVOList.addAll(errorList); + } + log.info("将错误数据存入redis中"); + valueOperations.set(key, JSONArray.toJSONString(populationImportErrorVOList), 1, TimeUnit.HOURS); + log.info("将错误数据存入redis中成功"); + throw new ServiceException("500", key); + } else { + if (!populationImportErrorVOList.isEmpty()) { + log.info("将错误数据存入redis中"); + valueOperations.set(key, JSONArray.toJSONString(populationImportErrorVOList), 1, TimeUnit.HOURS); + log.info("将错误数据存入redis中成功"); + throw new ServiceException("500", key); + } + } } catch (NumberFormatException e) { e.printStackTrace(); } } + + private ComMngPopulationImportErrorVO setError(Map<Integer, String> oneData){ + ComMngPopulationImportErrorVO result = new ComMngPopulationImportErrorVO(); + if(oneData != null){ +// result.setUseType(oneData.get(0)); +// result.setBuildType(oneData.get(1)); + result.setAlley(oneData.get(0)); + result.setVillageName(oneData.get(1)); + result.setDoorNo(oneData.get(2)); + result.setName(oneData.get(3)); +// result.setUnitTotal(Integer.parseInt(oneData.get(6))); +// result.setBuildFloorSum(Integer.parseInt(oneData.get(7))); +// result.setEveryFloorSum(Integer.parseInt(oneData.get(8))); +// result.setBuildUserSum(Integer.parseInt(oneData.get(9))); +// result.setElevatorTotal(Integer.parseInt(oneData.get(10))); +// result.setPropertyCompanyName(oneData.get(11)); +// result.setBuildDate(DateUtils.stringToDate(oneData.get(12),DateUtils.format_yyyy)); +// result.setRemark(oneData.get(13)); +// result.setGridId(oneData.get(14)); + } + return result; + } } -- Gitblit v1.7.1