From 964a5ecb478a714f21c5bc75b3d32c16a626deef Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期一, 09 五月 2022 17:55:58 +0800
Subject: [PATCH] 花城E+防疫修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java |  126 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 108 insertions(+), 18 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 fa8f1aa..bf67438 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,12 +8,13 @@
 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.*;
+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;
@@ -29,7 +30,9 @@
 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)表服务实现类
@@ -47,6 +50,10 @@
     private RabbitTemplate rabbitTemplate;
     @Resource
     private ComActAcidDangerMemberDao comActAcidDangerMemberDao;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComActDAO comActDAO;
 
     @Override
     public R pageList(ComActAcidRecordDTO comActAcidRecordDTO) {
@@ -55,9 +62,9 @@
 
     @Override
     public R export(ComActAcidRecordDTO comActAcidRecordDTO) {
-        List<ComActAcidRecordExcelVO> comActAcidRecordExcelVOS=this.baseMapper.export(comActAcidRecordDTO);
+        List<ComActAcidRecordExcelReturn> comActAcidRecordExcelVOS=this.baseMapper.export(comActAcidRecordDTO);
         comActAcidRecordExcelVOS.forEach(comActAcidRecordExcelVO -> {
-            if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())){
+            if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())&&comActAcidRecordExcelVO.getTouristCity().contains("[")){
                 JSONArray jsonArray = JSON.parseArray(comActAcidRecordExcelVO.getTouristCity());
                 if(jsonArray.isEmpty()){
                     comActAcidRecordExcelVO.setTouristCity("");
@@ -66,13 +73,16 @@
                     StringBuilder touristCity= new StringBuilder();
                     for(int i=0;i<jsonArray.size();i++){
                         JSONObject jsonObject=jsonArray.getJSONObject(i);
-                        touristCity.append(jsonObject.get(i)).append(",");
+                        String name=jsonObject.getString("name");
+                        if(StringUtils.isNotEmpty(name)){
+                            touristCity.append(name).append(";");
+                        }
                     }
                     comActAcidRecordExcelVO.setTouristCity(touristCity.toString());
                 }
             }
         });
-        return R.ok();
+        return R.ok(comActAcidRecordExcelVOS);
     }
 
     @Override
@@ -84,9 +94,12 @@
         }
         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);
@@ -101,12 +114,13 @@
             if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是")
                     || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) {
                 //风险人员
-                saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1);
+                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);
+                saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null);
             }
             return R.ok();
         }
@@ -114,9 +128,48 @@
         return R.fail("操作失败,请重新尝试");
     }
 
-    private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type) {
+    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 (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::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRelationName, relationName));
         if (isNull(dangerMember)) {
             dangerMember = new ComActAcidDangerMember();
             dangerMember.setName(comActAcidRecordVO.getName());
@@ -126,7 +179,9 @@
             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());
@@ -136,19 +191,15 @@
             dangerMember.setSource(1);
             dangerMember.setStatus(6);
             dangerMember.setType(type);
+            dangerMember.setRelationName(relationName);
             dangerMember.setUpdateTime(new Date());
+            dangerMember.setRiskType(riskType);
             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);
+            message.getMessageProperties().setHeader("x-delay", 1*60*1000);
             return message;
         });
     }
@@ -165,7 +216,7 @@
     @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);
@@ -183,4 +234,43 @@
         }
         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()));
+        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));
+    }
 }

--
Gitblit v1.7.1