From 7a85ab9deb97520738896059c51ce71c4112b56f Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期二, 18 三月 2025 21:18:41 +0800
Subject: [PATCH] 增加查看评价详情接口

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |  162 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 99 insertions(+), 63 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 ca73787..a33bc87 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
@@ -96,13 +96,9 @@
         complaint.setSerialNumber(serialNumber);
         Integer accountLevel = 5;
         //获取当前身份
-        IdentityInformation identityInformationVO = identityInformationService.getIdentityInformation(loginUserInfoVO);
+        IdentityInformation identityInformationVO = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
         //1=党员,2=管理员
         SystemUser systemUser = identityInformationVO.getSystemUser();
-        List<PermissionsVO> permissions = identityInformationVO.getPermissions();
-        if (permissions.isEmpty()) {
-            throw new ServiceException("请先完善个人信息");
-        }
         Integer identity = identityInformationVO.getIdentity();
         if (identity == 2) {
             accountLevel = systemUser.getAccountLevel();
@@ -185,10 +181,7 @@
         Long targetId = null;
         Integer accountLevel = 5;
         //获取当前身份,1=党员,2=管理员
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        if (CollectionUtil.isEmpty(identityInformation.getPermissions())) {
-            throw new ServiceException("请先完善个人信息");
-        }
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
         Integer identity = identityInformation.getIdentity();
         //上级
         if (systemUserByPhone.isPresent() && null != identity && identity == 2) {
@@ -238,8 +231,11 @@
         vo.setEvaluateButtonStatus(1);
         vo.setAuditButtonStatus(1);
 
-        ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
-                .ne(ComplaintAuditRecord::getAuditType, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 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()) {
@@ -258,8 +254,10 @@
         }
         //有审核数据,且正在办理
         if (null != one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2 || vo.getStatus() == 6)) {
+
+
             //区分是上报数据还是下派数据
-            if (one.getAuditType() == 2) {
+            if (one.getAuditType() == 2 || one.getAuditType() == 1) {
                 //判断当前审核状态
                 if (one.getAuditStatus() == 1) {
                     //审核状态为通过,则权限给到上报审核的这一层
@@ -274,8 +272,12 @@
                     }
                 } 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"));
+                    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();
@@ -368,7 +370,7 @@
             String targetId = "";
             Integer accountLevel = 5;
             //获取当前身份,1=党员,2=管理员
-            IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfo);
+            IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
             if (2 == identityInformation.getIdentity()) {
                 accountLevel = systemUser.getAccountLevel();
                 switch (accountLevel) {
@@ -395,7 +397,8 @@
                         break;
                 }
 
-                ComplaintAuditRecord one2 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId())
+                ComplaintAuditRecord one2 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>()
+                        .eq(ComplaintAuditRecord::getComplaintId, vo.getId())
                         .eq(ComplaintAuditRecord::getLatestFlag, 1));
                 Integer isAdmin = systemUserByPhone.get().getIsAdmin();
                 if (one2.getReportType().equals(accountLevel) && one2.getSuperiorId().toString().equals(targetId) && 1 == isAdmin) {
@@ -436,10 +439,7 @@
         String targetId = "";
         Integer accountLevel = 5;
         //获取当前身份,1=党员,2=管理员
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        if (CollectionUtil.isEmpty(identityInformation.getPermissions())) {
-            throw new ServiceException("身份信息异常");
-        }
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
         Integer identity = identityInformation.getIdentity();
         //上级
         if (systemUserByPhone.isPresent() && identity == 2) {
@@ -523,10 +523,27 @@
      */
     @Override
     public void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO) {
+        //获取当前身份
+        IdentityInformation identityInformationVO = identityInformationService.getIdentityInformation(loginUserInfoVO);
+
+        List<PermissionsVO> permissions = identityInformationVO.getPermissions();
+        if (permissions.isEmpty()) {
+            throw new ServiceException("请先完善个人信息");
+        }
+        //上级
+        String name = "";
+        if (identityInformationVO.getIdentity() == 2) {
+            //1=党员,2=管理员
+            SystemUser systemUser = identityInformationVO.getSystemUser();
+            name =   systemUser.getName();
+        }else if (identityInformationVO.getIdentity() == 1){
+            PartyMember partyMember = identityInformationVO.getPartyMember();
+            name = partyMember.getName();
+        }
         ComplaintProgress complaintProgress = BeanUtil.copyProperties(dto, ComplaintProgress.class);
         complaintProgress.setCreateTime(new Date());
         complaintProgress.setCreateBy(loginUserInfoVO.getUserId());
-        complaintProgress.setCreateByName(loginUserInfoVO.getNickName());
+        complaintProgress.setCreateByName(name);
         complaintProgressService.save(complaintProgress);
     }
 
@@ -546,18 +563,22 @@
             throw new ServiceException("请先完善个人信息");
         }
         Integer accountLevel = null;
+        String name = "";
         //上级
         if (identityInformationVO.getIdentity() == 2) {
             //1=党员,2=管理员
             SystemUser systemUser = identityInformationVO.getSystemUser();
             accountLevel = systemUser.getAccountLevel();
+            name =   systemUser.getName();
         }else if (identityInformationVO.getIdentity() == 1){
             accountLevel = 5;
+            PartyMember partyMember = identityInformationVO.getPartyMember();
+            name = partyMember.getName();
         }
         Complaint complaint = BeanUtil.copyProperties(dto, Complaint.class);
         complaint.setUpdateTime(new Date());
         complaint.setCompletionUserId(loginUserInfoVO.getUserId());
-        complaint.setCompletionUsername(loginUserInfoVO.getNickName());
+        complaint.setCompletionUsername(name);
         complaint.setCompletionUserPhone(loginUserInfoVO.getPhone());
         complaint.setCompletionTime(new Date());
         complaint.setCompletionUserLevel(accountLevel);
@@ -581,39 +602,42 @@
     @Transactional(rollbackFor = Exception.class)
     public void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO) {
         String phone = loginUserInfoVO.getPhone();
-        SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>()
-                .eq(SystemUser::getPhone, phone)
-                .eq(SystemUser::getIsAdmin, 1)
-                .ne(SystemUser::getStatus, 3)
-                .last("LIMIT 1"));
-
-        IdentityInformation identityInformationVO = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        if (CollectionUtil.isEmpty(identityInformationVO.getPermissions())) {
-            throw new ServiceException("请先完成认证");
-        }
+        IdentityInformation identityInformationVO = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
+        SystemUser adminUser = identityInformationVO.getSystemUser();
 
         Long superiorId;
         int reportType;
