From ba41b9351647a36bad13c0ab03d3fb602f5f4b27 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 23 六月 2025 17:47:04 +0800
Subject: [PATCH] 2.0后台模块

---
 springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/service/impl/ComplaintServiceImpl.java |  199 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 151 insertions(+), 48 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 66cb416..b301a7c 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
@@ -172,7 +172,7 @@
         } else {
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
             complaint.setCityCode(510400);
-            if(partyMember!=null){
+            if (partyMember != null) {
                 //党员
                 complaint.setDistrictsCode(Integer.valueOf(partyMember.getDistrictsCode()));
                 complaint.setStreetId(Long.valueOf(partyMember.getStreetId()));
@@ -181,7 +181,7 @@
                 complaint.setReportUserName(partyMember.getName());
                 complaint.setReportUserPhone(partyMember.getPhone());
                 complaint.setSuperiorId(partyMember.getCommunityId());
-            }else {
+            } else {
                 complaint.setDistrictsCode(Integer.valueOf(loginUserInfoVO.getAreaCode()));
                 complaint.setStreetId(loginUserInfoVO.getStreetId());
                 complaint.setCommunityId(loginUserInfoVO.getCommunityId());
@@ -289,9 +289,9 @@
             systemUser = null;
             //党员
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
-            if(partyMember!=null){
+            if (partyMember != null) {
                 targetId = partyMember.getCommunityId();
-            }else {
+            } else {
                 targetId = loginUserInfoVO.getCommunityId();
             }
         }
@@ -313,7 +313,7 @@
             // 街道 1
             if (systemUser.getSystemRoleId() == 1) {
                 // 获取这个街道所管的社区id
-                List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId,systemUser.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
+                List<Long> communityIds = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, systemUser.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
                 // 是管理员 可以看到下派来的  也可以看到上派待审核的
                 page = baseMapper.selectComplaintPage5(page, query, systemUser.getStreetId(), communityIds);
             } else {
@@ -339,39 +339,39 @@
 
             // 处理页面颜色展示和倒计时
             Date nowLevelTime = record.getNowLevelTime();
-            if(record.getNowLevel()==2){
+            if (record.getNowLevel() == 2) {
                 Integer HandlingTime = config.getDistrictHandlingTime();
                 Integer DeadlineReminder = config.getDistrictDeadlineReminder();
                 // 判断是超时 还是  临期
-                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
+                if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 < date.getTime()) {
                     record.setRemindStatus(2);
-                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
+                } else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                     record.setRemindStatus(1);
                 }
                 long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                 double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                 BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                 record.setRemindTime(result.doubleValue());
-            }else if(record.getNowLevel()==3){
+            } else if (record.getNowLevel() == 3) {
                 Integer HandlingTime = config.getStreetHandlingTime();
                 Integer DeadlineReminder = config.getStreetDeadlineReminder();
                 // 判断是超时 还是  临期
-                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
+                if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 < date.getTime()) {
                     record.setRemindStatus(2);
-                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
+                } else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                     record.setRemindStatus(1);
                 }
                 long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
                 double days = (double) l / (24 * 60 * 60 * 1000); // 毫秒转天数
                 BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                 record.setRemindTime(result.doubleValue());
-            } else if(record.getNowLevel()==4){
+            } else if (record.getNowLevel() == 4) {
                 Integer HandlingTime = config.getCommunityHandlingTime();
                 Integer DeadlineReminder = config.getCommunityDeadlineReminder();
                 // 判断是超时 还是  临期
-                if (nowLevelTime.getTime()  + HandlingTime * 24 * 60 * 60 * 1000< date.getTime()) {
+                if (nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 < date.getTime()) {
                     record.setRemindStatus(2);
-                }else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
+                } else if (nowLevelTime.getTime() + DeadlineReminder * 24 * 60 * 60 * 1000 < date.getTime()) {
                     record.setRemindStatus(1);
                 }
                 long l = nowLevelTime.getTime() + HandlingTime * 24 * 60 * 60 * 1000 - date.getTime();
@@ -379,9 +379,6 @@
                 BigDecimal result = new BigDecimal(days).setScale(1, RoundingMode.HALF_UP); // 保留1位小数
                 record.setRemindTime(result.doubleValue());
             }
-
-
-
 
 
             int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, record.getId()));
@@ -677,10 +674,10 @@
         } else {
             //党员
             PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone());
-            if(partyMember!=null){
+            if (partyMember != null) {
                 targetId = partyMember.getId().toString();
-            }else {
-                targetId =loginUserInfoVO.getUserId().toString();
+            } else {
+                targetId = loginUserInfoVO.getUserId().toString();
             }
 
         }
