From 00ef2e4c4c6a85af857be272cf74a7e43e6517f0 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期日, 16 三月 2025 03:42:16 +0800 Subject: [PATCH] 修改诉求流程和新增评价功能 --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java | 555 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 295 insertions(+), 260 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 e2233df..1f23d44 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 @@ -65,6 +65,8 @@ private final IComStreetService comStreetService; private final IComActService comActService; private final IWorkOrderItemConfigService workOrderItemConfigService; + private final IPartyMemberService partyMemberService; + private final IComplaintCommentService complaintCommentService; @Override public void saveComplaint(Complaint complaint, LoginUserInfoVO loginUserInfoVO) { @@ -92,36 +94,45 @@ complaint.setSerialNumber(serialNumber); Optional<SystemUser> systemUserOpt = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); Integer accountLevel = 5; - Long superiorId = null; if (systemUserOpt.isPresent()) { SystemUser systemUser = systemUserOpt.get(); accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 - superiorId = 510400L; + complaint.setCityCode(510400); break; case 2: //区县级 - superiorId = Long.parseLong(systemUser.getDistrictsCode()); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); break; case 3: //街道 - superiorId = Long.parseLong(systemUser.getStreetId()); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(systemUser.getStreetId())); break; case 4: //社区 - superiorId = systemUser.getCommunityId(); + complaint.setCityCode(510400); + complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode())); + complaint.setStreetId(Long.valueOf(systemUser.getStreetId())); + complaint.setCommunityId(systemUser.getCommunityId()); break; case 5: //社区 - superiorId = loginUserInfoVO.getUserId(); + complaint.setCityCode(510400); + 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()); break; } - complaint.setSuperiorType(accountLevel); - complaint.setSuperiorId(superiorId); - }else{ - superiorId = loginUserInfoVO.getUserId(); + } else{ + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + complaint.setPartyMemberId(partyMember.getId()); } complaint.setReportType(accountLevel); // 设置其他字段 @@ -138,21 +149,6 @@ complaint.setClosingTime(new Date(System.currentTimeMillis() + config.getDemandProcessingTime() * 24 * 60 * 60 * 1000)); // 保存诉求记录 save(complaint); - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); - //保存记录 - ComplaintAuditRecord complaintAuditRecord = new ComplaintAuditRecord(); - complaintAuditRecord.setComplaintId(complaint.getId()); - complaintAuditRecord.setLatestFlag(true); - complaintAuditRecord.setAuditType(0); - complaintAuditRecord.setAuditStatus(-1); - complaintAuditRecord.setCreateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord.setCreateTime(new Date(System.currentTimeMillis())); - complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord.setUpdateTime(new Date(System.currentTimeMillis())); - complaintAuditRecord.setReportType(accountLevel); - complaintAuditRecord.setSuperiorId(superiorId); - complaintAuditRecord.setSort(count + 1); - complaintAuditRecordService.save(complaintAuditRecord); } /** @@ -165,8 +161,209 @@ Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize()); //判断当前登录用户级别,查询对应工单 Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); + Long targetId = null; + Integer accountLevel = 5; + //上级 + if (systemUserByPhone.isPresent()) { + SystemUser systemUser = systemUserByPhone.get(); + accountLevel = systemUser.getAccountLevel(); + switch (accountLevel) { + case 1: + //市级 + targetId = 510400L; + break; + case 2: + //区县级 + targetId = Long.valueOf(systemUser.getDistrictsCode()); + break; + case 3: + //街道 + targetId = Long.valueOf(systemUser.getStreetId()); + break; + case 4: + //社区 + targetId = systemUser.getCommunityId(); + break; + case 5: + //党员 + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId(); + break; + } + } else { + //党员 + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId(); + } + //查询对应诉求 + //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); + page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId); + page.getRecords().forEach(s->{ + buttonPermission(s, systemUserByPhone); + }); + return page; + } + + + /** + * 列表按钮权限 + * @param vo + */ + public void buttonPermission(ComplaintVO vo, Optional<SystemUser> systemUserByPhone){ + vo.setListControlsButtonStatus(1); + vo.setEvaluateButtonStatus(1); + ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) + .ne(ComplaintAuditRecord::getAuditType, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); + //没有审核数据,且正在办理,则按钮权限是添加人员的 + if(null == one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2)){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + } + //有审核数据,且正在办理 + if(null != one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2)){ + //区分是上报数据还是下派数据 + if(one.getAuditType() == 2){ + //判断当前审核状态 + if(one.getAuditStatus() == 1){ + //审核状态为通过,则权限给到上报审核的这一层 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one.getReportType()) == 0 && accountLevel != 5 && 1 == isAdmin){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人 + ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) + .eq(ComplaintAuditRecord::getAuditType, 2).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); + if(null != one1){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one1.getReportType()) == 0 && accountLevel != 5 && 1 == isAdmin){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有上一层审核通过的数据,则权限给到添加人 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + } + } + } + + //下派数据 + if(one.getAuditType() == 3){ + //判断当前审核状态 + if(one.getAuditStatus() == 1){ + //审核状态为通过,则权限给到下报审核的这一层 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5 && one.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人 + ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) + .eq(ComplaintAuditRecord::getAuditType, 3).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); + if(null != one1){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(one1.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5 && one1.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + }else{ + //没有上一层审核通过的数据,则权限给到添加人 + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + //非党员用户,必须是管理员有权限 + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setListControlsButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setListControlsButtonStatus(0); + } + } + } + } + } + } + + //状态为已办结,判断评价按钮 + int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, vo.getId()).eq(ComplaintComment::getDelFlag, 0)); + if(vo.getStatus() == 3 && 0 == count){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer accountLevel = systemUser.getAccountLevel(); + Integer isAdmin = systemUser.getIsAdmin(); + if(accountLevel.compareTo(vo.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + vo.setEvaluateButtonStatus(0); + } + }else{ + if(vo.getReportType() == 5){ + vo.setEvaluateButtonStatus(0); + } + } + } + } + + + /** + * 工单详情 + * + * @param id + * @return + */ + @Override + public ComplaintVO detail(Long id, LoginUserInfoVO loginUserInfoVO) { + Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); String targetId = ""; - int isSuperior = 0; Integer accountLevel = 5; //上级 if (systemUserByPhone.isPresent()) { @@ -191,66 +388,16 @@ break; case 5: //党员 - targetId = loginUserInfoVO.getUserId().toString(); + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId().toString(); break; } - isSuperior = 1; } else { //党员 - targetId = loginUserInfoVO.getUserId().toString(); + PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); + targetId = partyMember.getId().toString(); } - //查询对应诉求 - //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior); - page = baseMapper.selectComplaintPage1(page, query, accountLevel, targetId); - return page; - } - - /** - * 工单详情 - * - * @param id - * @return - */ - @Override - public ComplaintVO detail(Long id, LoginUserInfoVO loginUserInfoVO) { - Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); - String targetId = ""; - int isSuperior = 0; - Integer accountLevel = 5; - //上级 - if (systemUserByPhone.isPresent()) { - SystemUser systemUser = systemUserByPhone.get(); - accountLevel = systemUser.getAccountLevel(); - switch (accountLevel) { - case 1: - //市级 - targetId = "510400"; - break; - case 2: - //区县级 - targetId = systemUser.getDistrictsCode(); - break; - case 3: - //街道 - targetId = systemUser.getStreetId().toString(); - break; - case 4: - //社区 - targetId = systemUser.getCommunityId().toString(); - break; - case 5: - //社区 - targetId = loginUserInfoVO.getUserId().toString(); - break; - } - isSuperior = 1; - } else { - //党员 - targetId = loginUserInfoVO.getUserId().toString(); - } - - - ComplaintVO detail = baseMapper.getDetail(id,targetId, isSuperior); + ComplaintVO detail = baseMapper.getDetail(id); if (detail.getStatus().equals(0)) { List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list(); detail.setComplaintFlows(list); @@ -260,14 +407,30 @@ .orderByAsc(ComplaintProgress::getCreateTime).list(); detail.setComplaintProgresses(list); detail.setAuditButtonStatus(1); - Long superiorId = detail.getSuperiorId(); - Integer superiorType = detail.getSuperiorType(); + detail.setEvaluateButtonStatus(1); if((detail.getStatus() == 5 || detail.getStatus() == 7) && systemUserByPhone.isPresent()){ - if(superiorType.equals(accountLevel) && superiorId.toString().equals(targetId)){ + ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, detail.getId()) + .eq(ComplaintAuditRecord::getLatestFlag, 1)); + Integer isAdmin = systemUserByPhone.get().getIsAdmin(); + if(one.getReportType().equals(accountLevel) && one.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){ detail.setAuditButtonStatus(0); } } - + //已办结,显示评价按钮 + int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, detail.getId()).eq(ComplaintComment::getDelFlag, 0)); + if(detail.getStatus() == 3 && 0 == count){ + if(systemUserByPhone.isPresent()){ + SystemUser systemUser = systemUserByPhone.get(); + Integer isAdmin = systemUser.getIsAdmin(); + if(accountLevel.compareTo(detail.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){ + detail.setEvaluateButtonStatus(0); + } + }else{ + if(detail.getReportType() == 5){ + detail.setEvaluateButtonStatus(0); + } + } + } return detail; } @@ -319,9 +482,7 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO) { - log.info("用户登录数据----------------》" + JSON.toJSONString(loginUserInfoVO)); String phone = loginUserInfoVO.getPhone(); - SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>() .eq(SystemUser::getPhone, phone) .eq(SystemUser::getIsAdmin, 1) @@ -329,16 +490,13 @@ .last("LIMIT 1")); Long superiorId; - Long currentId; int reportType; if (adminUser == null) { superiorId = loginUserInfoVO.getCommunityId(); - currentId = 0L; if (Objects.isNull(superiorId)) { throw new ServiceException("上报失败,请绑定社区"); } reportType = ReportTypeEnum.COMMUNITY.getCode(); - currentId = loginUserInfoVO.getUserId(); } else { int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { @@ -349,16 +507,12 @@ // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { superiorId = Long.parseLong(adminUser.getStreetId()); - currentId = adminUser.getCommunityId(); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(adminUser.getDistrictsCode()); - currentId = Long.valueOf(adminUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { superiorId = 510400L; // 攀枝花市 - currentId = Long.valueOf(adminUser.getDistrictsCode()); } else if(accountLevel == ReportTypeEnum.PARTY.getCode()){ superiorId = adminUser.getCommunityId(); - currentId = loginUserInfoVO.getUserId(); } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); @@ -366,9 +520,6 @@ } Complaint complaint = getById(dto.getComplaintId()); - //complaint.setReportType(+); - complaint.setSuperiorType(reportType); - complaint.setSuperiorId(superiorId); if (complaint.getStatus() != 0) { complaint.setStatus(0); } @@ -380,7 +531,6 @@ .set(ComplaintAuditRecord::getLatestFlag, false)); // 添加审核记录 - //complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 2, dto.getComment(), loginUserInfoVO,adminUser); int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); ComplaintAuditRecord complaintAuditRecord = new ComplaintAuditRecord(); complaintAuditRecord.setComplaintId(complaint.getId()); @@ -392,28 +542,11 @@ complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId()); complaintAuditRecord.setUpdateTime(new Date()); complaintAuditRecord.setReporter(loginUserInfoVO.getNickName()); - complaintAuditRecord.setReportType(Objects.isNull(adminUser) ? 5 : adminUser.getAccountLevel()); - complaintAuditRecord.setSuperiorId(currentId); + complaintAuditRecord.setReportType(reportType); + complaintAuditRecord.setSuperiorId(superiorId); complaintAuditRecord.setComment(dto.getComment()); complaintAuditRecord.setSort(count + 1); complaintAuditRecordService.save(complaintAuditRecord); - - - ComplaintAuditRecord complaintAuditRecord2 = new ComplaintAuditRecord(); - complaintAuditRecord2.setComplaintId(complaint.getId()); - complaintAuditRecord2.setLatestFlag(true); - complaintAuditRecord2.setAuditType(2); - complaintAuditRecord2.setAuditStatus(0); - complaintAuditRecord2.setCreateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord2.setCreateTime(new Date()); - complaintAuditRecord2.setUpdateBy(loginUserInfoVO.getUserId()); - complaintAuditRecord2.setUpdateTime(new Date()); - complaintAuditRecord2.setReporter(loginUserInfoVO.getNickName()); - complaintAuditRecord2.setReportType(reportType); - complaintAuditRecord2.setSuperiorId(superiorId); - complaintAuditRecord2.setComment(dto.getComment()); - complaintAuditRecord2.setSort(count + 2); - complaintAuditRecordService.save(complaintAuditRecord2); } @Override @@ -437,11 +570,7 @@ accountLevel++; Complaint complaint = getById(dto.getComplaintId()); - complaint.setSuperiorType(accountLevel); - complaint.setSuperiorId(dto.getDispatchId()); updateById(complaint); - Long superiorOrgId = complaint.getSuperiorId(); - Integer superiorType = complaint.getSuperiorType(); //查询当前单位审核记录表数据 //查询上报审核记录 ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.lambdaQuery() @@ -461,7 +590,7 @@ ComplaintAuditRecord record = new ComplaintAuditRecord(); record.setComplaintId(complaint.getId()); record.setLatestFlag(true); - record.setAuditType(0); + record.setAuditType(3); record.setAuditStatus(1); record.setCreateBy(loginUserInfoVO.getUserId()); record.setCreateTime(new Date(System.currentTimeMillis())); @@ -507,82 +636,20 @@ .eq(ComplaintAuditRecord::getReportType, systemUser.getAccountLevel()) .eq(ComplaintAuditRecord::getSuperiorId, superiorId) .last("LIMIT 1").one(); - ComplaintAuditRecord lowLevelRecord = complaintAuditRecordService.lambdaQuery() - .eq(ComplaintAuditRecord::getComplaintId, complaintReporAuditDTO.getId()) - .eq(ComplaintAuditRecord::getAuditType, 2) - .eq(ComplaintAuditRecord::getLatestFlag, true) - .eq(ComplaintAuditRecord::getReportType, systemUser.getAccountLevel()+1) - .last("LIMIT 1").one(); if (Objects.isNull(complaintAuditRecord)) { throw new ServiceException("上报申请记录不存在"); } - //查询待审核诉求 - //complaintAuditRecordService.audit(complaintAuditRecord, loginUserInfoVO.getUserId(), - // complaintReporAuditDTO.getAuditResult(), complaintReporAuditDTO.getRejectReason()); - - // 添加流转记录 - Complaint complaint = getById(complaintAuditRecord.getComplaintId()); - - // 标记最新 - complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() - .eq(ComplaintAuditRecord::getComplaintId, complaintAuditRecord.getComplaintId()) - .set(ComplaintAuditRecord::getLatestFlag, false)); - if (complaintReporAuditDTO.getAuditResult().equals(1)) { - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); - ComplaintAuditRecord record = new ComplaintAuditRecord(); - record.setComplaintId(complaint.getId()); - record.setLatestFlag(true); - record.setAuditorId(loginUserInfoVO.getUserId()); - record.setAuditType(2); - record.setAuditStatus(1); - record.setCreateBy(loginUserInfoVO.getUserId()); - record.setCreateTime(new Date()); - record.setUpdateBy(loginUserInfoVO.getUserId()); - record.setUpdateTime(new Date()); - record.setReporter(complaintAuditRecord.getReporter()); - record.setReportType(complaintAuditRecord.getReportType()); - record.setSuperiorId(superiorId); - record.setSort(count + 1); - complaintAuditRecordService.save(record); + complaintAuditRecord.setAuditStatus(1); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); //创建流程 - complaintFlowService.createFlow(lowLevelRecord ,0, loginUserInfoVO.getUserId()); + complaintFlowService.createFlow(complaintAuditRecord ,0, loginUserInfoVO.getUserId()); } else { - - switch (systemUser.getAccountLevel() + 1) { - case 1: - superiorId = 510400L;//默认市级 - break; - case 2: - superiorId = Long.parseLong(systemUser.getDistrictsCode()); - break; - case 3: - superiorId = Long.parseLong(systemUser.getStreetId()); - break; - case 4: - superiorId = systemUser.getCommunityId(); - break; - case 5: - superiorId = complaint.getCreateBy(); - break; - } - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); - ComplaintAuditRecord record2 = new ComplaintAuditRecord(); - record2.setComplaintId(complaint.getId()); - record2.setLatestFlag(true); - record2.setAuditType(2); - record2.setAuditorId(loginUserInfoVO.getUserId()); - record2.setAuditStatus(2); - record2.setCreateBy(loginUserInfoVO.getUserId()); - record2.setCreateTime(new Date()); - record2.setUpdateBy(loginUserInfoVO.getUserId()); - record2.setUpdateTime(new Date()); - record2.setReporter(complaintAuditRecord.getReporter()); - record2.setReportType(systemUser.getAccountLevel() + 1); - record2.setSuperiorId(superiorId); - record2.setRejectReason(complaintReporAuditDTO.getRejectReason()); - record2.setSort(count + 1); - complaintAuditRecordService.save(record2); + complaintAuditRecord.setRejectReason(complaintReporAuditDTO.getRejectReason()); + complaintAuditRecord.setAuditStatus(2); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); } } @@ -592,55 +659,42 @@ public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) { SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()).orElse(null); Long superiorId; - Long currentId; int reportType; if (systemUser == null) { superiorId = loginUserInfoVO.getCommunityId(); - currentId = loginUserInfoVO.getUserId(); if (Objects.isNull(superiorId)) { - throw new ServiceException("上报失败,请绑定社区"); + throw new ServiceException("延期申请失败,请绑定社区"); } reportType = ReportTypeEnum.COMMUNITY.getCode(); } else { int accountLevel = systemUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { - throw new ServiceException("市级账号,无法上报!"); + throw new ServiceException("市级账号,无法延期申请!"); } reportType = accountLevel - 1; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { superiorId = Long.parseLong(systemUser.getStreetId()); - currentId = systemUser.getCommunityId(); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { superiorId = Long.parseLong(systemUser.getDistrictsCode()); - currentId = Long.parseLong(systemUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { superiorId = 510400L; // 攀枝花市 - currentId = Long.parseLong(systemUser.getDistrictsCode()); } else if (accountLevel == ReportTypeEnum.PARTY.getCode()) { superiorId = systemUser.getCommunityId(); - currentId = loginUserInfoVO.getUserId(); } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } } - Complaint complaint = getById(dto.getComplaintId()); - complaint.setSuperiorType(reportType); - complaint.setSuperiorId(superiorId); - updateById(complaint); - // 添加审核记录 - //complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 1, dto.getComment(), loginUserInfoVO, systemUser); - // 清除最新记录 complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) .set(ComplaintAuditRecord::getLatestFlag, false)); - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, complaint.getId())); + int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())); ComplaintAuditRecord record1 = new ComplaintAuditRecord(); - record1.setComplaintId(complaint.getId()); + record1.setComplaintId(dto.getComplaintId()); record1.setLatestFlag(true); record1.setAuditType(1); record1.setAuditStatus(0); @@ -649,44 +703,28 @@ record1.setUpdateBy(loginUserInfoVO.getUserId()); record1.setUpdateTime(new Date(System.currentTimeMillis())); record1.setReporter(loginUserInfoVO.getNickName()); - record1.setReportType(Objects.isNull(systemUser) ? 5 : systemUser.getAccountLevel()); - record1.setSuperiorId(currentId); + record1.setReportType(reportType); + record1.setSuperiorId(superiorId); record1.setSort(count + 1); record1.setComment(dto.getComment()); complaintAuditRecordService.save(record1); - - ComplaintAuditRecord record2 = new ComplaintAuditRecord(); - record2.setComplaintId(complaint.getId()); - record2.setLatestFlag(true); - record2.setAuditType(1); - record2.setAuditStatus(0); - record2.setCreateBy(loginUserInfoVO.getUserId()); - record2.setCreateTime(new Date(System.currentTimeMillis())); - record2.setUpdateBy(loginUserInfoVO.getUserId()); - record2.setUpdateTime(new Date(System.currentTimeMillis())); - record2.setReporter(loginUserInfoVO.getNickName()); - record2.setReportType(reportType); - record2.setSuperiorId(superiorId); - record2.setSort(count + 2); - record1.setComment(dto.getComment()); - complaintAuditRecordService.save(record2); } @Override public void delayAudit(ComplaintDelayAuditDTO dto, LoginUserInfoVO loginUserInfoVO) { - SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()).orElse(null); - int accountLevel = systemUser.getAccountLevel(); // 改为基本类型 - Long cunrrentId; + Long superiorId; // 使用基本类型比较并补充默认分支 if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) { - cunrrentId = systemUser.getCommunityId(); + superiorId = systemUser.getCommunityId(); } else if (accountLevel == ReportTypeEnum.STREET.getCode()) { - cunrrentId = Long.parseLong(systemUser.getStreetId()); + superiorId = Long.parseLong(systemUser.getStreetId()); } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) { - cunrrentId = Long.parseLong(systemUser.getDistrictsCode()); + superiorId = Long.parseLong(systemUser.getDistrictsCode()); + } else if (accountLevel == ReportTypeEnum.CITY.getCode()) { + superiorId = 510400L; } else { // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); @@ -697,8 +735,8 @@ .eq(ComplaintAuditRecord::getAuditType, 1) .eq(ComplaintAuditRecord::getLatestFlag, 1) .eq(ComplaintAuditRecord::getAuditStatus, 0) - .ne(ComplaintAuditRecord::getSuperiorId, cunrrentId) - .eq(ComplaintAuditRecord::getReportType, accountLevel+1) + .ne(ComplaintAuditRecord::getSuperiorId, superiorId) + .eq(ComplaintAuditRecord::getReportType, accountLevel) .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) .last("LIMIT 1")); @@ -706,37 +744,23 @@ if (Objects.isNull(complaintAuditRecord)) { throw new ServiceException("诉求延期申请不存在"); } - //complaintAuditRecordService.audit(complaintAuditRecord, loginUserInfoVO.getUserId(), - // dto.getAuditResult(), dto.getRejectReason()); //审核通过后,设置诉求延期 if (complaintAuditRecord.getAuditType().equals(1) && complaintAuditRecord.getAuditStatus().equals(0) && dto.getAuditResult().equals(1)) { Complaint complaint = getById(complaintAuditRecord.getComplaintId()); complaint.setStatus(1); updateById(complaint); + + complaintAuditRecord.setAuditStatus(1); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); } - - - complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>() - .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId()) - .set(ComplaintAuditRecord::getLatestFlag, false)); - int count = complaintAuditRecordService.count(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, dto.getId())); - ComplaintAuditRecord record1 = new ComplaintAuditRecord(); - record1.setComplaintId(dto.getComplaintId()); - record1.setLatestFlag(true); - record1.setAuditType(1); - record1.setAuditorId(loginUserInfoVO.getUserId()); - record1.setAuditStatus(dto.getAuditResult()); - record1.setCreateBy(loginUserInfoVO.getUserId()); - record1.setCreateTime(new Date(System.currentTimeMillis())); - record1.setUpdateBy(loginUserInfoVO.getUserId()); - record1.setUpdateTime(new Date(System.currentTimeMillis())); - record1.setReporter(complaintAuditRecord.getReporter()); - record1.setReportType(complaintAuditRecord.getReportType()); - record1.setSuperiorId(complaintAuditRecord.getSuperiorId()); - record1.setSort(count + 1); - record1.setRejectReason(dto.getRejectReason()); - complaintAuditRecordService.save(record1); - + //审核不通过 + if(complaintAuditRecord.getAuditType().equals(1) && complaintAuditRecord.getAuditStatus().equals(0) && dto.getAuditResult().equals(2)){ + complaintAuditRecord.setRejectReason(dto.getRejectReason()); + complaintAuditRecord.setAuditStatus(2); + complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId()); + complaintAuditRecordService.updateById(complaintAuditRecord); + } } @Override @@ -849,5 +873,16 @@ .eq(ComplaintAuditRecord::getLatestFlag, true) .last("LIMIT 1").one(); } + + + /** + * 获取超时未评价的数据 + * @return + */ + @Override + public List<Complaint> getTimeoutAndNotComment() { + return this.baseMapper.getTimeoutAndNotComment(); + } + } -- Gitblit v1.7.1