+        int reporterLevel;
+        Long reporterId = null;
         String departmentName = "";
+        String reporter = "";
         if (identityInformationVO.getIdentity() == 1) {
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(phone);
             superiorId = partyMember.getCommunityId();
+            reporterId = partyMember.getId();
             reportType = 4;
+            reporterLevel = 5;
             departmentName = partyMember.getDistricts() + "-" + partyMember.getStreet() + "-" + partyMember.getCommunity();
+            reporter = partyMember.getName();
         } else if (identityInformationVO.getIdentity() == 2) {
             int accountLevel = adminUser.getAccountLevel(); // 改为基本类型
             if (accountLevel == 1) {
                 throw new ServiceException("市级账号,无法上报!");
             }
             reportType = accountLevel - 1;
+            reporterLevel = accountLevel;
+            reporter = adminUser.getName();
 
             // 使用基本类型比较并补充默认分支
             if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
                 superiorId = Long.parseLong(adminUser.getStreetId());
+                reporterId = adminUser.getCommunityId();
             } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
                 superiorId = Long.parseLong(adminUser.getDistrictsCode());
+                reporterId = Long.parseLong(adminUser.getStreetId());
             } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
                 superiorId = 510400L; // 攀枝花市
+                reporterId = Long.parseLong(adminUser.getDistrictsCode());
             } else if (accountLevel == ReportTypeEnum.PARTY.getCode()) {
                 superiorId = adminUser.getCommunityId();
             } else {
@@ -670,23 +694,21 @@
         complaintAuditRecord.setCreateTime(new Date());
         complaintAuditRecord.setUpdateBy(loginUserInfoVO.getUserId());
         complaintAuditRecord.setUpdateTime(new Date());
-        complaintAuditRecord.setReporter(loginUserInfoVO.getNickName());
+        complaintAuditRecord.setReporter(reporter);
         complaintAuditRecord.setReportType(reportType);
         complaintAuditRecord.setSuperiorId(superiorId);
         complaintAuditRecord.setComment(dto.getComment());
         complaintAuditRecord.setSort(count + 1);
         complaintAuditRecord.setDepartmentName(departmentName);
+        complaintAuditRecord.setReporterLevel(reporterLevel);
+        complaintAuditRecord.setReporterId(reporterId);
         complaintAuditRecordService.save(complaintAuditRecord);
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO) {
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        List<PermissionsVO> permissions = identityInformation.getPermissions();
-        if (CollectionUtil.isEmpty(permissions)) {
-            throw new ServiceException("请先完成认证");
-        }
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
         if (identityInformation.getIdentity() != 2) {
             throw new ServiceException("无权下派");
         }
@@ -754,11 +776,7 @@
     @Transactional(rollbackFor = Exception.class)
     public void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO) {
 
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        List<PermissionsVO> permissions = identityInformation.getPermissions();
-        if (CollectionUtil.isEmpty(permissions)) {
-            throw new ServiceException("请先完成认证");
-        }
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
 
         SystemUser systemUser = identityInformation.getSystemUser();
         if (systemUser == null || identityInformation.getIdentity() != 2) {
@@ -797,7 +815,11 @@
             complaintAuditRecord.setAuditorId(loginUserInfoVO.getUserId());
             complaintAuditRecordService.updateById(complaintAuditRecord);
             //创建流程
-            complaintFlowService.createFlow(complaintAuditRecord, 0, loginUserInfoVO.getUserId());
+            ComplaintAuditRecord complaintAuditRecord2 = new ComplaintAuditRecord();
+            complaintAuditRecord2.setComplaintId(complaintReporAuditDTO.getId());
+            complaintAuditRecord2.setSuperiorId(complaintAuditRecord.getReporterId());
+            complaintAuditRecord2.setReportType(complaintAuditRecord.getReporterLevel());
+            complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId());
         } else {
             complaintAuditRecord.setRejectReason(complaintReporAuditDTO.getRejectReason());
             complaintAuditRecord.setAuditStatus(2);
@@ -810,16 +832,12 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) {
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        List<PermissionsVO> permissions = identityInformation.getPermissions();
-
-        if (CollectionUtil.isEmpty(permissions)) {
-            throw new ServiceException("请先完成认证");
-        }
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
 
         SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()).orElse(null);
         Long superiorId;
         int reportType;
