From ccd28a0c35e8fff74da6ef63042fb8a896d78f7f Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期三, 29 六月 2022 09:45:52 +0800
Subject: [PATCH] 单位服务统计

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java |  185 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 176 insertions(+), 9 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 37c52f0..5507439 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,5 +1,6 @@
 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;
@@ -13,19 +14,20 @@
 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.dao.*;
 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.entity.ComActAcidUpdateRecord;
 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;
@@ -54,6 +56,10 @@
     private UserService userService;
     @Resource
     private ComActDAO comActDAO;
+    @Resource
+    private ComActAcidUpdateRecordDao comActAcidUpdateRecordDao;
+    @Resource
+    private ComAreaTownCommunityDao comAreaTownCommunityDao;
 
     @Override
     public R pageList(ComActAcidRecordDTO comActAcidRecordDTO) {
@@ -113,7 +119,7 @@
     @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)));
+        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("请勿重复提交");
         }
@@ -196,7 +202,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());
@@ -240,6 +246,74 @@
     }
 
     @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={"攀枝花市","东区","西区","仁和区","米易县","盐边县","钒钛新城"};
@@ -263,20 +337,39 @@
 
     @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()
@@ -286,8 +379,62 @@
         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);
@@ -313,4 +460,24 @@
         });
         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);
+    }
 }

--
Gitblit v1.7.1