张天森
2022-10-14 63d34fe6dfeb8b3df01d1f3d70a4a0ab8ce69abe
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)){
            //如果未上报到街道,当前事件权限和专家一样
            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);
            }
            if (comEvent.getReportStreet().equals(1)){
            }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)){
                comEvent.setArchive(0);
                comEvent.setConciliation(0);
                comEvent.setDistribution(0);
                comEvent.setSolve(0);
                comEvent.setChangeExpert(0);
            }
            if (comEvent.getEventProcessStatus().equals(5)){
                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);
            }
        }else if (isStreet){
            //是否上报到行业分中心
            if (comEvent.getReportCenter().equals(1) || comEvent.getCurrentProcessType().equals(1)){
                //已经报到行业分中心
            if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2) ){
                    //待受理和待验证状态,可以受理,分配专家
                //关闭调解和归档
                comEvent.setArchive(0);
                comEvent.setSolve(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);
            }
            if (comEvent.getEventProcessStatus().equals(5)){
            }else{
                //未上上报到行业分中心,或者已上报到区三说会堂,仅查看
                comEvent.setArchive(0);
                comEvent.setSolve(0);
                comEvent.setDistribution(0);
                comEvent.setChangeExpert(0);
            }
        }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);
                comEvent.setDistribution(0);
                comEvent.setChangeExpert(0);
            }
        }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.setDistribution(0);
                comEvent.setChangeExpert(0);
            }
        }
    }
    /**