From 3632162b5cbffbe53f86094604f213d20fda2e35 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 27 六月 2025 14:50:36 +0800
Subject: [PATCH] 2.0后台模块接口

---
 springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 115 insertions(+), 5 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java
index f58451d..e34d3db 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/controller/StaticsController.java
@@ -1,15 +1,24 @@
 package com.panzhihua.westcommittee.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.exceptions.ServiceException;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.west.SystemUserVo;
+import com.panzhihua.westcommittee.model.entity.ComAct;
+import com.panzhihua.westcommittee.model.entity.ComStreet;
+import com.panzhihua.westcommittee.model.entity.Complaint;
+import com.panzhihua.westcommittee.model.entity.SystemUser;
+import com.panzhihua.westcommittee.model.query.AnalyticStatisticsQuery;
 import com.panzhihua.westcommittee.model.query.AppStaticsQuery;
-import com.panzhihua.westcommittee.model.vo.AnalyticStatisticsFourVo;
-import com.panzhihua.westcommittee.model.vo.AnalyticStatisticsOneVo;
-import com.panzhihua.westcommittee.model.vo.AnalyticStatisticsThreeVo;
-import com.panzhihua.westcommittee.model.vo.AnalyticStatisticsTwoVo;
-import com.panzhihua.westcommittee.model.vo.RegionVO;
+import com.panzhihua.westcommittee.model.vo.*;
+import com.panzhihua.westcommittee.service.IComActService;
+import com.panzhihua.westcommittee.service.IComStreetService;
+import com.panzhihua.westcommittee.service.IComplaintService;
+import com.panzhihua.westcommittee.service.IdentityInformationService;
 import com.panzhihua.westcommittee.service.impl.StaticsService;
+import com.panzhihua.westcommittee.warpper.IdentityInformation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -20,7 +29,10 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.validation.Valid;
+import java.text.SimpleDateFormat;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author mitao
@@ -32,6 +44,10 @@
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class StaticsController extends BaseController {
     private final StaticsService staticsService;
+    private final IdentityInformationService identityInformationService;
+    private final IComStreetService comStreetService;
+    private final IComActService comActService;
+    private final IComplaintService complaintService;
 
     @GetMapping("/region-tree")
     @ApiOperation("获取区域树")
@@ -63,4 +79,98 @@
         LoginUserInfoVO loginUserInfo = getLoginUserInfo();
         return R.ok(staticsService.queryStaticsPartFour(query,loginUserInfo));
     }
+
+
+    @PostMapping("/data")
+    @ApiOperation(value = "分析统计", tags = {"西区纪委小程序-分析统计"})
+    public R<AnalyticStatisticsDataVo> data(@Valid @RequestBody AnalyticStatisticsQuery query){
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        IdentityInformation identityInformation = identityInformationService.getIdentityInformation(loginUserInfo);
+        SystemUser systemUser = identityInformation.getSystemUser();
+        AnalyticStatisticsDataVo analyticStatisticsDataVo = new AnalyticStatisticsDataVo();
+        if(systemUser==null || systemUser.getSystemRoleId()>2){
+            return R.ok(analyticStatisticsDataVo);
+        }
+        Integer accountLevel = systemUser.getAccountLevel();
+        LambdaQueryWrapper<Complaint> wrapper = new LambdaQueryWrapper<>();
+        if(query.getDistrictCode()!=null){
+            // 没有市权限 也没有该区权限
+            if(accountLevel!=2){
+                throw new ServiceException("没有该区县权限");
+            }
+            wrapper.eq(Complaint::getSuperiorId, query.getDistrictCode());
+        }
+        if(query.getStreetId()!=null){
+            // 获取街道上一级查看是否有上级权限
+            ComStreet comStreet = comStreetService.getById(query.getStreetId());
+            if(comStreet==null){
+                throw new ServiceException("没有该街道权限");
+            }
+            // 没有市级 上级区县  本级街道权限
+            if(accountLevel==2 || (accountLevel==3 && systemUser.getDistrictsCode().equals(query.getDistrictCode().toString()))){
+                wrapper.eq(Complaint::getSuperiorId, query.getStreetId());
+            }else {
+                throw new ServiceException("没有该街道权限");
+            }
+        }
+
+        if(query.getCommunityId()!=null){
+
+            ComAct comAct = comActService.getById(query.getCommunityId());
+            if (comAct == null) {
+                throw new ServiceException("没有该社区权限");
+            }
+
+            // 判断是否有上面的4个权限
+            if(accountLevel==2 ||  (accountLevel==3 && systemUser.getDistrictsCode().equals(comAct.getStreetId().toString()) || accountLevel==4 && systemUser.getCommunityId().equals(comAct.getCommunityId()))){
+                wrapper.eq(Complaint::getSuperiorId, query.getCommunityId());
+            }else {
+                throw new ServiceException("没有该社区权限");
+            }
+        }
+
+        // 都为空 查他有的
+        if(query.getCityCode()==null && query.getDistrictCode()==null && query.getStreetId()==null && query.getCommunityId()==null){
+            if(systemUser.getSystemRoleId()==1 || systemUser.getSystemRoleId()==2){
+                if(systemUser.getSystemRoleId()==1){
+                    wrapper.ne(Complaint::getProblemType,"检举");
+                }
+                if(accountLevel==3){
+                    String streetId = systemUser.getStreetId();
+                    List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)).stream().map(ComAct::getCommunityId).collect(Collectors.toList());
+                    wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()).or(wrapper1 ->wrapper1.in(Complaint::getSuperiorId,ids).eq(Complaint::getNowLevel,4));
+                }
+                if(accountLevel==4){
+                    wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel());
+                }
+            }else {
+                wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel())
+                        .eq(Complaint::getAssignPersonId,systemUser.getOneDepartmentId());
+            }
+        }
+
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        List<Complaint> complaints =complaintService.list(wrapper);
+        // 第一部分数据
+        AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat,systemUser.getAccountLevel());
+
+        // 第二部分数据
+        List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat);
+
+        // 第三部分数据
+        List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query.getRank(), complaints);
+
+        // 第四部分数据
+        AnalyticStatisticsFourVo analyticStatisticsFourVos =complaintService.analyticStatisticsFour(complaints);
+
+
+        analyticStatisticsDataVo.setAnalyticStatisticsOneVo(analyticStatisticsOneVo);
+        analyticStatisticsDataVo.setAnalyticStatisticsTwoVos(analyticStatisticsTwoVos);
+        analyticStatisticsDataVo.setAnalyticStatisticsThreeVos(analyticStatisticsThreeVos);
+        analyticStatisticsDataVo.setAnalyticStatisticsFourVo(analyticStatisticsFourVos);
+        return R.ok(analyticStatisticsDataVo);
+    }
+
+
 }

--
Gitblit v1.7.1