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; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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; import com.panzhihua.common.utlis.StringUtils; 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.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)表服务实现类 * projectName 成都呐喊信息技术有限公司-智慧社区项目 * description: 相关功能 * * @author zzj * @since 2022-04-12 15:29:58 */ @Slf4j @Service public class ComActAcidRecordServiceImpl extends ServiceImpl implements ComActAcidRecordService { @Resource 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 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 comActAcidRecordExcelVOS=this.baseMapper.exportNew(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().lambda().eq(ComActAcidRecord::getIsDel,0).eq(ComActAcidRecord::getIdCard,comActAcidRecordVO.getIdCard()).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format))); if(count>0){ return R.fail("您的社区报备信息已填写完整,请勿重复提交!"); } if(StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())){ rabbitTemplate.convertAndSend("huacheng.acid.exchange", "huacheng.acid.key", comActAcidRecordVO, message -> { 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); comActAcidRecord.setCreateTime(new Date()); int result = this.baseMapper.insert(comActAcidRecord); if (result > 0) { 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); return R.ok(); } if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) { //未填住址人员 saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null); } return R.ok(comActAcidRecord.getId().toString()); } return R.fail("操作失败,请重新尝试"); } 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(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() .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()); dangerMember.setPhone(comActAcidRecordVO.getPhone()); dangerMember.setRecordId(recordId); dangerMember.setIdCard(comActAcidRecordVO.getIdCard()); dangerMember.setSource(1); dangerMember.setStatus(6); dangerMember.setType(type); dangerMember.setRelationName(relationName); dangerMember.setCreateTime(new Date()); dangerMember.setRiskType(riskType); comActAcidDangerMemberDao.insert(dangerMember); } else { dangerMember.setName(comActAcidRecordVO.getName()); dangerMember.setPhone(comActAcidRecordVO.getPhone()); dangerMember.setRecordId(recordId); dangerMember.setIdCard(comActAcidRecordVO.getIdCard()); dangerMember.setSource(1); dangerMember.setType(type); dangerMember.setRelationName(relationName); dangerMember.setUpdateTime(new Date()); dangerMember.setRiskType(riskType); comActAcidDangerMemberDao.updateById(dangerMember); } ComActAcidDangerMemberVO dangerMemberVO = new ComActAcidDangerMemberVO(); BeanUtils.copyProperties(dangerMember, dangerMemberVO); rabbitTemplate.convertAndSend("huacheng.acid.danger.exchange", "huacheng.acid.danger.key", dangerMemberVO, message -> { message.getMessageProperties().setHeader("x-delay", 1*60*1000); return message; }); } @Override public R fiveCount(String localCity) { return R.ok(this.baseMapper.fiveCount(localCity)); } @Override 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 acidList=new ArrayList<>(); List dangerList=new ArrayList<>(); List 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 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 comAcidStaticVOS=new ArrayList<>(); String[] area={"攀枝花市","东区","西区","仁和区","米易县","盐边县","钒钛新城"}; String[] country={"上海市","吉林省","广东省","江苏省","浙江省","山东省","湖北省","山西省","黑龙江省","广西壮族自治区","河北省","辽宁省","河南省","福建省","安徽省","南昌市","西宁市","西安市","文山州","兰州市","邵阳市"}; for(String areaName:area){ ComAcidStaticVO comAcidStaticVO=this.baseMapper.areaStatics(areaName,date); comAcidStaticVO.setAreaName(areaName); List comAcidAreaVOS=new ArrayList<>(); for(String countryName:country){ Integer count=this.baseMapper.countryStatics(countryName,date,areaName); ComAcidAreaVO comAcidAreaVO=new ComAcidAreaVO(); comAcidAreaVO.setName(countryName); comAcidAreaVO.setCount(count); comAcidAreaVOS.add(comAcidAreaVO); } comAcidStaticVO.setComAcidAreaVOS(comAcidAreaVOS); comAcidStaticVOS.add(comAcidStaticVO); } 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().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().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 comActAcidDangerMembers=this.comActAcidDangerMemberDao.selectList(new QueryWrapper().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 comActAcidUpdateRecordList=this.comActAcidUpdateRecordDao.selectList(id); if(!comActAcidUpdateRecordList.isEmpty()){ comActAcidRecordVO.setComActAcidUpdateRecordVOList(comActAcidUpdateRecordList); } return R.ok(comActAcidRecordVO); } @Override public R test() { List comCuns=comCunDao.selectList(new QueryWrapper()); comCuns.forEach(comCun->{ ComActDO comActDO= comActDAO.selectOne(new QueryWrapper().lambda().eq(ComActDO::getName,comCun.getCommunity())); if(comActDO==null){ ComStreetDO comStreetDO = comStreetDAO.selectOne(new QueryWrapper().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().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().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 comActAcidRecords= this.baseMapper.selectList(new QueryWrapper().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 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 circleMap = comActAcidColorChartsVOS // .stream() // .collect(Collectors.toMap(ComActAcidColorChartsVO::getColorMark, Function.identity())); //月份 List comActAcidColorChartsVOS1 = this.baseMapper.selectColorMarkGroupByMonth(); //按颜色分组求和 Map 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> colletMap = comActAcidColorChartsVOS1 .stream() .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getCountName, Collectors.toMap(ComActAcidColorChartsVO::getColorMark, Function.identity()))); String[] statusArr = {"红码","黄码","绿码"}; List latest5Month = DateUtils.getLatest12Month(LocalDate.now(), 5); for (String month : latest5Month) { Map 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> chartMap = comActAcidColorChartsVOS1 .stream().sorted(Comparator.comparing(ComActAcidColorChartsVO::getCountName)) .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getColorMark)); Map retMap = new HashMap<>(); retMap.put("comActAcidColorChartsVOS",comActAcidColorChartsVOS); retMap.put("chartMap",chartMap); return R.ok(retMap); } }