liujie
2025-06-23 ba41b9351647a36bad13c0ab03d3fb602f5f4b27
springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java
@@ -172,7 +172,7 @@
        } else {
            PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
            complaint.setCityCode(510400);
            if(partyMember!=null){
            if (partyMember != null) {
                //党员
                complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode()));
                complaint.setStreetId(Long.valueOf(partyMember.getStreetId()));
@@ -181,7 +181,7 @@
                complaint.setReportUserName(partyMember.getName());
                complaint.setReportUserPhone(partyMember.getPhone());
                complaint.setSuperiorId(partyMember.getCommunityId());
            }else {
            } else {
                complaint.setDistrictsCode(Integer.valueOf(loginUserInfoVO.getAreaCode()));
                complaint.setStreetId(loginUserInfoVO.getStreetId());
                complaint.setCommunityId(loginUserInfoVO.getCommunityId());
@@ -289,9 +289,9 @@
            systemUser = null;
            //党员
            PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
            if(partyMember!=null){
            if (partyMember != null) {
                targetId = partyMember.getCommunityId();
            }else {
            } else {
                targetId = loginUserInfoVO.getCommunityId();
            }
        }
@@ -313,7 +313,7 @@
            // 街道 1
            if (systemUser.getSystemRoleId() == 1) {
                // 获取这个街道所管的社区id
                List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId,systemUser.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
                List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, systemUser.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
                // 是管理员 可以看到下派来的  也可以看到上派待审核的
                page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), communityIds);
            } else {
@@ -339,39 +339,39 @@
            // 处理页面颜色展示和倒计时
            Date nowLevelTime = record.getNowLevelTime();
            if(record.getNowLevel()==2){
            if (record.getNowLevel() == 2) {
                Integer HandlingTime = config.getDistrictHandlingTime();
                Integer DeadlineReminder = config.getDistrictDeadlineReminder();
                // 判断是超时 还是  临期
                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
                if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(2);
                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                } else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(1);
                }
                long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                record.setRemindTime(result.doubleValue());
            }else if(record.getNowLevel()==3){
            } else if (record.getNowLevel() == 3) {
                Integer HandlingTime = config.getStreetHandlingTime();
                Integer DeadlineReminder = config.getStreetDeadlineReminder();
                // 判断是超时 还是  临期
                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
                if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(2);
                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                } else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(1);
                }
                long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                record.setRemindTime(result.doubleValue());
            } else if(record.getNowLevel()==4){
            } else if (record.getNowLevel() == 4) {
                Integer HandlingTime = config.getCommunityHandlingTime();
                Integer DeadlineReminder = config.getCommunityDeadlineReminder();
                // 判断是超时 还是  临期
                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
                if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(2);
                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                } else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                    record.setRemindStatus(1);
                }
                long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
@@ -379,9 +379,6 @@
                BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                record.setRemindTime(result.doubleValue());
            }
            int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, record.getId()));
@@ -677,10 +674,10 @@
        } else {
            //党员
            PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
            if(partyMember!=null){
            if (partyMember != null) {
                targetId = partyMember.getId().toString();
            }else {
                targetId =loginUserInfoVO.getUserId().toString();
            } else {
                targetId = loginUserInfoVO.getUserId().toString();
            }
        }
@@ -732,13 +729,13 @@
                }
            }
        } else {
            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                detail.setStatus(0);
            } else if(detail.getFirstStatus()==0){
            } else if (detail.getFirstStatus() == 0) {
                detail.setStatus(5);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
                detail.setStatus(3);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 8) {
                detail.setStatus(8);
            }
        }
@@ -789,13 +786,13 @@
        //获取当前身份,1=党员,2=管理员
        ComplaintVO detail = baseMapper.getDetail(id);
        // 更新状态 此时status是表中的状态 未做变动
        if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
        if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
            detail.setStatus(0);
        } else if(detail.getFirstStatus()==0){
        } else if (detail.getFirstStatus() == 0) {
            detail.setStatus(5);
        }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
        } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
            detail.setStatus(3);
        }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
        } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 8) {
            detail.setStatus(8);
        }
@@ -808,11 +805,6 @@
        return detail;
    }
    /**
@@ -893,12 +885,12 @@
        complaint.setHandlingDay(handlingDay);
        this.updateById(complaint);
        if(dto.getStatus()==3){
        if (dto.getStatus() == 3) {
            // 发送短信
            Long createBy = complaint.getCreateBy();
            String phone = systemUserService.getCreateByIdPhone(createBy);
            if(StringUtils.isNotEmpty(phone)){
            if (StringUtils.isNotEmpty(phone)) {
                AliSmsUtil.sendSuccessMessage(phone);
            }
        }
@@ -1226,8 +1218,6 @@
            complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId());
            // 通过修改状态  已经修改superiorId  和层级  不需要修改 superiorId
            Complaint complaint = this.getById(complaintReporAuditDTO.getId());
            complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId());
@@ -1245,15 +1235,15 @@
            Department byId = departmentService.getById(complaintReporAuditDTO.getDeptId());
            complaintFlow.setName(byId.getName());
            complaintFlow.setType(1);
            complaintFlow.setCreateTime(new Date(System.currentTimeMillis()+1000));
            complaintFlow.setCreateTime(new Date(System.currentTimeMillis() + 1000));
            complaintFlowService.save(complaintFlow);
            this.updateById(complaint);
            List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, complaintReporAuditDTO.getDeptId()).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1));
            if(!list.isEmpty()){
            if (!list.isEmpty()) {
                List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList());
                AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber());
                AliSmsUtil.sendAssignMessageAdmin(phoneList, complaint.getSerialNumber());
            }
        } else {
@@ -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
@@ -2128,9 +2147,9 @@
            List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, userId).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1));
            if(!list.isEmpty()){
            if (!list.isEmpty()) {
                List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList());
                AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber());
                AliSmsUtil.sendAssignMessageAdmin(phoneList, complaint.getSerialNumber());
            }
        } else {
@@ -2149,13 +2168,13 @@
        page = baseMapper.pageScreenList(page, query);
        page.getRecords().forEach(detail -> {
            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                detail.setStatus(0);
            } else if(detail.getFirstStatus()==0){
            } else if (detail.getFirstStatus() == 0) {
                detail.setStatus(5);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
                detail.setStatus(3);
            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 8) {
                detail.setStatus(8);
            }
        });
@@ -2165,7 +2184,91 @@
    @Override
    public Page<String> getHouseAddress(GetHouseAddressQuery query) {
        Page<String> page = new Page<>(query.getPageNum(), query.getPageSize());
        return  this.baseMapper.getHouseAddress(page,query.getAddress());
        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);
    }
}