+        String departmentName = "";
         if (identityInformation.getIdentity() == 1) {
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
             superiorId = partyMember.getCommunityId();
@@ -827,6 +845,7 @@
                 throw new ServiceException("延期申请失败,请绑定社区");
             }
             reportType = ReportTypeEnum.COMMUNITY.getCode();
+            departmentName = partyMember.getDistricts() + "-" + partyMember.getStreet() + "-" + partyMember.getCommunity();
         } else if (identityInformation.getIdentity() == 2 && systemUser != null) {
             int accountLevel = systemUser.getAccountLevel(); // 改为基本类型
             if (accountLevel == 1) {
@@ -846,6 +865,30 @@
             } else {
                 // 处理未预期的账号等级
                 throw new ServiceException("未知的账号等级");
+            }
+            //查询社区信息
+            switch (accountLevel) {
+                case 2:
+                    BcRegion region = bcRegionService.getDistrictByCode(systemUser.getDistrictsCode().toString());
+                    if (Objects.nonNull(region)) {
+                        departmentName = region.getRegionName();
+                    }
+                    break;
+                case 3:
+                    ComStreet street = comStreetService.getById(systemUser.getStreetId().toString());
+                    if (Objects.nonNull(street)) {
+                        BcRegion district = bcRegionService.getDistrictByCode(street.getAreaCode().toString());
+                        departmentName = Objects.nonNull(district) ? district.getRegionName() + "-" + street.getName() : street.getName();
+                    }
+                    break;
+                case 4:
+                    ComAct act = comActService.getById(systemUser.getCommunityId());
+                    if (Objects.nonNull(act)) {
+                        ComStreet street2 = comStreetService.getById(systemUser.getStreetId().toString());
+                        BcRegion district = bcRegionService.getDistrictByCode(act.getAreaCode());
+                        departmentName = Objects.nonNull(district) && Objects.nonNull(street2) ? district.getRegionName() + "-" + street2.getName() + "-" + act.getName() : act.getName();
+                    }
+                    break;
             }
         } else {
             throw new ServiceException("无权申请");
@@ -870,17 +913,14 @@
         record1.setSuperiorId(superiorId);
         record1.setSort(count + 1);
         record1.setComment(dto.getComment());
+        record1.setDepartmentName(departmentName);
         complaintAuditRecordService.save(record1);
     }
 
 
     @Override
     public void delayAudit(ComplaintDelayAuditDTO dto, LoginUserInfoVO loginUserInfoVO) {
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
-        List<PermissionsVO> permissions = identityInformation.getPermissions();
-        if (CollectionUtil.isEmpty(permissions)) {
-            throw new ServiceException("请先完成认证");
-        }
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
         SystemUser systemUser = identityInformation.getSystemUser();
         if (identityInformation.getIdentity() != 2 || systemUser == null) {
             throw new ServiceException("无权审核");
@@ -907,7 +947,7 @@
                 .eq(ComplaintAuditRecord::getAuditType, 1)
                 .eq(ComplaintAuditRecord::getLatestFlag, 1)
                 .eq(ComplaintAuditRecord::getAuditStatus, 0)
-                .ne(ComplaintAuditRecord::getSuperiorId, superiorId)
+                .eq(ComplaintAuditRecord::getSuperiorId, superiorId)
                 .eq(ComplaintAuditRecord::getReportType, accountLevel)
                 .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
                 .last("LIMIT 1"));
@@ -938,7 +978,7 @@
     @Override
     public List<DispatchVO> getDispatchList(LoginUserInfoVO loginUserInfoVO) {
 
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfoVO);
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfoVO);
 
         SystemUser adminUser = identityInformation.getSystemUser();
 
@@ -995,12 +1035,8 @@
      */
     @Override
     public Page<ComplaintTodoVO> getTodoList(BasePage basePage, LoginUserInfoVO loginUserInfo) {
-        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfo);
-        List<PermissionsVO> permissions = identityInformation.getPermissions();
+        IdentityInformation identityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
         SystemUser systemUser = identityInformation.getSystemUser();
-        if (permissions.isEmpty()) {
-            throw new ServiceException("无权限");
-        }
         String targetId = "";
         int isSuperior = 0;
         //上级
@@ -1174,7 +1210,7 @@
         map.put("community", community);
         map.put("problemType", complaint.getProblemType());
         map.put("descriptionContent", complaint.getDescriptionContent());
-        map.put("reportType", ReportTypeEnum.getDescriptionByCode(reportType));
+        map.put("reportType", reportType == null ? "" : ReportTypeEnum.getDescriptionByCode(reportType));
         map.put("partyOrganization", Objects.nonNull(partyMember) ? partyMember.getPartyOrganization() : "");
         map.put("name", complaint.getName());
         map.put("contactNumber", complaint.getContactNumber());

--
Gitblit v1.7.1