From 2f084c24fcc1c42e401edde4c8c6939d53c94764 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 25 二月 2025 00:08:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java | 102 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 72 insertions(+), 30 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 e8834c7..f981e87 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 @@ -9,7 +9,6 @@ import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.common.exceptions.ServiceException; -import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.sangeshenbian.enums.ReportTypeEnum; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.*; @@ -30,15 +29,18 @@ import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.service.ISystemUserService; import lombok.RequiredArgsConstructor; -import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.Optional; -import java.util.List; import static cn.hutool.core.util.ObjectUtil.isNull; @@ -51,7 +53,7 @@ * @since 2025-02-22 */ @Service -@RequiredArgsConstructor +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements IComplaintService { private final ISystemUserService systemUserService; private final IComplaintFlowService complaintFlowService; @@ -125,11 +127,11 @@ break; case 3: //街道 - targetId = systemUser.getStreetCode(); + targetId = systemUser.getStreetId().toString(); break; case 4: //社区 - targetId = systemUser.getCommunityCode(); + targetId = systemUser.getCommunityId().toString(); break; } isSuperior = 1; @@ -154,6 +156,10 @@ List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list(); detail.setComplaintFlows(list); } + //查询办理进度 + List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id) + .orderByAsc(ComplaintProgress::getCreateTime).list(); + detail.setComplaintProgresses(list); return detail; } @@ -161,13 +167,14 @@ * 办理进度录入 * * @param dto - * @param userId + * @param loginUserInfoVO */ @Override - public void saveProcess(ComplaintProcessDTO dto,Long userId) { + public void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO) { ComplaintProgress complaintProgress = BeanUtil.copyProperties(dto, ComplaintProgress.class); complaintProgress.setCreateTime(new Date()); - complaintProgress.setCreateBy(userId); + complaintProgress.setCreateBy(loginUserInfoVO.getUserId()); + complaintProgress.setCreateByName(loginUserInfoVO.getNickName()); complaintProgressService.save(complaintProgress); } @@ -186,7 +193,16 @@ complaint.setCompletionTime(new Date()); this.updateById(complaint); } - + /** + * 办理进度列表 + * @param complaintId + * @return + */ + @Override + public List<ComplaintProgress> progress(Long complaintId) { + //查询办理进度 + return complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, complaintId) + .orderByAsc(ComplaintProgress::getCreateTime).list(); } @Override @@ -196,13 +212,16 @@ SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) - .eq(SystemUser::getStatus, 3) + .ne(SystemUser::getStatus, 3) .last("LIMIT 1")); Long superiorId; int reportType; if (adminUser == null) { superiorId = loginUserInfoVO.getCommunityId(); + if (Objects.isNull(superiorId)){ + throw new ServiceException("上报失败,请绑定社区"); + } reportType = ReportTypeEnum.COMMUNITY.getCode(); } else { int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 @@ -213,7 +232,7 @@ // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { - superiorId = Long.parseLong(adminUser.getStreetCode()); + superiorId = Long.parseLong(adminUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(adminUser.getDistrictsCode()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { @@ -244,50 +263,60 @@ SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) - .eq(SystemUser::getStatus, 3) + .ne(SystemUser::getStatus, 3) .last("LIMIT 1")); if (adminUser == null) { throw new ServiceException("无权下派"); } + long superiorId; - int reportType; int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 - if (accountLevel == 1) { - throw new ServiceException("市级账号,无法上报!"); + if (accountLevel == 4) { + throw new ServiceException("社区账号,无法下派!"); } - reportType = accountLevel - 1; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.STREET.getCode()) { - superiorId = Long.parseLong(adminUser.getCommunityCode()); + superiorId = adminUser.getCommunityId().longValue(); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { - superiorId = Long.parseLong(adminUser.getStreetCode()); + superiorId = Long.parseLong(adminUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { superiorId = Long.parseLong(adminUser.getDistrictsCode()); } else { // 处理未预期的账号等级 - throw new ServiceException("未知的账号等级"); + throw new ServiceException("未知的账号等级2"); } + Long superiorOrgId; Complaint complaint = getById(dto.getComplaintId()); - complaint.setReportType(reportType); + superiorOrgId = complaint.getSuperiorId(); + complaint.setReportType(accountLevel - 1); complaint.setSuperiorId(superiorId); updateById(complaint); // 添加流转记录 - complaintFlowService.createFlow(dto.getComplaintId(), 1, loginUserInfoVO.getUserId()); + complaintFlowService.createFlow(dto.getComplaintId(), superiorOrgId, accountLevel, 1, loginUserInfoVO.getUserId()); } @Override public void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO) { + complaintAuditRecordService.audit(complaintReporAuditDTO.getId(), loginUserInfoVO.getUserId(), complaintReporAuditDTO.getAuditResult(), complaintReporAuditDTO.getRejectReason()); // 添加流转记录 ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.getById(complaintReporAuditDTO.getId()); - complaintFlowService.createFlow(complaintAuditRecord.getComplaintId(), 0, loginUserInfoVO.getUserId()); + Complaint complaint = getById(complaintAuditRecord.getComplaintId()); + Long superiorId = null; + if (Objects.nonNull(complaint)) { + superiorId = complaint.getCreateBy(); + if (Objects.nonNull(complaint.getSuperiorId())) { + superiorId = complaint.getSuperiorId(); + } + complaintFlowService.createFlow(complaintAuditRecord.getComplaintId(), superiorId,complaint.getReportType(),0, loginUserInfoVO.getUserId()); + } } @@ -315,16 +344,16 @@ SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) - .eq(SystemUser::getStatus, 3) + .ne(SystemUser::getStatus, 3) .last("LIMIT 1")); if (adminUser == null) { throw new ServiceException("无权下派"); } int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 - if (accountLevel == 1) { + /* if (accountLevel == 1) { throw new ServiceException("市级账号,无法上报!"); - } + }*/ // 使用基本类型比较并补充默认分支 List<DispatchVO> dispatchVOList = new ArrayList<>(); @@ -346,7 +375,7 @@ } } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>() - .eq(BcRegion::getHierarchyOrder, 3)); + .eq(BcRegion::getHierarchyOrder, 3).eq(BcRegion::getParentId, 510400));//获取攀枝花市下的区县 for (BcRegion region : list) { DispatchVO dispatchVO = new DispatchVO(); dispatchVO.setId(Long.valueOf(region.getRegionCode())); @@ -358,9 +387,10 @@ throw new ServiceException("未知的账号等级"); } return dispatchVOList; + } /** * 获取待办诉求 - * @param page + * @param basePage * @param loginUserInfo * @return */ @@ -384,11 +414,11 @@ break; case 3: //街道 - targetId = systemUser.getStreetCode(); + targetId = systemUser.getStreetId().toString(); break; case 4: //社区 - targetId = systemUser.getCommunityCode(); + targetId = systemUser.getCommunityId().toString(); break; } isSuperior = 1; @@ -399,5 +429,17 @@ Page<ComplaintTodoVO> page = baseMapper.getTodoList(new Page<>(basePage.getPageNum(), basePage.getPageSize()), targetId,isSuperior); return page; } + /** + * 延期情况说明 + * @param complaintId + * @return + */ + @Override + public ComplaintAuditRecord delayDetail(Long complaintId) { + return complaintAuditRecordService.lambdaQuery().eq(ComplaintAuditRecord::getComplaintId, complaintId) + .eq(ComplaintAuditRecord::getAuditType, 1) + .eq(ComplaintAuditRecord::getLatestFlag, true) + .last("LIMIT 1").one(); + } } -- Gitblit v1.7.1