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

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java |  161 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 146 insertions(+), 15 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 2dd7c5d..11ccfd9 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
@@ -166,10 +166,10 @@
 
     /**
      * 当前账号对事件的操作权限
-     * 有权限 0无权限
+     * 1有权限 0无权限
      * 1、用户提交调解申请后,调解专家状态为待受理,可操作受理、查看,专家所在部门状态为待受理,可操作受理(帮专家进行受理处理)、查看、删除,
-     * 所在部门上级部门状态为待受理,仅可查看、删除;
-     * 2、专家拒绝受理后,专家看不到该调解申请,所在单位状态变为待分配,可操作分配、调解、查看、删除,所在单位的上级单位状态变为待分配,仅可查看、删除;
+     * 所在部门上级部门状态为待受理,仅可查看、删除;ok
+     * 2、专家拒绝受理后,专家看不到该调解申请,所在单位状态变为待分配,可操作分配、调解、查看、删除,所在单位的上级单位状态变为待分配,仅可查看、删除; ok
      * 3、专家受理后,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作调解、查看、删除,专家做在单位的上级单位状态变为调解中,仅可查看、删除;
      * 4、专家调解调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
      * 可查看、删除;
@@ -208,10 +208,17 @@
                 //账号获取
                 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.setArchive(0);
                 comEvent.setSolve(0);
                 return;
             }//未上报,根据状态决定权限
@@ -223,35 +230,95 @@
             } 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);
+                comEvent.setConciliation(0);
             }
         }else if (userType.equals(4)){
             //社区后台权限
             //如果未上报到街道,当前事件权限和专家一样
-            if (comEvent.getCurrentProcessType().equals(5) || comEvent.getCurrentProcessType().equals(2)){
+            if (comEvent.getCurrentProcessType().equals(5)){
                 //根据事件状态决定权限
                 if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
                     //待受理和待验证状态,可以受理,分配专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
                 } else if (comEvent.getEventProcessStatus().equals(5)){
                     //调解中,可以查看,调解,更换专家,删除
                     comEvent.setDistribution(0);
+                    comEvent.setSolve(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(2)){
+                //上报到社区后,增加分配专家权限
+                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                    //待受理和待验证状态,可以受理,更换专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    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);
+                    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)){
             //分配行业分中心操作权限
@@ -263,11 +330,28 @@
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
+                }
+                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);
@@ -290,15 +374,41 @@
                     //关闭调解和归档
                     comEvent.setArchive(0);
                     comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    //comEvent.setDistribution(0);
+                    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{
                 //未上报到街道,仅查看
@@ -306,6 +416,7 @@
                 comEvent.setSolve(0);
                 comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
             }
         }else if (isAdmin){
             //区三说会堂账号,最高权限全部开放
@@ -316,13 +427,32 @@
                     //待受理和待验证状态,可以受理,分配专家
                     //关闭调解和归档
                     comEvent.setArchive(0);
+                    comEvent.setSolve(0);
                     comEvent.setConciliation(0);
-                } else if (comEvent.getEventProcessStatus().equals(5)){
-                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setChangeExpert(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);
@@ -333,6 +463,7 @@
                 comEvent.setSolve(0);
                 comEvent.setDistribution(0);
                 comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
             }
         }
     }
@@ -670,7 +801,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);

--
Gitblit v1.7.1