From 0fc9760cf60f30e070c9e1ddb39dff0fe0fb5f91 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 17 三月 2025 22:24:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-2.0' into dev-2.0

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 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 c4a4fbf..1d92b49 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
@@ -112,7 +112,7 @@
         Integer accountLevel = 5;
         //获取当前身份,1=党员,2=管理员
         Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
-        if (systemUserOpt.isPresent() && identity == 2) {
+        if (systemUserOpt.isPresent() && null != identity && identity == 2) {
             SystemUser systemUser = systemUserOpt.get();
             accountLevel = systemUser.getAccountLevel();
             switch (accountLevel) {
@@ -201,7 +201,7 @@
         //获取当前身份,1=党员,2=管理员
         Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone());
         //上级
-        if (systemUserByPhone.isPresent() && identity == 2) {
+        if (systemUserByPhone.isPresent() && null != identity && identity == 2) {
             SystemUser systemUser = systemUserByPhone.get();
             accountLevel = systemUser.getAccountLevel();
             switch (accountLevel) {
@@ -249,6 +249,8 @@
     public void buttonPermission(ComplaintVO vo, Optional<SystemUser> systemUserByPhone){
         vo.setListControlsButtonStatus(1);
         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"));
         //没有审核数据,且正在办理,则按钮权限是添加人员的
@@ -284,6 +286,48 @@
                         }
                     }
                 }else{
+                    //审核状态为待审核,需要授权审核按钮
+                    if((one.getAuditStatus() == 5 || one.getAuditStatus() == 7) && systemUserByPhone.isPresent()){
+                        SystemUser systemUser = systemUserByPhone.get();
+                        String targetId = "";
+                        Integer accountLevel = 5;
+                        //获取当前身份,1=党员,2=管理员
+                        Integer identity = (Integer) redisUtils.get("identity:" + systemUser.getPhone());
+                        if(2 == identity){
+                            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:
+                                    //党员
+                                    PartyMember partyMember = partyMemberService.getPartyMemberByPhone(systemUser.getPhone());
+                                    targetId = partyMember.getId().toString();
+                                    break;
+                            }
+    
+                            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){
+                                vo.setAuditButtonStatus(0);
+                            }
+                        }
+                    }
+                    
                     //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人
                     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"));
@@ -954,14 +998,14 @@
         response.setCharacterEncoding("utf-8");
         String fileName = URLEncoder.encode("诉求数据", "UTF-8").replaceAll("\\+", "%20");
         response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
-        EasyExcel.write(response.getOutputStream(), PartyMemberExcel.class)
+        EasyExcel.write(response.getOutputStream(), ComplaintExcel.class)
                 .sheet("诉求数据")
                 .doWrite(complaintExcels);
     }
 
     @Override
     public void downloadFile(Long id,Integer type) throws IOException {
-        Complaint complaint = getById(id);
+        Complaint complaint = baseMapper.getDetailBg(id);
         if (Objects.isNull(complaint)) {
             throw new ServiceException("该诉求不存在");
         }
@@ -969,7 +1013,7 @@
         BcRegion region = bcRegionService.getDistrictByCode(complaint.getDistrictsCode().toString());
         ComStreet street = comStreetService.getById(complaint.getStreetId().toString());
         ComAct act = comActService.getById(complaint.getCommunityId());
-        String community = region.getRegionName() +"-"+ street.getName() + act.getName();
+        String community = region.getRegionName() +"-"+ street.getName() + "-"+ act.getName();
         PartyMember partyMember = null;
         if (Objects.nonNull(complaint.getPartyMemberId())){
              partyMember = partyMemberService.getById(complaint.getPartyMemberId());
@@ -993,7 +1037,7 @@
         map.put("community", community);
         map.put("problemType", complaint.getProblemType());
         map.put("descriptionContent", complaint.getDescriptionContent());
-        map.put("reportType", ReportTypeEnum.fromCode(complaint.getReportType())); //TODO待修改
+        map.put("reportType", ReportTypeEnum.fromCode(complaint.getReportType()).getDescription());
         map.put("partyOrganization",Objects.nonNull(partyMember)? partyMember.getPartyOrganization() : "");
         map.put("name", complaint.getName());
         map.put("contactNumber", complaint.getContactNumber());

--
Gitblit v1.7.1