From 8c0b5b30e5200e7bd45aa34507c3623e17fcce91 Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期四, 24 八月 2023 13:47:24 +0800
Subject: [PATCH] 新增小程序积分列表  修改积分发放流程

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java |  127 +++++++++++++++++++++++++++++++++--------
 1 files changed, 101 insertions(+), 26 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
index 070873e..61e11f8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
@@ -41,6 +41,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 
 import static java.util.Objects.isNull;
@@ -93,9 +94,11 @@
 
     @Override
     public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
+        log.info("当前登录信息"+loginUserInfoVO);
         Boolean isExpertCheck=false;
         Long expertId=null;
         Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
+        comEvent.setAppId(loginUserInfoVO.getAppId());
         if (nonNull(comEvent.getUserType())){
             if (comEvent.getUserType().equals(1)){
                 //个人账号权限
@@ -256,6 +259,7 @@
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
                     comEvent.setChangeExpert(0);
+                    comEvent.setDistribution(0);
                 } else if(comEvent.getEventProcessStatus().equals(2)){
                     //待分配和待验证状态,可以受理,分配专家
                     //关闭调解和归档
@@ -300,7 +304,7 @@
                     comEvent.setSolve(0);
                     comEvent.setArchive(0);
                     comEvent.setDistribution(0);
-                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
                     //上报并且调解失败,此时事件的状态为6,事件结果为调解失败
                     //comEvent.setDistribution(0);
                     comEvent.setEventResult(null);
@@ -323,8 +327,11 @@
                     //关闭所有权限
                     comEvent.setDistribution(0);
                     comEvent.setSolve(0);
-                    comEvent.setArchive(0);
+                    //comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
                 }
+
             }
             else{
                 //已上报到街道或三说会堂,社区没有分配和受理权限权限
@@ -366,7 +373,8 @@
                     //调解中,可以查看,调解,更换专家,删除
                     comEvent.setDistribution(0);
                     comEvent.setArchive(0);
-                }  else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                    comEvent.setSolve(0);
+                }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
                     //调解完成,可以归档,查看
                     comEvent.setEventResult(null);
                     comEvent.setEventProcessStatus(2);
@@ -375,12 +383,12 @@
                     //comEvent.setChangeExpert(0);
                     //comEvent.setArchive(0);
                     comEvent.setConciliation(0);
-                }
-                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
                     //调解完成,可以归档,查看
                     comEvent.setSolve(0);
                     comEvent.setDistribution(0);
                     comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
                 }
             }else if (comEvent.getCurrentProcessType().equals(5)){
                 //根据事件状态决定权限
@@ -422,11 +430,12 @@
             }
             else{
                 //未上上报到行业分中心,或者已上报到区三说会堂,仅查看
-                comEvent.setArchive(0);
+                //comEvent.setArchive(0);
                 comEvent.setSolve(0);
                 comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
-                //comEvent.setConciliation(0);
+                comEvent.setConciliation(0);
+
             }
         }else if (userType.equals(5)  || isStreet){
             //街道权限,操作街道下属社区的所有事件
@@ -464,7 +473,7 @@
                     comEvent.setEventResult(null);
                     comEvent.setEventProcessStatus(1);
                 }
-                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
                     //设置为待受理
                     comEvent.setEventResult(null);
                     comEvent.setEventProcessStatus(2);
@@ -532,7 +541,7 @@
                     comEvent.setDistribution(0);
                     comEvent.setSolve(0);
                     comEvent.setArchive(0);
-                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
                     //失败后转交三说会堂
                     comEvent.setSolve(0);
                     comEvent.setDistribution(0);
@@ -565,6 +574,12 @@
     public Integer hasPermission(ComEvent comEvent,LoginUserInfoVO sysUser){
         String account="";
         Integer perm=1;
+
+        if(comEvent==null || sysUser == null )
+        {
+            return perm;
+        }
+
         if (nonNull(sysUser.getAccount())){
             account=sysUser.getAccount();
         }
@@ -625,7 +640,7 @@
             comEvent.setCurrentOrgId(center.getId().toString());
             comEvent.setCurrentProcessType(5);
         }
-        if (nonNull(comEvent.getCenterId())){
+        if (StringUtils.isNotEmpty(comEvent.getCenterId())){
             comEvent.setRequestUserCommunity(null);
         }
         comEvent.setUserEventStatus(2);
@@ -655,6 +670,9 @@
     }
 
     public void sendMessage(Long expertId,ComEvent comEvent){
+        if (nonNull(comEvent.getRequestUserCommunity()) && comEvent.getRequestUserCommunity().equals(10172)){
+            return;
+        }
         //获取专家的openId
         ComSanshuoExpert expert = comSanShuoExpertService.getById(expertId);
         SysUser sysUser = sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhone, expert.getPhone()).eq(SysUser::getType, 1).eq(SysUser::getAppId,"wx0cef797390444b75" ));
@@ -813,6 +831,11 @@
                 //已是最高上报级别,无法上报
             }
         }
+
+        //是否为已完成并且不上报
+        if (!comEventConciliationVO.getReportSuperior() && comEventConciliationVO.getEventSucceed().equals(2)){
+            comEvent.setIsEnd(1);
+        }
         int flag = baseMapper.updateById(comEvent);
         comEventTransferRecord.setEventId(comEvent.getId());
         comEventTransferRecord.setSave(true);
@@ -904,17 +927,41 @@
         return map;
     }
 
