From eaac6d9314b98ea313c16f62b41f01ddbd1114f3 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期二, 18 十月 2022 13:56:27 +0800
Subject: [PATCH] 三说会堂事件操作权限处理

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java |  235 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 195 insertions(+), 40 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 da4287f..93dc79c 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
@@ -12,6 +12,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.Constants;
 import com.panzhihua.common.constants.ReturnMsgConstants;
 import com.panzhihua.common.enums.SanShuoEventStatusEnum;
 import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
@@ -85,6 +86,7 @@
     @Override
     public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
         log.info("=================当前登陆的用户信息,用户类型"+loginUserInfoVO.getType()+"社区id"+loginUserInfoVO.getCommunityId());
+        log.info("=====================当前的userType1:="+comEvent.getUserType());
         Boolean isExpertCheck=false;
         Long expertId=null;
         Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
@@ -127,13 +129,13 @@
                 comEvent.setCommunityIds(cids);
             }
         }
-//        if (nonNull(loginUserInfoVO.getAccount())){
-//            if (loginUserInfoVO.getAccount().equals("admin")){
-//                comEvent.setUserType(null);
-//            }
-//        }
+        if (nonNull(loginUserInfoVO.getAccount())){
+            if (loginUserInfoVO.getAccount().equals("admin") && loginUserInfoVO.getStreetId().equals(Constants.ADMIN_STREET_ID)){
+                comEvent.setUserType(null);
+            }
+        }
         IPage<ComEvent> list=null;
-        log.info("=====================当前的userType"+comEvent.getUserType());
+        log.info("=====================当前的userType2:="+comEvent.getUserType());
         log.info("=====================是否专家账号查看"+isExpertCheck);
         //是否为专家查看自己发布的事件
         if (isExpertCheck && comEvent.getUserType()!=1){
@@ -143,7 +145,6 @@
         }else{
             list = baseMapper.pageByComEvent(comEvent, pagination);
         }
-
         if (list.getRecords().size() < 1) {
             return R.ok(Collections.emptyList());
         }
@@ -208,22 +209,35 @@
                 //账号获取
                 expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
             }
