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;
相关推荐
伍一5111 分钟前
hiprint-spring-boot打印组件介绍
java·hiprint
Wang's Blog5 小时前
Java 接入Redis: 服务启动停止与后台运行配置
java·服务器·redis
此时不提桶,更待何时6 小时前
01-04-B-垃圾回收面试与生产事故实战
java·jvm·面试
鹿角片ljp8 小时前
KV Cache 解析
java·算法
captain3768 小时前
网络原理(9)-数据链路层
java·网络协议·java-ee
惊讶的猫8 小时前
意图识别置信度和检索重排的分数
java
caoerzhong9 小时前
仓库管理数字化趋势解读:JeeWMS 开源 Java WMS 视角下的五个演进方向
java·开源
程序员JerrySUN9 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
‎ദ്ദിᵔ.˛.ᵔ₎10 小时前
MySQL 表约束
数据库·mysql