zhubaomin
2025-04-11 a1744d0bf7f0ad8ac861d672cffd7c710dac4e7e
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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
<?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.dy.pipIrrGlobal.daoIr.IrProjectMapper">
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrProject">
    <!--@mbg.generated-->
    <!--@Table ir_project-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="project_name" jdbcType="VARCHAR" property="projectName" />
    <result column="province_id" jdbcType="BIGINT" property="provinceId" />
    <result column="city_id" jdbcType="BIGINT" property="cityId" />
    <result column="county_id" jdbcType="BIGINT" property="countyId" />
    <result column="town_id" jdbcType="BIGINT" property="townId" />
    <result column="village_id" jdbcType="BIGINT" property="villageId" />
    <result column="project_state" jdbcType="TINYINT" property="projectState" />
    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
    <result column="operator" jdbcType="BIGINT" property="operator" />
    <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime" />
    <result column="deleted" jdbcType="TINYINT" property="deleted" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, project_name, province_id, city_id, county_id, town_id, village_id, project_state, 
    remarks, `operator`, operate_time, deleted
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select 
    <include refid="Base_Column_List" />
    from ir_project
    where id = #{id,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from ir_project
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
    <!--@mbg.generated-->
    insert into ir_project (id, project_name, province_id, 
      city_id, county_id, town_id, 
      village_id, project_state, remarks, 
      `operator`, operate_time, deleted
      )
    values (#{id,jdbcType=BIGINT}, #{projectName,jdbcType=VARCHAR}, #{provinceId,jdbcType=BIGINT}, 
      #{cityId,jdbcType=BIGINT}, #{countyId,jdbcType=BIGINT}, #{townId,jdbcType=BIGINT}, 
      #{villageId,jdbcType=BIGINT}, #{projectState,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}, 
      #{operator,jdbcType=BIGINT}, #{operateTime,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
    <!--@mbg.generated-->
    insert into ir_project
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="projectName != null">
        project_name,
      </if>
      <if test="provinceId != null">
        province_id,
      </if>
      <if test="cityId != null">
        city_id,
      </if>
      <if test="countyId != null">
        county_id,
      </if>
      <if test="townId != null">
        town_id,
      </if>
      <if test="villageId != null">
        village_id,
      </if>
      <if test="projectState != null">
        project_state,
      </if>
      <if test="remarks != null">
        remarks,
      </if>
      <if test="operator != null">
        `operator`,
      </if>
      <if test="operateTime != null">
        operate_time,
      </if>
      <if test="deleted != null">
        deleted,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="projectName != null">
        #{projectName,jdbcType=VARCHAR},
      </if>
      <if test="provinceId != null">
        #{provinceId,jdbcType=BIGINT},
      </if>
      <if test="cityId != null">
        #{cityId,jdbcType=BIGINT},
      </if>
      <if test="countyId != null">
        #{countyId,jdbcType=BIGINT},
      </if>
      <if test="townId != null">
        #{townId,jdbcType=BIGINT},
      </if>
      <if test="villageId != null">
        #{villageId,jdbcType=BIGINT},
      </if>
      <if test="projectState != null">
        #{projectState,jdbcType=TINYINT},
      </if>
      <if test="remarks != null">
        #{remarks,jdbcType=VARCHAR},
      </if>
      <if test="operator != null">
        #{operator,jdbcType=BIGINT},
      </if>
      <if test="operateTime != null">
        #{operateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="deleted != null">
        #{deleted,jdbcType=TINYINT},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
    <!--@mbg.generated-->
    update ir_project
    <set>
      <if test="projectName != null">
        project_name = #{projectName,jdbcType=VARCHAR},
      </if>
      <if test="provinceId != null">
        province_id = #{provinceId,jdbcType=BIGINT},
      </if>
      <if test="cityId != null">
        city_id = #{cityId,jdbcType=BIGINT},
      </if>
      <if test="countyId != null">
        county_id = #{countyId,jdbcType=BIGINT},
      </if>
      <if test="townId != null">
        town_id = #{townId,jdbcType=BIGINT},
      </if>
      <if test="villageId != null">
        village_id = #{villageId,jdbcType=BIGINT},
      </if>
      <if test="projectState != null">
        project_state = #{projectState,jdbcType=TINYINT},
      </if>
      <if test="remarks != null">
        remarks = #{remarks,jdbcType=VARCHAR},
      </if>
      <if test="operator != null">
        `operator` = #{operator,jdbcType=BIGINT},
      </if>
      <if test="operateTime != null">
        operate_time = #{operateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="deleted != null">
        deleted = #{deleted,jdbcType=TINYINT},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
    <!--@mbg.generated-->
    update ir_project
    set project_name = #{projectName,jdbcType=VARCHAR},
      province_id = #{provinceId,jdbcType=BIGINT},
      city_id = #{cityId,jdbcType=BIGINT},
      county_id = #{countyId,jdbcType=BIGINT},
      town_id = #{townId,jdbcType=BIGINT},
      village_id = #{villageId,jdbcType=BIGINT},
      project_state = #{projectState,jdbcType=TINYINT},
      remarks = #{remarks,jdbcType=VARCHAR},
      `operator` = #{operator,jdbcType=BIGINT},
      operate_time = #{operateTime,jdbcType=TIMESTAMP},
      deleted = #{deleted,jdbcType=TINYINT}
    where id = #{id,jdbcType=BIGINT}
  </update>
 
  <!--根据下级获取上一级地址-->
  <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long">
    select dis_tow.*
    from ba_district dis_vil
    inner join
    ba_district dis_tow
    on dis_vil.supperId = dis_tow.id
    where dis_vil.id = #{vaId,jdbcType=BIGINT}
  </select>
  <!--逻辑删除-->
  <delete id="deleteLogicById" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    update ir_project
    set deleted = 1
    where id = #{id,jdbcType=BIGINT}
  </delete>
 
  <!--修改状态-->
  <update id="updateProjectState">
    update ir_project
    set project_state = #{projectState,jdbcType=TINYINT},
    operator = #{operator,jdbcType=BIGINT},
    operate_time = #{operateTime,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=BIGINT}
  </update>
 
  <!--查询一个信息-->
  <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoProjectOne">
    select
    CAST(pro.id AS char)AS id,
    CAST(pro.province_id AS char)AS provinceId,
    CAST(pro.city_id AS char)AS cityId,
    CAST(pro.county_id AS char)AS countyId,
    CAST(pro.town_id AS char)AS townId,
    CAST(pro.village_id AS char)AS villageId,
    pro.project_name  AS  projectName,
    pro.project_state  AS  projectState,
    cli.name         AS operatorName,
    pro.remarks,
    pro.operate_time  AS  operateDt
    from ir_project pro
    left join se_client cli on cli.id = pro.operator
    where pro.id = #{id,jdbcType=BIGINT} and pro.deleted = 0
  </select>
 
  <!--分页查询数量-->
  <select id="getRecordCount" resultType="java.lang.Long">
    SELECT COUNT(*) AS recordCount
    FROM ir_project pro
    <where>
      pro.deleted = 0
      <if test="projectName != null and projectName != ''">
        AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
      </if>
      <if test = "projectState != null and projectState != ''">
        AND pro.project_state = #{projectState}
      </if>
    </where>
  </select>
 
  <!--分页查询数据-->
  <select id="getProjects" resultType="com.dy.pipIrrGlobal.voIr.VoProject">
    SELECT
    CAST(pro.id AS char)AS projectId,
    pro.project_name  AS  projectName,
    pro.project_state  AS  projectState,
    CONCAT(province.`name`,city.`name`,country.`name`, town.`name`, village.`name`) AS address,
    pro.remarks,
    pro.operate_time  AS  operateDt
    FROM ir_project pro
    LEFT JOIN ba_district province ON pro.province_id = province.id
    LEFT JOIN ba_district city ON pro.city_id = city.id
    LEFT JOIN ba_district country ON pro.county_id = country.id
    LEFT JOIN ba_district town ON pro.town_id = town.id
    LEFT JOIN ba_district village ON pro.village_id = village.id
    <where>
      pro.deleted = 0
      <if test="projectName != null and projectName != ''">
        AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
      </if>
      <if test = "projectState != null and projectState != ''">
        AND pro.project_state = #{projectState}
      </if>
    </where>
    ORDER BY pro.operate_time DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
    </if>
  </select>
 
  <!--根据指定条件获取项目记录(精简)数量-->
  <select id="getSimpleProjectsCount" resultType="java.lang.Long">
    SELECT COUNT(*) AS recordCount
    FROM ir_project pr
    <where>
      AND pr.project_state = 1
      AND pr.deleted = 0
      <if test="projectName != null and projectName != ''">
        AND pr.project_name LIKE CONCAT('%', #{projectName}, '%')
      </if>
    </where>
  </select>
 
  <!--根据指定条件获取项目记录(精简)-->
  <select id="getSimpleProjects" resultType="com.dy.pipIrrGlobal.voIr.VoProjectSimple">
    SELECT
        pr.id AS projectId,
        pr.project_name AS projectName,
        (SELECT COUNT(*) FROM ir_project_group pg WHERE pg.project_id = pr.id) AS groupCount
    FROM ir_project pr
    <where>
      AND pr.project_state = 1
      AND pr.deleted = 0
      <if test="projectName != null and projectName != ''">
        AND pr.project_name LIKE CONCAT('%', #{projectName}, '%')
      </if>
    </where>
    ORDER BY pr.operate_time DESC
    <trim prefix="limit ">
      <if test="start != null and count != null">
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
      </if>
    </trim>
  </select>
 
  <!--根据项目Id获取项目详情,编辑项目信息使用-->
  <select id="getProjectDetail" resultType="com.dy.pipIrrGlobal.voIr.VoProjectDetail">
    SELECT
        projectName,
        GROUP_CONCAT(groupId) AS irrigateGroups
    FROM
      (
        SELECT
          pro.project_name AS projectName,
          grp.id AS groupId
        FROM ir_project pro
               INNER JOIN ir_project_group pg ON pg.project_id = pro.id
               INNER JOIN ir_irrigate_group grp ON grp.id = pg.group_id
        WHERE pro.deleted = 0 AND pro.id = #{projectId}
      ) project
    GROUP BY projectName
  </select>
</mapper>