yanghb
2025-01-07 1ea7e38d7d2152012db3f49934e84d164a07d613
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzg.system.mapper.state.StateProjectMapper">
    <select id="selectStateProject" resultType="com.zzg.common.core.domain.entity.state.StateProject">
        SELECT *
        FROM state_project a
                 LEFT JOIN state_project_info b ON a.id = b.project_id
        <where>
            -- 过滤掉项目阶段为:已作废、入户调查、已完成 的项目
                a.status NOT IN (-1, 2, 3)
            <!-- 项目名称模糊查询 -->
            <if test="getProjectPageBO.projectName != null and getProjectPageBO.projectName != ''">
                AND a.project_name LIKE CONCAT('%', #{getProjectPageBO.projectName}, '%')
            </if>
 
            <!-- 项目状态查询 -->
            <if test="getProjectPageBO.projectStatus != null">
                AND a.status = #{getProjectPageBO.projectStatus}
            </if>
 
            <!-- 项目编号模糊查询 -->
            <if test="getProjectPageBO.projectNo != null and getProjectPageBO.projectNo != ''">
                AND a.project_no LIKE CONCAT('%', #{getProjectPageBO.projectNo}, '%')
            </if>
 
            <!-- 项目街道模糊查询 -->
            <if test="getProjectPageBO.projectStreet != null and getProjectPageBO.projectStreet != ''">
                AND a.street LIKE CONCAT('%', #{getProjectPageBO.projectStreet}, '%')
            </if>
 
            <!-- 项目时间区间查询 -->
            <if test="getProjectPageBO.startTime != null and getProjectPageBO.endTime != null">
                AND a.start_time BETWEEN #{getProjectPageBO.startTime} AND #{getProjectPageBO.endTime}
            </if>
            <!-- 项目时间区间查询 -->
            <if test="getProjectPageBO.collectionEnforcementDepartment != null and getProjectPageBO.collectionEnforcementDepartment != ''">
                AND b.collection_enforcement_department LIKE
                    CONCAT('%', #{getProjectPageBO.collectionEnforcementDepartment}, '%')
            </if>
        </where>
        order by a.create_time desc
    </select>
 
 
    <select id="sumExpiredData" resultType="com.zzg.system.domain.vo.ProjectStatusExpiredVO"
            parameterType="com.zzg.system.domain.bo.ProjectStatisticsBO">
        SELECT * from (
        SELECT t1.street, t1.project_name,min(t1.start_time) as start_time,
        Min(t3.sign_at) AS submit_time
        FROM state_project t1
        LEFT JOIN state_household t2 ON t1.id = t2.state_project_id
        LEFT JOIN state_agreement t3 ON t2.id = t3.state_household_id
        WHERE t1.status = 0
        and t2.del_flag = 0
        and t2.agreement_status = 3
        AND t3.agreement_file_type = 4
        GROUP BY t1.street, t1.project_name
        ) as o
        where submit_time + INTERVAL '1 year' &lt;= now()
        <!--        and t2.agreement_status = 3-->
        <if test="data.location != null and data.location != ''">
            AND street LIKE CONCAT('%', #{data.location}, '%')
        </if>
        <if test="data.projectStartTime != null">
            and start_time = #{data.projectStartTime}
        </if>
    </select>
</mapper>