From f332c00b763dcc0417492bd46244e9c56428a368 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 04 七月 2025 17:20:10 +0800
Subject: [PATCH] 2.0新增 和修改bug

---
 springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java |  147 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 95 insertions(+), 52 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 b8eb4a8..f0388c5 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
@@ -83,7 +83,8 @@
     private final RedisUtils redisUtils;
 
     @Override
-    public void saveComplaint(Complaint complaint, LoginUserInfoVO loginUserInfoVO) {
+    public String saveComplaint(Complaint complaint, LoginUserInfoVO loginUserInfoVO) {
+        String timeStr = null;
         // 获取当前日期(年月日)
         String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date());
 
@@ -188,6 +189,10 @@
                 complaint.setReportUserName(loginUserInfoVO.getName());
                 complaint.setReportUserPhone(loginUserInfoVO.getPhone());
                 complaint.setSuperiorId(loginUserInfoVO.getCommunityId());
+
+                LocalDate localDate = LocalDate.now().plusDays(workOrderItemConfigService.getById(1).getCommunityHandlingTime());
+                timeStr = localDate.toString();
+
             }
 
 
@@ -220,6 +225,7 @@
         complaint.setNowLevelSms(0);
         // 保存诉求记录
         save(complaint);
+        return timeStr;
     }
 
     @Override
@@ -246,6 +252,7 @@
         complaintCompletionDTO.setId(complaint.getId());
         saveResult(complaintCompletionDTO, loginUserInfo);
     }
+
 
     @Override
     public Page<ComplaintVO> complaintList(ComplaintQuery query, LoginUserInfoVO loginUserInfoVO) {
@@ -304,7 +311,7 @@
             // 西区单位  如果是西区单位,则只看自己上报的
             if (systemUser.getSystemRoleId() == 1 || systemUser.getSystemRoleId() == 2) {
                 // 是管理员 看所有的
-                page = baseMapper.selectComplaintPage3(page, query, accountLevel, targetId,systemUser.getSystemRoleId() );
+                page = baseMapper.selectComplaintPage3(page, query, accountLevel, targetId, systemUser.getSystemRoleId());
             } else {
                 // 不是管理员 看到指派给我的单位的诉求
                 page = baseMapper.selectComplaintPage4(page, query, systemUser.getOneDepartmentId());
@@ -686,52 +693,48 @@
         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 && one != null && one.getAuditStatus() == 1) {
+                if (detail.getStatus() != 3 && detail.getStatus() != 8 && detail.getNowLevel() == 2 && detail.getAssignStatus() == 0 && ((one != null && one.getAuditStatus() == 1)||(one != null && one.getAuditStatus() == 3)  || one==null )) {
                     detail.setStatus(-1);
-                }
-                if (systemUser.getSystemRoleId() == 0) {
+                }else if (systemUser.getSystemRoleId() == 0) {
                     // 查是否是当前层级处理  不是则都是正在办理
                     if (detail.getNowLevel() != 4 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                         detail.setStatus(0);
                     }
-                }
-                if (detail.getFirstStatus() == 0) {
+                }else if (detail.getStatus() != 3 && detail.getStatus() != 8 && detail.getFirstStatus() == 0 && detail.getNowLevel()==2) {
                     detail.setStatus(5);
                 }
 
+
+
             }
             if (systemUser.getAccountLevel() == 3) {
-                if (detail.getNowLevel() == 3 && detail.getAssignStatus() == 0 && one != null && one.getAuditStatus() == 1) {
+                if (detail.getStatus() != 3 && detail.getStatus() != 8 &&  detail.getNowLevel() == 3 && detail.getAssignStatus() == 0 && ((one != null && one.getAuditStatus() == 1)||(one != null && one.getAuditStatus() == 3)  || one==null )) {
                     detail.setStatus(-1);
-                }
-                if (systemUser.getSystemRoleId() == 0) {
+                }else if (systemUser.getSystemRoleId() == 0) {
                     // 查是否是当前层级处理  不是则都是正在办理
                     if (detail.getNowLevel() != 3 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                         detail.setStatus(0);
                     }
-                }
-                if (detail.getFirstStatus() == 0) {
+                }else if (detail.getStatus() != 3 && detail.getStatus() != 8 &&  detail.getFirstStatus() == 0  && detail.getNowLevel()==3) {
                     detail.setStatus(5);
                 }
             }
             if (systemUser.getAccountLevel() == 4) {
-                if (detail.getNowLevel() == 4 && detail.getAssignStatus() == 0 && one != null && one.getAuditStatus() == 1) {
+                if (detail.getStatus() != 3 && detail.getStatus() != 8 &&  detail.getNowLevel() == 4 && detail.getAssignStatus() == 0 &&  ((one != null && one.getAuditStatus() == 1)||(one != null && one.getAuditStatus() == 3)  || one==null )) {
                     detail.setStatus(-1);
-                }
-                if (systemUser.getSystemRoleId() == 0) {
+                }else if (systemUser.getSystemRoleId() == 0) {
                     // 查是否是当前层级处理  不是则都是正在办理
                     if (detail.getNowLevel() != 4 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                         detail.setStatus(0);
                     }
-                }
-                if (detail.getFirstStatus() == 0) {
+                }else if (detail.getStatus() != 3 && detail.getStatus() != 8 &&  detail.getFirstStatus() == 0  && detail.getNowLevel()==4) {
                     detail.setStatus(5);
                 }
             }
         } else {
             if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                 detail.setStatus(0);
-            } else if (detail.getFirstStatus() == 0) {
+            } else if (detail.getFirstStatus() == 0 && detail.getCreateBy().equals(loginUserInfoVO.getUserId())) {
                 detail.setStatus(5);
             } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
                 detail.setStatus(3);
@@ -754,9 +757,9 @@
         buttonPermission(detail, systemUserByPhone, loginUserInfoVO);
         Long reporterId = detail.getReporterId();
         Long superiorId = detail.getSuperiorId2();
-        if (!String.valueOf(reporterId).equals(targetId) && !String.valueOf(superiorId).equals(targetId) && detail.getStatus() == 5) {
-            detail.setStatus(0);
-        }
+//        if (!String.valueOf(reporterId).equals(targetId) && !String.valueOf(superiorId).equals(targetId) && detail.getStatus() == 5 && systemUser==null) {
+//            detail.setStatus(0);
+//        }
 
 
 //        if (auditButtonStatus == 1 && detail.getStatus() == 5 && !Objects.equals(detail.getAuditCreateBy(), loginUserInfoVO.getUserId())){
@@ -777,12 +780,10 @@
                 }
             }
         }