-    public String getPhone(ComEvent comEvent){
+    public String getPhone(ComEvent comEvent)
+    {
+        if(comEvent==null)
+        {
+            return  "";
+        }
         if (isNull(comEvent.getRequestUserCommunity())){
-            return comSanShuoIndustryCenterService.getById(comEvent.getCenterId()).getPhone();
-        }else {
-            String contactsPhone = comActDAO.selectById(comEvent.getRequestUserCommunity()).getContactsPhone();
-            if (isNull(contactsPhone)){
-                return null;
+            ComSanshuoIndustryCenter sanshuoIndustryCenter=comSanShuoIndustryCenterService.getById(comEvent.getCenterId());
+            if(sanshuoIndustryCenter==null)
+            {
+                return "";
             }
-            return contactsPhone;
+            else
+            {
+                return sanshuoIndustryCenter.getPhone();
+            }
+
+        }else {
+            ComActDO comActDO=comActDAO.selectById(comEvent.getRequestUserCommunity());
+            if(comActDO!=null)
+            {
+                String contactsPhone = comActDO.getContactsPhone();
+                if (isNull(contactsPhone)){
+                    return "";
+                }
+                else
+                {
+                    return contactsPhone;
+                }
+            }
+            return "";
         }
     }
+
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -949,7 +996,7 @@
     }
 
     @Override
-    public R calculate(LoginUserInfoVO loginUserInfoVO) {
+    public R calculate(LoginUserInfoVO loginUserInfoVO,Integer level,Long id) {
         ComEvent comEvent=new ComEvent();
         Boolean isExpertCheck=false;
         Long expertId=null;
@@ -1001,6 +1048,18 @@
             }
         }
         log.info("当前userType===="+comEvent.getUserType());
+        //comEvent.setAppId(loginUserInfoVO.getAppId());
+//        R<LoginUserInfoVO> r = userService.detailUser(loginUserInfoVO.getUserId());
+//        LoginUserInfoVO user = r.getData();
+        LoginUserInfoVO user = loginUserInfoVO;
+        if (nonNull(user.getAppId())){
+            comEvent.setAppId(user.getAppId());
+        }
+        if (nonNull(level) && nonNull(id)){
+            comEvent.setLevel(level);
+            comEvent.setSearchId(id);
+            comEvent.setUserType(null);
+        }
         List<ComEventCalculateVO> calculateList = baseMapper.calculate(comEvent);
         ComEventCalculateVO comEventCalculateVO =new ComEventCalculateVO();
         comEventCalculateVO.setStatus("0");
@@ -1057,7 +1116,12 @@
         if (nonNull(vo.getSuccess()) && !vo.getSuccess().equals(0)){
             if (nonNull(vo.getAccepted()) && !vo.getAccepted().equals(0)){
                 //计算成功率
-                vo.setSuccessRate(NumberUtil.div(vo.getSuccess(),vo.getAccepted(),2));
+                try {
+                    vo.setSuccessRate(NumberUtil.div(vo.getSuccess(),vo.getAccepted(),2));
+                }catch (NullPointerException e){
+                    vo.setSuccessRate(new BigDecimal(0));
+                }
+
             }
         }
         vo.setExpert(comSanshuoExpertDao.selectExpertCount(indexDataDTO));
@@ -1077,6 +1141,7 @@
         return R.ok(vo);
     }
 
+
     @Override
     public R eventIndexData(Integer type) {
         //获取事件总数
@@ -1084,9 +1149,19 @@
         if (type.equals(1)){
             //受理级别占比
             List<EventRateVO> eventRateVOS = comEventMapper.eventRate();
+            //获取专家受理的数量
+            Integer expertCount=comEventMapper.expertSolveCountCommunity();
+            //获取行业分中心受理数量
+            Integer centerCount=comEventMapper.expertSolveCountCenter();
             for (EventRateVO eventRateVO : eventRateVOS) {
                 if (nonNull(eventRateVO)){
-                    eventRateVO.setName(typeToName(eventRateVO.getCurrentProcessType()));
+                    eventRateVO.setName(typeToName(eventRateVO.getType()));
+//                    if (eventRateVO.getCurrentProcessType().equals(2)){
+//                        eventRateVO.setCount(eventRateVO.getCount()+expertCount);
+//                    }
+//                    if (eventRateVO.getCurrentProcessType().equals(1)){
+//                        eventRateVO.setCount(eventRateVO.getCount()+centerCount);
+//                    }
                     if (nonNull(eventCount) && !eventCount.equals(0)){
                         //计算占比
                         eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2));
@@ -1143,11 +1218,11 @@
             case 1:
                 return "行业分中心受理";
             case 3:
-                return "街道调解站受理";
+                return "镇/街道受理案件";
             case 2:
-                return "社区调解站受理";
+                return "村/社区受理案件";
             case 4:
-                return "区三说会堂受理";
+                return "区三说会堂中心受理";
         }
         return null;
     }
@@ -1155,13 +1230,13 @@
     public String typeToNameExpert(Integer type){
         switch (type){
             case 1:
-                return "区三说会堂专家";
+                return "区三说会堂中心专家";
             case 2:
                 return "行业分中心专家";
             case 3:
-                return "街道调解站专家";
+                return "镇/街道调解专家";
             case 4:
-                return "社区调解站专家";
+                return "村/社区调解专家";
         }
         return null;
     }

--
Gitblit v1.7.1