101captain
2022-04-29 22e8f5555ab36a021943ad5e5a90e602c4d659d4
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java
@@ -1,14 +1,17 @@
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.utlis.DateUtils;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComActAcidDangerMemberDao;
import com.panzhihua.service_community.entity.ComActAcidDangerMember;
@@ -52,12 +55,36 @@
    @Override
    public R export(ComActAcidRecordDTO comActAcidRecordDTO) {
        return R.ok(this.baseMapper.export(comActAcidRecordDTO));
        List<ComActAcidRecordExcelVO> 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
    @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);
@@ -76,28 +103,13 @@
            String acidTest = comActAcidRecordVO.getAcidTest();
            if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是")
                    || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) {
                ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>()
                        .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()));
                if (isNull(dangerMember)) {
                    dangerMember = new ComActAcidDangerMember();
                    dangerMember.setName(comActAcidRecordVO.getName());
                    dangerMember.setPhone(comActAcidRecordVO.getPhone());
                    dangerMember.setRecordId(comActAcidRecord.getId());
                    dangerMember.setSource(1);
                    dangerMember.setStatus(6);
                    dangerMember.setType(1);
                    dangerMember.setCreateTime(new Date());
                    comActAcidDangerMemberDao.insert(dangerMember);
                } else {
                    dangerMember.setName(comActAcidRecordVO.getName());
                    dangerMember.setPhone(comActAcidRecordVO.getPhone());
                    dangerMember.setRecordId(comActAcidRecord.getId());
                    dangerMember.setSource(1);
                    dangerMember.setStatus(6);
                    dangerMember.setType(1);
                    dangerMember.setUpdateTime(new Date());
                    comActAcidDangerMemberDao.updateById(dangerMember);
                }
                //风险人员
                saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1);
                return R.ok();
            }
            if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) {
                //未填住址人员
                saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2);
            }
            return R.ok();
        }
@@ -105,6 +117,45 @@
        return R.fail("操作失败,请重新尝试");
    }
    private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type) {
        ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>()
                .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()));
        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.setCreateTime(new Date());
            comActAcidDangerMemberDao.insert(dangerMember);
        } else {
            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.setUpdateTime(new Date());
            comActAcidDangerMemberDao.updateById(dangerMember);
        }
        ComActAcidDangerMemberVO dangerMemberVO = new ComActAcidDangerMemberVO();
        BeanUtils.copyProperties(dangerMember, dangerMemberVO);
        String realAddress = comActAcidRecordVO.getRealAddress();
        if (realAddress.contains("区")) {
            dangerMemberVO.setRelationName(realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("区") + 1));
        } else {
            dangerMemberVO.setRelationName(realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("县") + 1));
        }
        rabbitTemplate.convertAndSend("huacheng.acid.danger.exchange", "huacheng.acid.danger.key", dangerMemberVO, message -> {
            message.getMessageProperties().setHeader("x-delay", 5*60*1000);
            return message;
        });
    }
    @Override
    public R fiveCount(String localCity) {
        return R.ok(this.baseMapper.fiveCount(localCity));