From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 147 insertions(+), 7 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java index 3c99777..72bf5de 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java @@ -8,8 +8,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.model.dtos.community.acid.BatchCheckAcidRecordDTO; import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.StatisticsPhotoVO; import com.panzhihua.common.model.vos.community.acid.*; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.DateUtils; @@ -28,9 +30,10 @@ import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty; import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNull; @@ -69,6 +72,10 @@ @Override public R pageList(ComActAcidRecordDTO comActAcidRecordDTO) { + //是否需要筛选 + comActAcidRecordDTO.setType(isVilliage(comActAcidRecordDTO.getLoginAccount())); + log.info("搜索条件=========="+comActAcidRecordDTO); + //获取当前登录账号的社区名 return R.ok(this.baseMapper.pageList(new Page<>(comActAcidRecordDTO.getPage(), comActAcidRecordDTO.getSize()),comActAcidRecordDTO)); } @@ -133,7 +140,7 @@ public R insertRecord(ComActAcidRecordVO comActAcidRecordVO) { Integer count= this.baseMapper.selectCount(new QueryWrapper<ComActAcidRecord>().lambda().eq(ComActAcidRecord::getIsDel,0).eq(ComActAcidRecord::getIdCard,comActAcidRecordVO.getIdCard()).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format))); if(count>0){ - return R.fail("请勿重复提交"); + return R.fail("您的社区报备信息已填写完整,请勿重复提交!"); } if(StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())){ rabbitTemplate.convertAndSend("huacheng.acid.exchange", "huacheng.acid.key", comActAcidRecordVO, message -> { @@ -154,6 +161,12 @@ String dangerArea = comActAcidRecordVO.getDangerArea(); String outsideCity = comActAcidRecordVO.getOutsideCity(); String acidTest = comActAcidRecordVO.getAcidTest(); + if(StringUtils.isEmpty(acidTest)){ + acidTest="阴性"; + } + if(StringUtils.isEmpty(travelCard)){ + travelCard="否"; + } if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是") || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) { //风险人员 @@ -165,7 +178,7 @@ //未填住址人员 saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null); } - return R.ok(); + return R.ok(comActAcidRecord.getId().toString()); } return R.fail("操作失败,请重新尝试"); @@ -253,8 +266,12 @@ return R.ok(this.baseMapper.fiveCount(localCity)); } @Override - public R fiveCountPlus(String date,String localCity) { - return R.ok(this.baseMapper.fiveCountPlus(date,localCity)); + public R fiveCountPlus(String date,String localCity,String loginAccount) { + Integer type=3; + if (StringUtils.isNotEmpty(loginAccount)){ + type = isVilliage(loginAccount); + } + return R.ok(this.baseMapper.fiveCountPlus(date,localCity,type)); } @Override @@ -394,6 +411,9 @@ if(StringUtils.isEmpty(acidTest)){ acidTest="阴性"; } + if(StringUtils.isEmpty(travelCard)){ + travelCard="否"; + } if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是") || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) { // 风险人员 @@ -445,6 +465,12 @@ String dangerArea = comActAcidRecordVO.getDangerArea(); String outsideCity = comActAcidRecordVO.getOutsideCity(); String acidTest = comActAcidRecordVO.getAcidTest(); + if(StringUtils.isEmpty(acidTest)){ + acidTest="阴性"; + } + if(StringUtils.isEmpty(travelCard)){ + travelCard="否"; + } if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是") || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) { // 风险人员 @@ -542,6 +568,26 @@ return null; } + /** + * 批量核对防疫信息数据 + * @param batchCheckAcidRecordDTO + * @return + */ + @Override + public R batchCheck(BatchCheckAcidRecordDTO batchCheckAcidRecordDTO) { + this.baseMapper.batchCheck(batchCheckAcidRecordDTO); + return R.ok(); + } + + @Override + public R checkCommit(Long userId) { + if(userId!=null){ + List<ComActAcidRecord> comActAcidRecords= this.baseMapper.selectList(new QueryWrapper<ComActAcidRecord>().lambda().eq(ComActAcidRecord::getIsDel,0).eq(ComActAcidRecord::getUserId,userId).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format)).isNull(ComActAcidRecord::getColorImage)); + return R.ok(comActAcidRecords); + } + return R.ok(); + } + public static void areaCheck(ComCun area,ComStreetDO comStreetDO){ switch (area.getArea()){ case "西区": comStreetDO.setAreaCode(510423); break; @@ -551,4 +597,98 @@ case "盐边县": comStreetDO.setAreaCode(510422); break; } } + + /** + * 是否需要区分村落/社区 + * */ + private Integer isVilliage(String name){ + if ("fangyipingtai".equals(name)){ + return 3; + }else if ("pandashujuzhongxin".equals(name)){ + return 1; + }else if ("pannongyenongcunju".equals(name)){ + return 2; + } + return 3; + } + + /** + * 统计红黄绿码 + * @return + */ + public R selectColorMarkGroup(){ + //所有 + List<ComActAcidColorChartsVO> comActAcidColorChartsVOS = this.baseMapper.selectColorMarkGroup(); + int all = comActAcidColorChartsVOS.stream().mapToInt(ComActAcidColorChartsVO::getCountNum).sum(); + for (ComActAcidColorChartsVO comActAcidColorChartsVO : comActAcidColorChartsVOS) { + if (0!=all){ + BigDecimal countNum = new BigDecimal(comActAcidColorChartsVO.getCountNum()); + BigDecimal allDecimal = new BigDecimal(all); + BigDecimal percent = countNum.divide(allDecimal,4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100)); + comActAcidColorChartsVO.setPercent(percent); + } + } +// Map<String, ComActAcidColorChartsVO> circleMap = comActAcidColorChartsVOS +// .stream() +// .collect(Collectors.toMap(ComActAcidColorChartsVO::getColorMark, Function.identity())); + + //月份 + List<ComActAcidColorChartsVO> comActAcidColorChartsVOS1 = this.baseMapper.selectColorMarkGroupByMonth(); + //按颜色分组求和 + Map<String, IntSummaryStatistics> colorCollect = comActAcidColorChartsVOS1 + .stream() + .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getColorMark, + Collectors.summarizingInt(ComActAcidColorChartsVO::getCountNum))); + + for (ComActAcidColorChartsVO comActAcidColorChartsVO : comActAcidColorChartsVOS1) { + String colorMark = comActAcidColorChartsVO.getColorMark(); + if (colorCollect.containsKey(colorMark)){ + IntSummaryStatistics intSummaryStatistics = colorCollect.get(colorMark); + long sum = intSummaryStatistics.getSum(); + if (0L!=sum) { + BigDecimal countNum = new BigDecimal(comActAcidColorChartsVO.getCountNum()); + BigDecimal sumDecimal = new BigDecimal(sum); + BigDecimal percent = countNum.divide(sumDecimal, 4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100)); + comActAcidColorChartsVO.setPercent(percent); + } + } + } + Map<String, Map<String, ComActAcidColorChartsVO>> colletMap = comActAcidColorChartsVOS1 + .stream() + .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getCountName, + Collectors.toMap(ComActAcidColorChartsVO::getColorMark, Function.identity()))); + + String[] statusArr = {"红码","黄码","绿码"}; + List<String> latest5Month = DateUtils.getLatest12Month(LocalDate.now(), 5); + for (String month : latest5Month) { + Map<String, ComActAcidColorChartsVO> map1; + if(colletMap.containsKey(month)){ + map1 = colletMap.get(month); + }else { + map1 = new HashMap<>(); + } + for (String status : statusArr) { + if (!map1.containsKey(status)){ + ComActAcidColorChartsVO comActAcidColorChartsVO = new ComActAcidColorChartsVO(); + comActAcidColorChartsVO.setCountNum(0); + comActAcidColorChartsVO.setCountName(month); + comActAcidColorChartsVO.setColorMark(status); + comActAcidColorChartsVOS1.add(comActAcidColorChartsVO); + map1.put(status,comActAcidColorChartsVO); + } + } + colletMap.put(month,map1); + } + + + Map<String, List<ComActAcidColorChartsVO>> chartMap = comActAcidColorChartsVOS1 + .stream().sorted(Comparator.comparing(ComActAcidColorChartsVO::getCountName)) + .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getColorMark)); + + Map<String,Object> retMap = new HashMap<>(); + retMap.put("comActAcidColorChartsVOS",comActAcidColorChartsVOS); + retMap.put("chartMap",chartMap); + + return R.ok(retMap); + } } -- Gitblit v1.7.1