xiangpei
2025-04-23 c1a9747777ea9aee817f306475c94031e5559cc4
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<?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.ycl.mapper.ProjectInfoMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="resultMap" type="com.ycl.domain.vo.ProjectInfoVO" autoMapping="true">
        <association property="projectInvestmentInfo" javaType="com.ycl.domain.vo.ProjectInvestmentInfoVO" autoMapping="true" columnPrefix="TPII_"/>
        <association property="projectInvestmentFunding" javaType="com.ycl.domain.vo.ProjectInvestmentFundingVO" autoMapping="true" columnPrefix="TPIF_"/>
        <association property="projectUnitRegistrationInfo" javaType="com.ycl.domain.vo.ProjectUnitRegistrationInfoVO" autoMapping="true" columnPrefix="TPURI_"/>
        <association property="projectInvestmentPolicyCompliance" javaType="com.ycl.domain.vo.ProjectInvestmentPolicyComplianceVO" autoMapping="true" columnPrefix="TPIPC_"/>
    </resultMap>
 
 
    <select id="getById" resultType="com.ycl.domain.entity.ProjectInfo">
        SELECT
            TPI.project_name,
            TPI.project_code,
            TPI.content,
            TPI.attract_investment,
            TPI.construction_nature,
            TPI.project_type,
            TPI.project_sub_type,
            TPI.project_status,
            TPI.fund_type,
            TPI.invest_type,
            TPI.project_phase,
            TPI.tag,
            TPI.competent_department,
            TPI.competent_department_phone,
            TPI.competent_department_person,
            TPI.area,
            TPI.management_centralization,
            TPI.project_approval_type,
            TPI.importance_type,
            TPI.year,
            TPI.year_invest_amount,
            TPI.create_project_time,
            TPI.plan_start_time,
            TPI.plan_complete_time,
            TPI.win_unit,
            TPI.win_amount,
            TPI.win_time,
            TPI.project_address,
            TPI.longitude,
            TPI.latitude,
            TPI.project_owner_unit,
            TPI.project_contact_person,
            TPI.contact,
            TPI.gmt_create,
            TPI.gmt_update,
            TPI.update_by,
            TPI.create_by,
            TPI.remark,
            TPI.id,
            TPI.industry_competent_department,
            TPI.industry_competent_department_person,
            TPI.department_person_phone
        FROM
            t_project_info TPI
        WHERE
            TPI.id = #{id} AND TPI.deleted = 0
    </select>
 
 
    <select id="getPage" resultMap="resultMap">
        SELECT
            TPI.*,TPP.process_ins_id as processId,
            TPIF.total_investment  as TPIF_totalInvestment,
            TPIF.principal as TPIF_principal,TPIF.government_investment_total as TPIF_government_investment_total,TPIF.central_investment_total as TPIF_central_investment_total,
            TPIF.central_budget_investment as TPIF_central_budget_investment,TPIF.central_fiscal_investment as TPIF_central_fiscal_investment,
            TPIF.central_special_bond_investment as TPIF_central_special_bond_investment,TPIF.central_special_fund_investment as TPIF_central_special_fund_investment,
            TPIF.provincial_investment_total as TPIF_provincial_investment_total,TPIF.provincial_budget_investment as TPIF_provincial_budget_investment,
            TPIF.provincial_fiscal_investment as TPIF_provincial_fiscal_investment,TPIF.provincial_special_fund_investment as TPIF_provincial_special_fund_investment,
            TPIF.city_investment_total as TPIF_city_investment_total,TPIF.city_budget_investment as TPIF_city_budget_investment,TPIF.city_fiscal_investment as TPIF_city_fiscal_investment,
            TPIF.city_special_fund_investment as TPIF_city_special_fund_investment,TPIF.county_investment_total as TPIF_county_investment_total,TPIF.county_budget_investment as TPIF_county_budget_investment,
            TPIF.county_fiscal_investment as TPIF_county_fiscal_investment,TPIF.county_special_fund_investment as TPIF_county_special_fund_investment,
            TPIF.domestic_loan_total as TPIF_domestic_loan_total,TPIF.bank_loan as TPIF_bank_loan,TPIF.foreign_investment_total as TPIF_foreign_investment_total,
            TPIF.enterprise_self_raised_total as TPIF_enterprise_self_raised_total,TPIF.other_investment_total as TPIF_other_investment_total,
            TPIF.dept_bond as TPIF_dept_bond,TPIF.national_debt as TPIF_national_debt, TPIF.additional_national_debt as TPIF_additional_national_debt,
            TPII.be_cross_region as TPII_be_cross_region,TPII.construction_location as TPII_construction_location,
            TPII.detailed_address as TPII_detailed_address,TPII.be_compensation_project as TPII_be_compensation_project,TPII.compensation_reason as TPII_compensation_reason,
            TPII.planned_start_date as TPII_planned_start_date,TPII.expected_completion_date as TPII_expected_completion_date,
            TPII.national_industry_classification as TPII_national_industry_classification,TPII.industry_classification as TPII_industry_classification,TPII.project_nature as TPII_project_nature,
            TPII.project_attribute as TPII_project_attribute,TPII.use_earth as TPII_use_earth,TPII.content_scale as TPII_content_scale,TPII.code as TPII_code,
            TPIPC.belongs_to_industry_adjustment_directory as TPIPC_belongs_to_industry_adjustment_directory,TPIPC.belongs_to_western_encouraged_directory as TPIPC_belongs_to_western_encouraged_directory,
            TPIPC.not_banned_or_controlled_project as TPIPC_not_banned_or_controlled_project,TPIPC.information_is_true as TPIPC_information_is_true,
            TPIPC.special_planning_compliance as TPIPC_special_planning_compliance,TPIPC.annual_energy_consumption as TPIPC_annual_energy_consumption,TPIPC.annual_electricity_consumption as TPIPC_annual_electricity_consumption,
            TPIPC.energy_check as TPIPC_energy_check,TPIPC.no_only_check_type as TPIPC_no_only_check_type,TPIPC.remarks as TPIPC_remarks,
            TPURI.total_investment as TPURI_total_investment,
            TPURI.project_unit as TPURI_project_unit,
            TPURI.project_unit_type as TPURI_project_unit_type,
            TPURI.registration_type as TPURI_registration_type,
            TPURI.holding_situation as TPURI_holding_situation,
            TPURI.certificate_type  as TPURI_certificate_type,
            TPURI.certificate_number as TPURI_certificate_number,
            TPURI.registered_address as TPURI_registered_address,
            TPURI.registered_capital as TPURI_registered_capital,
            TPURI.legal_representative as TPURI_legal_representative,
            TPURI.fixed_phone as TPURI_fixed_phone,
            TPURI.legal_person_idcard as TPURI_legal_person_idcard,
            TPURI.project_contact_person as TPURI_project_contact_person,
            TPURI.phone as TPURI_phone,
            TPURI.contact_idcard as TPURI_contact_idcard,
            TPURI.wechat as TPURI_wechat,
            TPURI.contact_address as TPURI_contact_address,
            TPURI.post_code as TPURI_post_code,
            TPURI.email as TPURI_email,
            d.dept_name as project_owner_unit_name
        FROM
            t_project_info TPI
        LEFT JOIN t_project_investment_funding TPIF ON TPI.id = TPIF.project_id and TPIF.deleted = 0
        LEFT JOIN t_project_investment_info TPII ON TPI.id = TPII.project_id and TPII.deleted = 0
        LEFT JOIN t_project_investment_policy_compliance TPIPC ON TPI.id = TPIPC.project_id and TPIPC.deleted = 0
        LEFT JOIN t_project_unit_registration_info TPURI ON TPI.id = TPURI.project_id and TPURI.deleted = 0
        LEFT JOIN t_project_process TPP ON TPI.id = TPP.project_id and TPP.deleted = 0
        LEFT JOIN sys_dept d ON d.dept_id = TPI.project_owner_unit
        <where>
            TPI.deleted = 0
            <if test="query.coding !=null and query.coding!=''">
                and TPI.coding = #{query.coding}
            </if>
            <if test="query.projectName !=null and query.projectName!=''">
                and TPI.project_name like concat('%',#{query.projectName},'%')
            </if>
            <if test="query.projectCode !=null and query.projectCode!=''">
                and TPI.project_code like concat('%',#{query.projectCode},'%')
            </if>
            <if test="query.projectType !=null and query.projectType!=''">
                and TPI.project_type = #{query.projectType}
            </if>
            <if test="query.importanceType !=null and query.importanceType!=''">
                and (
                TPI.importance_type like concat('%',#{query.importanceType},'%')
                <if test="query.importanceType == 'normal'">
                    or TPI.importance_type is null or TPI.importance_type = ''
                </if>
                )
            </if>
            <if test="query.tag !=null and query.tag!=''">
                and TPI.tag like concat('%',#{query.tag},'%')
            </if>
            <if test="query.projectStatus !=null and query.projectStatus!=''">
                and TPI.project_status = #{query.projectStatus}
            </if>
            <if test="query.projectPhase !=null and query.projectPhase!='' and query.projectPhase!=6 and query.projectPhase!=5">
                and TPI.project_phase = #{query.projectPhase}
            </if>
            /* 只要不是6就查审核通过的,6是项目中心 */
            <if test="query.projectPhase != 6">
                and TPI.used_status = 2
            </if>
            <if test="query.fundType !=null and query.fundType!=''">
                and TPI.fund_type = #{query.fundType}
            </if>
            <if test="query.investType !=null and query.investType!=''">
                and TPI.invest_type = #{query.investType}
            </if>
            <if test="query.area !=null and query.area!=''">
                and TPI.area = #{query.area}
            </if>
            <if test="query.projectStartTime !=null and query.projectEndTime !=null">
                and TPI.create_project_time between #{query.projectStartTime} and #{query.projectEndTime}
            </if>
<!--            <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'reserve'">-->
<!--                and TPP.process_ins_id is null-->
<!--            </if>-->
<!--            <if test="query.reserveOrPrevious != null and query.reserveOrPrevious == 'previous'">-->
<!--                and TPP.process_ins_id is not null-->
<!--            </if>-->
<!--            <if test="query.projectPhase == 3">-->
<!--                and (TPI.project_status = 'working' or TPI.project_status = 'stop')-->
<!--            </if>-->
<!--                <if test="query.role != null and query.role == 1">-->
<!--                    and TPI.competent_department = #{query.competentDepartment}-->
<!--                </if>-->
            <!-- 业主数据权限 -->
            <if test="query.role != null and query.role == 0">
                ${query.params.dataScope}
            </if>
        </where>
        ORDER BY FIELD(TPI.used_status, 1, -1, 0, 2), TPI.gmt_create ASC
    </select>
 
    <select id="homeCount" parameterType="com.ycl.common.core.domain.BaseEntity" resultType="com.ycl.domain.vo.ProjectVO">
        SELECT TPI.*,TPIF.total_investment,TPP.process_ins_id as processId
        FROM t_project_info TPI
        LEFT JOIN t_project_investment_funding TPIF ON TPI.id = TPIF.project_id and TPIF.deleted = 0
        LEFT JOIN t_project_process TPP ON TPI.id = TPP.project_id and TPP.deleted = 0
        LEFT JOIN sys_dept d ON TPI.project_owner_unit = d.dept_id
        <where>
            TPI.deleted = 0 AND TPI.used_status = 2
            ${params.dataScope}
        </where>
 
    </select>
 
    <select id="selectProjectDetailByIds" resultType="com.ycl.domain.vo.ProjectVO">
        select
        TPI.id as id,TPI.project_name,TPI.project_code,TPI.attract_investment,TPI.content,TPI.construction_nature,TPI.project_type,TPI.project_sub_type,TPI.project_status,TPI.fund_type,TPI.invest_type,TPI.project_phase,
        TPI.tag,TPI.competent_department, TPI.competent_department_person, TPI.competent_department_phone,
        TPI.area,TPI.management_centralization,TPI.project_approval_type,TPI.importance_type,TPI.year,TPI.year_invest_amount,TPI.create_project_time,TPI.plan_start_time,
        TPI.plan_complete_time,TPI.win_unit,TPI.win_amount,TPI.win_time,TPI.project_address,TPI.longitude,TPI.latitude,
        TPI.project_owner_unit,TPI.project_contact_person,TPI.contact,TPI.gmt_create,TPI.gmt_update,TPI.update_by,TPI.create_by,
        TPIF.id,TPIF.project_id,TPIF.total_investment,TPIF.principal,TPIF.government_investment_total,TPIF.central_investment_total,TPIF.central_budget_investment,TPIF.central_fiscal_investment,TPIF.central_special_bond_investment,
        TPIF.central_special_fund_investment,TPIF.provincial_investment_total,
        TPIF.provincial_budget_investment,TPIF.provincial_fiscal_investment,TPIF.provincial_special_fund_investment,TPIF.city_investment_total,TPIF.city_budget_investment,TPIF.city_fiscal_investment,TPIF.city_special_fund_investment,
        TPIF.county_investment_total,TPIF.county_budget_investment,TPIF.county_fiscal_investment,
        TPIF.county_special_fund_investment,TPIF.domestic_loan_total,TPIF.bank_loan,TPIF.foreign_investment_total,TPIF.enterprise_self_raised_total,TPIF.other_investment_total,TPIF.gmt_create,
        TPIF.create_by,TPIF.gmt_update,TPIF.update_by,
        TPIF.dept_bond,
        TPIF.national_debt,
        TPIF.additional_national_debt,
        TPII.id,TPII.project_id,TPII.be_cross_region,TPII.construction_location,TPII.detailed_address,TPII.be_compensation_project,TPII.compensation_reason,TPII.planned_start_date,
        TPII.expected_completion_date,TPII.national_industry_classification,TPII.industry_classification,TPII.project_nature,TPII.project_attribute,
        TPII.use_earth,TPII.content_scale,TPII.code,TPII.gmt_create,TPII.create_by,TPII.gmt_update, TPII.update_by,
        TPIPC.id as policyId,TPIPC.project_id,TPIPC.belongs_to_industry_adjustment_directory,TPIPC.belongs_to_western_encouraged_directory,TPIPC.not_banned_or_controlled_project,TPIPC.information_is_true,TPIPC.special_planning_compliance,
        TPIPC.annual_energy_consumption,TPIPC.annual_electricity_consumption,TPIPC.energy_check,TPIPC.no_only_check_type,TPIPC.remarks,TPIPC.gmt_create,
        TPIPC.gmt_update,TPIPC.create_by,TPIPC.update_by,
        TPURI.id,TPURI.project_id,TPURI.total_investment,TPURI.project_unit,TPURI.project_unit_type,
        TPURI.registration_type,TPURI.holding_situation,TPURI.certificate_type,TPURI.certificate_number,TPURI.registered_address,TPURI.registered_capital,
        TPURI.legal_representative,TPURI.fixed_phone,TPURI.legal_person_idcard,TPURI.project_contact_person,TPURI.phone,TPURI.contact_idcard,
        TPURI.wechat,TPURI.contact_address,TPURI.post_code,TPURI.email,TPURI.create_by,TPURI.update_by,TPURI.gmt_create,TPURI.gmt_update
        from t_project_info TPI
        left join t_project_investment_funding TPIF on TPI.id = TPIF.project_id and TPIF.deleted = 0
        left join t_project_investment_info TPII on TPI.id = TPII.project_id and TPII.deleted = 0
        left join t_project_unit_registration_info TPURI on TPI.id = TPURI.project_id and TPURI.deleted = 0
        left join t_project_investment_policy_compliance TPIPC on TPI.id = TPIPC.project_id and TPIPC.deleted = 0
        <where>
            TPI.deleted =0
            <if test="dataIdList != null and dataIdList.size > 0">
                and  TPI.id in
                <foreach collection="dataIdList" item="id" separator="," open="(" close=")">
                    #{id}
                </foreach>
            </if>
        </where>
    </select>
 
    <select id="queryById" resultType="com.ycl.domain.entity.ProjectInfo">
        select * from t_project_info where id = #{id} and deleted = 0
    </select>
 
    <resultMap id="pInfo" type="com.ycl.domain.entity.ProjectInfo">
        <id column="id" property="id"/>
    </resultMap>
    <select id="checkProjectNameAndIdIsUnique" resultMap="pInfo">
        select p.id from t_project_info p where  p.project_name =#{name} and p.id != #{id} and p.deleted = 0
        <if test="code !=null and code !=''">
            and p.project_code =#{code}
        </if>
 
    </select>
 
</mapper>