From c073330664d8b368eb820ee48fcd99226c70366f Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 03 六月 2025 18:10:25 +0800
Subject: [PATCH] 小程序接口修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java |  225 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 145 insertions(+), 80 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 cdbc991..cd49add 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
@@ -64,7 +64,7 @@
  */
 @Slf4j
 @Service
-@RequiredArgsConstructor(onConstructor_ ={@Lazy})
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements IComplaintService {
     private final ISystemUserService systemUserService;
     private final IComplaintFlowService complaintFlowService;
@@ -163,7 +163,7 @@
                     complaint.setReportUserName(partyMember.getName());
                     complaint.setReportUserPhone(partyMember.getPhone());
 
-                    accountLevel=4;
+                    accountLevel = 4;
                     complaint.setSuperiorId(systemUser.getCommunityId());
                     break;
             }
@@ -185,7 +185,7 @@
             complaint.setPartyMemberId(partyMember.getId());
             complaint.setReportUserName(partyMember.getName());
             complaint.setReportUserPhone(partyMember.getPhone());
-            complaint.setSuperiorId( partyMember.getCommunityId());
+            complaint.setSuperiorId(partyMember.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));
@@ -259,7 +259,7 @@
         SystemUser systemUser;
         //上级
         if (systemUserByPhone.isPresent() && null != identity && identity == 2) {
-            systemUser= systemUserByPhone.get();
+            systemUser = systemUserByPhone.get();
             accountLevel = systemUser.getAccountLevel();
             switch (accountLevel) {
                 case 2:
@@ -289,37 +289,63 @@
         //查询对应诉求
         //page = baseMapper.selectComplaintPage(page, query, targetId, isSuperior);
         // 党员只看自己上报的
-        if(accountLevel==5){
-            page =  baseMapper.selectComplaintPage2(page, query, accountLevel, targetId);
-        }else if(accountLevel==2){
+        if (accountLevel == 5) {
+            page = baseMapper.selectComplaintPage2(page, query, accountLevel, targetId);
+        } else if (accountLevel == 2) {
             // 西区单位  如果是西区单位,则只看自己上报的
-            if(systemUser.getSystemRoleId()==1){
+            if (systemUser.getSystemRoleId() == 1) {
                 // 是管理员 看所有的
-                page =  baseMapper.selectComplaintPage3(page, query, accountLevel, targetId);
-            }else {
+                page = baseMapper.selectComplaintPage3(page, query, accountLevel, targetId);
+            } else {
+
                 // 不是管理员 看到指派给我的单位的诉求
-                page =  baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
+                page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
             }
-        }else if(accountLevel==3){
+        } else if (accountLevel == 3) {
             // 街道 1
-            if(systemUser.getSystemRoleId()==1){
+            if (systemUser.getSystemRoleId() == 1) {
                 // 是管理员 可以看到下派来的  也可以看到上派待审核的
-                page =  baseMapper.selectComplaintPage5(page, query,systemUser.getStreetId(),null);
-            }else {
+                page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), null);
+            } else {
                 // 不是管理员 看指派给我的
-                page =  baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
+                page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
             }
-        }else if(accountLevel==4){
+        } else if (accountLevel == 4) {
             // 社区
-            if(systemUser.getSystemRoleId()==1){
+            if (systemUser.getSystemRoleId() == 1) {
                 // 是管理员
-                page =  baseMapper.selectComplaintPage6(page, query,systemUser.getCommunityId(),null);
-            }else {
+                page = baseMapper.selectComplaintPage6(page, query, systemUser.getCommunityId(), null);
+            } else {
                 // 不是管理员 看到负责社区的所有诉求  和 上级下派来的诉求
-                page =  baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
+                page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
 
             }
         }
+
+        for (ComplaintVO record : page.getRecords()) {
+            int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, record.getId()));
+            if (count > 0) {
+                record.setEvaluateButtonStatus(1);
+            } else {
+                if (systemUser != null) {
+                    if (record.getStatus() == 3 && systemUser.getAccountLevel() == record.getNowLevel()) {
+                        record.setEvaluateButtonStatus(0);
+                    } else if (record.getCreateBy().equals(loginUserInfoVO.getUserId()) && record.getStatus() == 3) {
+                        record.setEvaluateButtonStatus(0);
+                    } else {
+                        record.setEvaluateButtonStatus(1);
+                    }
+                } else {
+                    if (record.getStatus() == 3 && loginUserInfoVO.getUserId().equals(record.getCreateBy())) {
+                        record.setEvaluateButtonStatus(0);
+                    } else {
+                        record.setEvaluateButtonStatus(1);
+                    }
+                }
+            }
+
+        }
+
         return page;
     }
 
@@ -398,7 +424,7 @@
                             .last(" limit 0, 1"));
                     if (null != one1) {
                         //非党员用户,必须是管理员有权限
-                        if (identity == 2 && systemUser1.getAccountLevel().compareTo(one1.getReportType()) == 0 && systemUser1.getAccountLevel()!= 5) {
+                        if (identity == 2 && systemUser1.getAccountLevel().compareTo(one1.getReportType()) == 0 && systemUser1.getAccountLevel() != 5) {
                             vo.setListControlsButtonStatus(0);
                         }
                         /*if (systemUserByPhone.isPresent()) {
@@ -430,7 +456,7 @@
                             }
                         }*/
                         //当前身份是管理员
-                        if (2 == identity && systemUser1.getAccountLevel().compareTo(vo.getReportType()) == 0 && (systemUser1.getAccountLevel()!= 5)) {
+                        if (2 == identity && systemUser1.getAccountLevel().compareTo(vo.getReportType()) == 0 && (systemUser1.getAccountLevel() != 5)) {
                             vo.setListControlsButtonStatus(0);
                         }
                         //如果当前身份是党员
@@ -469,7 +495,7 @@
             String targetId = "";
             Integer accountLevel = 5;
             //获取当前身份,1=党员,2=管理员
-            accountLevel =systemUser1.getAccountLevel();
+            accountLevel = systemUser1.getAccountLevel();
             switch (accountLevel) {
                 case 1:
                     //市级
@@ -524,7 +550,7 @@
                 }
             }*/
             //当前不是党员身份,需要是管理员才有权限
-            if (2 == identity && systemUser1.getAccountLevel().compareTo(vo.getReportType()) == 0 && systemUser1.getAccountLevel()!= 5) {
+            if (2 == identity && systemUser1.getAccountLevel().compareTo(vo.getReportType()) == 0 && systemUser1.getAccountLevel() != 5) {
                 vo.setEvaluateButtonStatus(0);
             }
             //当前是党员身份,只有是以党员身份提交的数据才有权限
@@ -594,9 +620,10 @@
         }
         // 更新状态 此时status是表中的状态 未做变动
         // 如果是区级
-        if(systemUser!=null) {
+        if (systemUser != null) {
+            ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, id).eq(ComplaintAuditRecord::getLatestFlag, 1).last("limit 1"));
             if (systemUser.getAccountLevel() == 2) {
-                if(detail.getNowLevel()==2 && detail.getAssignStatus()==0){
+                if (detail.getNowLevel() == 2 && detail.getAssignStatus() == 0 && one != null && one.getAuditStatus() == 1) {
                     detail.setStatus(-1);
                 }
                 if (systemUser.getSystemRoleId() == 0) {
@@ -605,9 +632,13 @@
                         detail.setStatus(0);
                     }
                 }
+                if (detail.getFirstStatus() == 0) {
+                    detail.setStatus(-2);
+                }
+
             }
             if (systemUser.getAccountLevel() == 3) {
-                if(detail.getNowLevel()==3 && detail.getAssignStatus()==0){
+                if (detail.getNowLevel() == 3 && detail.getAssignStatus() == 0 && one != null && one.getAuditStatus() == 1) {
                     detail.setStatus(-1);
                 }
                 if (systemUser.getSystemRoleId() == 0) {
@@ -616,9 +647,12 @@
                         detail.setStatus(0);
                     }
                 }
+                if (detail.getFirstStatus() == 0) {
+                    detail.setStatus(-2);
+                }
             }
             if (systemUser.getAccountLevel() == 4) {
-                if(detail.getNowLevel()==4 && detail.getAssignStatus()==0){
+                if (detail.getNowLevel() == 4 && detail.getAssignStatus() == 0 && one != null && one.getAuditStatus() == 1) {
                     detail.setStatus(-1);
                 }
                 if (systemUser.getSystemRoleId() == 0) {
@@ -627,11 +661,14 @@
                         detail.setStatus(0);
                     }
                 }
+                if (detail.getFirstStatus() == 0) {
+                    detail.setStatus(-2);
+                }
             }
-        }else {
-            if(detail.getFirstStatus()==1){
+        } else {
+            if (detail.getFirstStatus() == 1) {
                 detail.setStatus(0);
-            }else {
+            } else {
                 detail.setStatus(-2);
             }
         }
@@ -662,14 +699,13 @@
 
         //已办结,显示评价按钮
         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()){
-                Integer isAdmin = systemUser.getIsAdmin();
-                if(accountLevel.compareTo(detail.getReportType()) == 0 && ((accountLevel != 5 && 1 == isAdmin) || accountLevel == 5)){
+        if (detail.getStatus() == 3 && 0 == count) {
+            if (systemUserByPhone.isPresent()) {
+                if (accountLevel.compareTo(detail.getNowLevel()) == 0) {
                     detail.setEvaluateButtonStatus(0);
                 }
-            }else{
-                if(detail.getReportType() == 5){
+            } else {
+                if (detail.getCreateBy().equals(loginUserInfoVO.getUserId())) {
                     detail.setEvaluateButtonStatus(0);
                 }
             }
@@ -784,11 +820,11 @@
         Long reporterId = null;
         String departmentName = "";
         String reporter = "";
-        int nowLevel=0;
+        int nowLevel = 0;
         if (identityInformationVO.getIdentity() == 1) {
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(phone);
             superiorId = Long.valueOf(partyMember.getStreetId());
-            lastSuperiorId= partyMember.getCommunityId();
+            lastSuperiorId = partyMember.getCommunityId();
 
             reporterId = partyMember.getId();
             reportType = 4;
@@ -811,7 +847,7 @@
             if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
                 superiorId = Long.parseLong(adminUser.getStreetId());
 
-                 lastSuperiorId = adminUser.getCommunityId();
+                lastSuperiorId = adminUser.getCommunityId();
 
                 reporterId = adminUser.getCommunityId();
                 nowLevel = 3;
@@ -862,7 +898,7 @@
         complaint.setSuperiorId(superiorId);
         complaint.setLastSuperiorId(lastSuperiorId);
         complaint.setNowLevel(nowLevel);
-        complaint.setLastLevel(nowLevel+1);
+        complaint.setLastLevel(nowLevel + 1);
         complaint.setAssignStatus(0);
         updateById(complaint);
 
@@ -916,7 +952,7 @@
                 .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
                 .eq(ComplaintAuditRecord::getAuditType, 2)
                 .eq(ComplaintAuditRecord::getLatestFlag, false)
-                .orderByDesc(ComplaintAuditRecord::getSort)
+                .orderByDesc(ComplaintAuditRecord::getSort).last("limit 1")
         );
         if (Objects.nonNull(lastRecord)) {
             // 复制上一条记录
@@ -928,6 +964,12 @@
             newRecord.setUpdateTime(new Date());
             complaintAuditRecordService.save(newRecord);
         }
+        // 返回原来的层级
+        Complaint complaint = this.getById(dto.getComplaintId());
+        complaint.setNowLevel(complaint.getLastLevel());
+        complaint.setSuperiorId(complaint.getLastSuperiorId());
+        this.updateById(complaint);
+
     }
 
     @Override
@@ -978,7 +1020,7 @@
         complaintAuditRecord.setComplaintId(complaint.getId());
         complaintAuditRecord.setReportType(systemUser.getAccountLevel());
         Long superiorId = null;
-        int nowLevel=0;
+        int nowLevel = 0;
 
         switch (systemUser.getAccountLevel()) {
             case 1:
@@ -986,22 +1028,22 @@
                 break;
             case 2:
                 superiorId = Long.parseLong(systemUser.getStreetId());
-                nowLevel=3;
+                nowLevel = 3;
                 break;
             case 3:
                 superiorId = systemUser.getCommunityId();
-                nowLevel=4;
+                nowLevel = 4;
                 break;
             case 4:
                 superiorId = systemUser.getCommunityId();
-                nowLevel=4;
+                nowLevel = 4;
                 break;
         }
         complaint.setSuperiorId(superiorId);
         complaint.setLastSuperiorId(superiorId);
         complaint.setAssignStatus(0);
         complaint.setNowLevel(nowLevel);
-        complaint.setLastLevel( nowLevel);
+        complaint.setLastLevel(nowLevel);
         this.updateById(complaint);
 
         complaintAuditRecord.setSuperiorId(superiorId);
@@ -1051,11 +1093,9 @@
         complaintAuditRecord.setAuditTime(new Date());
 
 
-        if(systemUser.getSystemRoleId()!=1 || systemUser.getAccountLevel()!=complaintAuditRecord.getReporterLevel()){
-             throw new ServiceException("无权审核");
+        if (systemUser.getSystemRoleId() != 1 || systemUser.getAccountLevel() != complaintAuditRecord.getReporterLevel()) {
+            throw new ServiceException("无权审核");
         }
-
-
 
 
         if (complaintReporAuditDTO.getAuditResult().equals(1)) {
@@ -1073,8 +1113,9 @@
             Complaint complaint = this.getById(complaintReporAuditDTO.getId());
             complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId());
             complaint.setAssignStatus(1);
-             complaint.setLastSuperiorId(complaint.getSuperiorId());
-             complaint.setLastLevel(complaint.getNowLevel());
+            complaint.setLastSuperiorId(complaint.getSuperiorId());
+            complaint.setLastLevel(complaint.getNowLevel());
+            complaint.setRemark(complaintReporAuditDTO.getRemark());
             this.updateById(complaint);
 
 
@@ -1106,7 +1147,7 @@
         int reportType;
         String departmentName = "";
         String reporter = "";
-        int nowLevel=4;
+        int nowLevel = 4;
         if (identityInformation.getIdentity() == 1) {
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
             superiorId = partyMember.getCommunityId();
@@ -1129,10 +1170,10 @@
                 superiorId = Long.parseLong(systemUser.getStreetId());
             } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
                 superiorId = Long.parseLong(systemUser.getDistrictsCode());
-                nowLevel =4;
+                nowLevel = 4;
             } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
                 superiorId = Long.valueOf(systemUser.getDistrictsCode());
-                nowLevel =3;// 攀枝花市
+                nowLevel = 3;// 攀枝花市
             } else {
                 // 处理未预期的账号等级
                 throw new ServiceException("未知的账号等级");
@@ -1193,8 +1234,8 @@
 
         Complaint byId = this.getById(dto.getComplaintId());
         byId.setSuperiorId(superiorId);
-        byId.setNowLevel( nowLevel);
-         this.updateById(byId);
+        byId.setNowLevel(nowLevel);
+        this.updateById(byId);
 
 
     }
@@ -1204,20 +1245,19 @@
     public void delayAudit(ComplaintDelayAuditDTO dto, LoginUserInfoVO loginUserInfoVO) {
         IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
         SystemUser systemUser = identityInformation.getSystemUser();
-        SystemUserLevel systemUserLevel = identityInformation.getSystemUserLevel();
         if (identityInformation.getIdentity() != 2) {
             throw new ServiceException("无权审核");
         }
 
-        int accountLevel = systemUserLevel.getLevel(); // 改为基本类型
+        int accountLevel = systemUser.getAccountLevel(); // 改为基本类型
         Long superiorId;
         // 使用基本类型比较并补充默认分支
         if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
-            superiorId = systemUserLevel.getCommunityId();
+            superiorId = systemUser.getCommunityId();
         } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
-            superiorId = Long.parseLong(systemUserLevel.getStreetId());
+            superiorId = Long.parseLong(systemUser.getStreetId());
         } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
-            superiorId = Long.parseLong(systemUserLevel.getDistrictsCode());
+            superiorId = Long.parseLong(systemUser.getDistrictsCode());
         } else if (accountLevel == ReportTypeEnum.CITY.getCode()) {
             superiorId = 510400L;
         } else {
@@ -1303,6 +1343,26 @@
         } else {
             // 处理未预期的账号等级
             throw new ServiceException("未知的账号等级");
+        }
+        return dispatchVOList;
+    }
+
+    @Override
+    public List<DispatchVO> getAllocationList(LoginUserInfoVO loginUserInfo) {
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
+        List<DispatchVO> dispatchVOList = new ArrayList<>();
+        SystemUser adminUser = identityInformation.getSystemUser();
+        if (adminUser.getSystemRoleId() != 1) {
+            throw new ServiceException("无权查看");
+        }
+        Integer oneDepartmentId = adminUser.getOneDepartmentId();
+        Department byId = departmentService.getById(oneDepartmentId);
+        List<Department> list1 = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, byId.getTier()));
+        for (Department department : list1) {
+            DispatchVO dispatchVO = new DispatchVO();
+            dispatchVO.setId(department.getId().toString());
+            dispatchVO.setName(department.getName());
+            dispatchVOList.add(dispatchVO);
         }
         return dispatchVOList;
     }
