| | |
| | | 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.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.dao.ComActDAO; |
| | | 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.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | 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) { |
| | |
| | | |
| | | @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()); |
| | |
| | | } |
| | | } |
| | | 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()); |
| | |
| | | } |
| | | |
| | | @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={"攀枝花市","东区","西区","仁和区","米易县","盐边县","钒钛新城"}; |
| | |
| | | |
| | | @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)) { |
| | | //只修改地址,其他信息需要查询 |
| | | ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId()); |
| | | //只修改地址 |
| | | 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); |
| | | comActAcidRecordVO.setLocalCity(localCity); |
| | | comActAcidRecordVO.setLocalAddress(localAddress); |
| | | 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() |
| | |
| | | String dangerArea = comActAcidRecordVO.getDangerArea(); |
| | | String outsideCity = comActAcidRecordVO.getOutsideCity(); |
| | | String acidTest = comActAcidRecordVO.getAcidTest(); |
| | | if(StringUtils.isEmpty(acidTest)){ |
| | | acidTest="阴性"; |
| | | } |
| | | 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.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(); |
| | | } |
| | | |
| | | @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; |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | } |