From 5af3d2fa829a7a454c8ddbb6ffb2a7685ceb9c77 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 16 六月 2025 17:33:50 +0800 Subject: [PATCH] 新增优化1.0 --- springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java | 177 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 147 insertions(+), 30 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 3197f4d..66cb416 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 @@ -27,6 +27,7 @@ import com.panzhihua.westcommittee.model.query.ComplaintQuery; import com.panzhihua.westcommittee.model.vo.*; import com.panzhihua.westcommittee.service.*; +import com.panzhihua.westcommittee.utils.AliSmsUtil; import com.panzhihua.westcommittee.warpper.*; import jodd.util.StringUtil; import lombok.RequiredArgsConstructor; @@ -78,6 +79,7 @@ private final IPartyMemberService partyMemberService; private final IdentityInformationService identityInformationService; private final IDepartmentService departmentService; + private final RedisUtils redisUtils; @Override @@ -113,12 +115,6 @@ if (identity == 2) { accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { - case 1: - //市级 - complaint.setCityCode(510400); - complaint.setReportUserName(systemUser.getName()); - complaint.setReportUserPhone(systemUser.getPhone()); - break; case 2: //区县级 complaint.setCityCode(510400); @@ -175,15 +171,25 @@ // } } else { PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); - //党员 complaint.setCityCode(510400); - complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode())); - complaint.setStreetId(Long.valueOf(partyMember.getStreetId())); - complaint.setCommunityId(partyMember.getCommunityId()); - complaint.setPartyMemberId(partyMember.getId()); - complaint.setReportUserName(partyMember.getName()); - complaint.setReportUserPhone(partyMember.getPhone()); - complaint.setSuperiorId(partyMember.getCommunityId()); + if(partyMember!=null){ + //党员 + complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(partyMember.getStreetId())); + complaint.setCommunityId(partyMember.getCommunityId()); + complaint.setPartyMemberId(partyMember.getId()); + complaint.setReportUserName(partyMember.getName()); + complaint.setReportUserPhone(partyMember.getPhone()); + complaint.setSuperiorId(partyMember.getCommunityId()); + }else { + complaint.setDistrictsCode(Integer.valueOf(loginUserInfoVO.getAreaCode())); + complaint.setStreetId(loginUserInfoVO.getStreetId()); + complaint.setCommunityId(loginUserInfoVO.getCommunityId()); + complaint.setReportUserName(loginUserInfoVO.getName()); + complaint.setReportUserPhone(loginUserInfoVO.getPhone()); + complaint.setSuperiorId(loginUserInfoVO.getCommunityId()); + } + // 添加处理人 // SystemUser one = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getAccountLevel, 4).eq(SystemUser::getIsDeptAdmin, 1).eq(SystemUser::getCommunityId, partyMember.getCommunityId()).ne(SystemUser::getStatus, 3)); @@ -211,6 +217,7 @@ throw new ServiceException("工单事项未配置,请联系管理员"); } complaint.setNowLevelTime(new Date()); + complaint.setNowLevelSms(0); // 保存诉求记录 save(complaint); } @@ -282,7 +289,11 @@ systemUser = null; //党员 PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); - targetId = partyMember.getCommunityId(); + if(partyMember!=null){ + targetId = partyMember.getCommunityId(); + }else { + targetId = loginUserInfoVO.getCommunityId(); + } } //查询对应诉求 //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); @@ -295,15 +306,16 @@ // 是管理员 看所有的 page = baseMapper.selectComplaintPage3(page, query, accountLevel, targetId); } else { - // 不是管理员 看到指派给我的单位的诉求 page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId()); } } else if (accountLevel == 3) { // 街道 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()); // 是管理员 可以看到下派来的 也可以看到上派待审核的 - page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), null); + page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), communityIds); } else { // 不是管理员 看指派给我的 page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId()); @@ -320,7 +332,58 @@ } } + + Date date = new Date(); + WorkOrderItemConfig config = workOrderItemConfigService.getById(1); for (ComplaintVO record : page.getRecords()) { + + // 处理页面颜色展示和倒计时 + Date nowLevelTime = record.getNowLevelTime(); + if(record.getNowLevel()==2){ + Integer HandlingTime = config.getDistrictHandlingTime(); + Integer DeadlineReminder = config.getDistrictDeadlineReminder(); + // 判断是超时 还是 临期 + if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) { + record.setRemindStatus(2); + }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){ + Integer HandlingTime = config.getStreetHandlingTime(); + Integer DeadlineReminder = config.getStreetDeadlineReminder(); + // 判断是超时 还是 临期 + if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) { + record.setRemindStatus(2); + }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){ + Integer HandlingTime = config.getCommunityHandlingTime(); + Integer DeadlineReminder = config.getCommunityDeadlineReminder(); + // 判断是超时 还是 临期 + if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) { + record.setRemindStatus(2); + }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()); + } + + + + + int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, record.getId())); if (count > 0) { record.setEvaluateButtonStatus(1); @@ -614,7 +677,12 @@ } else { //党员 PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); - targetId = partyMember.getId().toString(); + if(partyMember!=null){ + targetId = partyMember.getId().toString(); + }else { + targetId =loginUserInfoVO.getUserId().toString(); + } + } // 更新状态 此时status是表中的状态 未做变动 // 如果是区级 @@ -631,7 +699,7 @@ } } if (detail.getFirstStatus() == 0) { - detail.setStatus(-2); + detail.setStatus(5); } } @@ -646,7 +714,7 @@ } } if (detail.getFirstStatus() == 0) { - detail.setStatus(-2); + detail.setStatus(5); } } if (systemUser.getAccountLevel() == 4) { @@ -660,14 +728,14 @@ } } if (detail.getFirstStatus() == 0) { - detail.setStatus(-2); + detail.setStatus(5); } } } else { if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) { detail.setStatus(0); } else if(detail.getFirstStatus()==0){ - detail.setStatus(-2); + detail.setStatus(5); }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3 ){ detail.setStatus(3); }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){ @@ -676,8 +744,8 @@ } - if (detail.getStatus().equals(0)) { - List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getSort).list(); + if (true) { + List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByDesc(ComplaintFlow::getCreateTime).orderByAsc(ComplaintFlow::getType).list(); detail.setComplaintFlows(list); } //查询办理进度 @@ -724,14 +792,14 @@ if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) { detail.setStatus(0); } else if(detail.getFirstStatus()==0){ - detail.setStatus(-2); + detail.setStatus(5); }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3 ){ detail.setStatus(3); }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){ detail.setStatus(8); } - List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getSort).list(); + List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByDesc(ComplaintFlow::getCreateTime).orderByAsc(ComplaintFlow::getType).list(); detail.setComplaintFlows(list); //查询办理进度 List<ComplaintProgress> list1 = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id) @@ -824,6 +892,16 @@ double handlingDay = new BigDecimal(l).divide(new BigDecimal("24"), 2, RoundingMode.HALF_UP).doubleValue(); complaint.setHandlingDay(handlingDay); this.updateById(complaint); + + if(dto.getStatus()==3){ + // 发送短信 + Long createBy = complaint.getCreateBy(); + + String phone = systemUserService.getCreateByIdPhone(createBy); + if(StringUtils.isNotEmpty(phone)){ + AliSmsUtil.sendSuccessMessage(phone); + } + } } /** @@ -935,6 +1013,7 @@ complaint.setLastLevel(nowLevel + 1); complaint.setAssignStatus(0); complaint.setNowLevelTime(new Date()); + complaint.setNowLevelSms(0); updateById(complaint); // 标记最新 @@ -1080,6 +1159,7 @@ complaint.setNowLevel(nowLevel); complaint.setLastLevel(nowLevel); complaint.setNowLevelTime(new Date()); + complaint.setNowLevelSms(0); this.updateById(complaint); complaintAuditRecord.setSuperiorId(superiorId); @@ -1145,6 +1225,9 @@ complaintAuditRecord2.setReportType(complaintAuditRecord.getReporterLevel()); complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId()); + + + // 通过修改状态 已经修改superiorId 和层级 不需要修改 superiorId Complaint complaint = this.getById(complaintReporAuditDTO.getId()); complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId()); @@ -1153,8 +1236,25 @@ complaint.setLastLevel(complaint.getNowLevel()); complaint.setRemark(complaintReporAuditDTO.getRemark()); complaint.setNowLevelTime(new Date()); - this.updateById(complaint); + complaint.setNowLevelSms(0); + // 分配流转 + ComplaintFlow complaintFlow = new ComplaintFlow(); + complaintFlow.setComplaintId(complaintReporAuditDTO.getId()); + complaintFlow.setLevel(complaintAuditRecord.getReporterLevel()); + Department byId = departmentService.getById(complaintReporAuditDTO.getDeptId()); + complaintFlow.setName(byId.getName()); + complaintFlow.setType(1); + 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()){ + List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList()); + AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber()); + } } else { complaintAuditRecord.setRejectReason(complaintReporAuditDTO.getRejectReason()); @@ -1169,6 +1269,7 @@ complaint.setSuperiorId(complaint.getLastSuperiorId()); complaint.setNowLevel(complaint.getLastLevel()); complaint.setNowLevelTime(new Date()); + complaint.setNowLevelSms(0); this.updateById(complaint); } @@ -2013,7 +2114,25 @@ complaint.setAssignStatus(1); complaint.setRemark(remark); complaint.setNowLevelTime(new Date()); + complaint.setNowLevelSms(0); baseMapper.updateById(complaint); + + Department department = departmentService.getById(userId); + ComplaintFlow complaintFlow = new ComplaintFlow(); + complaintFlow.setComplaintId(complainId); + complaintFlow.setLevel(complaint.getNowLevel()); + complaintFlow.setName(department.getName()); + complaintFlow.setCreateTime(new Date()); + complaintFlow.setType(1); + complaintFlowService.save(complaintFlow); + + + List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, userId).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1)); + if(!list.isEmpty()){ + List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList()); + AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber()); + } + } else { throw new ServiceException("你没有分配权限"); } @@ -2027,15 +2146,13 @@ // 已分派了的 Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize()); - String address = this.baseMapper.getHouseAddressFromId(query.getHouseId()); - query.setAddress(address); page = baseMapper.pageScreenList(page, query); page.getRecords().forEach(detail -> { if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) { detail.setStatus(0); } else if(detail.getFirstStatus()==0){ - detail.setStatus(-2); + detail.setStatus(5); }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3 ){ detail.setStatus(3); }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){ -- Gitblit v1.7.1