luohairen
2024-11-25 0007e63680e40d2957a24732a6e0ee4d5b97ee68
business/src/main/resources/mapper/PlanMapper.xml
@@ -13,6 +13,21 @@
        <result column="gmt_update_time" property="gmtUpdateTime" />
    </resultMap>
    <!-- 分页条件查询项目计划记录映射结果 -->
    <resultMap id="PageResultMap" type="com.ycl.domain.vo.ProjectPlanResponseVO">
        <id property="id" column="id" />
        <result property="projectName" column="project_name" />
        <result property="reportStatus" column="report_status" />
        <result property="projectCode" column="project_code" />
        <result property="projectType" column="project_type" />
        <result property="projectPhase" column="project_phase" />
        <result property="monthStatus" column="month_status" />
        <result property="seasonStatus" column="season_status" />
        <result property="yearStatus" column="year_status" />
        <result property="projectStatus" column="project_status" />
        <result property="investType" column="invest_type" />
    </resultMap>
@@ -36,20 +51,27 @@
    </select>
    <select id="getPage" resultMap="BaseResultMap">
        SELECT
            TP.project_info_id,
            TP.report_status,
            TP.month_status,
            TP.season_status,
            TP.year_status,
            TP.gmt_create_time,
            TP.gmt_update_time,
            TP.id
        FROM
            t_plan TP
    <select id="getPage" resultMap="PageResultMap">
        SELECT DISTINCT
            pi.id,
            pi.project_name,
            p.report_status,
            pi.project_code,
            pi.project_type,
            pi.project_phase,
            IFNULL((select report_status from t_project_plan_record
             WHERE plan_time_flag = 0 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as month_status,
            IFNULL((select report_status from t_project_plan_record
             WHERE plan_time_flag = 1 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as season_status,
            IFNULL((select report_status from t_project_plan_record
             WHERE plan_time_flag = 2 AND project_info_id = pi.id ORDER BY create_time DESC LIMIT 1),1) as year_status,
            pi.project_status,
            pi.invest_type
        FROM t_plan AS p
            INNER JOIN t_project_info AS pi ON p.project_info_id = pi.id
            INNER JOIN t_project_plan_record AS ppr ON p.id = ppr.plan_id
        WHERE
            TP.deleted = 0
            p.deleted = 0
    </select>
</mapper>