a68ae57e
戈灵虎
迁移 树
|
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
|
<?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.zteits.urbanops.module.garden.dal.mysql.tree.TreeMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<resultMap id="CompanyDeptRoadMap" type="com.zteits.urbanops.module.garden.controller.admin.tree.vo.CompanyDeptRoadVO">
<id property="companyId" column="companyId"/>
<result property="companyName" column="companyName"/>
<collection property="depts" ofType="com.zteits.urbanops.module.garden.controller.admin.tree.vo.CompanyDeptRoadVO$DeptVO">
<id property="deptId" column="deptId"/>
<result property="deptName" column="deptName"/>
<collection property="roads" ofType="com.zteits.urbanops.module.garden.controller.admin.tree.vo.CompanyDeptRoadVO$RoadVO">
<id property="roadId" column="roadId"/>
<result property="roadName" column="roadName"/>
<result property="treeCount" column="treeCount"/>
<result property="recordedCount" column="recordedCount"/>
<result property="startRemark" column="startRemark"/>
<result property="endRemark" column="endRemark"/>
</collection>
</collection>
</resultMap>
<select id="selectCompanyDeptRoadTreeData" resultMap="CompanyDeptRoadMap">
SELECT
c.id AS companyId,
c.name AS companyName,
d.id AS deptId,
d.name AS deptName,
r.id AS roadId,
r.road_name AS roadName,
r.starting_remark AS startRemark,
r.end_remark AS endRemark,
COALESCE(r.tree_area, 0) AS treeCount,
COUNT(t.id) AS recordedCount
FROM system_dept c
JOIN system_dept d ON d.parent_id = c.id AND d.status = 0
LEFT JOIN garden_road r ON d.id = r.dept_id
LEFT JOIN garden_tree t ON r.id = t.road AND t.deleted = 0
WHERE
|
a68ae57e
戈灵虎
迁移 树
|
47
48
49
50
51
52
53
54
55
|
<if test="belongCompanyId != null">
AND d.parent_id = #{belongCompanyId}
</if>
<if test="roadName != null and roadName != ''">
AND r.road_name LIKE CONCAT('%', #{roadName}, '%')
</if>
<if test="deptId != null">
AND d.id = #{deptId}
</if>
|