From a3fdd6e9a15b75cd23a4ac5c8522e81e47d02f49 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期二, 17 五月 2022 17:38:11 +0800 Subject: [PATCH] 花城E+bug更新 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java | 243 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 233 insertions(+), 10 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 74539cf..37c52f0 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,14 +1,21 @@ package com.panzhihua.service_community.service.impl; +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.ComActAcidRecordDTO; -import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.community.acid.ComAcidAreaVO; -import com.panzhihua.common.model.vos.community.acid.ComAcidStaticVO; -import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO; +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.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.service.ComActAcidRecordService; @@ -16,11 +23,16 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; + +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)表服务实现类 @@ -36,6 +48,13 @@ @Resource private RabbitTemplate rabbitTemplate; + @Resource + private ComActAcidDangerMemberDao comActAcidDangerMemberDao; + @Resource + private UserService userService; + @Resource + private ComActDAO comActDAO; + @Override public R pageList(ComActAcidRecordDTO comActAcidRecordDTO) { return R.ok(this.baseMapper.pageList(new Page<>(comActAcidRecordDTO.getPage(), comActAcidRecordDTO.getSize()),comActAcidRecordDTO)); @@ -43,21 +62,172 @@ @Override public R export(ComActAcidRecordDTO comActAcidRecordDTO) { - return R.ok(this.baseMapper.export(comActAcidRecordDTO)); + List<ComActAcidRecordExcelReturn> 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()); + 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 + @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))); + 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", 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); comActAcidRecord.setCreateTime(new Date()); - return R.ok(this.save(comActAcidRecord)); + 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.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(); + } + + 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<ComActAcidDangerMember>() + .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRecordId, recordId)); + 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 @@ -65,14 +235,14 @@ return R.ok(this.baseMapper.fiveCount(localCity)); } @Override - public R fiveCountPlus(String date) { - return R.ok(this.baseMapper.fiveCountPlus(date)); + public R fiveCountPlus(String date,String localCity) { + return R.ok(this.baseMapper.fiveCountPlus(date,localCity)); } @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); @@ -90,4 +260,57 @@ } return R.ok(comAcidStaticVOS); } + + @Override + public R updateLocalCity(ComActAcidRecordVO comActAcidRecordVO) { + ComActAcidRecord comActAcidRecord = new ComActAcidRecord(); + BeanUtils.copyProperties(comActAcidRecordVO, comActAcidRecord); + String idCard = comActAcidRecordVO.getIdCard(); + if (isBlank(idCard)) { + //只修改地址,其他信息需要查询 + ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId()); + if (isNull(comActAcidRecord1)) { + return R.fail("填报纪录不存在"); + } + String localCity = comActAcidRecordVO.getLocalCity(); + String localAddress = comActAcidRecordVO.getLocalAddress(); + BeanUtils.copyProperties(comActAcidRecord1, comActAcidRecordVO); + comActAcidRecordVO.setLocalCity(localCity); + comActAcidRecordVO.setLocalAddress(localAddress); + } + 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); + } 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(); + } } -- Gitblit v1.7.1