@@ -732,13 +729,13 @@
                 }
             }
         } else {
-            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
+            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                 detail.setStatus(0);
-            } else if(detail.getFirstStatus()==0){
+            } else if (detail.getFirstStatus() == 0) {
                 detail.setStatus(5);
-            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
+            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
                 detail.setStatus(3);
-            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
+            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 8) {
                 detail.setStatus(8);
             }
         }
@@ -789,13 +786,13 @@
         //获取当前身份,1=党员,2=管理员
         ComplaintVO detail = baseMapper.getDetail(id);
         // 更新状态 此时status是表中的状态 未做变动
-        if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
+        if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
             detail.setStatus(0);
-        } else if(detail.getFirstStatus()==0){
+        } else if (detail.getFirstStatus() == 0) {
             detail.setStatus(5);
-        }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
+        } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
             detail.setStatus(3);
-        }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
+        } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 8) {
             detail.setStatus(8);
         }
 
@@ -808,11 +805,6 @@
 
         return detail;
     }
-
-
-
-
-
 
 
     /**
@@ -893,12 +885,12 @@
         complaint.setHandlingDay(handlingDay);
         this.updateById(complaint);
 
-        if(dto.getStatus()==3){
+        if (dto.getStatus() == 3) {
             // 发送短信
             Long createBy = complaint.getCreateBy();
 
             String phone = systemUserService.getCreateByIdPhone(createBy);
-            if(StringUtils.isNotEmpty(phone)){
+            if (StringUtils.isNotEmpty(phone)) {
                 AliSmsUtil.sendSuccessMessage(phone);
             }
         }
@@ -1226,8 +1218,6 @@
             complaintFlowService.createFlow(complaintAuditRecord2, 0, loginUserInfoVO.getUserId());
 
 
-
-
             // 通过修改状态  已经修改superiorId  和层级  不需要修改 superiorId
             Complaint complaint = this.getById(complaintReporAuditDTO.getId());
             complaint.setAssignPersonId(complaintReporAuditDTO.getDeptId());
@@ -1245,15 +1235,15 @@
             Department byId = departmentService.getById(complaintReporAuditDTO.getDeptId());
             complaintFlow.setName(byId.getName());
             complaintFlow.setType(1);
-            complaintFlow.setCreateTime(new Date(System.currentTimeMillis()+1000));
+            complaintFlow.setCreateTime(new Date(System.currentTimeMillis() + 1000));
             complaintFlowService.save(complaintFlow);
 
 
             this.updateById(complaint);
             List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, complaintReporAuditDTO.getDeptId()).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1));
-            if(!list.isEmpty()){
+            if (!list.isEmpty()) {
                 List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList());
-                AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber());
+                AliSmsUtil.sendAssignMessageAdmin(phoneList, complaint.getSerialNumber());
             }
 
         } else {
@@ -1571,7 +1561,36 @@
      */
     @Override
     public Page<ComplaintVO> pageList(MgtComplaintQuery query, SystemUserVo loginUserInfo) {
-        return baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+        if (loginUserInfo.getAccountLevel() == 2) {
+            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+                Page<ComplaintVO> complaintVOPage = baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+                return complaintVOPage;
+            }else {
+                Page<ComplaintVO> complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+                return complaintVOPage;
+            }
+        }
+        if (loginUserInfo.getAccountLevel() == 3) {
+            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());
+                Page<ComplaintVO> complaintVOPage = baseMapper.pageList2(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo,communityIds);
+                return complaintVOPage;
+            }else {
+                Page<ComplaintVO> complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+                return complaintVOPage;
+            }
+        }
+        if (loginUserInfo.getAccountLevel() == 4) {
+            if(loginUserInfo.getSystemRoleId()==1 || loginUserInfo.getSystemRoleId()==2){
+                Page<ComplaintVO> complaintVOPage = baseMapper.pageList3(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+                return complaintVOPage;
+            }else {
+                Page<ComplaintVO> complaintVOPage = baseMapper.pageList1(new Page<>(query.getPageNum(), query.getPageSize()), query, loginUserInfo);
+                return complaintVOPage;
+            }
+        }
+        return new Page<>();
     }
 
     @Override
@@ -2128,9 +2147,9 @@
 
 
             List<SystemUser> list = systemUserService.list(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, userId).eq(SystemUser::getSystemRoleId, 1).eq(SystemUser::getStatus, 1));
