From 3c884ccd7b51edf3b36840bf99de5edaa41a38a7 Mon Sep 17 00:00:00 2001 From: 张天森 <1292933220@qq.com> Date: 星期三, 12 十月 2022 19:05:28 +0800 Subject: [PATCH] 三说会堂事件流程处理 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 149 insertions(+), 15 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 5176897..87e468e 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,6 +8,7 @@ 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.acid.*; @@ -15,9 +16,9 @@ import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; -import com.panzhihua.service_community.entity.ComActAcidDangerMember; -import com.panzhihua.service_community.entity.ComActAcidRecord; -import com.panzhihua.service_community.entity.ComActAcidUpdateRecord; +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; @@ -60,15 +61,31 @@ 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<ComActAcidRecordExcelReturn> 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()); @@ -121,7 +138,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 -> { @@ -142,6 +159,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("阳性")) { //风险人员 @@ -153,7 +176,7 @@ //未填住址人员 saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null); } - return R.ok(); + return R.ok(comActAcidRecord.getId().toString()); } return R.fail("操作失败,请重新尝试"); @@ -202,7 +225,7 @@ } } ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>() - .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRecordId, recordId)); + .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()); @@ -241,8 +264,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 @@ -257,14 +284,14 @@ for(String areaValue:area){ ComActAcidChartsVO acid=new ComActAcidChartsVO(); acid.setName(areaValue); - ComActAcidChartsVO acidCount =this.baseMapper.selectAcidCount(date,localCity); + 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,localCity); + ComActAcidChartsVO dangerCount =this.baseMapper.selectDangerCount(date,areaValue); if(dangerCount!=null){ danger.setNumOne(dangerCount.getNumOne()); danger.setNumTwo(dangerCount.getNumTwo()); @@ -345,9 +372,10 @@ 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)) { - //只修改地址,其他信息需要查询 - ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId()); + //只修改地址 if (isNull(comActAcidRecord1)) { return R.fail("填报纪录不存在"); } @@ -378,6 +406,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("阳性")) { // 风险人员 @@ -403,9 +437,10 @@ 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)) { - //只修改核对状态,其他信息需要查询 - ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId()); + //只修改核对状态 if (isNull(comActAcidRecord1)) { return R.fail("填报纪录不存在"); } @@ -428,6 +463,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("阳性")) { // 风险人员 @@ -475,4 +516,97 @@ } 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::getAcidTest)); + 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; + } } -- Gitblit v1.7.1