+
+
         return detail;
     }
-
-
-
-
 
 
     @Override
@@ -1490,7 +1491,17 @@
         }
         Integer oneDepartmentId = adminUser.getOneDepartmentId();
         Department byId = departmentService.getById(oneDepartmentId);
-        List<Department> list1 = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, byId.getTier()));
+        LambdaQueryWrapper<Department> eq = new LambdaQueryWrapper<Department>().eq(Department::getTier, byId.getTier());
+        if(byId.getTier()==2){
+            eq.eq(Department::getDistrictsCode, byId.getDistrictsCode());
+        }
+        if(byId.getTier()==3){
+            eq.eq(Department::getStreetId, byId.getStreetId());
+        }
+        if(byId.getTier()==4){
+            eq.eq(Department::getCommunityId, byId.getCommunityId());
+        }
+        List<Department> list1 = departmentService.list(eq);
         for (Department department : list1) {
             DispatchVO dispatchVO = new DispatchVO();
             dispatchVO.setId(department.getId().toString());
@@ -1565,27 +1576,27 @@
      */
     @Override
     public Page<ComplaintVO> pageList(MgtComplaintQuery query, SystemUserVo loginUserInfo) {
-        Page<ComplaintVO> complaintVOPage=new Page<>();
+        Page<ComplaintVO> complaintVOPage = new Page<>();
         if (loginUserInfo.getAccountLevel() == 2) {
-            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+            if (loginUserInfo.getSystemRoleId() == 1 || loginUserInfo.getSystemRoleId() == 2) {
                 complaintVOPage = baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
-            }else {
+            } else {
                 complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
             }
         }
         if (loginUserInfo.getAccountLevel() == 3) {
-            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+            if (loginUserInfo.getSystemRoleId() == 1 || loginUserInfo.getSystemRoleId() == 2) {
                 // 获取这个街道所管的社区id
                 List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, loginUserInfo.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
-                complaintVOPage = baseMapper.pageList2(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo,communityIds);
-            }else {
+                complaintVOPage = baseMapper.pageList2(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo, communityIds);
+            } else {
                 complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
             }
         }
         if (loginUserInfo.getAccountLevel() == 4) {
-            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
-               complaintVOPage = baseMapper.pageList3(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
-            }else {
+            if (loginUserInfo.getSystemRoleId() == 1 || loginUserInfo.getSystemRoleId() == 2) {
+                complaintVOPage = baseMapper.pageList3(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+            } else {
                 complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
             }
         }
@@ -1642,29 +1653,29 @@
      */
     @Override
     public void export(MgtComplaintQuery query, SystemUserVo loginUserInfo) throws IOException {
-        List<ComplaintVO> list =null;
+        List<ComplaintVO> list = null;
 
         if (loginUserInfo.getAccountLevel() == 2) {
-            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+            if (loginUserInfo.getSystemRoleId() == 1 || loginUserInfo.getSystemRoleId() == 2) {
                 list = baseMapper.pageListExport(query, loginUserInfo);
-            }else {
+            } else {
                 list = baseMapper.pageList1Export(query, loginUserInfo);
             }
         }
         if (loginUserInfo.getAccountLevel() == 3) {
-            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+            if (loginUserInfo.getSystemRoleId() == 1 || loginUserInfo.getSystemRoleId() == 2) {
                 // 获取这个街道所管的社区id
                 List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, loginUserInfo.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
-                list = baseMapper.pageList2Export(query, loginUserInfo,communityIds);
-            }else {
-                list = baseMapper.pageList1Export( query, loginUserInfo);
+                list = baseMapper.pageList2Export(query, loginUserInfo, communityIds);
+            } else {
+                list = baseMapper.pageList1Export(query, loginUserInfo);
             }
         }
         if (loginUserInfo.getAccountLevel() == 4) {
-            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+            if (loginUserInfo.getSystemRoleId() == 1 || loginUserInfo.getSystemRoleId() == 2) {
                 list = baseMapper.pageList3Export(query, loginUserInfo);
-            }else {
-                list = baseMapper.pageList1Export( query, loginUserInfo);
+            } else {
+                list = baseMapper.pageList1Export(query, loginUserInfo);
             }
         }
 
@@ -1678,7 +1689,8 @@
                 .registerWriteHandler(new AutoColumnWidthStrategy())
                 .doWrite(complaintExcels);
     }
-//    ComplaintVO(reporter=何健豪, reporterId=1676144498628919300, superiorId2=510403, auditCreateBy=1892421828085837826, reporterLevel=2, reporterPhone=null, departmentName=西区-金江镇, reportTime=Tue Jun 03 15:06:01 CST 2025, comment=1111, nickname=null, phone=null, auditorName=null, auditorPhone=null, rejectReason=null, auditTime=null, complaintFlows=null, complaintProgresses=null, auditButtonStatus=null, withdrawButtonStatus=null, rate=null, complaintComment=null, listControlsButtonStatus=null, evaluateButtonStatus=0, voiceFileList=null, progressCount=null, assignmentCount=null, reportCount=null, remindStatus=0, remindTime=null, reportStr=自办, deptName=aa)
+
+    //    ComplaintVO(reporter=何健豪, reporterId=1676144498628919300, superiorId2=510403, auditCreateBy=1892421828085837826, reporterLevel=2, reporterPhone=null, departmentName=西区-金江镇, reportTime=Tue Jun 03 15:06:01 CST 2025, comment=1111, nickname=null, phone=null, auditorName=null, auditorPhone=null, rejectReason=null, auditTime=null, complaintFlows=null, complaintProgresses=null, auditButtonStatus=null, withdrawButtonStatus=null, rate=null, complaintComment=null, listControlsButtonStatus=null, evaluateButtonStatus=0, voiceFileList=null, progressCount=null, assignmentCount=null, reportCount=null, remindStatus=0, remindTime=null, reportStr=自办, deptName=aa)
 //    ComplaintVO(reporter=null, reporterId=null, superiorId2=null, auditCreateBy=null, reporterLevel=null, reporterPhone=null, departmentName=null, reportTime=null, comment=null, nickname=null, phone=null, auditorName=null, auditorPhone=null, rejectReason=null, auditTime=null, complaintFlows=null, complaintProgresses=null, auditButtonStatus=null, withdrawButtonStatus=null, rate=null, complaintComment=null, listControlsButtonStatus=null, evaluateButtonStatus=0, voiceFileList=null, progressCount=null, assignmentCount=null, reportCount=null, remindStatus=0, remindTime=null, reportStr=自办, deptName=aa)
 //    ComplaintVO(reporter=刘, reporterId=1552661132500668416, superiorId2=510403, auditCreateBy=1892403820151992322, reporterLevel=2, reporterPhone=null, departmentName=西区-格里坪镇, reportTime=Fri Jun 27 10:04:18 CST 2025, comment=null, nickname=null, phone=null, auditorName=null, auditorPhone=null, rejectReason=null, auditTime=null, complaintFlows=null, complaintProgresses=null, auditButtonStatus=null, withdrawButtonStatus=null, rate=null, complaintComment=null, listControlsButtonStatus=null, evaluateButtonStatus=0, voiceFileList=null, progressCount=null, assignmentCount=null, reportCount=null, remindStatus=0, remindTime=null, reportStr=自办, deptName=null)
 //    ComplaintVO(reporter=null, reporterId=null, superiorId2=null, auditCreateBy=null, reporterLevel=null, reporterPhone=null, departmentName=null, reportTime=null, comment=null, nickname=null, phone=null, auditorName=null, auditorPhone=null, rejectReason=null, auditTime=null, complaintFlows=null, complaintProgresses=null, auditButtonStatus=null, withdrawButtonStatus=null, rate=null, complaintComment=null, listControlsButtonStatus=null, evaluateButtonStatus=0, voiceFileList=null, progressCount=null, assignmentCount=null, reportCount=null, remindStatus=0, remindTime=null, reportStr=自办, deptName=aa)
@@ -1853,7 +1865,7 @@
     }
 
     @Override
-    public AnalyticStatisticsOneVo analyticStatisticsOne(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat,Integer level) {
+    public AnalyticStatisticsOneVo analyticStatisticsOne(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat, Integer level) {
         String nowYearMonth;
         String lastYearMonth;
         int value = LocalDate.now().getMonth().getValue();
@@ -1875,7 +1887,7 @@
         if (CollUtil.isEmpty(ids)) {
             ids.add(0, -1L);
         }
-        complaints = this.baseMapper.getStatusForList(ids,level);
+        complaints = this.baseMapper.getStatusForList(ids, level);
 
         AnalyticStatisticsOneVo vo = new AnalyticStatisticsOneVo();
 
@@ -1976,9 +1988,11 @@
 
 
     public static void main(String[] args) {
+        LocalDate localDate = LocalDate.now().plusDays(2);
+
         String time = "2022-02-02 - 2023-02-02";
         String[] split = time.split(" - ");
-        System.out.println(split[0]);
+        System.out.println(localDate.toString());
     }
 
     @Override
@@ -2091,8 +2105,8 @@
     public List<Complaint> queryCompliantList(AppStaticsQuery query, LoginUserInfoVO loginUserInfo) {
         IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfo);
         SystemUser systemUserLevel = identityInformation.getSystemUser();
-        if(systemUserLevel.getSystemRoleId()==1 || systemUserLevel.getSystemRoleId()==2){
-            return baseMapper.queryCompliantList(systemUserLevel.getAccountLevel(),systemUserLevel.getSystemRoleId(),query);
+        if (systemUserLevel.getSystemRoleId() == 1 || systemUserLevel.getSystemRoleId() == 2) {
+            return baseMapper.queryCompliantList(systemUserLevel.getAccountLevel(), systemUserLevel.getSystemRoleId(), query);
         }
         return null;
     }
@@ -2132,7 +2146,7 @@
         if (currentIdentityInformation.getIdentity().equals(2)) {
             SystemUser systemUser = currentIdentityInformation.getSystemUser();
             Complaint complaint = baseMapper.selectById(complainId);
-            if(StringUtils.isEmpty(complaint.getProblemType())){
+            if (StringUtils.isEmpty(complaint.getProblemType())) {
                 complaint.setProblemType(problemType);
             }
             if (systemUser.getSystemRoleId() != 1 || !complaint.getNowLevel().equals(systemUser.getAccountLevel())) {
@@ -2293,5 +2307,34 @@
         updateById(complaint);
     }
 
+    @Override
+    public Map<String, Integer> getComplaintTip(LoginUserInfoVO loginUserInfo) {
+        HashMap<String, Integer> map = new HashMap<>();
+        IdentityInformation currentIdentityInformation = identityInformationService.getCurrentIdentityInformation(loginUserInfo);
+        SystemUser systemUser = currentIdentityInformation.getSystemUser();
+        if (systemUser.getSystemRoleId() == 1) {
+            Integer accountLevel =systemUser.getAccountLevel();
+            String code = null;
+            switch (accountLevel) {
+                case 2:
+                    break;
+                case 3:
+                    code =systemUser.getStreetId();
+                    break;
+                case 4:
+                    code =systemUser.getCommunityId().toString();
+                    break;
+                default:
+                    throw new ServiceException("无此权限");
+            }
+            // 待分配
+            map.put("waitAssign", this.baseMapper.getWaitAssign(accountLevel,code));
+            // 待处理
+            int count = this.count(new LambdaQueryWrapper<Complaint>().eq(Complaint::getAssignPersonId, systemUser.getOneDepartmentId()).notIn(Complaint::getStatus, 3, 8));
+            map.put("waitProcess", count);
+        }
+        return map;
+    }
+
 }
 

--
Gitblit v1.7.1