| | |
| | | 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; |
| | |
| | | private final IPartyMemberService partyMemberService; |
| | | private final IdentityInformationService identityInformationService; |
| | | private final IDepartmentService departmentService; |
| | | |
| | | private final RedisUtils redisUtils; |
| | | |
| | | @Override |
| | |
| | | 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); |
| | |
| | | // } |
| | | } 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)); |
| | |
| | | throw new ServiceException("工单事项未配置,请联系管理员"); |
| | | } |
| | | complaint.setNowLevelTime(new Date()); |
| | | complaint.setNowLevelSms(0); |
| | | // 保存诉求记录 |
| | | save(complaint); |
| | | } |
| | |
| | | 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); |
| | |
| | | // 是管理员 看所有的 |
| | | 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()); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | 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); |
| | |
| | | } else { |
| | | //党员 |
| | | PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); |
| | | targetId = partyMember.getId().toString(); |
| | | if(partyMember!=null){ |
| | | targetId = partyMember.getId().toString(); |
| | | }else { |
| | | targetId =loginUserInfoVO.getUserId().toString(); |
| | | } |
| | | |
| | | } |
| | | // 更新状态 此时status是表中的状态 未做变动 |
| | | // 如果是区级 |
| | |
| | | } |
| | | } |
| | | if (detail.getFirstStatus() == 0) { |
| | | detail.setStatus(-2); |
| | | detail.setStatus(5); |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | if (detail.getFirstStatus() == 0) { |
| | | detail.setStatus(-2); |
| | | detail.setStatus(5); |
| | | } |
| | | } |
| | | if (systemUser.getAccountLevel() == 4) { |
| | |
| | | } |
| | | } |
| | | 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){ |
| | |
| | | } |
| | | |
| | | |
| | | 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); |
| | | } |
| | | //查询办理进度 |
| | |
| | | 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) |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | complaint.setLastLevel(nowLevel + 1); |
| | | complaint.setAssignStatus(0); |
| | | complaint.setNowLevelTime(new Date()); |
| | | complaint.setNowLevelSms(0); |
| | | updateById(complaint); |
| | | |
| | | // 标记最新 |
| | |
| | | complaint.setNowLevel(nowLevel); |
| | | complaint.setLastLevel(nowLevel); |
| | | complaint.setNowLevelTime(new Date()); |
| | | complaint.setNowLevelSms(0); |
| | | this.updateById(complaint); |
| | | |
| | | complaintAuditRecord.setSuperiorId(superiorId); |
| | |
| | | complaintAuditRecord2.setReportType(complaintAuditRecord.getReporterLevel()); |
| | | complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId()); |
| | | |
| | | |
| | | |
| | | |
| | | // 通过修改状态 已经修改superiorId 和层级 不需要修改 superiorId |
| | | Complaint complaint = this.getById(complaintReporAuditDTO.getId()); |
| | | complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId()); |
| | |
| | | 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()); |
| | |
| | | complaint.setSuperiorId(complaint.getLastSuperiorId()); |
| | | complaint.setNowLevel(complaint.getLastLevel()); |
| | | complaint.setNowLevelTime(new Date()); |
| | | complaint.setNowLevelSms(0); |
| | | this.updateById(complaint); |
| | | |
| | | } |
| | |
| | | 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("你没有分配权限"); |
| | | } |
| | |
| | | // 已分派了的 |
| | | 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){ |