From b0a0cbf6cd8f3beacbca9a962b45b0baf3935176 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期六, 15 十月 2022 11:15:21 +0800
Subject: [PATCH] Merge branch 'huacheng_test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into huacheng_test

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java |  162 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 118 insertions(+), 44 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 9feb98d..2dd7c5d 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
@@ -164,15 +164,30 @@
         return R.ok(list);
     }
 
-
     /**
      * 当前账号对事件的操作权限
-     * 1:有权限 0无权限
+     * 有权限 0无权限
+     * 1、用户提交调解申请后,调解专家状态为待受理,可操作受理、查看,专家所在部门状态为待受理,可操作受理(帮专家进行受理处理)、查看、删除,
+     * 所在部门上级部门状态为待受理,仅可查看、删除;
+     * 2、专家拒绝受理后,专家看不到该调解申请,所在单位状态变为待分配,可操作分配、调解、查看、删除,所在单位的上级单位状态变为待分配,仅可查看、删除;
+     * 3、专家受理后,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作调解、查看、删除,专家做在单位的上级单位状态变为调解中,仅可查看、删除;
+     * 4、专家调解调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
+     * 可查看、删除;
+     * 5、专家所在部门调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
+     * 可查看、删除;
+     * 6、专家调解完成上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为待分配,可操作分配专家、调解、查看、删除,专家所在部门的上级单位状态变为调解中,可查看、删除;
+     * 7、专家所在部门调解完成上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看、删除,专家所在部门的上级单位状态变为待分配,可分配专家、查看、删除,
+     * 上上级单位状态变为调解中,可查看、删除;
+     * 8、专家调解/专家所在部门调解未完成,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作更换专家、调解、查看、删除,专家所在部门的上级单位状态变为调解中,可查看、删除;
+     * 9、专家所在部门分配给专家后,专家状态变为待受理,可操作受理、查看,专家所在部门状态变为待受理,可操作受理(帮专家进行受理处理)、查看、删除,专家所在部门的上级部门状态变为待受理,
+     * 仅可查看、删除;
+     * 10、专家所在部门更换专家,原专家状态已完成,专家所在部门状态不变,专家所在部门的上级单位状态不变;
      * */
     public void accountMenu(ComEvent comEvent,Integer userType,LoginUserInfoVO loginUserInfoVO,Boolean isStreet){
         //四个账号级别
+        Boolean isAdmin=false;
         if (isNull(userType)){
-            return;
+            isAdmin=true;
         }
         comEvent.setDelete(1);
         comEvent.setArchive(1);
@@ -182,85 +197,144 @@
         comEvent.setChangeExpert(1);
         if (userType.equals(2)){
             //专家后台权限,根据事件的流转信息决定专家对此事件的操作权限
-            //获取专家信息
+            //细分到事件的每个状态和流转情况
             ComSanshuoExpert expert=new ComSanshuoExpert();
             comEvent.setDistribution(0);
             comEvent.setChangeExpert(0);
             comEvent.setDelete(0);
-            if (!comEvent.getCurrentProcessType().equals(5)){
-                comEvent.setSolve(0);
-            }
             if (nonNull(loginUserInfoVO.getPhone())){
                 expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
             }else{
                 //账号获取
                 expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
             }
-            if (!comEvent.getSpecialistId().equals(expert.getId())){
-                //已经上报或者重新分配专家
+            if (!comEvent.getSpecialistId().equals(expert.getId()) || !comEvent.getCurrentProcessType().equals(5)){
+                //已经上报或者重新分配专家,只能查看
                 comEvent.setConciliation(0);
-                //comEvent.setDelete(0);
                 comEvent.setArchive(0);
-            }
-            if (comEvent.getEventProcessStatus().equals(1)){
+                comEvent.setSolve(0);
+                return;
+            }//未上报,根据状态决定权限
+            if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                //待受理和待验证状态,仅有查看和受理权限,可能为用户选择该专家或上级单位分配给该专家
                 //关闭调解和归档
                 comEvent.setArchive(0);
                 comEvent.setConciliation(0);
-            }
-            if (comEvent.getEventProcessStatus().equals(5)){
+            } else if (comEvent.getEventProcessStatus().equals(5)){
+                //调解中,可以查看,调解
                 comEvent.setArchive(0);
+            } else if (comEvent.getEventProcessStatus().equals(6)){
+                //调解完成,可以归档,查看
                 comEvent.setSolve(0);
             }
         }else if (userType.equals(4)){
             //社区后台权限
-            if (comEvent.getEventProcessStatus().equals(5) && comEvent.getEventResult().equals(2)){
-                comEvent.setChangeExpert(0);
-            }
-            if (comEvent.getReportStreet().equals(1)){
+            //如果未上报到街道,当前事件权限和专家一样
+            if (comEvent.getCurrentProcessType().equals(5) || 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);
+                    comEvent.setArchive(0);
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                }
+            }else{
+                //已上报到街道或三说会堂,社区没有分配和受理权限权限
+                comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
                 comEvent.setDelete(0);
             }
-            if (!comEvent.getEventProcessStatus().equals(5)){
-                comEvent.setArchive(0);
-            }
-            if (comEvent.getEventProcessStatus().equals(2)){
-                comEvent.setConciliation(0);
-            }
         }else if (userType.equals(3)){
             //分配行业分中心操作权限
-            if (!comEvent.getReportCenter().equals(1)){
+            //是否上报到行业分中心
+            if (comEvent.getReportCenter().equals(1) || comEvent.getCurrentProcessType().equals(1)){
+                //已经报到行业分中心
+                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(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);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                }
+            }else{
+                //未上上报到行业分中心,或者已上报到区三说会堂,仅查看
                 comEvent.setArchive(0);
-                comEvent.setConciliation(0);
-                comEvent.setDistribution(0);
                 comEvent.setSolve(0);
+                comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
             }
-            if (comEvent.getEventProcessStatus().equals(5)){
+        }else if (userType.equals(5)  || isStreet){
+            //街道权限,操作街道下属社区的所有事件
+            //是否上报到街道
+            if (comEvent.getReportStreet().equals(1) || comEvent.getCurrentProcessType().equals(3)){
+                //已上报到街道
+                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(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);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                }
+            }else{
+                //未上报到街道,仅查看
                 comEvent.setArchive(0);
                 comEvent.setSolve(0);
-            }
-        }else if (userType.equals(5)){
-            //街道权限
-            if (!comEvent.getReportStreet().equals(1)){
-                comEvent.setArchive(0);
-                comEvent.setConciliation(0);
                 comEvent.setDistribution(0);
-                comEvent.setSolve(0);
+                comEvent.setChangeExpert(0);
             }
-        }else if (isStreet){
-            if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2) ){
-                //关闭调解和归档
+        }else if (isAdmin){
+            //区三说会堂账号,最高权限全部开放
+            // 是否上报到三说会堂
+            if (comEvent.getCurrentProcessType().equals(4) || comEvent.getReportHall().equals(1)){
+                //已上报到三说会堂,可以操作
+                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(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);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                }
+            }else{
+                //未上报到三说会堂,仅查看
                 comEvent.setArchive(0);
                 comEvent.setSolve(0);
-                comEvent.setConciliation(0);
                 comEvent.setDistribution(0);
-            }
-            if (comEvent.getEventProcessStatus().equals(5)){
-                comEvent.setArchive(0);
-                comEvent.setSolve(0);
+                comEvent.setChangeExpert(0);
             }
         }
-
     }
 
     /**

--
Gitblit v1.7.1