张天森
2022-10-14 63d34fe6dfeb8b3df01d1f3d70a4a0ab8ce69abe
三说会堂事件操作权限处理
5个文件已修改
172 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java 162 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java
@@ -32,7 +32,7 @@
    /**当前调解处理结果*/
    @ApiModelProperty(name = "currentEventProcessResult", value = "当前调解处理结果")
    private String currentEventProcessResult;
    /**调解是否成果1未成果2已成果*/
    /**调解是否成果1未成功2已成功*/
    @ApiModelProperty(name = "eventSucceed", value = "调解是否成果1未成果2已成果")
    private Integer eventSucceed;
    /**调解上传图片地址列表,逗号进行分割*/
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java
@@ -154,7 +154,6 @@
    })
    @PostMapping("/page")
    public R page(@RequestBody ComEventVO comEventVO, Long pageNo, Long pageSize) {
        log.info("==============分页参数"+comEventVO);
        Page pagination = new Page(pageNo, pageSize);
        ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class);
        return comEventService.pageByComEvent(comEvent, pagination,this.getLoginUserInfo());
@@ -317,7 +316,8 @@
    @ApiOperation("事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计")
    @GetMapping("/status/calculate")
    public R calculate() {
        return comEventService.calculate(getLoginUserInfo());
        comEventService.calculate(getLoginUserInfo());
        return R.ok();
    }
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java
@@ -94,7 +94,7 @@
    @ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案7已归档8调解取消9已删除")
    private Integer eventProcessStatus;
    /**当前处理对象类型(1、行业分中心2、社区3、是街道4、区三说会堂,5专家)*/
    @ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区)")
    @ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区5专家)")
    private Integer currentProcessType;
    /**当前处理机构ID*/
    @ApiModelProperty(name = "currentOrgId", value = "当前处理机构ID")
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);
            }
        }
    }
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml
@@ -523,7 +523,7 @@
    </select>
    <update id="updateLog">
        update com_sanshuo_expert_event set status = 2
        where event_id=#{eventId} and expert_id=#{expertId}
        where event_id=#{eventId} and expert_id=#{expertId} and status=0
    </update>
</mapper>