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;
相关推荐
Channing Lewis几秒前
mysql.connector.errors.OperationalError: 1040 (08004): Too many connections
数据库·mysql·adb
xunyan623410 分钟前
异常处理-异常概述
java·学习
小付爱coding14 分钟前
MCP官方调试工具
java·人工智能
一瓢西湖水21 分钟前
浅谈eclipse memory analyzer的应用
java·eclipse
古城小栈24 分钟前
Spring Boot 容器化:Docker+K8s 部署最佳实践
spring boot·docker·kubernetes
weixin_4397062524 分钟前
Windows MySQL的主从复制配置记录
windows·mysql·adb
xu_ws25 分钟前
2G服务器优化MySQL内存配置指南
数据库·mysql
愚公移码27 分钟前
蓝凌EKP产品:理解连接池、理解Hikari和Druid 区别
java·oracle·hibernate
天远Date Lab28 分钟前
构建金融级风控中台:Java Spring Boot 集成天远借贷风险探查 API 实战
java·大数据·spring boot·金融
Han.miracle37 分钟前
数据结构与算法-012
java·开发语言