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 | 546 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 520 insertions(+), 26 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 94df2de..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 @@ -1,5 +1,6 @@ package com.panzhihua.service_community.service.impl; +import cn.hutool.core.util.ArrayUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -7,30 +8,36 @@ 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.dtos.property.CommonPage; 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; import com.panzhihua.common.utlis.StringUtils; -import com.panzhihua.service_community.dao.ComActAcidDangerMemberDao; -import com.panzhihua.service_community.entity.ComActAcidDangerMember; -import com.panzhihua.service_community.entity.ComActAcidRecord; -import com.panzhihua.service_community.dao.ComActAcidRecordDao; +import com.panzhihua.service_community.dao.*; +import com.panzhihua.service_community.entity.*; +import com.panzhihua.service_community.model.dos.ComActDO; +import com.panzhihua.service_community.model.dos.ComStreetDO; import com.panzhihua.service_community.service.ComActAcidRecordService; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.math.BigDecimal; +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; +import static org.apache.commons.lang3.StringUtils.isBlank; /** * (ComActAcidRecord)表服务实现类 @@ -48,15 +55,64 @@ private RabbitTemplate rabbitTemplate; @Resource private ComActAcidDangerMemberDao comActAcidDangerMemberDao; + @Resource + private UserService userService; + @Resource + private ComActDAO comActDAO; + @Resource + private ComActAcidUpdateRecordDao comActAcidUpdateRecordDao; + @Resource + private ComAreaTownCommunityDao comAreaTownCommunityDao; + @Resource + private ComCunDao comCunDao; + @Resource + private ComStreetDAO comStreetDAO; + @Resource + private SysUserDao sysUserDao; @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)); } @Override public R export(ComActAcidRecordDTO comActAcidRecordDTO) { - List<ComActAcidRecordExcelVO> comActAcidRecordExcelVOS=this.baseMapper.export(comActAcidRecordDTO); + List<ComActAcidRecordExcelReturn> comActAcidRecordExcelVOS=new ArrayList<>(); + if(StringUtils.isNotEmpty(comActAcidRecordDTO.getIds())){ + comActAcidRecordExcelVOS=this.baseMapper.selectByIds(comActAcidRecordDTO.getIds()); + } + else { + comActAcidRecordExcelVOS=this.baseMapper.export(comActAcidRecordDTO); + } + comActAcidRecordExcelVOS.forEach(comActAcidRecordExcelVO -> { + if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())&&comActAcidRecordExcelVO.getTouristCity().contains("[")){ + JSONArray jsonArray = JSON.parseArray(comActAcidRecordExcelVO.getTouristCity()); + if(jsonArray.isEmpty()){ + comActAcidRecordExcelVO.setTouristCity(""); + } + else { + StringBuilder touristCity= new StringBuilder(); + for(int i=0;i<jsonArray.size();i++){ + JSONObject jsonObject=jsonArray.getJSONObject(i); + String name=jsonObject.getString("name"); + if(StringUtils.isNotEmpty(name)){ + touristCity.append(name).append(";"); + } + } + comActAcidRecordExcelVO.setTouristCity(touristCity.toString()); + } + } + }); + return R.ok(comActAcidRecordExcelVOS); + } + + @Override + public R exportNew(ComActAcidRecordDTO comActAcidRecordDTO) { + List<ComActAcidRecordExcelReturn> comActAcidRecordExcelVOS=this.baseMapper.exportNew(comActAcidRecordDTO); comActAcidRecordExcelVOS.forEach(comActAcidRecordExcelVO -> { if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())&&comActAcidRecordExcelVO.getTouristCity().contains("[")){ JSONArray jsonArray = JSON.parseArray(comActAcidRecordExcelVO.getTouristCity()); @@ -82,15 +138,18 @@ @Override @Transactional(rollbackFor = Exception.class) public R insertRecord(ComActAcidRecordVO comActAcidRecordVO) { - Integer count= this.baseMapper.selectCount(new QueryWrapper<ComActAcidRecord>().lambda().eq(ComActAcidRecord::getIdCard,comActAcidRecordVO.getIdCard()).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format))); + 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 -> { - message.getMessageProperties().setHeader("x-delay", 24*60*60*1000); + message.getMessageProperties().setHeader("x-delay", 2*60*60*1000); return message; }); + } + else { + rabbitTemplate.convertAndSend("huacheng.acid.direct.exchange", "huacheng.acid.direct.key", comActAcidRecordVO); } ComActAcidRecord comActAcidRecord=new ComActAcidRecord(); BeanUtils.copyProperties(comActAcidRecordVO,comActAcidRecord); @@ -102,39 +161,73 @@ 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("阳性")) { //风险人员 - saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1); + String riskType = retrieveRiskType(colorMark, travelCard, dangerArea, outsideCity, acidTest); + saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1, riskType); return R.ok(); } if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) { //未填住址人员 - saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2); + saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null); } - return R.ok(); + return R.ok(comActAcidRecord.getId().toString()); } return R.fail("操作失败,请重新尝试"); } - private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type) { + private String retrieveRiskType(String colorMark, String travelCard, String dangerArea, String outsideCity, String acidTest) { + StringBuilder riskType = new StringBuilder(); + if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码")) { + riskType.append(","); + riskType.append(ComActAcidDangerMember.RiskType.COLOR); + } + if (travelCard.equals("是")) { + riskType.append(","); + riskType.append(ComActAcidDangerMember.RiskType.STAR); + } + if (dangerArea.equals("是")) { + riskType.append(","); + riskType.append(ComActAcidDangerMember.RiskType.HIGH); + } + if (outsideCity.equals("是")) { + riskType.append(","); + riskType.append(ComActAcidDangerMember.RiskType.OUT); + } + if (acidTest.equals("阳性")) { + riskType.append(","); + riskType.append(ComActAcidDangerMember.RiskType.TEST); + } + return riskType.substring(1); + } + + private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type, String riskType) { String localCity = comActAcidRecordVO.getLocalCity(); String relationName = "panzhihua"; if (isNotEmpty(localCity)) { relationName = localCity; } else { String realAddress = comActAcidRecordVO.getRealAddress(); - if (realAddress.contains("攀枝花")) { - if (realAddress.contains("区")) { - relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("区") + 1); - } else { - relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("县") + 1); + if(isNotEmpty(realAddress)){ + if (realAddress.contains("攀枝花")) { + if (realAddress.contains("区")) { + relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("区") + 1); + } else { + relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("县") + 1); + } } } } ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>() - .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRelationName, relationName)); + .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRecordId, recordId).orderByDesc(ComActAcidDangerMember::getCreateTime).last("limit 1")); if (isNull(dangerMember)) { dangerMember = new ComActAcidDangerMember(); dangerMember.setName(comActAcidRecordVO.getName()); @@ -146,6 +239,7 @@ dangerMember.setType(type); dangerMember.setRelationName(relationName); dangerMember.setCreateTime(new Date()); + dangerMember.setRiskType(riskType); comActAcidDangerMemberDao.insert(dangerMember); } else { dangerMember.setName(comActAcidRecordVO.getName()); @@ -153,10 +247,10 @@ dangerMember.setRecordId(recordId); dangerMember.setIdCard(comActAcidRecordVO.getIdCard()); dangerMember.setSource(1); - dangerMember.setStatus(6); dangerMember.setType(type); dangerMember.setRelationName(relationName); dangerMember.setUpdateTime(new Date()); + dangerMember.setRiskType(riskType); comActAcidDangerMemberDao.updateById(dangerMember); } ComActAcidDangerMemberVO dangerMemberVO = new ComActAcidDangerMemberVO(); @@ -172,14 +266,86 @@ 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 + public R charts(String date, String localCity) { + if(StringUtils.isNotEmpty(localCity)){ + ComActAcidCharts comActAcidCharts=new ComActAcidCharts(); + List<ComActAcidChartsVO> acidList=new ArrayList<>(); + List<ComActAcidChartsVO> dangerList=new ArrayList<>(); + List<ComActAcidChartsVO> checkCount=new ArrayList<>(); + String[] area={"东区","西区","仁和区","米易县","盐边县"}; + if("panzhihua".equals(localCity)){ + for(String areaValue:area){ + ComActAcidChartsVO acid=new ComActAcidChartsVO(); + acid.setName(areaValue); + ComActAcidChartsVO acidCount =this.baseMapper.selectAcidCount(date,areaValue); + if(acidCount!=null){ + acid.setNumOne(acidCount.getNumOne()); + } + acidList.add(acid); + ComActAcidChartsVO danger=new ComActAcidChartsVO(); + danger.setName(areaValue); + ComActAcidChartsVO dangerCount =this.baseMapper.selectDangerCount(date,areaValue); + if(dangerCount!=null){ + danger.setNumOne(dangerCount.getNumOne()); + danger.setNumTwo(dangerCount.getNumTwo()); + }else{ + danger.setNumOne(0); + danger.setNumTwo(0); + } + dangerList.add(danger); + checkCount =this.baseMapper.selectCheck(date,localCity); + if(checkCount!=null){ + checkCount.forEach(comActAcidChartsVO -> { + if(comActAcidChartsVO.getNumTwo()!=null){ + comActAcidChartsVO.setPercent(new BigDecimal(comActAcidChartsVO.getNumOne()) + .divide(new BigDecimal(comActAcidChartsVO.getNumTwo()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); + } + }); + } + + } + } + if(ArrayUtil.contains(area,localCity)){ + List<String> streets=comAreaTownCommunityDao.selectDistinctTown(localCity); + streets.forEach(street ->{ + ComActAcidChartsVO acid=new ComActAcidChartsVO(); + acid.setName(street); + ComActAcidChartsVO acidCount =this.baseMapper.selectAcidCount(date,street); + if(acidCount!=null){ + acid.setNumOne(acidCount.getNumOne()); + } + acidList.add(acid); + ComActAcidChartsVO danger=new ComActAcidChartsVO(); + danger.setName(street); + ComActAcidChartsVO dangerCount =this.baseMapper.selectDangerCount(date,street); + if(dangerCount!=null){ + danger.setNumOne(dangerCount.getNumOne()); + danger.setNumTwo(dangerCount.getNumTwo()); + } + dangerList.add(danger); + }); + } + comActAcidCharts.setAcidList(acidList); + comActAcidCharts.setDangerList(dangerList); + comActAcidCharts.setCheckList(checkCount); + return R.ok(comActAcidCharts); + } + return R.fail(); } @Override public R statics(String date) { List<ComAcidStaticVO> comAcidStaticVOS=new ArrayList<>(); - String[] area={"东区","西区","仁和区","米易县","盐边县","钒钛新城"}; + String[] area={"攀枝花市","东区","西区","仁和区","米易县","盐边县","钒钛新城"}; String[] country={"上海市","吉林省","广东省","江苏省","浙江省","山东省","湖北省","山西省","黑龙江省","广西壮族自治区","河北省","辽宁省","河南省","福建省","安徽省","南昌市","西宁市","西安市","文山州","兰州市","邵阳市"}; for(String areaName:area){ ComAcidStaticVO comAcidStaticVO=this.baseMapper.areaStatics(areaName,date); @@ -197,4 +363,332 @@ } return R.ok(comAcidStaticVOS); } + + @Override + public R updateLocalCity(ComActAcidRecordVO comActAcidRecordVO) { + ComActAcidUpdateRecord comActAcidUpdateRecord=new ComActAcidUpdateRecord(); + comActAcidUpdateRecord.setRecordId(comActAcidRecordVO.getId()); + comActAcidUpdateRecord.setUserId(comActAcidRecordVO.getUserId()); + comActAcidUpdateRecord.setCreateTime(new Date()); + comActAcidUpdateRecordDao.insert(comActAcidUpdateRecord); + ComActAcidRecord comActAcidRecord = new ComActAcidRecord(); + BeanUtils.copyProperties(comActAcidRecordVO, comActAcidRecord); + String idCard = comActAcidRecordVO.getIdCard(); + ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId()); + comActAcidRecord.setUserId(comActAcidRecord1.getUserId()); + if (isBlank(idCard)) { + //只修改地址 + if (isNull(comActAcidRecord1)) { + return R.fail("填报纪录不存在"); + } + String localCity = comActAcidRecordVO.getLocalCity(); + String localAddress = comActAcidRecordVO.getLocalAddress(); + Integer checkStatus=comActAcidRecordVO.getCheckStatus(); + String remark=comActAcidRecordVO.getRemark(); + BeanUtils.copyProperties(comActAcidRecord1, comActAcidRecordVO); + if(StringUtils.isNotEmpty(localCity)){ + comActAcidRecordVO.setLocalCity(localCity); + } + if(StringUtils.isNotEmpty(localAddress)){ + comActAcidRecordVO.setLocalAddress(localAddress); + } + BeanUtils.copyProperties(comActAcidRecord1,comActAcidRecord); + if(checkStatus>0){ + comActAcidRecord.setCheckStatus(checkStatus); + } + if(StringUtils.isNotEmpty(remark)){ + comActAcidRecord.setRemark(remark); + } + } + ComActAcidDangerMember comActAcidDangerMember = + comActAcidDangerMemberDao.selectOne(new QueryWrapper<ComActAcidDangerMember>().lambda() + .eq(ComActAcidDangerMember::getRecordId, comActAcidRecordVO.getId()).orderByDesc(ComActAcidDangerMember::getCreateTime).last("limit 1")); + String colorMark = comActAcidRecordVO.getColorMark(); + String travelCard = comActAcidRecordVO.getTravelCard(); + 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("阳性")) { + // 风险人员 + String riskType = retrieveRiskType(colorMark, travelCard, dangerArea, outsideCity, acidTest); + saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1, riskType); + } else if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) { + // 未填住址人员 + saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null); + } else if (comActAcidDangerMember != null && comActAcidDangerMember.getType() == 2) { + this.comActAcidDangerMemberDao.deleteById(comActAcidDangerMember.getId()); + } + + return R.ok(this.baseMapper.updateById(comActAcidRecord)); + } + + @Override + public R updateApplets(ComActAcidRecordVO comActAcidRecordVO) { + ComActAcidUpdateRecord comActAcidUpdateRecord=new ComActAcidUpdateRecord(); + comActAcidUpdateRecord.setRecordId(comActAcidRecordVO.getId()); + comActAcidUpdateRecord.setUserId(comActAcidRecordVO.getUserId()); + comActAcidUpdateRecord.setCreateTime(new Date()); + comActAcidUpdateRecordDao.insert(comActAcidUpdateRecord); + ComActAcidRecord comActAcidRecord = new ComActAcidRecord(); + BeanUtils.copyProperties(comActAcidRecordVO, comActAcidRecord); + String idCard = comActAcidRecordVO.getIdCard(); + ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId()); + comActAcidRecord.setUserId(comActAcidRecord1.getUserId()); + if (isBlank(idCard)) { + //只修改核对状态 + if (isNull(comActAcidRecord1)) { + return R.fail("填报纪录不存在"); + } + Integer checkStatus=comActAcidRecordVO.getCheckStatus(); + String remark=comActAcidRecordVO.getRemark(); + BeanUtils.copyProperties(comActAcidRecord1, comActAcidRecordVO); + BeanUtils.copyProperties(comActAcidRecord1,comActAcidRecord); + if(checkStatus>0){ + comActAcidRecord.setCheckStatus(checkStatus); + } + if(StringUtils.isNotEmpty(remark)){ + comActAcidRecord.setRemark(remark); + } + } + ComActAcidDangerMember comActAcidDangerMember = + comActAcidDangerMemberDao.selectOne(new QueryWrapper<ComActAcidDangerMember>().lambda() + .eq(ComActAcidDangerMember::getRecordId, comActAcidRecordVO.getId()).orderByDesc(ComActAcidDangerMember::getCreateTime).last("limit 1")); + String colorMark = comActAcidRecordVO.getColorMark(); + String travelCard = comActAcidRecordVO.getTravelCard(); + 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("阳性")) { + // 风险人员 + String riskType = retrieveRiskType(colorMark, travelCard, dangerArea, outsideCity, acidTest); + saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1, riskType); + } else if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) { + // 未填住址人员 + saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null); + } else if (comActAcidDangerMember != null && comActAcidDangerMember.getType() == 2) { + this.comActAcidDangerMemberDao.deleteById(comActAcidDangerMember.getId()); + } + return R.ok(this.baseMapper.updateById(comActAcidRecord)); + } + + @Override + public R delete(Long id) { + ComActAcidRecord comActAcidRecord=new ComActAcidRecord(); + comActAcidRecord.setId(id); + comActAcidRecord.setIsDel(1); + this.baseMapper.updateById(comActAcidRecord); + List<ComActAcidDangerMember> comActAcidDangerMembers=this.comActAcidDangerMemberDao.selectList(new QueryWrapper<ComActAcidDangerMember>().lambda().eq(ComActAcidDangerMember::getRecordId,id)); + comActAcidDangerMembers.forEach(comActAcidDangerMember -> { + comActAcidDangerMember.setIsDel(1); + this.comActAcidDangerMemberDao.updateById(comActAcidDangerMember); + }); + return R.ok(); + } + + @Override + public R detailByApp(Long id,String localCity) { + ComActAcidRecord comActAcidRecord=this.baseMapper.selectById(id); + ComActAcidRecordVO comActAcidRecordVO=this.baseMapper.selectLastNext(id,localCity); + BeanUtils.copyProperties(comActAcidRecord,comActAcidRecordVO); + return R.ok(comActAcidRecordVO); + } + + @Override + public R detailByCommunity(Long id) { + ComActAcidRecordVO comActAcidRecordVO=new ComActAcidRecordVO(); + ComActAcidRecord comActAcidRecord= this.baseMapper.selectById(id); + BeanUtils.copyProperties(comActAcidRecord,comActAcidRecordVO); + List<ComActAcidUpdateRecordVO> comActAcidUpdateRecordList=this.comActAcidUpdateRecordDao.selectList(id); + if(!comActAcidUpdateRecordList.isEmpty()){ + comActAcidRecordVO.setComActAcidUpdateRecordVOList(comActAcidUpdateRecordList); + } + return R.ok(comActAcidRecordVO); + } + + @Override + public R test() { + List<ComCun> comCuns=comCunDao.selectList(new QueryWrapper<ComCun>()); + comCuns.forEach(comCun->{ + ComActDO comActDO= comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getName,comCun.getCommunity())); + if(comActDO==null){ + ComStreetDO comStreetDO = comStreetDAO.selectOne(new QueryWrapper<ComStreetDO>().lambda().eq(ComStreetDO::getName,comCun.getTown())); + if(comStreetDO==null){ + comStreetDO=new ComStreetDO(); + comStreetDO.setName(comCun.getTown()); + areaCheck(comCun,comStreetDO); + comStreetDO.setAccount(comCun.getAccount()); + comStreetDAO.insert(comStreetDO); + } + comActDO=new ComActDO(); + comActDO.setStreetId(comStreetDO.getStreetId()); + comActDO.setAreaCode(comStreetDO.getAreaCode().toString()); + comActDO.setName(comCun.getCommunity()); + comActDO.setContacts(comCun.getName()); + comActDO.setContactsPhone(comCun.getPhone()); + comActDAO.insert(comActDO); + } + ComAreaTownCommunity community=comAreaTownCommunityDao.selectOne(new QueryWrapper<ComAreaTownCommunity>().lambda().eq(ComAreaTownCommunity::getArea,comCun.getArea()).eq(ComAreaTownCommunity::getTown,comCun.getTown()).eq(ComAreaTownCommunity::getCommunity,comCun.getCommunity())); + if(community==null){ + community=new ComAreaTownCommunity(); + community.setArea(comCun.getArea()); + community.setTown(comCun.getTown()); + community.setCommunity(comCun.getCommunity()); + comAreaTownCommunityDao.insert(community); + }else { + community.setCommunityId(comActDO.getCommunityId()); + comAreaTownCommunityDao.updateById(community); + } + SysUser sysUser=sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getAccount,comCun.getAccount())); + if(sysUser!=null){ + System.out.println(comCun.getAccount()+","+comCun.getCommunity()); + } + else { + sysUser=new SysUser(); + sysUser.setAccount(comCun.getAccount()); + sysUser.setPassword("$2a$10$F/2lE2NMhKNHJfi5.FLmfu7jIr7ImRWgCTTeO6m3IRNR2V4sv8YR."); + sysUser.setName(comCun.getCommunity()); + sysUser.setType(9); + sysUserDao.insert(sysUser); + } + }); + 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; + case "东区": comStreetDO.setAreaCode(510402); break; + case "仁和区": comStreetDO.setAreaCode(510411); break; + case "米易县": comStreetDO.setAreaCode(510421); break; + 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