From e3a7b5f659b6967d8b426f20c8b52fe740be50b6 Mon Sep 17 00:00:00 2001 From: luofl <1442745593@qq.com> Date: 星期一, 14 四月 2025 15:45:07 +0800 Subject: [PATCH] 迭代:4.11版本 --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 90 insertions(+), 3 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java index ebe76c2..f118a4c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java @@ -34,6 +34,7 @@ import jodd.util.StringUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -178,7 +179,34 @@ } @Override + @Transactional(rollbackFor = Exception.class) + public void saveAndReport(ComplaintVO complaintVO, LoginUserInfoVO loginUserInfo) { + Complaint complaint = new Complaint(); + BeanUtil.copyProperties(complaintVO, complaint); + saveComplaint(complaint, loginUserInfo); + ComplaintReportDTO dto = new ComplaintReportDTO(); + dto.setComplaintId(complaint.getId()); + dto.setComment(complaintVO.getComment()); + saveReport(dto, loginUserInfo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveAndComplete(ComplaintSaveAndCompleteDTO complaintVO, LoginUserInfoVO loginUserInfo) { + Complaint complaint = new Complaint(); + BeanUtil.copyProperties(complaintVO, complaint); + saveComplaint(complaint, loginUserInfo); + + ComplaintCompletionDTO complaintCompletionDTO = complaintVO.getComplaintCompletionDTO(); + complaintCompletionDTO.setComplaintId(complaint.getId()); + complaintCompletionDTO.setId(complaint.getId()); + saveResult(complaintCompletionDTO, loginUserInfo); + } + + @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()); @@ -187,6 +215,7 @@ //获取当前身份,1=党员,2=管理员 IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO); Integer identity = identityInformation.getIdentity(); + query.setUserId(loginUserInfoVO.getUserId()); //上级 if (systemUserByPhone.isPresent() && null != identity && identity == 2) { SystemUser systemUser = systemUserByPhone.get(); @@ -222,7 +251,14 @@ //查询对应诉求 //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId); - page.getRecords().forEach(s -> buttonPermission(s, systemUserByPhone, loginUserInfoVO)); + + page.getRecords().forEach(s -> { + buttonPermission(s, systemUserByPhone, loginUserInfoVO); + Integer auditButtonStatus = s.getAuditButtonStatus(); + if (auditButtonStatus == 1 && s.getStatus() == 5 && !Objects.equals(s.getAuditCreateBy(), loginUserInfoVO.getUserId())){ + s.setStatus(0); + } + }); return page; } @@ -401,6 +437,16 @@ } } } + + Long auditCreateBy = vo.getAuditCreateBy(); + Long userId = loginUserInfo.getUserId(); + if (null != auditCreateBy && auditCreateBy.compareTo(userId) == 0 && vo.getStatus() == 5) { + vo.setWithdrawButtonStatus(0); + }else { + vo.setWithdrawButtonStatus(1); + } + + } @@ -472,6 +518,10 @@ buttonPermission(detail, systemUserByPhone, loginUserInfoVO); + Integer auditButtonStatus = detail.getAuditButtonStatus(); + if (auditButtonStatus == 1 && detail.getStatus() == 5 && !Objects.equals(detail.getAuditCreateBy(), loginUserInfoVO.getUserId())){ + detail.setStatus(0); + } // //已办结,显示评价按钮 @@ -574,6 +624,8 @@ return complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, complaintId) .orderByAsc(ComplaintProgress::getCreateTime).list(); } + + @Override @Transactional(rollbackFor = Exception.class) @@ -680,6 +732,41 @@ complaintAuditRecord.setReporterLevel(reporterLevel); complaintAuditRecord.setReporterId(reporterId); complaintAuditRecordService.save(complaintAuditRecord); + } + + @Override + public void reportWithdraw(ComplaintReportWithdrawDTO dto, LoginUserInfoVO loginUserInfoVO) { + ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>() + .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) + .eq(ComplaintAuditRecord::getAuditType, 2) + .eq(ComplaintAuditRecord::getLatestFlag, true)); + if (Objects.isNull(complaintAuditRecord)) { + throw new ServiceException("未找到相关记录"); + } + complaintAuditRecord.setAuditStatus(3); + complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId()); + complaintAuditRecord.setUpdateTime(new Date()); + complaintAuditRecord.setLatestFlag(false); + complaintAuditRecordService.updateById(complaintAuditRecord); + + // 获取上一条记录 + ComplaintAuditRecord lastRecord = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>() + .ne(ComplaintAuditRecord::getId, complaintAuditRecord.getId()) + .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) + .eq(ComplaintAuditRecord::getAuditType, 2) + .eq(ComplaintAuditRecord::getLatestFlag, false) + .orderByDesc(ComplaintAuditRecord::getSort) + ); + if (Objects.nonNull(lastRecord)) { + // 复制上一条记录 + ComplaintAuditRecord newRecord = new ComplaintAuditRecord(); + BeanUtils.copyProperties(lastRecord, newRecord); + newRecord.setId(null); + newRecord.setLatestFlag(true); + newRecord.setUpdateBy(loginUserInfoVO.getUserId()); + newRecord.setUpdateTime(new Date()); + complaintAuditRecordService.save(newRecord); + } } @Override @@ -978,7 +1065,7 @@ List<DispatchVO> dispatchVOList = new ArrayList<>(); if (accountLevel == ReportTypeEnum.STREET.getCode()) { String streetId = adminUser.getStreetId(); - List<ComAct> list = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId).eq(ComAct::getState, 0)); + List<ComAct> list = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)); for (ComAct comAct : list) { DispatchVO dispatchVO = new DispatchVO(); dispatchVO.setId(comAct.getCommunityId().toString()); @@ -1223,7 +1310,7 @@ if (Objects.nonNull(complaintComment)) { map.put("rateStr", RateEnum.getEnumByCode(complaintComment.getRate()).getDesc()); } - map.put("departmentLevel", ReportTypeEnum.getDescriptionByCode(loginUserInfo.getAccountLevel()) + "级"); + //map.put("departmentLevel", ReportTypeEnum.getDescriptionByCode(loginUserInfo.getAccountLevel()) + "级"); } response.setContentType("application/octet-stream"); String fileNameEncode = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); -- Gitblit v1.7.1