@@ -1676,9 +1736,9 @@
                 double lastMonthAverageTime = lastMonthAverageTimeComplaints.stream().mapToDouble(v -> v.getHandlingDay() == null ? 0 : v.getHandlingDay()).average().getAsDouble();
                 BigDecimal lastMonthAverageTime1 = BigDecimal.valueOf(lastMonthAverageTime).setScale(2, RoundingMode.HALF_UP);
 
-                vo.setLastMonthCompareAverageTime( new BigDecimal(vo.getThisMonthAverageTime()).subtract(lastMonthAverageTime1).setScale(2,RoundingMode.HALF_UP).doubleValue());
-            }else {
-                vo.setLastMonthCompareAverageTime( new BigDecimal(vo.getThisMonthAverageTime()).setScale(2,RoundingMode.HALF_UP).doubleValue());
+                vo.setLastMonthCompareAverageTime(new BigDecimal(vo.getThisMonthAverageTime()).subtract(lastMonthAverageTime1).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            } else {
+                vo.setLastMonthCompareAverageTime(new BigDecimal(vo.getThisMonthAverageTime()).setScale(2, RoundingMode.HALF_UP).doubleValue());
 
             }
 
@@ -1709,7 +1769,7 @@
             if (lastMonthSize > 0) {
                 BigDecimal multiply2 = BigDecimal.valueOf(count2).divide(new BigDecimal(lastMonthSize), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
                 vo.setLastMonthCompareSatisfactionRate(vo.getThisMonthSatisfactionRate() - multiply2.doubleValue());
-            }else {
+            } else {
                 vo.setLastMonthCompareSatisfactionRate(vo.getThisMonthSatisfactionRate());
             }
         }
@@ -1821,10 +1881,10 @@
         long count3 = complaints.stream().filter(e -> e.getCommentRate() != null && e.getCommentRate() == 3).count();
         vo.setGreatSatisfactionNum((int) count3);
         if (complaints.size() > 0) {
-            vo.setDissatisfactionRate(BigDecimal.valueOf(count).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
-            vo.setGeneralSatisfactionRate(BigDecimal.valueOf(count1).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
-            vo.setSatisfactionRate(BigDecimal.valueOf(count2).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
-            vo.setGreatSatisfactionRate(BigDecimal.valueOf(count3).divide(BigDecimal.valueOf(complaints.size()),4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2,RoundingMode.HALF_UP).doubleValue());
+            vo.setDissatisfactionRate(BigDecimal.valueOf(count).divide(BigDecimal.valueOf(complaints.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            vo.setGeneralSatisfactionRate(BigDecimal.valueOf(count1).divide(BigDecimal.valueOf(complaints.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            vo.setSatisfactionRate(BigDecimal.valueOf(count2).divide(BigDecimal.valueOf(complaints.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            vo.setGreatSatisfactionRate(BigDecimal.valueOf(count3).divide(BigDecimal.valueOf(complaints.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).doubleValue());
         }
         return vo;
     }
@@ -1872,18 +1932,18 @@
 
 
     @Override
-    public Page<SysUserVO> getDeptUserList(LoginUserInfoVO loginUserInfo,BasePage page) {
+    public Page<SysUserVO> getDeptUserList(LoginUserInfoVO loginUserInfo, BasePage page) {
         IdentityInformation currentIdentityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
         if (currentIdentityInformation.getIdentity().equals(2)) {
             SystemUser systemUser = currentIdentityInformation.getSystemUser();
-            if(systemUser.getSystemRoleId()!=1){
+            if (systemUser.getSystemRoleId() != 1) {
                 throw new ServiceException("你没有分配权限");
             }
 
             Page<SysUserVO> sysUserVOPage = new Page<>();
             ArrayList<SysUserVO> sysUserVOS = new ArrayList<>();
 
-            Page<SystemUser> page1 = systemUserService.page(new Page<>(page.getPageNum(), page.getPageSize()), new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, systemUser.getOneDepartmentId()).ne(SystemUser::getId,systemUser.getId()).ne(SystemUser::getStatus, 3));
+            Page<SystemUser> page1 = systemUserService.page(new Page<>(page.getPageNum(), page.getPageSize()), new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, systemUser.getOneDepartmentId()).ne(SystemUser::getId, systemUser.getId()).ne(SystemUser::getStatus, 3));
             for (SystemUser record : page1.getRecords()) {
                 SysUserVO sysUserVO = new SysUserVO();
                 sysUserVO.setId(record.getId());
@@ -1891,31 +1951,36 @@
                 sysUserVOS.add(sysUserVO);
             }
             sysUserVOPage.setRecords(sysUserVOS);
-            BeanUtils.copyProperties(page1,sysUserVOPage);
+            BeanUtils.copyProperties(page1, sysUserVOPage);
             return sysUserVOPage;
-        }else {
+        } else {
             throw new ServiceException("你没有分配权限");
         }
     }
 
 
-
     @Override
-    public void assignComplain(LoginUserInfoVO loginUserInfo, Long complainId, Integer userId,String remark) {
+    public void assignComplain(LoginUserInfoVO loginUserInfo, Long complainId, Integer userId, String remark) {
         IdentityInformation currentIdentityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
         if (currentIdentityInformation.getIdentity().equals(2)) {
             SystemUser systemUser = currentIdentityInformation.getSystemUser();
             Complaint complaint = baseMapper.selectById(complainId);
+            if (systemUser.getSystemRoleId() != 1 || !complaint.getNowLevel().equals(systemUser.getAccountLevel())) {
+                throw new ServiceException("你没有分配权限");
+            }
+
             // 已分配状态
             complaint.setAssignPersonId(userId);
             complaint.setFirstStatus(1);
             complaint.setAssignStatus(1);
             complaint.setRemark(remark);
             baseMapper.updateById(complaint);
-        }else {
+        } else {
             throw new ServiceException("你没有分配权限");
         }
 
     }
+
+
 }
 

--
Gitblit v1.7.1