feat(hiddenDangerPlan): 新增隐患排查计划的完成未完成数量统计

为隐患排查计划VO新增已完成数、未完成数统计字段,编写自定义XML SQL统计各计划的完成情况,更新Mapper和Service使用新的查询逻辑
This commit is contained in:
2026-06-03 10:41:40 +08:00
parent 041bdf1a32
commit 38b393cafa
4 changed files with 61 additions and 2 deletions

View File

@@ -97,5 +97,17 @@ public class HotHiddenDangerPlanVo implements Serializable {
@ExcelProperty(value = "计划周期Key")
private String planDateKey;
/**
* 已完成数
*/
@ExcelProperty(value = "已完成数")
private Long completedCount;
/**
* 未完成数
*/
@ExcelProperty(value = "未完成数")
private Long pendingCount;
}

View File

@@ -2,9 +2,15 @@ package com.hotwj.platform.securityManagement.hiddenDangerPlan.mapper;
import com.hotwj.platform.securityManagement.hiddenDangerPlan.domain.HotHiddenDangerPlan;
import com.hotwj.platform.securityManagement.hiddenDangerPlan.domain.vo.HotHiddenDangerPlanVo;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* 隐患排查Mapper接口
*
@@ -14,4 +20,8 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@Mapper
public interface HotHiddenDangerPlanMapper extends BaseMapperPlus<HotHiddenDangerPlan, HotHiddenDangerPlanVo> {
Page<HotHiddenDangerPlanVo> queryPageList(Page<HotHiddenDangerPlanVo> page,
@Param(Constants.WRAPPER) Wrapper<HotHiddenDangerPlan> queryWrapper);
List<HotHiddenDangerPlanVo> queryList(@Param(Constants.WRAPPER) Wrapper<HotHiddenDangerPlan> queryWrapper);
}

View File

@@ -90,7 +90,7 @@ public class HotHiddenDangerPlanServiceImpl implements IHotHiddenDangerPlanServi
@Override
public TableDataInfo<HotHiddenDangerPlanVo> queryPageList(HotHiddenDangerPlanBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HotHiddenDangerPlan> lqw = buildQueryWrapper(bo);
Page<HotHiddenDangerPlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<HotHiddenDangerPlanVo> result = baseMapper.queryPageList(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@@ -103,7 +103,7 @@ public class HotHiddenDangerPlanServiceImpl implements IHotHiddenDangerPlanServi
@Override
public List<HotHiddenDangerPlanVo> queryList(HotHiddenDangerPlanBo bo) {
LambdaQueryWrapper<HotHiddenDangerPlan> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.queryList(lqw);
}
/**

View File

@@ -3,4 +3,41 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hotwj.platform.securityManagement.hiddenDangerPlan.mapper.HotHiddenDangerPlanMapper">
<sql id="baseSelectWithStats">
SELECT
p.id,
p.company_id,
p.inspect_id,
p.inspect_name,
p.plan_name,
p.start_date,
p.end_date,
p.progress,
p.remark,
p.is_deleted,
p.is_auto_generated_by_backend,
p.plan_date_key,
COALESCE(stats.completed_count, 0) AS completedCount,
COALESCE(stats.pending_count, 0) AS pendingCount
FROM hot_hidden_danger_plan p
LEFT JOIN (
SELECT
i.plan_id,
SUM(CASE WHEN i.status IN (3, 9) THEN 1 ELSE 0 END) AS completed_count,
SUM(CASE WHEN i.status IS NULL OR i.status NOT IN (3, 9) THEN 1 ELSE 0 END) AS pending_count
FROM hot_hidden_danger_inspection i
WHERE i.is_deleted = 0
GROUP BY i.plan_id
) stats ON stats.plan_id = p.id
</sql>
<select id="queryPageList" resultType="com.hotwj.platform.securityManagement.hiddenDangerPlan.domain.vo.HotHiddenDangerPlanVo">
<include refid="baseSelectWithStats"/>
${ew.customSqlSegment}
</select>
<select id="queryList" resultType="com.hotwj.platform.securityManagement.hiddenDangerPlan.domain.vo.HotHiddenDangerPlanVo">
<include refid="baseSelectWithStats"/>
${ew.customSqlSegment}
</select>
</mapper>