-            if (!comEvent.getSpecialistId().equals(expert.getId()) || !comEvent.getCurrentProcessType().equals(5)){
+            if (!comEvent.getCurrentProcessType().equals(5)){
+                if (comEvent.getSpecialistId().equals(expert.getId()) && comEvent.getEventProcessStatus().equals(3)){
+                    //更高级别分配给该专家,可以受理
+                    comEvent.setConciliation(0);
+                    comEvent.setArchive(0);
+                    //comEvent.setSolve(0);
+                    return;
+                }
                 //已经上报或者重新分配专家,只能查看
                 comEvent.setConciliation(0);
                 //comEvent.setArchive(0);
                 comEvent.setSolve(0);
                 return;
             }//未上报,根据状态决定权限
-            if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+            if (comEvent.getEventProcessStatus().equals(1)){
                 //待受理和待验证状态,仅有查看和受理权限,可能为用户选择该专家或上级单位分配给该专家
                 //关闭调解和归档
                 comEvent.setArchive(0);
                 comEvent.setConciliation(0);
-            } else if (comEvent.getEventProcessStatus().equals(5)){
+            }
+            else if (comEvent.getEventProcessStatus().equals(5)){
                 //调解中,可以查看,调解
                 comEvent.setArchive(0);
                 comEvent.setSolve(0);
+            }else if (comEvent.getEventProcessStatus().equals(3)){
+                //重新分配给该专家的事件,可以进行受理
+               // comEvent.setSolve(0);
+                comEvent.setConciliation(0);
+                comEvent.setArchive(0);
             } else if (comEvent.getEventProcessStatus().equals(6)){
                 //调解完成,可以归档,查看
                 comEvent.setSolve(0);
@@ -234,12 +248,23 @@
             //如果未上报到街道,当前事件权限和专家一样
             if (comEvent.getCurrentProcessType().equals(5)){
                 //根据事件状态决定权限
-                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                if (comEvent.getEventProcessStatus().equals(1) ){
                     //待受理和待验证状态,可以受理,分配专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
+                    comEvent.setChangeExpert(0);
+                } else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }
+                else if (comEvent.getEventProcessStatus().equals(5)){
                     //调解中,可以查看,调解,更换专家,删除
                     comEvent.setDistribution(0);
                     comEvent.setSolve(0);
@@ -249,43 +274,105 @@
                     comEvent.setSolve(0);
                     comEvent.setDistribution(0);
                     comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
                 }
             }else if (comEvent.getCurrentProcessType().equals(2)){
                 //上报到社区后,增加分配专家权限
                 if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
-                    //待受理和待验证状态,可以受理,分配专家
+                    //待受理和待验证状态,可以受理,更换专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
+                    comEvent.setDistribution(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(3)){
+                    //分配新专家后
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(1);
+                }else if (comEvent.getEventProcessStatus().equals(5)){
                     //调解中,可以查看,调解,更换专家,删除
                     comEvent.setSolve(0);
                     comEvent.setArchive(0);
-                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    comEvent.setDistribution(0);
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                    //上报并且调解失败,此时事件的状态为6,事件结果为调解失败
+                    //comEvent.setDistribution(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(2);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    //comEvent.setConciliation(0);
+                    comEvent.setArchive(0);
+                }else if (comEvent.getEventProcessStatus().equals(6)  && comEvent.getEventResult().equals(2) && comEvent.getEventSucceed().equals(2)){
                     //调解完成,可以归档,查看
+                    //关闭所有权限
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setConciliation(0);
+                    //comEvent.setArchive(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6)  && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    //关闭所有权限
+                    comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                    comEvent.setArchive(0);
                 }
             }
             else{
                 //已上报到街道或三说会堂,社区没有分配和受理权限权限
                 comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
-                comEvent.setDelete(0);
+                //comEvent.setDelete(0);
+                comEvent.setSolve(0);
+                comEvent.setConciliation(0);
             }
         }else if (userType.equals(3)){
             //分配行业分中心操作权限
             //是否上报到行业分中心
-            if (comEvent.getReportCenter().equals(1) || comEvent.getCurrentProcessType().equals(1)){
+            if (comEvent.getCurrentProcessType().equals(1)){
                 //已经报到行业分中心
-                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                if (comEvent.getEventProcessStatus().equals(1) ){
                     //待受理和待验证状态,可以受理,分配专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
+                }else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }
+                else if (comEvent.getEventProcessStatus().equals(3)){
+                    //分配新专家后
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(1);
+                }else if (comEvent.getEventProcessStatus().equals(5)){
                     //调解中,可以查看,调解,更换专家,删除
                     comEvent.setDistribution(0);
                     comEvent.setArchive(0);
-                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                }  else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                    //调解完成,可以归档,查看
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(2);
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
                     //调解完成,可以归档,查看
                     comEvent.setSolve(0);
                     comEvent.setDistribution(0);
@@ -301,26 +388,66 @@
         }else if (userType.equals(5)  || isStreet){
             //街道权限,操作街道下属社区的所有事件
             //是否上报到街道
-            if (comEvent.getReportStreet().equals(1) || comEvent.getCurrentProcessType().equals(3)){
+            if (comEvent.getCurrentProcessType().equals(3)){
                 //已上报到街道
-                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                if (comEvent.getEventProcessStatus().equals(1) ){
                     //待受理和待验证状态,可以受理,分配专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
+                    comEvent.setChangeExpert(0);
+                    //comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                } else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }else if (comEvent.getEventProcessStatus().equals(5)){
                     //调解中,可以查看,调解,更换专家,删除
                     comEvent.setDistribution(0);
                     comEvent.setArchive(0);
-                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    comEvent.setSolve(0);
+                }else if (comEvent.getEventProcessStatus().equals(3)){
+                    //分配新专家后
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(1);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                    //设置为待受理
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(2);
+                    //上报到单位,并且调解失败,
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    //comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    //comEvent.setConciliation(0);
+                    comEvent.setArchive(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
                     //调解完成,可以归档,查看
                     comEvent.setSolve(0);
                     comEvent.setDistribution(0);
                     comEvent.setChangeExpert(0);
                     comEvent.setConciliation(0);
                 }
-            }else{
+            }else if (comEvent.getCurrentProcessType().equals(4)){
                 //未上报到街道,仅查看
+                comEvent.setSolve(0);
+                comEvent.setDistribution(0);
+                comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
+
+            }else {
                 comEvent.setArchive(0);
                 comEvent.setSolve(0);
                 comEvent.setDistribution(0);
@@ -332,17 +459,46 @@
             // 是否上报到三说会堂
             if (comEvent.getCurrentProcessType().equals(4) || comEvent.getReportHall().equals(1)){
                 //已上报到三说会堂,可以操作
-                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                if (comEvent.getEventProcessStatus().equals(1)){
                     //待受理和待验证状态,可以受理,分配专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
+                    comEvent.setSolve(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
-                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setChangeExpert(0);
+                }
+                else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }else if (comEvent.getEventProcessStatus().equals(3)){
+                    //新分配给专家并且专家还未受理
                     comEvent.setDistribution(0);
                     comEvent.setArchive(0);
-                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    //comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(5)){
+                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                    comEvent.setArchive(0);
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1)){
+                    //失败后转交三说会堂
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setConciliation(0);
+                    //comEvent.setChangeExpert(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
                     //调解完成,可以归档,查看
+                    comEvent.setConciliation(0);
                     comEvent.setSolve(0);
                     comEvent.setDistribution(0);
                     comEvent.setChangeExpert(0);
@@ -353,6 +509,7 @@
                 comEvent.setSolve(0);
                 comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
             }
         }
     }
@@ -690,7 +847,7 @@
         ComSanshuoExpert specter = comSanShuoExpertService.getById(specialistId);
         comEvent.setSpecialistAcceptTime(new Date());
         comEvent.setSpecialistName(specter.getName());
-        comEvent.setEventProcessStatus(SanShuoEventStatusEnum.ACCEPT.getCode());
+        comEvent.setEventProcessStatus(SanShuoEventStatusEnum.VALID.getCode());
         int flag = baseMapper.updateById(comEvent);
         //添加一条对应记录
         comEventMapper.insertEventAndExpertRecord(id, specialistId,1);
@@ -704,22 +861,21 @@
         Boolean isExpertCheck=false;
         Long expertId=null;
         Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
-        if (nonNull(comEvent.getUserType())){
-             if (loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
+        if (loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
                 ComSanshuoExpert expert=new ComSanshuoExpert();
                 //专家账号权限(后台)
-                if (nonNull(loginUserInfoVO.getPhone())){
+            if (nonNull(loginUserInfoVO.getPhone())){
                     expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
-                }else{
+            }else{
                     //账号获取
                     expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
-                }
-                comEvent.setUserType(2);
-                if (nonNull(expert)){
+            }
+            comEvent.setUserType(2);
+            if (nonNull(expert)){
                     comEvent.setSpecialistId(expert.getId());
                     isExpertCheck=true;
                     expertId=expert.getId();
-                }
+            }
             }else if (loginUserInfoVO.getType().equals(12)){
                 //行业分中心权限
                 comEvent.setUserType(3);
@@ -738,8 +894,7 @@
                 List<Long> cids = comActDAO.selectCommunityByStreetId(loginUserInfoVO.getStreetId());
                 comEvent.setUserType(5);
                 comEvent.setCommunityIds(cids);
-            }
-        }
+         }
         if (isExpertCheck && comEvent.getUserType()!=1){
             if (nonNull(comEventMapper.listEventIds(expertId))){
                 List<Long> eventIds = comEventMapper.listEventIds(expertId);

--
Gitblit v1.7.1