MaintainPlanMapper.xml
4.83 KB
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
<?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.maintainplan.MaintainPlanMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
<delete id="deleteByBatchNo">
delete from garden_maintain_plan where batch_no =#{batchNo}
</delete>
<select id="appMaintainPlanRoadPage" resultType="com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanPageRoadRespVO">
SELECT
a.batch_no,
b.plan_no,
a.road_id,
a.road_name,
a.level_id,
a.finish_state,
a.plan_num,
a.plan_finish_num,
b.begin_time,
b.end_time
FROM
garden_inspection_plan_detail b
INNER JOIN garden_maintain_plan a ON b.batch_no = a.batch_no and a.deleted = b.deleted
INNER JOIN (
SELECT DISTINCT batch_no
FROM garden_maintain_plan_role
WHERE deleted = 0
AND dept_id = #{req.deptId}
<if test="req.roleIds != null and req.roleIds.size() > 0">
AND role_id IN
<foreach collection="req.roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
) c ON b.batch_no = c.batch_no
WHERE
a.deleted = 0
<if test="req.roadName != null and req.roadName != ''">
AND a.road_name LIKE CONCAT('%', #{req.roadName}, '%')
</if>
<if test="req.busiLineList != null and req.busiLineList.size() > 0">
AND a.busi_line IN
<foreach collection="req.busiLineList" item="busiLine" open="(" separator="," close=")">
#{busiLine}
</foreach>
</if>
<!-- 状态过滤 -->
<choose>
<when test="req.finishState == 1">
AND b.finish_state = 1
<![CDATA[AND b.begin_time <= #{req.localDateTime}
AND b.end_time >= #{req.localDateTime}]]>
</when>
<when test="req.finishState == 2">
AND b.finish_state = 2
</when>
<when test="req.finishState == 3">
AND b.finish_state = 3
</when>
<when test="req.finishState == 4">
AND b.finish_state = 4
</when>
</choose>
ORDER BY b.id desc
</select>
<select id="appMaintainPlanPlanTypePage" resultType="com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanPagePlanTypeRespVO">
SELECT
c.batch_no,
c.plan_no,
a.plan_name,
a.plan_type_id,
a.rate,
a.cycle_id,
c.plan_num,
c.plan_finish_num,
c.finish_state,
c.begin_time,
c.end_time
FROM
garden_maintain_plan a
INNER JOIN garden_maintain_plan_detail c ON a.batch_no = c.batch_no
INNER JOIN (select distinct batch_no, dept_id
from garden_maintain_plan_role
where deleted = 0
AND dept_id = #{req.deptId}
<if test="req.roleIds != null and req.roleIds.size() > 0">
AND role_id IN
<foreach collection="req.roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
) d ON c.batch_no = d.batch_no and c.dept_id = d.dept_id
AND a.deleted=0
AND a.plan_type_id = #{req.planTypeId}
<if test="req.planName != null and req.planName !=''">
AND a.plan_name LIKE CONCAT('%',#{req.planName},'%')
</if>
<if test="req.busiLineList != null and req.busiLineList.size() > 0">
AND a.busi_line IN
<foreach collection="req.busiLineList" item="busiLine" open="(" separator="," close=")">
#{busiLine}
</foreach>
</if>
<!--状态 1:未完成;2:已完成;3:已失效-->
and c.finish_state =a.finish_state
<if test="req.finishState == 1">
and a.finish_state = 1
<![CDATA[and c.begin_time <= #{req.localDateTime}
and c.end_time >= #{req.localDateTime}]]>
</if>
<if test="req.finishState == 2">
and a.finish_state = 2
</if>
<if test="req.finishState == 3">
and a.finish_state = 3
</if>
<if test="req.finishState == 4">
and a.finish_state = 4
</if>
ORDER BY a.id desc
</select>
</mapper>