Your Name
2023-07-11 d7d9b601b2e4fdb663375993e2cfbdbd363df421
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
<?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="inspectionPlanStaffV1ServiceDaoImpl">
 
 
    <!-- 保存巡检人信息 add by wuxw 2018-07-03 -->
    <insert id="saveInspectionPlanStaffInfo" parameterType="Map">
        insert into inspection_plan_staff(
        ip_staff_id,staff_name,start_time,inspection_plan_id,end_time,community_id,staff_id
        ) values (
        #{ipStaffId},#{staffName},#{startTime},#{inspectionPlanId},#{endTime},#{communityId},#{staffId}
        )
    </insert>
 
 
    <!-- 查询巡检人信息 add by wuxw 2018-07-03 -->
    <select id="getInspectionPlanStaffInfo" parameterType="Map" resultType="Map">
        select t.ip_staff_id,t.ip_staff_id ipStaffId,t.staff_name,t.staff_name staffName,t.start_time,t.start_time
        startTime,t.inspection_plan_id,t.inspection_plan_id inspectionPlanId,t.end_time,t.end_time
        endTime,t.community_id,t.community_id communityId,t.staff_id,t.staff_id staffId
        from inspection_plan_staff t
        where 1 =1
        <if test="ipStaffId !=null and ipStaffId != ''">
            and t.ip_staff_id= #{ipStaffId}
        </if>
        <if test="staffName !=null and staffName != ''">
            and t.staff_name= #{staffName}
        </if>
        <if test="startTime !=null and startTime != ''">
            and t.start_time= #{startTime}
        </if>
        <if test="inspectionPlanId !=null and inspectionPlanId != ''">
            and t.inspection_plan_id= #{inspectionPlanId}
        </if>
        <if test="endTime !=null and endTime != ''">
            and t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="staffId !=null and staffId != ''">
            and t.staff_id= #{staffId}
        </if>
        order by t.create_time desc
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
 
    </select>
 
 
    <!-- 修改巡检人信息 add by wuxw 2018-07-03 -->
    <update id="updateInspectionPlanStaffInfo" parameterType="Map">
        update inspection_plan_staff t set t.status_cd = #{statusCd}
        <if test="newBId != null and newBId != ''">
            ,t.b_id = #{newBId}
        </if>
        <if test="staffName !=null and staffName != ''">
            , t.staff_name= #{staffName}
        </if>
        <if test="startTime !=null and startTime != ''">
            , t.start_time= #{startTime}
        </if>
 
        <if test="endTime !=null and endTime != ''">
            , t.end_time= #{endTime}
        </if>
 
        <if test="staffId !=null and staffId != ''">
            , t.staff_id= #{staffId}
        </if>
        where 1=1
        <if test="ipStaffId !=null and ipStaffId != ''">
            and t.ip_staff_id= #{ipStaffId}
        </if>
        <if test="inspectionPlanId !=null and inspectionPlanId != ''">
            and t.inspection_plan_id= #{inspectionPlanId}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
    </update>
 
    <!-- 查询巡检人数量 add by wuxw 2018-07-03 -->
    <select id="queryInspectionPlanStaffsCount" parameterType="Map" resultType="Map">
        select count(1) count
        from inspection_plan_staff t
        where 1 =1
        <if test="ipStaffId !=null and ipStaffId != ''">
            and t.ip_staff_id= #{ipStaffId}
        </if>
        <if test="staffName !=null and staffName != ''">
            and t.staff_name= #{staffName}
        </if>
        <if test="startTime !=null and startTime != ''">
            and t.start_time= #{startTime}
        </if>
        <if test="inspectionPlanId !=null and inspectionPlanId != ''">
            and t.inspection_plan_id= #{inspectionPlanId}
        </if>
        <if test="endTime !=null and endTime != ''">
            and t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="staffId !=null and staffId != ''">
            and t.staff_id= #{staffId}
        </if>
 
 
    </select>
 
    <!-- 查询员工巡检情况 -->
    <select id="queryStaffInspectionReport" parameterType="Map" resultType="Map">
        select
        t.staff_name staffName,t.staff_id staffId,
        (select count(1) from inspection_task it
        INNER JOIN inspection_task_detail itd on it.task_id = itd.task_id and itd.status_cd = '0'
        where  it.plan_user_id = t.staff_id
        and itd.act_user_id is not null
        and DATE_FORMAT(it.create_time,'%Y-%m-%d') = #{queryTime}
        ) finishCount,
        (select count(1) from inspection_task it
        INNER JOIN inspection_task_detail itd on it.task_id = itd.task_id and itd.status_cd = '0'
        where it.plan_user_id = t.staff_id
        and itd.act_user_id is null
        and DATE_FORMAT(it.create_time,'%Y-%m-%d') = #{queryTime}
        ) waitCount,
        (select itd.description from inspection_task it
        INNER JOIN inspection_task_detail itd on it.task_id = itd.task_id and itd.status_cd = '0'
        where  it.plan_user_id = t.staff_id
        and itd.act_user_id is not null
        and DATE_FORMAT(it.create_time,'%Y-%m-%d') = #{queryTime}
        limit 1
        ) state
        from inspection_plan_staff t
        left join inspection_plan ip on t.inspection_plan_id = ip.inspection_plan_id and ip.status_cd = '0'
        left join inspection_route_point_rel irpr on ip.inspection_route_id = irpr.inspection_route_id and irpr.status_cd= '0'
        left join inspection_point ipo on irpr.inspection_id = ipo.inspection_id and ipo.status_cd = '0'
        where 1=1
        and t.status_cd = '0'
        and t.community_id = #{communityId}
        GROUP BY  t.staff_name ,t.staff_id
    </select>
 
</mapper>