diff --git a/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/annotation/DataScope.java b/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/annotation/DataScope.java index a32cddfb..565f2518 100644 --- a/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/annotation/DataScope.java +++ b/lib/EmergencyBaseLib/EmergencyCommon/src/main/java/com/zdxt/common/annotation/DataScope.java @@ -21,4 +21,14 @@ public @interface DataScope * 用户表的别名 */ public String userAlias() default ""; + + /** + * 部门id替换字段 + */ + public String deptField() default ""; + + /** + * 用户id替换字段 + */ + public String userField() default ""; } diff --git a/lib/EmergencyBaseLib/EmergencyCommonEntity/src/main/java/com/zdxt/domain/auth/Dept.java b/lib/EmergencyBaseLib/EmergencyCommonEntity/src/main/java/com/zdxt/domain/auth/Dept.java index fc5f8300..c03d8765 100644 --- a/lib/EmergencyBaseLib/EmergencyCommonEntity/src/main/java/com/zdxt/domain/auth/Dept.java +++ b/lib/EmergencyBaseLib/EmergencyCommonEntity/src/main/java/com/zdxt/domain/auth/Dept.java @@ -126,6 +126,7 @@ public class Dept extends BaseDomain { /** * 角色左侧树状图区分 + * 1:市直; 2:区; 3:区直; 4:街道 */ private Integer zone; diff --git a/lib/EmergencyBaseLib/EmergencyCommonmDatascope/src/main/java/com/zdxt/common/datascope/aspect/DataScopeAspect.java b/lib/EmergencyBaseLib/EmergencyCommonmDatascope/src/main/java/com/zdxt/common/datascope/aspect/DataScopeAspect.java index 23f7ddc5..4fa8cd01 100644 --- a/lib/EmergencyBaseLib/EmergencyCommonmDatascope/src/main/java/com/zdxt/common/datascope/aspect/DataScopeAspect.java +++ b/lib/EmergencyBaseLib/EmergencyCommonmDatascope/src/main/java/com/zdxt/common/datascope/aspect/DataScopeAspect.java @@ -93,7 +93,7 @@ public class DataScopeAspect { User currentUser = (User) cacheKeys; if (!currentUser.isAdmin()){ dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), - controllerDataScope.userAlias()); + controllerDataScope.userAlias(), controllerDataScope.deptField(), controllerDataScope.userField()); } }else{ @@ -103,7 +103,7 @@ public class DataScopeAspect { User appUser = (User) redisKeys; if (!appUser.isAdmin()){ dataScopeFilter(joinPoint, appUser, controllerDataScope.deptAlias(), - controllerDataScope.userAlias()); + controllerDataScope.userAlias(), controllerDataScope.deptField(), controllerDataScope.userField()); } } } @@ -125,7 +125,7 @@ public class DataScopeAspect { * @param user 用户 * @param userAlias 别名 */ - public static void dataScopeFilter(JoinPoint joinPoint, User user, String deptAlias, String userAlias) { + public static void dataScopeFilter(JoinPoint joinPoint, User user, String deptAlias, String userAlias, String deptField, String userField) { StringBuilder sqlString = new StringBuilder(); for (Role role : user.getRoles()) { @@ -135,38 +135,78 @@ public class DataScopeAspect { break; } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { if(StringUtils.isEmpty(deptAlias)){ - sqlString.append(StringUtils.format( - " OR {} dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, - role.getRoleId())); + if(!StringUtils.isEmpty(deptField)){ + sqlString.append(StringUtils.format( + " OR {} IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptField, + role.getRoleId())); + } else { + sqlString.append(StringUtils.format( + " OR {} dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, + role.getRoleId())); + } }else{ - sqlString.append(StringUtils.format( - " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, - role.getRoleId())); + if(!StringUtils.isEmpty(deptField)){ + sqlString.append(StringUtils.format( + " OR {}.{} IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, deptField, + role.getRoleId())); + } else { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, + role.getRoleId())); + } } } else if (DATA_SCOPE_DEPT.equals(dataScope)) { //别名为空 if(StringUtils.isEmpty(deptAlias)) { - sqlString.append(StringUtils.format(" OR {} dept_id = '{}' ", deptAlias, user.getDeptId())); + if(!StringUtils.isEmpty(deptField)){ + sqlString.append(StringUtils.format(" OR {} = '{}' ", deptField, user.getDeptId())); + } else { + sqlString.append(StringUtils.format(" OR {} dept_id = '{}' ", deptAlias, user.getDeptId())); + } }else{ //别名不为空 - sqlString.append(StringUtils.format(" OR {}.dept_id = '{}' ", deptAlias, user.getDeptId())); + if(!StringUtils.isEmpty(deptField)){ + sqlString.append(StringUtils.format(" OR {}.{} = '{}' ", deptAlias, deptField, user.getDeptId())); + } else { + sqlString.append(StringUtils.format(" OR {}.dept_id = '{}' ", deptAlias, user.getDeptId())); + } } } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { if(StringUtils.isEmpty(deptAlias)){ - sqlString.append(StringUtils.format( - " OR {} dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = '{}' or find_in_set( '{}' , ancestors ) <> 0 )", - deptAlias, user.getDeptId(), user.getDeptId())); + if(!StringUtils.isEmpty(deptField)){ + sqlString.append(StringUtils.format( + " OR {} IN ( SELECT dept_id FROM sys_dept WHERE dept_id = '{}' or find_in_set( '{}' , ancestors ) <> 0 )", + deptField, user.getDeptId(), user.getDeptId())); + } else { + sqlString.append(StringUtils.format( + " OR {} dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = '{}' or find_in_set( '{}' , ancestors ) <> 0 )", + deptAlias, user.getDeptId(), user.getDeptId())); + } }else{ - sqlString.append(StringUtils.format( - " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = '{}' or find_in_set( '{}' , ancestors ) <> 0 )", - deptAlias, user.getDeptId(), user.getDeptId())); + if(!StringUtils.isEmpty(deptField)){ + sqlString.append(StringUtils.format( + " OR {}.{} IN ( SELECT dept_id FROM sys_dept WHERE dept_id = '{}' or find_in_set( '{}' , ancestors ) <> 0 )", + deptAlias, deptField, user.getDeptId(), user.getDeptId())); + } else { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = '{}' or find_in_set( '{}' , ancestors ) <> 0 )", + deptAlias, user.getDeptId(), user.getDeptId())); + } } } else if (DATA_SCOPE_SELF.equals(dataScope)) { if(StringUtils.isEmpty(userAlias)){ - sqlString.append(StringUtils.format(" OR {} user_id = {} ", userAlias, user.getUserId())); + if(!StringUtils.isEmpty(userField)){ + sqlString.append(StringUtils.format(" OR {} = {} ", userField, user.getUserId())); + } else { + sqlString.append(StringUtils.format(" OR {} user_id = {} ", userAlias, user.getUserId())); + } }else{ - sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + if(!StringUtils.isEmpty(userField)){ + sqlString.append(StringUtils.format(" OR {}.{} = {} ", userAlias, userField, user.getUserId())); + } else { + sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + } } } } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/feign/DeptApiImpl.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/feign/DeptApiImpl.java index 23dfca71..e64fbc5b 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/feign/DeptApiImpl.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/feign/DeptApiImpl.java @@ -100,6 +100,7 @@ public class DeptApiImpl implements DeptApi { @Override + @DataScope public List getDeptList(DeptBean deptBean) { Dept dept = new Dept(); BeanUtil.copyProperties(deptBean, dept); diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java index 17c4ac9b..f3548915 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/framework/config/CorsFilter.java @@ -32,7 +32,7 @@ public class CorsFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //配置可信域名 String[] authhosts = {"http://10.132.108.3:85","http://jdm.szssfj.cn","http://localhost:85","http://192.168.31.196:3301", - "http://localhost:3301","http://10.132.108.3:81","http://10.132.108.3:85"}; + "http://localhost:3301","http://10.132.108.3:81","http://10.132.108.3:85", "http://192.168.1.130:3301"}; String authost = ""; HttpServletRequest httprequest = (HttpServletRequest) request; String origin = httprequest.getHeader("Origin"); diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/role/service/RoleServiceImpl.java b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/role/service/RoleServiceImpl.java index a185be5d..23e195d9 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/role/service/RoleServiceImpl.java +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/java/com/zdxt/auth/project/system/role/service/RoleServiceImpl.java @@ -56,7 +56,7 @@ public class RoleServiceImpl implements IRoleService { * @return 角色数据集合信息 */ @Override - @DataScope(deptAlias = "r") + @DataScope(userAlias = "u", deptAlias = "u") public List selectRoleList(Role role) { return roleMapper.selectRoleList(role); } diff --git a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml index 7a7d0d31..3a9271d7 100644 --- a/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml +++ b/lib/EmergencyService/zdxtEmergencyAuthService/src/main/resources/mapper/system/DeptMapper.xml @@ -165,6 +165,9 @@ #{item} + + AND zone = #{zone} + AND d.tenant_code = #{tenantCode} diff --git a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical/scripts/charts-analyov.js b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical/scripts/charts-analyov.js index d0936e28..03b846af 100644 --- a/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical/scripts/charts-analyov.js +++ b/lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/static/statistical/scripts/charts-analyov.js @@ -1,40 +1,185 @@ //*****************统计分析图表 $(function(){ - sixIndicators_area(); - reg_type(); - enterprise_type(); - complaint_type(); - reg_order(); - complaint_order(); - bureau_order(); + chartArea(); + chartRegType(); + chartEnterpriseType(); + chartComplaintType(); + chartReg_order(); + chartComplaint_order(); + chartBureau_order(); + + // sixIndicators_area(); + // reg_type(null); + // enterprise_type(null); + // complaint_type(null); + // reg_order(null); + // complaint_order(null); + // bureau_order(null); }); +var area_chart = null; +var reg_type_chart = null; +var enterprise_type_chart = null; +var complaint_type_chart = null; +var reg_order_chart = null; +var complaint_order_chart = null; +var bureau_order_chart = null; + /** 各区综合分析 */ -function sixIndicators_area() { +function sixIndicators_area(qy) { $.ajax({ url: ctx + "code/statisticalPanel/sixIndicators_area", type: "get", - data: {dateType: "year", year:"2025"}, + data: {dateType: "year", year:"2025", qy:qy}, success: function(res) { if(res.success) { - chartArea(res.data); + // chartArea(res.data); + var areas = []; + var registrations = []; + var unite_registrations = []; + var lawEnforcements = []; + var complaints = []; + var warnings = []; + var enterprises = []; + for(var i=0; i 0) + types.push({value: res.data[i].num, name: res.data[i].category}); + } + reg_type_chart.setOption({ + series: [{data:types}] + }); }, error: function (error) { $.modal.alertWarning("获取分析数据失败。"); @@ -43,13 +188,21 @@ function reg_type() { } /** 企业类别数量及占比 */ -function enterprise_type() { +function enterprise_type(qy) { $.ajax({ - url: ctx + "code/statisticsEnterprise/type", + url: ctx + "code/statisticalPanel/staisticalEnterprise_category", + // url: ctx + "code/statisticsEnterprise/type", type: "get", - data: {}, + data: {qy:qy}, success: function(res) { - chartEnterpriseType(res); + var types = [] + for (var i=0; i 0) + types.push({value: res.data[i].value, name: res.data[i].name}); + } + enterprise_type_chart.setOption({ + series: [{data:types}] + }); }, error: function (error) { $.modal.alertWarning("获取分析数据失败。"); @@ -58,13 +211,21 @@ function enterprise_type() { } /** 投诉类别数量及占比 */ -function complaint_type() { +function complaint_type(qy) { $.ajax({ - url: ctx + "code/complaintStatic/list2", - type: "post", - data: {dateSearch:'year', year:'2025'}, + // url: ctx + "code/complaintStatic/list2", + url: ctx + "code/statisticalPanel/staisticalEnforce_type", + type: "get", + data: {dateSearch:'year', year:'2025', qy:qy}, success: function(res) { - chartComplaintType(res.rows); + var types = [] + for (var i = 0; i < res.data.length; i++) { + if (res.data[i].num > 0) + types.push({value: res.data[i].num, name: res.data[i].type}); + } + complaint_type_chart.setOption({ + series: [{data:types}] + }); }, error: function (error) { $.modal.alertWarning("获取分析数据失败。"); @@ -73,13 +234,25 @@ function complaint_type() { } /** 被检查企业次数排行 */ -function reg_order() { +function reg_order(qy) { $.ajax({ url: ctx + "code/statisticalPanel/staisticalRegistration_order", type: "get", - data: {dateType:'year', year:'2025'}, + data: {dateType:'year', year:'2025', qy:qy}, success: function(res) { - chartReg_order(res.data); + var datas = res.data; + var top_num = 10; + if (datas.length < top_num) top_num = datas.length; + var names = []; + var nums = []; + for (var i=0; i: ', datas); - var top_num = 10; - if (datas.length < top_num) top_num = datas.length; - var names = []; - var nums = []; - for (var i=0; i
- -
-
深圳市
-
福田区
-
罗湖区
-
南山区
-
盐田区
-
宝安区
-
龙岗区
-
龙华区
-
坪山区
-
光明区
-
大鹏新区
-
深汕特别合作区
+ +
+ + + + + + + + + + + +
-
- -
+ + +
综合数据
-
+
+
+
涉企检查数量
+
- +
+
+ + -
+
+ + -
+
+
+
+ + -%
+
+ + -%
+
+
+
联合检查数量
+
- +
+
+ + -
+
+ + -
+
+
+
+ + -%
+
+ + -%
+
+
+
行政检查预告数量
+
- +
+
+ + -
+
+ + -
+
+
+
+ + -%
+
+ + -%
+
+
+
涉企投诉数量
+
- +
+
+ + -
+
+ + -
+
+
+
+ + -%
+
+ + -%
+
+
+
执法预警数量
+
- +
+
+ + -
+
+ + -
+
+
+
+ + -%
+
+ + -%
+
+
+
企业数量
+
- +
+
+ + -
+
+ + -
+
+
+
+ + -%
+
+ + -%
+
+
@@ -70,7 +185,7 @@
-

被投诉单位排行

+

被投诉单位被投诉数量排行

@@ -265,6 +302,10 @@ and DATE_FORMAT(n.create_time,'%Y-%m-%d') >= DATE_FORMAT(#{beginTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d') >= DATE_FORMAT(n.create_time,'%Y-%m-%d') + + + ${params.dataScope} + @@ -374,6 +423,10 @@ and DATE_FORMAT(c.complaint_time,'%Y-%m-%d') >= DATE_FORMAT(#{beginTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d') >= DATE_FORMAT(c.complaint_time,'%Y-%m-%d') + + + ${params.dataScope} + @@ -483,6 +544,10 @@ and DATE_FORMAT(w.create_time,'%Y-%m-%d') >= DATE_FORMAT(#{beginTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d') >= DATE_FORMAT(w.create_time,'%Y-%m-%d') + + + ${params.dataScope} + @@ -617,6 +690,10 @@ and DATE_FORMAT(e.create_time,'%Y-%m-%d')>=DATE_SUB(STR_TO_DATE(#{e.beginTime},"%Y-%m-%d"),INTERVAL TO_DAYS(STR_TO_DATE(#{e.endTime},"%Y-%m-%d"))-TO_DAYS(STR_TO_DATE(#{e.beginTime},"%Y-%m-%d"))+1 day) and DATE_SUB(STR_TO_DATE(#{e.endTime},"%Y-%m-%d"),INTERVAL TO_DAYS(STR_TO_DATE(#{e.endTime},"%Y-%m-%d"))-TO_DAYS(STR_TO_DATE(#{e.beginTime}),"%Y-%m-%d")+1 day)>=DATE_FORMAT(e.create_time,'%Y-%m-%d') + + + ${params.dataScope} + @@ -695,6 +776,10 @@ and DATE_FORMAT(r.create_time,'%Y-%m-%d') >= DATE_FORMAT(#{beginTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d') >= DATE_FORMAT(r.create_time,'%Y-%m-%d') + + + ${params.dataScope} + group by r.enterprise_number order by num desc @@ -731,6 +816,10 @@ and DATE_FORMAT(c.complaint_time,'%Y-%m-%d') >= DATE_FORMAT(#{beginTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d') >= DATE_FORMAT(c.complaint_time,'%Y-%m-%d') + + + ${params.dataScope} + group by c.complaint_department_id order by num desc; @@ -775,10 +864,16 @@ and DATE_FORMAT(r.create_time,'%Y-%m-%d') >= DATE_FORMAT(#{beginTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d') >= DATE_FORMAT(r.create_time,'%Y-%m-%d') + + + ${params.dataScope} + group by r.bureau_dept_id order by num desc + + + + + + \ No newline at end of file diff --git a/lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/dto/DeptBean.java b/lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/dto/DeptBean.java index 73db6c0f..df9adfd6 100644 --- a/lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/dto/DeptBean.java +++ b/lib/EmergencyServiceApi/emergencyAuthServiceApi/src/main/java/com/zdxt/auth/dto/DeptBean.java @@ -121,6 +121,17 @@ public class DeptBean extends BaseDomain { */ private String creditcode; + /** 1:市直; 2:区; 3:区直; 4:街道 */ + private String zone; + + public String getZone() { + return zone; + } + + public void setZone(String zone) { + this.zone = zone; + } + public String getDeptId() { return deptId; }