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 |  198 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 165 insertions(+), 33 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 2337aa0..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,20 +372,30 @@
         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);
             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 =
@@ -369,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("阳性")) {
             // 风险人员
@@ -394,32 +437,22 @@
         ComActAcidRecord comActAcidRecord = new ComActAcidRecord();
         BeanUtils.copyProperties(comActAcidRecordVO, comActAcidRecord);
         String idCard = comActAcidRecordVO.getIdCard();
-        if(StringUtils.isNotEmpty(comActAcidRecordVO.getAcidImage())){
-            comActAcidRecord.setAcidImage(" ");
-        }
-        if(StringUtils.isNotEmpty(comActAcidRecordVO.getColorImage())){
-            comActAcidRecord.setColorImage(" ");
-        }
-        if(StringUtils.isNotEmpty(comActAcidRecordVO.getTravelImage())){
-            comActAcidRecord.setTravelImage(" ");
-        }
-        if(StringUtils.isNotEmpty(comActAcidRecordVO.getVaccinationImage())){
-            comActAcidRecord.setVaccinationImage(" ");
-        }
+        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);
-            if(StringUtils.isNotEmpty(localCity)){
-                comActAcidRecordVO.setLocalCity(localCity);
+            BeanUtils.copyProperties(comActAcidRecord1,comActAcidRecord);
+            if(checkStatus>0){
+                comActAcidRecord.setCheckStatus(checkStatus);
             }
-            if(StringUtils.isNotEmpty(localAddress)){
-                comActAcidRecordVO.setLocalAddress(localAddress);
+            if(StringUtils.isNotEmpty(remark)){
+                comActAcidRecord.setRemark(remark);
             }
         }
         ComActAcidDangerMember comActAcidDangerMember =
@@ -430,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("阳性")) {
             // 风险人员
@@ -477,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