From d99aad4524f70b62401c135f946bda5696c702cb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 29 五月 2025 21:36:25 +0800 Subject: [PATCH] 小程序接口修改 --- springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java | 278 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 196 insertions(+), 82 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java index 2e3f188..93d7a21 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.idev.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -77,6 +78,7 @@ private final HttpServletResponse response; private final IPartyMemberService partyMemberService; private final IdentityInformationService identityInformationService; + private final IDepartmentService departmentService; private final RedisUtils redisUtils; @Override @@ -110,8 +112,7 @@ SystemUser systemUser = identityInformationVO.getSystemUser(); Integer identity = identityInformationVO.getIdentity(); if (identity == 2) { - SystemUserLevel systemUserLevel = identityInformationVO.getSystemUserLevel(); - accountLevel = systemUserLevel.getLevel(); + accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 @@ -122,39 +123,57 @@ case 2: //区县级 complaint.setCityCode(510400); - complaint.setDistrictsCode(Integer.valueOf(systemUserLevel.getDistrictsCode())); + 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(systemUserLevel.getDistrictsCode())); - complaint.setStreetId(Long.valueOf(systemUserLevel.getStreetId())); + 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(systemUserLevel.getDistrictsCode())); - complaint.setStreetId(Long.valueOf(systemUserLevel.getStreetId())); - complaint.setCommunityId(systemUserLevel.getCommunityId()); + 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; case 5: //党员 complaint.setCityCode(510400); - complaint.setDistrictsCode(Integer.valueOf(systemUserLevel.getDistrictsCode())); - complaint.setStreetId(Long.valueOf(systemUserLevel.getStreetId())); - complaint.setCommunityId(systemUserLevel.getCommunityId()); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(systemUser.getStreetId())); + complaint.setCommunityId(systemUser.getCommunityId()); PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); complaint.setPartyMemberId(partyMember.getId()); complaint.setReportUserName(partyMember.getName()); complaint.setReportUserPhone(partyMember.getPhone()); + + accountLevel=4; + complaint.setSuperiorId(systemUser.getCommunityId()); break; } + + // 判断该单位的管理员 添加处理人 +// Integer oneDepartmentId = systemUser.getOneDepartmentId(); +// SystemUser oneDepartmentSystemUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId,oneDepartmentId).eq(SystemUser::getIsDeptAdmin,1).ne(SystemUser::getStatus,3)); +// if(null != oneDepartmentSystemUser){ +// complaint.setAssignPersonId(oneDepartmentSystemUser.getId()); +// complaint.setHandleUserId(oneDepartmentSystemUser.getId()); +// } } else { PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); //党员 @@ -165,8 +184,19 @@ complaint.setPartyMemberId(partyMember.getId()); complaint.setReportUserName(partyMember.getName()); complaint.setReportUserPhone(partyMember.getPhone()); + + // 添加处理人 +// SystemUser one = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getAccountLevel, 4).eq(SystemUser::getIsDeptAdmin, 1).eq(SystemUser::getCommunityId, partyMember.getCommunityId()).ne(SystemUser::getStatus, 3)); +// if (null != one) { +// complaint.setAssignPersonId(one.getId()); +// complaint.setHandleUserId(one.getId()); +// } + + } complaint.setReportType(accountLevel); + complaint.setNowLevel(accountLevel); + // 设置其他字段 complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode()); complaint.setCreateTime(new Date(System.currentTimeMillis())); @@ -211,7 +241,7 @@ @Override public Page<ComplaintVO> complaintList(ComplaintQuery query, LoginUserInfoVO loginUserInfoVO) { - + // 已分派了的 Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize()); //判断当前登录用户级别,查询对应工单 Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); @@ -221,53 +251,79 @@ IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO); Integer identity = identityInformation.getIdentity(); query.setUserId(loginUserInfoVO.getUserId()); + + SystemUser systemUser = null; //上级 if (systemUserByPhone.isPresent() && null != identity && identity == 2) { - SystemUser systemUser = systemUserByPhone.get(); - SystemUserLevel systemUserLevel = identityInformation.getSystemUserLevel(); - accountLevel = systemUserLevel.getLevel(); + systemUserByPhone.get(); + accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { - case 1: - //市级 - targetId = 510400L; - break; case 2: //区县级 - targetId = Long.valueOf(systemUserLevel.getDistrictsCode()); + targetId = Long.valueOf(systemUser.getDistrictsCode()); break; case 3: //街道 - targetId = Long.valueOf(systemUserLevel.getStreetId()); + targetId = Long.valueOf(systemUser.getStreetId()); break; case 4: //社区 - targetId = systemUserLevel.getCommunityId(); + targetId = systemUser.getCommunityId(); break; case 5: //党员 PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); - targetId = partyMember.getId(); + targetId = partyMember.getCommunityId(); break; } } else { //党员 PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); - targetId = partyMember.getId(); + targetId = partyMember.getCommunityId(); } //查询对应诉求 //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); - page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId); - - /* for (ComplaintVO s : page.getRecords()) { - buttonPermission(s, systemUserByPhone, loginUserInfoVO); - Integer auditButtonStatus = s.getAuditButtonStatus(); - - Long reporterId = s.getReporterId(); - Long superiorId = s.getSuperiorId2(); - if (!targetId.equals(reporterId) && !targetId.equals(superiorId) && (s.getStatus() == 5)) { - s.setStatus(0); + // 党员只看自己上报的 + if(accountLevel==5){ + page = baseMapper.selectComplaintPage2(page, query, accountLevel, targetId); + }else if(accountLevel==2){ + // 西区单位 如果是西区单位,则只看自己上报的 + if(systemUser.getSystemRoleId()==1){ + // 是管理员 看所有的 + page = baseMapper.selectComplaintPage3(page, query, accountLevel, targetId); + }else { + // 不是管理员 看到指派给我的单位的诉求 + page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId()); } - }*/ + }else if(accountLevel==3){ + // 街道 1 + if(systemUser.getSystemRoleId()==1){ + // 获取街道的所有单位 + List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, 3).eq(Department::getStreetId, systemUser.getStreetId())); + if(list.isEmpty()){ + return page; + } + // 是管理员 可以看到下派来的 也可以看到上派待审核的 + page = baseMapper.selectComplaintPage5(page, query,systemUser.getStreetId(),list.stream().map(Department::getId).collect(Collectors.toList())); + }else { + // 不是管理员 看指派给我的 + page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId()); + } + }else if(accountLevel==4){ + // 社区 + if(systemUser.getSystemRoleId()==1){ + List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, 4).eq(Department::getCommunityId, systemUser.getCommunityId())); + if(list.isEmpty()){ + return page; + } + // 是管理员 + page = baseMapper.selectComplaintPage6(page, query,systemUser.getCommunityId(),list.stream().map(Department::getId).collect(Collectors.toList())); + }else { + // 不是管理员 看到负责社区的所有诉求 和 上级下派来的诉求 + page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId()); + + } + } return page; } @@ -682,7 +738,6 @@ String phone = loginUserInfoVO.getPhone(); IdentityInformation identityInformationVO = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO); SystemUser adminUser = identityInformationVO.getSystemUser(); - SystemUserLevel systemUserLevel = identityInformationVO.getSystemUserLevel(); Long superiorId; int reportType; @@ -690,6 +745,7 @@ Long reporterId = null; String departmentName = ""; String reporter = ""; + int nowLevel=0; if (identityInformationVO.getIdentity() == 1) { PartyMember partyMember = partyMemberService.getPartyMemberByPhone(phone); superiorId = partyMember.getCommunityId(); @@ -698,10 +754,13 @@ reporterLevel = 5; departmentName = partyMember.getDistricts() + "-" + partyMember.getStreet() + "-" + partyMember.getCommunity(); reporter = partyMember.getName(); + // 找到当前社区上一级人 + nowLevel = 3; + } else if (identityInformationVO.getIdentity() == 2) { - int accountLevel = systemUserLevel.getLevel(); // 改为基本类型 - if (accountLevel == 1) { - throw new ServiceException("市级账号,无法上报!"); + int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 + if (accountLevel == 2) { + throw new ServiceException("区级账号,无法上报!"); } reportType = accountLevel - 1; reporterLevel = accountLevel; @@ -709,16 +768,14 @@ // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { - superiorId = Long.parseLong(systemUserLevel.getStreetId()); - reporterId = systemUserLevel.getCommunityId(); + superiorId = Long.parseLong(adminUser.getStreetId()); + reporterId = adminUser.getCommunityId(); + nowLevel = 3; + } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { - superiorId = Long.parseLong(systemUserLevel.getDistrictsCode()); - reporterId = Long.parseLong(systemUserLevel.getStreetId()); - } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { - superiorId = 510400L; // 攀枝花市 - reporterId = Long.parseLong(systemUserLevel.getDistrictsCode()); - } else if (accountLevel == ReportTypeEnum.PARTY.getCode()) { - superiorId = systemUserLevel.getCommunityId(); + superiorId = Long.parseLong(adminUser.getDistrictsCode()); + reporterId = Long.parseLong(adminUser.getStreetId()); + nowLevel = 2; } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); @@ -726,20 +783,20 @@ //查询社区信息 switch (accountLevel) { case 2: - BcRegion region = bcRegionService.getDistrictByCode(systemUserLevel.getDistrictsCode().toString()); + BcRegion region = bcRegionService.getDistrictByCode(adminUser.getDistrictsCode().toString()); if (Objects.nonNull(region)) { departmentName = region.getRegionName(); } break; case 3: - ComStreet street = comStreetService.getById(systemUserLevel.getStreetId().toString()); + ComStreet street = comStreetService.getById(adminUser.getStreetId().toString()); if (Objects.nonNull(street)) { BcRegion district = bcRegionService.getDistrictByCode(street.getAreaCode().toString()); departmentName = Objects.nonNull(district) ? district.getRegionName() + "-" + street.getName() : street.getName(); } break; case 4: - ComAct act = comActService.getById(systemUserLevel.getCommunityId()); + ComAct act = comActService.getById(adminUser.getCommunityId()); if (Objects.nonNull(act)) { ComStreet street2 = comStreetService.getById(adminUser.getStreetId().toString()); BcRegion district = bcRegionService.getDistrictByCode(act.getAreaCode()); @@ -756,6 +813,9 @@ if (complaint.getStatus() != 0) { complaint.setStatus(0); } + complaint.setSuperiorId(superiorId); + complaint.setNowLevel(nowLevel); + complaint.setAssignStatus(0); updateById(complaint); // 标记最新 @@ -829,13 +889,12 @@ if (identityInformation.getIdentity() != 2) { throw new ServiceException("无权下派"); } + SystemUser systemUser = identityInformation.getSystemUser(); - SystemUserLevel systemUserLevel = identityInformation.getSystemUserLevel(); - int accountLevel = systemUserLevel.getLevel(); // 改为基本类型 + int accountLevel = systemUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 4) { throw new ServiceException("社区账号,无法下派!"); } - accountLevel++; Complaint complaint = getById(dto.getComplaintId()); //查询当前单位审核记录表数据 @@ -869,22 +928,31 @@ complaintAuditRecordService.save(record); ComplaintAuditRecord complaintAuditRecord = new ComplaintAuditRecord(); complaintAuditRecord.setComplaintId(complaint.getId()); - complaintAuditRecord.setReportType(systemUserLevel.getLevel()); + complaintAuditRecord.setReportType(systemUser.getAccountLevel()); Long superiorId = null; - switch (systemUserLevel.getLevel()) { + int nowLevel=0; + + switch (systemUser.getAccountLevel()) { case 1: superiorId = 510400L;//默认市级 break; case 2: - superiorId = Long.parseLong(systemUserLevel.getDistrictsCode()); + superiorId = Long.parseLong(systemUser.getStreetId()); + nowLevel=3; break; case 3: - superiorId = Long.parseLong(systemUserLevel.getStreetId()); + superiorId = systemUser.getCommunityId(); + nowLevel=4; break; case 4: - superiorId = systemUserLevel.getCommunityId(); + superiorId = systemUser.getCommunityId(); break; } + complaint.setSuperiorId(superiorId); + complaint.setAssignStatus(0); + complaint.setNowLevel(nowLevel); + this.updateById(complaint); + complaintAuditRecord.setSuperiorId(superiorId); complaintFlowService.createFlow(complaintAuditRecord, 1, loginUserInfoVO.getUserId()); } @@ -917,6 +985,8 @@ break; } + + //查询上报审核记录 ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.lambdaQuery() .eq(ComplaintAuditRecord::getComplaintId, complaintReporAuditDTO.getId()) @@ -931,6 +1001,7 @@ complaintAuditRecord.setAuditorName(systemUser.getName()); complaintAuditRecord.setAuditorPhone(systemUser.getPhone()); complaintAuditRecord.setAuditTime(new Date()); + if (complaintReporAuditDTO.getAuditResult().equals(1)) { complaintAuditRecord.setAuditStatus(1); complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); @@ -941,6 +1012,14 @@ complaintAuditRecord2.setSuperiorId(complaintAuditRecord.getReporterId()); complaintAuditRecord2.setReportType(complaintAuditRecord.getReporterLevel()); complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId()); + + // 通过修改状态 + Complaint complaint = this.getById(complaintReporAuditDTO.getId()); + complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId()); + complaint.setAssignStatus(1); + this.updateById(complaint); + + } else { complaintAuditRecord.setRejectReason(complaintReporAuditDTO.getRejectReason()); complaintAuditRecord.setAuditStatus(2); @@ -972,8 +1051,8 @@ reporter = partyMember.getName(); } else if (identityInformation.getIdentity() == 2) { int accountLevel = systemUserLevel.getLevel(); // 改为基本类型 - if (accountLevel == 1) { - throw new ServiceException("市级账号,无法延期申请!"); + if (accountLevel == 2) { + throw new ServiceException("区级账号,无法延期申请!"); } reportType = accountLevel - 1; reporter = systemUser.getName(); @@ -1119,12 +1198,11 @@ IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO); SystemUser adminUser = identityInformation.getSystemUser(); - SystemUserLevel systemUserLevel = identityInformation.getSystemUserLevel(); if (identityInformation.getIdentity() != 2) { throw new ServiceException("无权下派"); } - int accountLevel = systemUserLevel.getLevel(); // 改为基本类型 + int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 /* if (accountLevel == 1) { throw new ServiceException("市级账号,无法上报!"); }*/ @@ -1132,30 +1210,20 @@ // 使用基本类型比较并补充默认分支 List<DispatchVO> dispatchVOList = new ArrayList<>(); if (accountLevel == ReportTypeEnum.STREET.getCode()) { - String streetId = systemUserLevel.getStreetId(); - List<ComAct> list = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)); - for (ComAct comAct : list) { + // 社区的单位 + List<Department> list1 = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, 4)); + for (Department department : list1) { DispatchVO dispatchVO = new DispatchVO(); - dispatchVO.setId(comAct.getCommunityId().toString()); - dispatchVO.setName(comAct.getName()); + dispatchVO.setId(department.getCommunityId().toString()); + dispatchVO.setName(department.getName()); dispatchVOList.add(dispatchVO); } } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { - String districtsCode = systemUserLevel.getDistrictsCode(); - List<ComStreet> list = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getAreaCode, districtsCode)); - for (ComStreet street : list) { + List<Department> list1 = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, 3)); + for (Department department : list1) { DispatchVO dispatchVO = new DispatchVO(); - dispatchVO.setId(street.getStreetId().toString()); - dispatchVO.setName(street.getName()); - dispatchVOList.add(dispatchVO); - } - } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { - List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>() - .eq(BcRegion::getHierarchyOrder, 3).eq(BcRegion::getParentId, 510400));//获取攀枝花市下的区县 - for (BcRegion region : list) { - DispatchVO dispatchVO = new DispatchVO(); - dispatchVO.setId(region.getRegionCode()); - dispatchVO.setName(region.getRegionName()); + dispatchVO.setId(department.getCommunityId().toString()); + dispatchVO.setName(department.getName()); dispatchVOList.add(dispatchVO); } } else { @@ -1727,5 +1795,51 @@ } return baseMapper.queryCompliantList(targetId, accountLevel, loginUserInfo, query); } + + + @Override + public Page<SysUserVO> getDeptUserList(LoginUserInfoVO loginUserInfo,BasePage page) { + IdentityInformation currentIdentityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo); + if (currentIdentityInformation.getIdentity().equals(2)) { + SystemUser systemUser = currentIdentityInformation.getSystemUser(); + if(systemUser.getIsDeptAdmin()==0){ + throw new ServiceException("你没有分配权限"); + } + + Page<SysUserVO> sysUserVOPage = new Page<>(); + ArrayList<SysUserVO> sysUserVOS = new ArrayList<>(); + + Page<SystemUser> page1 = systemUserService.page(new Page<>(page.getPageNum(), page.getPageSize()), new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, systemUser.getOneDepartmentId()).ne(SystemUser::getId,systemUser.getId()).ne(SystemUser::getStatus, 3)); + for (SystemUser record : page1.getRecords()) { + SysUserVO sysUserVO = new SysUserVO(); + sysUserVO.setId(record.getId()); + sysUserVO.setName(record.getName()); + sysUserVOS.add(sysUserVO); + } + sysUserVOPage.setRecords(sysUserVOS); + BeanUtils.copyProperties(page1,sysUserVOPage); + return sysUserVOPage; + }else { + throw new ServiceException("你没有分配权限"); + } + } + + + @Override + public void assignComplain(LoginUserInfoVO loginUserInfo, Long complainId, Integer userId) { + IdentityInformation currentIdentityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo); + if (currentIdentityInformation.getIdentity().equals(2)) { + SystemUser systemUser = currentIdentityInformation.getSystemUser(); + Complaint complaint = baseMapper.selectById(complainId); + // 已分配状态 + complaint.setAssignPersonId(userId); + complaint.setFirstStatus(1); + complaint.setAssignStatus(1); + }else { + throw new ServiceException("你没有分配权限"); + } + + } + } -- Gitblit v1.7.1