Pu Zhibing
2025-03-17 0fc9760cf60f30e070c9e1ddb39dff0fe0fb5f91
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -112,7 +112,7 @@
        Integer accountLevel = 5;
        //获取当前身份,1=党员,2=管理员
        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
        if (systemUserOpt.isPresent() && identity == 2) {
        if (systemUserOpt.isPresent() && null != identity && identity == 2) {
            SystemUser systemUser = systemUserOpt.get();
            accountLevel = systemUser.getAccountLevel();
            switch (accountLevel) {
@@ -201,7 +201,7 @@
        //获取当前身份,1=党员,2=管理员
        Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
        //上级
        if (systemUserByPhone.isPresent() && identity == 2) {
        if (systemUserByPhone.isPresent() && null != identity && identity == 2) {
            SystemUser systemUser = systemUserByPhone.get();
            accountLevel = systemUser.getAccountLevel();
            switch (accountLevel) {
@@ -249,6 +249,8 @@
    public void buttonPermission(ComplaintVO vo, Optional<SystemUser> systemUserByPhone){
        vo.setListControlsButtonStatus(1);
        vo.setEvaluateButtonStatus(1);
        vo.setAuditButtonStatus(1);
        ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
                .ne(ComplaintAuditRecord::getAuditType, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1"));
        //没有审核数据,且正在办理,则按钮权限是添加人员的
@@ -284,6 +286,48 @@
                        }
                    }
                }else{
                    //审核状态为待审核,需要授权审核按钮
                    if((one.getAuditStatus() == 5 || one.getAuditStatus() == 7) && systemUserByPhone.isPresent()){
                        SystemUser systemUser = systemUserByPhone.get();
                        String targetId = "";
                        Integer accountLevel = 5;
                        //获取当前身份,1=党员,2=管理员
                        Integer identity = (Integer) redisUtils.get("identity:" + systemUser.getPhone());
                        if(2 == identity){
                            accountLevel = systemUser.getAccountLevel();
                            switch (accountLevel) {
                                case 1:
                                    //市级
                                    targetId = "510400";
                                    break;
                                case 2:
                                    //区县级
                                    targetId = systemUser.getDistrictsCode();
                                    break;
                                case 3:
                                    //街道
                                    targetId = systemUser.getStreetId().toString();
                                    break;
                                case 4:
                                    //社区
                                    targetId = systemUser.getCommunityId().toString();
                                    break;
                                case 5:
                                    //党员
                                    PartyMember partyMember = partyMemberService.getPartyMemberByPhone(systemUser.getPhone());
                                    targetId = partyMember.getId().toString();
                                    break;
                            }
                            ComplaintAuditRecord one2 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
                                    .eq(ComplaintAuditRecord::getLatestFlag, 1));
                            Integer isAdmin = systemUserByPhone.get().getIsAdmin();
                            if(one2.getReportType().equals(accountLevel) && one2.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){
                                vo.setAuditButtonStatus(0);
                            }
                        }
                    }
                    //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人
                    ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
                            .eq(ComplaintAuditRecord::getAuditType, 2).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1"));
@@ -954,14 +998,14 @@
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode("诉求数据", "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), PartyMemberExcel.class)
        EasyExcel.write(response.getOutputStream(), ComplaintExcel.class)
                .sheet("诉求数据")
                .doWrite(complaintExcels);
    }
    @Override
    public void downloadFile(Long id,Integer type) throws IOException {
        Complaint complaint = getById(id);
        Complaint complaint = baseMapper.getDetailBg(id);
        if (Objects.isNull(complaint)) {
            throw new ServiceException("该诉求不存在");
        }
@@ -969,7 +1013,7 @@
        BcRegion region = bcRegionService.getDistrictByCode(complaint.getDistrictsCode().toString());
        ComStreet street = comStreetService.getById(complaint.getStreetId().toString());
        ComAct act = comActService.getById(complaint.getCommunityId());
        String community = region.getRegionName() +"-"+ street.getName() + act.getName();
        String community = region.getRegionName() +"-"+ street.getName() + "-"+ act.getName();
        PartyMember partyMember = null;
        if (Objects.nonNull(complaint.getPartyMemberId())){
             partyMember = partyMemberService.getById(complaint.getPartyMemberId());
@@ -993,7 +1037,7 @@
        map.put("community", community);
        map.put("problemType", complaint.getProblemType());
        map.put("descriptionContent", complaint.getDescriptionContent());
        map.put("reportType", ReportTypeEnum.fromCode(complaint.getReportType())); //TODO待修改
        map.put("reportType", ReportTypeEnum.fromCode(complaint.getReportType()).getDescription());
        map.put("partyOrganization",Objects.nonNull(partyMember)? partyMember.getPartyOrganization() : "");
        map.put("name", complaint.getName());
        map.put("contactNumber", complaint.getContactNumber());