liujie
2025-06-23 ba41b9351647a36bad13c0ab03d3fb602f5f4b27
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java
@@ -381,9 +381,6 @@
            }
            int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, record.getId()));
            if (count > 0) {
                record.setEvaluateButtonStatus(1);
@@ -810,11 +807,6 @@
    }
    /**
     * 办理进度录入
     *
@@ -1226,8 +1218,6 @@
            complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId());
            // 通过修改状态  已经修改superiorId  和层级  不需要修改 superiorId
            Complaint complaint = this.getById(complaintReporAuditDTO.getId());
            complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId());
@@ -1571,7 +1561,36 @@
     */
    @Override
    public Page<ComplaintVO> pageList(MgtComplaintQuery query, SystemUserVo loginUserInfo) {
        return baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
        if (loginUserInfo.getAccountLevel() == 2) {
            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
                Page<ComplaintVO> complaintVOPage = baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
                return complaintVOPage;
            }else {
                Page<ComplaintVO> complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
                return complaintVOPage;
            }
        }
        if (loginUserInfo.getAccountLevel() == 3) {
            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
                // 获取这个街道所管的社区id
                List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, loginUserInfo.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
                Page<ComplaintVO> complaintVOPage = baseMapper.pageList2(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo,communityIds);
                return complaintVOPage;
            }else {
                Page<ComplaintVO> complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
                return complaintVOPage;
            }
        }
        if (loginUserInfo.getAccountLevel() == 4) {
            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
                Page<ComplaintVO> complaintVOPage = baseMapper.pageList3(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
                return complaintVOPage;
            }else {
                Page<ComplaintVO> complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
                return complaintVOPage;
            }
        }
        return new Page<>();
    }
    @Override
@@ -2167,5 +2186,89 @@
        Page<String> page = new Page<>(query.getPageNum(), query.getPageSize());
        return  this.baseMapper.getHouseAddress(page,query.getAddress());
    }
    @Override
    public void saveComplaintAdmin(Complaint complaint, SystemUserVo systemUser) {
        // 获取当前日期(年月日)
        String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date());
        // 查询当前日期的最大流水号
        Complaint lastComplaint = getOne(new LambdaQueryWrapper<Complaint>()
                .likeRight(Complaint::getSerialNumber, datePrefix) // 查询以当前日期开头的流水号
                .orderByDesc(Complaint::getSerialNumber)
                .last("limit 1"));
        String serialNumber;
        if (isNull(lastComplaint)) {
            // 如果当天没有记录,从 0001 开始
            serialNumber = datePrefix + "0001";
        } else {
            // 获取当前日期的最大流水号,并递增
            String lastSerialNumber = lastComplaint.getSerialNumber();
            int num = Integer.parseInt(lastSerialNumber.substring(lastSerialNumber.length() - 4)); // 提取后4位数字
            serialNumber = datePrefix + String.format("%04d", num + 1); // 递增并格式化为4位
        }
        // 设置流水号
        complaint.setSerialNumber(serialNumber);
        Integer accountLevel = 4;
        //获取当前身份
        //1=党员,2=管理员
        accountLevel = systemUser.getAccountLevel();
        switch (accountLevel) {
            case 2:
                //区县级
                complaint.setCityCode(510400);
                complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
                complaint.setReportUserName(systemUser.getName());
                complaint.setReportUserPhone(systemUser.getPhone());
                complaint.setSuperiorId(Long.valueOf(systemUser.getDistrictsCode()));
                break;
            case 3:
                //街道
                complaint.setCityCode(510400);
                complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
                complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
                complaint.setReportUserName(systemUser.getName());
                complaint.setReportUserPhone(systemUser.getPhone());
                complaint.setSuperiorId(Long.valueOf(systemUser.getStreetId()));
                break;
            case 4:
                //社区
                complaint.setCityCode(510400);
                complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
                complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
                complaint.setCommunityId(systemUser.getCommunityId());
                complaint.setReportUserName(systemUser.getName());
                complaint.setReportUserPhone(systemUser.getPhone());
                complaint.setSuperiorId(systemUser.getCommunityId());
                break;
        }
        complaint.setReportType(accountLevel);
        complaint.setNowLevel(accountLevel);
        complaint.setLastLevel(accountLevel);
        complaint.setLastSuperiorId(complaint.getSuperiorId());
        // 设置其他字段
        complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode());
        complaint.setCreateTime(new Date(System.currentTimeMillis()));
        complaint.setUpdateTime(new Date(System.currentTimeMillis()));
        //查询系统配置诉求处理期限,设置截止日期
        WorkOrderItemConfig config = workOrderItemConfigService.lambdaQuery().orderByDesc(WorkOrderItemConfig::getId).last("LIMIT 1").one();
        if (Objects.isNull(config)) {
            throw new ServiceException("工单事项未配置,请联系管理员");
        }
        complaint.setNowLevelTime(new Date());
        complaint.setNowLevelSms(0);
        // 保存诉求记录
        save(complaint);
    }
}