-            if(!list.isEmpty()){
+            if (!list.isEmpty()) {
                 List<String> phoneList = list.stream().map(SystemUser::getPhone).collect(Collectors.toList());
-                AliSmsUtil.sendAssignMessageAdmin(phoneList,complaint.getSerialNumber());
+                AliSmsUtil.sendAssignMessageAdmin(phoneList, complaint.getSerialNumber());
             }
 
         } else {
@@ -2149,13 +2168,13 @@
         page = baseMapper.pageScreenList(page, query);
 
         page.getRecords().forEach(detail -> {
-            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3  && detail.getStatus() != 8) {
+            if (detail.getFirstStatus() == 1 && detail.getStatus() != 3 && detail.getStatus() != 8) {
                 detail.setStatus(0);
-            } else if(detail.getFirstStatus()==0){
+            } else if (detail.getFirstStatus() == 0) {
                 detail.setStatus(5);
-            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 3  ){
+            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 3) {
                 detail.setStatus(3);
-            }else if(detail.getFirstStatus() == 1 && detail.getStatus() == 8){
+            } else if (detail.getFirstStatus() == 1 && detail.getStatus() == 8) {
                 detail.setStatus(8);
             }
         });
@@ -2165,7 +2184,91 @@
     @Override
     public Page<String> getHouseAddress(GetHouseAddressQuery query) {
         Page<String> page = new Page<>(query.getPageNum(), query.getPageSize());
-        return  this.baseMapper.getHouseAddress(page,query.getAddress());
+        return this.baseMapper.getHouseAddress(page, query.getAddress());
     }
+
+
+    @Override
+    public void saveComplaintAdmin(Complaint complaint, SystemUserVo systemUser) {
+        // 获取当前日期(年月日)
+        String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date());
+
+        // 查询当前日期的最大流水号
+        Complaint lastComplaint = getOne(new LambdaQueryWrapper<Complaint>()
+                .likeRight(Complaint::getSerialNumber, datePrefix) // 查询以当前日期开头的流水号
+                .orderByDesc(Complaint::getSerialNumber)
+                .last("limit 1"));
+
+        String serialNumber;
+        if (isNull(lastComplaint)) {
+            // 如果当天没有记录,从 0001 开始
+            serialNumber = datePrefix + "0001";
+        } else {
+            // 获取当前日期的最大流水号,并递增
+            String lastSerialNumber = lastComplaint.getSerialNumber();
+            int num = Integer.parseInt(lastSerialNumber.substring(lastSerialNumber.length() - 4)); // 提取后4位数字
+            serialNumber = datePrefix + String.format("%04d", num + 1); // 递增并格式化为4位
+        }
+
+        // 设置流水号
+        complaint.setSerialNumber(serialNumber);
+        Integer accountLevel = 4;
+        //获取当前身份
+        //1=党员,2=管理员
+        accountLevel = systemUser.getAccountLevel();
+        switch (accountLevel) {
+            case 2:
+                //区县级
+                complaint.setCityCode(510400);
+                complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
+                complaint.setReportUserName(systemUser.getName());
+                complaint.setReportUserPhone(systemUser.getPhone());
+
+
+                complaint.setSuperiorId(Long.valueOf(systemUser.getDistrictsCode()));
+                break;
+            case 3:
+                //街道
+                complaint.setCityCode(510400);
+                complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
+                complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
+                complaint.setReportUserName(systemUser.getName());
+                complaint.setReportUserPhone(systemUser.getPhone());
+
+                complaint.setSuperiorId(Long.valueOf(systemUser.getStreetId()));
+                break;
+            case 4:
+                //社区
+                complaint.setCityCode(510400);
+                complaint.setDistrictsCode(Integer.valueOf(systemUser.getDistrictsCode()));
+                complaint.setStreetId(Long.valueOf(systemUser.getStreetId()));
+                complaint.setCommunityId(systemUser.getCommunityId());
+                complaint.setReportUserName(systemUser.getName());
+                complaint.setReportUserPhone(systemUser.getPhone());
+
+                complaint.setSuperiorId(systemUser.getCommunityId());
+                break;
+        }
+
+        complaint.setReportType(accountLevel);
+        complaint.setNowLevel(accountLevel);
+        complaint.setLastLevel(accountLevel);
+        complaint.setLastSuperiorId(complaint.getSuperiorId());
+
+        // 设置其他字段
+        complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode());
+        complaint.setCreateTime(new Date(System.currentTimeMillis()));
+        complaint.setUpdateTime(new Date(System.currentTimeMillis()));
+        //查询系统配置诉求处理期限,设置截止日期
+        WorkOrderItemConfig config = workOrderItemConfigService.lambdaQuery().orderByDesc(WorkOrderItemConfig::getId).last("LIMIT 1").one();
+        if (Objects.isNull(config)) {
+            throw new ServiceException("工单事项未配置,请联系管理员");
+        }
+        complaint.setNowLevelTime(new Date());
+        complaint.setNowLevelSms(0);
+        // 保存诉求记录
+        save(complaint);
+    }
+
 }
 

--
Gitblit v1.7.1