数据权限注解并优化安全环保检查查询

main
zhangyue 2026-04-29 14:05:04 +08:00
parent add7230fd1
commit 252a3ea735
5 changed files with 52 additions and 20 deletions

View File

@ -2,6 +2,8 @@ package com.zcloud.key.project.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.key.project.persistence.dataobject.hidden.HiddenDO;
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionDO;
import org.apache.ibatis.annotations.Mapper;
@ -17,6 +19,10 @@ import java.util.Map;
* @Date 2026-03-20 11:32:51
*/
@Mapper
@DataScopes({
@DataScope(method = "selectListPage", menuPerms = ""),
})
public interface HiddenMapper extends BaseMapper<HiddenDO> {
IPage<HiddenDO> selectListPage(IPage<HiddenDO> page, @Param("params") Map<String, Object> params, String menuPerms);

View File

@ -2,6 +2,8 @@ package com.zcloud.key.project.persistence.mapper.ai;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.key.project.persistence.dataobject.ai.AiAlarmDO;
import org.apache.ibatis.annotations.Mapper;
@ -14,6 +16,9 @@ import java.util.Map;
* @Date 2026-04-08 10:09:33
*/
@Mapper
@DataScopes({
@DataScope(method = "selectListPage", menuPerms = ""),
})
public interface AiAlarmMapper extends BaseMapper<AiAlarmDO> {
IPage<AiAlarmDO> selectListPage(IPage<AiAlarmDO> iPage, Map<String, Object> params, String menuPerms);

View File

@ -2,6 +2,8 @@ package com.zcloud.key.project.persistence.mapper.ai;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.key.project.persistence.dataobject.ai.KeyProjectAlgorithmDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -15,6 +17,9 @@ import java.util.Map;
* @Date 2026-04-08 10:09:30
*/
@Mapper
@DataScopes({
@DataScope(method = "selectListPage", menuPerms = ""),
})
public interface KeyProjectAlgorithmMapper extends BaseMapper<KeyProjectAlgorithmDO> {
IPage<KeyProjectAlgorithmDO> selectListPage(IPage<KeyProjectAlgorithmDO> page, @Param("params") Map<String, Object> params , @Param("menuPerms") String menuPerms);
}

View File

@ -3,6 +3,8 @@ package com.zcloud.key.project.persistence.mapper.inspection;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionDO;
import com.zcloud.key.project.persistence.dataobject.project.KeyProjectDO;
import org.apache.ibatis.annotations.Mapper;
@ -18,6 +20,10 @@ import java.util.Map;
* @Date 2026-03-20 16:16:05
*/
@Mapper
@DataScopes({
@DataScope(method = "selectListPage", menuPerms = ""),
})
public interface SafetyEnvironmentalInspectionMapper extends BaseMapper<SafetyEnvironmentalInspectionDO> {
IPage<SafetyEnvironmentalInspectionDO> selectListPage(IPage<SafetyEnvironmentalInspectionDO> page, @Param("params") Map<String, Object> params, String menuPerms);

View File

@ -4,6 +4,16 @@
<mapper namespace="com.zcloud.key.project.persistence.mapper.inspection.SafetyEnvironmentalInspectionMapper">
<select id="selectListPage" resultType="com.zcloud.key.project.persistence.dataobject.inspection.SafetyEnvironmentalInspectionDO">
WITH max_iu_type AS (
SELECT
inspection_id,
MAX(type) AS max_type
FROM safety_environmental_inspection_user
WHERE delete_enum = 'FALSE'
AND type IN (2, 5)
GROUP BY inspection_id
)
select
i.*,
kp.project_name,
@ -15,24 +25,24 @@
safety_environmental_inspection i
left join key_project kp on kp.key_project_id = i.key_project_id
left join user creu on creu.id = i.create_id
left join (
SELECT
inspection_id,
department_id,
user_id,
type,
RANK() OVER (
PARTITION BY inspection_id
ORDER BY type DESC
) AS rn
FROM safety_environmental_inspection_user
WHERE delete_enum = 'FALSE'
AND type IN (2, 5)
) iu on iu.inspection_id = i.inspection_id AND iu.rn = 1
JOIN max_iu_type mt
ON mt.inspection_id = i.inspection_id
<!-- 展示用:最大 type 下的所有人员,不限制 status -->
LEFT JOIN safety_environmental_inspection_user iu_show
ON iu_show.inspection_id = i.inspection_id
AND iu_show.delete_enum = 'FALSE'
AND iu_show.type = mt.max_type
<!-- 过滤用:最大 type 下 status = 0 的人员 -->
JOIN safety_environmental_inspection_user iu
ON iu.inspection_id = i.inspection_id
AND iu.delete_enum = 'FALSE'
AND iu.type = mt.max_type
AND iu.STATUS = 0
left join user iuu on iuu.id = iu.user_id
left join corp_info indc on indc.id = i.inspected_corpinfo_id
left join user xmu on xmu.id = i.xgf_master_user_id
-- left join safety_environmental_inspection_user seiu on seiu.inspection_id = i.inspection_id
where i.delete_enum = 'FALSE'
<if test="params.place != null and params.place != ''">
and i.place LIKE CONCAT('%', #{params.place}, '%')
@ -61,8 +71,8 @@
</if>
<if test="params.statusList != null and params.statusList.size() > 0">
and i.status in
<foreach item="status" collection="params.statusList" separator="," open="(" close=")" index="">
#{status}
<foreach item="st" collection="params.statusList" separator="," open="(" close=")" >
#{st}
</foreach>
</if>
@ -71,7 +81,7 @@
HAVING inspection_user_name LIKE CONCAT('%', #{params.inspectionUserName}, '%')
</if>
ORDER BY
CASE WHEN i.status = 6 THEN 0 ELSE 1 END,
FIELD(i.status, 6) DESC,
i.create_time desc
</select>
@ -202,8 +212,8 @@
</if>
<if test="params.statusList != null and params.statusList.size() > 0">
and i.status in
<foreach item="status" collection="params.statusList" separator="," open="(" close=")" index="">
#{status}
<foreach item="st" collection="params.statusList" separator="," open="(" close=")" index="">
#{st}
</foreach>
</if>
<if test="params.ids != null and params.ids.size() > 0">