jeecgboot 查询登录人部门及其子部门的数据统计分析

部门为下图

其中orgCode有规律既下图所示

污水数据库表

java 复制代码
create table sewage_outlet
(
    id                    varchar(36)    not null comment 'id',
    org_code              varchar(50)    null comment '污染口所属部门orgCode',
    sewage_type           varchar(50)    null comment '污水类型',
    regions               varchar(50)    null comment '流域',
)

污水口的管理部门可以是省市区

需求是 根据当前登录人的部门看到 下属不同部门的统计数据

比如我是全国管理员看到的统计数据是显示山东、河北的

比如我是山东管理员看到的统计数据是显示管济南、青岛、临沂的

比如我是临沂管理员看到的统计数据是显示兰山区、河东区、费县的

那我是全国管理员时 只显示省一级统计概况 山东的统计数据自然包含济南、青岛、临沂,临沂中又包含兰山区、河东区、费县,这时候不能确定传入到底是哪一级的就可用下面sql

利用传入的orgCode向右模糊查询到本级及其下级的部门再除去本级部门只获取所有下级部门,再通过length(#{orgCode}) + 3 ) 作用 不管下级是下一级还是下两级下三级只截取成下一级的格式,最后进行分部门统计

java 复制代码
        SELECT count(*),sd.depart_name FROM
        (
	        SELECT *,
	        SUBSTRING(org_code, 1, length(#{orgCode}) + 3 ) org_code_temp
	        FROM sewage_outlet
	        WHERE  org_code LIKE  concat(#{orgCode},'%')
	          and org_code != #{orgCode}
        ) rs
        LEFT JOIN sys_depart sd ON sd.org_code = rs.org_code_temp
        GROUP BY sd.org_code, sd.depart_name;
相关推荐
岁岁种桃花儿4 小时前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
毕设源码-朱学姐4 小时前
【开题答辩全过程】以 基于JavaWeb的网上家具商城设计与实现为例,包含答辩的问题和答案
java
C雨后彩虹6 小时前
CAS与其他并发方案的对比及面试常见问题
java·面试·cas·同步·异步·
Exquisite.6 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
java1234_小锋7 小时前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试
2501_944525547 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 账户详情页面
android·java·开发语言·前端·javascript·flutter
计算机学姐7 小时前
基于SpringBoot的电影点评交流平台【协同过滤推荐算法+数据可视化统计】
java·vue.js·spring boot·spring·信息可视化·echarts·推荐算法
Filotimo_7 小时前
Tomcat的概念
java·tomcat
索荣荣8 小时前
Java Session 全面指南:原理、应用与实践(含 Spring Boot 实战)
java·spring boot·后端