From f14c50cb0036d3ddd655ce4e34732ba396a836c4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 30 五月 2023 12:42:03 +0800
Subject: [PATCH] optimize 统计

---
 java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml |  365 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 262 insertions(+), 103 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
old mode 100644
new mode 100755
index 2a4ac21..116c52a
--- a/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
@@ -1,24 +1,29 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="repairServiceDaoImpl">
 
     <!-- 淇濆瓨鎶ヤ慨淇℃伅淇℃伅 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessRepairInfo" parameterType="Map">
-        insert into business_repair_pool(
-        operate,repair_name,appointment_time,repair_type,context,repair_id,tel,state,community_id,b_id,room_id
-        ) values (
-        #{operate},#{repairName},#{appointmentTime},#{repairType},#{context},#{repairId},#{tel},#{state},#{communityId},#{bId},#{roomId}
-        )
+        insert into business_repair_pool(operate, repair_name, appointment_time, repair_type, context, repair_id, tel,
+                                         state, community_id, b_id, repair_obj_type, repair_obj_id,
+                                         repair_obj_name, maintenance_type, repair_channel, repair_materials,
+                                         repair_fee, pay_type)
+        values (#{operate}, #{repairName}, #{appointmentTime}, #{repairType}, #{context}, #{repairId}, #{tel}, #{state},
+                #{communityId}, #{bId},
+                #{repairObjType}, #{repairObjId}, #{repairObjName}, #{maintenanceType}, #{repairChannel},
+                #{repairMaterials}, #{repairFee}, #{payType})
     </insert>
-
 
     <!-- 鏌ヨ鎶ヤ慨淇℃伅淇℃伅锛圔usiness锛� add by wuxw 2018-07-03 -->
     <select id="getBusinessRepairInfo" parameterType="Map" resultType="Map">
         select t.operate,t.repair_name,t.repair_name repairName,t.appointment_time,t.appointment_time
         appointmentTime,t.repair_type,t.repair_type repairType,t.context,t.repair_id,t.repair_id
-        repairId,t.tel,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.room_id,t.room_id roomId
+        repairId,t.tel,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,
+        t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id
+        repairObjId,t.repair_obj_name repairObjName,t.maintenance_type,t.maintenance_type maintenanceType,
+        t.repair_channel,t.repair_channel repairChannel,t.repair_materials,t.repair_materials repairMaterials,
+        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType
         from business_repair_pool t
         where 1 =1
         <if test="operate !=null and operate != ''">
@@ -48,22 +53,35 @@
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            and t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="repairChannel !=null and repairChannel != ''">
+            and t.repair_channel= #{repairChannel}
+        </if>
+        <if test="repairMaterials !=null and repairMaterials != ''">
+            and t.repair_materials= #{repairMaterials}
+        </if>
+        <if test="repairFee !=null and repairFee != ''">
+            and t.repair_fee= #{repairFee}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
-        </if>
-
     </select>
-
 
     <!-- 淇濆瓨鎶ヤ慨淇℃伅淇℃伅鑷� instance琛ㄤ腑 add by wuxw 2018-07-03 -->
     <insert id="saveRepairInfoInstance" parameterType="Map">
         insert into r_repair_pool(
-        repair_name,appointment_time,repair_type,context,repair_id,tel,status_cd,state,community_id,b_id,room_id
+        repair_name,appointment_time,repair_type,context,repair_id,tel,status_cd,state,community_id,b_id,
+        repair_obj_type,repair_obj_id,repair_obj_name,repair_channel,maintenance_type,repair_materials,repair_fee,pay_type
         ) select
-        t.repair_name,t.appointment_time,t.repair_type,t.context,t.repair_id,t.tel,'0',t.state,t.community_id,t.b_id,t.room_id
+        t.repair_name,t.appointment_time,t.repair_type,t.context,t.repair_id,t.tel,'0',t.state,t.community_id,t.b_id,
+        t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_channel,t.maintenance_type,t.repair_materials,
+        t.repair_fee,t.pay_type
         from business_repair_pool t where 1=1
         and t.operate= 'ADD'
         <if test="repairName !=null and repairName != ''">
@@ -90,35 +108,54 @@
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
+        <if test="repairChannel !=null and repairChannel != ''">
+            and t.repair_channel= #{repairChannel}
+        </if>
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            and t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="repairMaterials !=null and repairMaterials != ''">
+            and t.repair_materials= #{repairMaterials}
+        </if>
+        <if test="repairFee !=null and repairFee != ''">
+            and t.repair_fee= #{repairFee}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
-        </if>
-
     </insert>
-
 
     <!-- 鏌ヨ鎶ヤ慨淇℃伅淇℃伅 add by wuxw 2018-07-03 -->
     <select id="getRepairInfo" parameterType="Map" resultType="Map">
         select t.repair_name,t.repair_name repairName,t.appointment_time,t.appointment_time
         appointmentTime,t.repair_type,t.repair_type repairType,t.context,t.repair_id,t.repair_id
         repairId,t.tel,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id
-        bId,t.room_id,t.room_id roomId,
-        d.name stateName,
-        rs.repair_type_name repairTypeName,rs.repair_way repairWay
+        bId, d.name stateName,t.maintenance_type maintenanceType,t.repair_channel repairChannel,
+        t.repair_materials,t.repair_materials repairMaterials,t.repair_fee,t.repair_fee repairFee,
+        rs.repair_type_name repairTypeName,rs.repair_way repairWay,rs.return_visit_flag returnVisitFlag,
+        t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id repairObjId,
+        t.repair_obj_name repairObjName,rrv.visit_type visitType,rrv.context visitContext,a.appraise_score
+        appraiseScore, a.door_speed_score doorSpeedScore,a.repairman_service_score repairmanServiceScore,
+        t.pay_type,t.pay_type payType,rs.repair_setting_type repairSettingType,d1.name repairSettingTypeName,t.create_time createTime
         <if test="staffId != null and staffId != ''">
             ,rru.state repairDispatchState,rru.context repairDispatchContext,td.name repairDispatchStateName
         </if>
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
+        left join t_dict d1 on rs.repair_setting_type = d1.status_cd and d1.table_name = 'r_repair_setting' and
+        d1.table_columns = 'repair_setting_type'
+        left join r_repair_return_visit rrv on t.repair_id = rrv.repair_id and rrv.community_id = t.community_id and
+        rrv.status_cd = '0'
+        left join appraise a on a.obj_id = t.repair_id and a.status_cd = '0'
         <if test="staffId != null and staffId != ''">
             ,r_repair_user rru
             ,t_dict td
         </if>
-        where 1 =1
+        where 1 = 1
         <if test="staffId != null and staffId != ''">
             and t.repair_id = rru.repair_id
             and rru.user_id = #{staffId}
@@ -127,8 +164,23 @@
             AND td.`table_columns` = 'state'
             AND td.`status_cd` = rru.state
         </if>
+        <if test="repairWay !=null and repairWay != ''">
+            and rs.repair_way= #{repairWay}
+        </if>
+        <if test="repairSettingType !=null and repairSettingType != ''">
+            and rs.repair_setting_type= #{repairSettingType}
+        </if>
+        <if test="returnVisitFlag != null and returnVisitFlag != '' and returnVisitFlag != '003'">
+            and rs.return_visit_flag in ('001','002')
+        </if>
+        <if test="returnVisitFlag != null and returnVisitFlag != '' and returnVisitFlag == '003'">
+            and rs.return_visit_flag = '003'
+        </if>
         <if test="repairName !=null and repairName != ''">
-            and t.repair_name= #{repairName}
+            and t.repair_name like '%${repairName}%'
+        </if>
+        <if test="repairNameLike !=null and repairNameLike != ''">
+            and t.repair_name like concat('%',#{repairNameLike},'%')
         </if>
         <if test="appointmentTime !=null ">
             and t.appointment_time= #{appointmentTime}
@@ -151,18 +203,42 @@
         <if test="state !=null and state != ''">
             and t.state= #{state}
         </if>
+        <if test="statess !=null">
+            and t.state in
+            <foreach collection="statess" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            and t.repair_obj_type= #{repairObjType}
         </if>
-        <if test="roomIds !=null ">
-            and t.room_id in
-            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
+        <if test="repairObjId !=null and repairObjId != ''">
+            and t.repair_obj_id= #{repairObjId}
+        </if>
+        <if test="repairChannel !=null and repairChannel != ''">
+            and t.repair_channel= #{repairChannel}
+        </if>
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            and t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="repairMaterials !=null and repairMaterials != ''">
+            and t.repair_materials= #{repairMaterials}
+        </if>
+        <if test="repairFee !=null and repairFee != ''">
+            and t.repair_fee= #{repairFee}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
+        <if test="repairChannels !=null">
+            and t.repair_channel in
+            <foreach collection="repairChannels" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
@@ -170,9 +246,7 @@
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
         </if>
-
     </select>
-
 
     <!-- 淇敼鎶ヤ慨淇℃伅淇℃伅 add by wuxw 2018-07-03 -->
     <update id="updateRepairInfoInstance" parameterType="Map">
@@ -201,8 +275,26 @@
         <if test="communityId !=null and communityId != ''">
             , t.community_id= #{communityId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            , t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            , t.repair_obj_type= #{repairObjType}
+        </if>
+        <if test="repairObjId !=null and repairObjId != ''">
+            , t.repair_obj_id= #{repairObjId}
+        </if>
+        <if test="repairObjName !=null and repairObjName != ''">
+            , t.repair_obj_name= #{repairObjName}
+        </if>
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            , t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="repairMaterials !=null and repairMaterials != ''">
+            , t.repair_materials= #{repairMaterials}
+        </if>
+        <if test="repairFee !=null and repairFee != ''">
+            , t.repair_fee= #{repairFee}
+        </if>
+        <if test="payType !=null and payType != ''">
+            , t.pay_type= #{payType}
         </if>
         where 1=1
         <if test="repairId !=null and repairId != ''">
@@ -211,13 +303,13 @@
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-
     </update>
 
     <!-- 鏌ヨ鎶ヤ慨淇℃伅鏁伴噺 add by wuxw 2018-07-03 -->
     <select id="queryRepairsCount" parameterType="Map" resultType="Map">
         select count(1) count
         from r_repair_pool t
+        left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
         <if test="staffId != null and staffId != ''">
             ,r_repair_user rru
             ,t_dict td
@@ -232,13 +324,22 @@
             AND td.`status_cd` = rru.state
         </if>
         <if test="repairName !=null and repairName != ''">
-            and t.repair_name= #{repairName}
+            and t.repair_name like '%${repairName}%'
+        </if>
+        <if test="repairNameLike !=null and repairNameLike != ''">
+            and t.repair_name like concat('%',#{repairNameLike},'%')
         </if>
         <if test="appointmentTime !=null ">
             and t.appointment_time= #{appointmentTime}
         </if>
         <if test="repairType !=null and repairType != ''">
             and t.repair_type= #{repairType}
+        </if>
+        <if test="repairSettingType !=null and repairSettingType != ''">
+            and rs.repair_setting_type= #{repairSettingType}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
         </if>
         <if test="context !=null and context != ''">
             and t.context= #{context}
@@ -255,41 +356,65 @@
         <if test="state !=null and state != ''">
             and t.state= #{state}
         </if>
+        <if test="statess !=null">
+            and t.state in
+            <foreach collection="statess" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            and t.repair_obj_type= #{repairObjType}
         </if>
-        <if test="roomIds !=null ">
-            and t.room_id in
-            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
+        <if test="repairWay !=null and repairWay != ''">
+            and rs.repair_way= #{repairWay}
+        </if>
+        <if test="repairObjId !=null and repairObjId != ''">
+            and t.repair_obj_id= #{repairObjId}
+        </if>
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            and t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="repairChannels !=null">
+            and t.repair_channel in
+            <foreach collection="repairChannels" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
-
-
     </select>
 
-    <!-- 鏌ヨ鎶ヤ慨淇℃伅淇℃伅 add by wuxw 2018-07-03 -->
+    <!-- 鏌ヨ鎶ヤ慨淇℃伅淇℃伅 add by wuxw 2018-07-03
+     灏嗙姸鎬佸厛璋冩暣  and ru.state in ('10001','10002')-->
     <select id="getStaffRepairInfo" parameterType="Map" resultType="Map">
         select distinct t.repair_name,t.repair_name repairName,t.appointment_time,t.appointment_time
         appointmentTime,t.repair_type,t.repair_type repairType,t.context,t.repair_id,t.repair_id
         repairId,t.tel,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id
-        bId,t.room_id,t.room_id roomId,ru.pre_staff_id preStaffId,ru.pre_staff_name preStaffName,
-        d.name stateName,
-        rs.repair_type_name repairTypeName,rs.repair_way repairWay
+        bId,ru.pre_staff_id preStaffId,ru.pre_staff_name preStaffName,
+        d.name stateName,rs.return_visit_flag returnVisitFlag,td.name returnVisitFlagName,
+        rs.repair_type_name repairTypeName,rs.repair_way repairWay,rs.public_area publicArea,
+        t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id
+        repairObjId,t.repair_obj_name repairObjName,t.repair_channel repairChannel,
+        sru.ru_id startRuId,ru.ru_id ruId,ru.pre_ru_id preRuId,t.maintenance_type,t.maintenance_type maintenanceType,
+        t.repair_channel,t.repair_channel repairChannel,t.repair_materials,t.repair_materials repairMaterials,
+        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType,t.create_time
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
-        left join r_repair_user ru on t.repair_id = ru.repair_id and t.status_cd = 0
+        left join r_repair_user ru on t.repair_id = ru.repair_id and ru.status_cd = 0
+        left join r_repair_user sru on sru.repair_id = ru.repair_id and sru.status_cd = 0 and sru.state = '10005'
+        left join t_dict td on rs.return_visit_flag = td.status_cd and td.table_name='r_repair_setting' and
+        td.table_columns='return_visit_flag'
         where 1 =1
-        and ru.end_time is null
-        and ru.state = '10001'
-        and ru.staff_id = #{staffId}
+        and ru.state in ('10001','10009','11000')
+        and t.state in('1000','1100','1200','1300','1400','1700','1800','2001')
+        <if test="staffId !=null and staffId != ''">
+            and ru.staff_id = #{staffId}
+        </if>
         <if test="repairName !=null and repairName != ''">
             and t.repair_name= #{repairName}
         </if>
@@ -320,33 +445,43 @@
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            and t.repair_obj_type= #{repairObjType}
         </if>
-        <if test="roomIds !=null ">
-            and t.room_id in
-            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
+        <if test="repairObjId !=null and repairObjId != ''">
+            and t.repair_obj_id= #{repairObjId}
+        </if>
+        <if test="repairMaterials !=null and repairMaterials != ''">
+            and t.repair_materials= #{repairMaterials}
+        </if>
+        <if test="repairFee !=null and repairFee != ''">
+            and t.repair_fee= #{repairFee}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
         </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 -->
+    <!-- 鏌ヨ鎶ヤ慨淇℃伅鏁伴噺 add by wuxw 2018-07-03
+     in ('10001','10002')-->
     <select id="queryStaffRepairsCount" parameterType="Map" resultType="Map">
         select count(1) count
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
         left join r_repair_user ru on t.repair_id = ru.repair_id and t.status_cd = 0
+        left join t_dict td on rs.return_visit_flag = td.status_cd and td.table_name='r_repair_setting' and
+        td.table_columns='return_visit_flag'
         where 1 =1
-        and ru.end_time is null
-        and ru.state = '10001'
-        and ru.staff_id = #{staffId}
+        and ru.state in ('10001','10009','11000')
+        and t.state in('1000','1100','1200','1300','1400','1700','1800','2001')
+        <if test="staffId !=null and staffId != ''">
+            and ru.staff_id = #{staffId}
+        </if>
         <if test="repairName !=null and repairName != ''">
             and t.repair_name= #{repairName}
         </if>
@@ -377,36 +512,39 @@
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            and t.repair_obj_type= #{repairObjType}
         </if>
-        <if test="roomIds !=null ">
-            and t.room_id in
-            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
+        <if test="repairObjId !=null and repairObjId != ''">
+            and t.repair_obj_id= #{repairObjId}
         </if>
-
-
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
     </select>
-
-
 
     <!-- 鏌ヨ鎶ヤ慨淇℃伅淇℃伅 add by wuxw 2018-07-03 -->
     <select id="getStaffFinishRepairInfo" parameterType="Map" resultType="Map">
-        select t.repair_name,t.repair_name repairName,t.appointment_time,t.appointment_time
+        select distinct t.repair_name,t.repair_name repairName,t.appointment_time,t.appointment_time
         appointmentTime,t.repair_type,t.repair_type repairType,t.context,t.repair_id,t.repair_id
         repairId,t.tel,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id
-        bId,t.room_id,t.room_id roomId,
-        d.name stateName,
-        rs.repair_type_name repairTypeName,rs.repair_way repairWay
+        bId,d.name stateName, rs.repair_type_name repairTypeName,rs.repair_way repairWay,
+        rs.return_visit_flag returnVisitFlag,td.name returnVisitFlagName,
+        t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id
+        repairObjId,t.repair_obj_name repairObjName,t.maintenance_type,t.maintenance_type maintenanceType,
+        t.repair_channel,t.repair_channel repairChannel,t.repair_materials,t.repair_materials repairMaterials,
+        t.repair_fee,t.repair_fee repairFee,t.pay_type,t.pay_type payType,t.create_time
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
-        left join r_repair_user ru on t.repair_id = ru.repair_id and t.status_cd = 0
+        left join r_repair_user ru on t.repair_id = ru.repair_id and t.status_cd = '0'
+        left join t_dict td on rs.return_visit_flag = td.status_cd and td.table_name='r_repair_setting' and
+        td.table_columns='return_visit_flag'
         where 1 =1
-        and ru.state in ('10002','10003','10004','10005')
-        and ru.staff_id = #{staffId}
+        and ru.state in ('10002','10005','10009','11000','12000')
+        <if test="staffId !=null and staffId != ''">
+            and ru.staff_id = #{staffId}
+        </if>
         <if test="repairName !=null and repairName != ''">
             and t.repair_name= #{repairName}
         </if>
@@ -431,38 +569,50 @@
         <if test="state !=null and state != ''">
             and t.state= #{state}
         </if>
+        <if test="states !=null">
+            and t.state in
+            <foreach collection="states" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            and t.repair_obj_type= #{repairObjType}
         </if>
-        <if test="roomIds !=null ">
-            and t.room_id in
-            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
+        <if test="repairObjId !=null and repairObjId != ''">
+            and t.repair_obj_id= #{repairObjId}
+        </if>
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            and t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
         </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 -->
     <select id="queryStaffFinishRepairsCount" parameterType="Map" resultType="Map">
-        select count(1) count
+        select count(DISTINCT(t.repair_id)) count
         from r_repair_pool t
         left join t_dict d on t.state = d.status_cd and d.table_name = 'r_repair_pool' and d.table_columns = 'state'
         left join r_repair_setting rs on rs.repair_type = t.repair_type and rs.status_cd = '0'
         left join r_repair_user ru on t.repair_id = ru.repair_id and t.status_cd = 0
+        left join t_dict td on rs.return_visit_flag = td.status_cd and td.table_name='r_repair_setting' and
+        td.table_columns='return_visit_flag'
         where 1 =1
-        and ru.state in ('10002','10003','10004','10005')
-        and ru.staff_id = #{staffId}
+        and ru.state in ('10002','10005','10009','11000','12000')
+        <if test="staffId != null and staffId != ''">
+            and ru.staff_id = #{staffId}
+        </if>
         <if test="repairName !=null and repairName != ''">
             and t.repair_name= #{repairName}
         </if>
@@ -487,23 +637,32 @@
         <if test="state !=null and state != ''">
             and t.state= #{state}
         </if>
+        <if test="states !=null">
+            and t.state in
+            <foreach collection="states" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
         </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>
-        <if test="roomId !=null and roomId != ''">
-            and t.room_id= #{roomId}
+        <if test="repairObjType !=null and repairObjType != ''">
+            and t.repair_obj_type= #{repairObjType}
         </if>
-        <if test="roomIds !=null ">
-            and t.room_id in
-            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
+        <if test="repairObjId !=null and repairObjId != ''">
+            and t.repair_obj_id= #{repairObjId}
         </if>
-
-
+        <if test="maintenanceType !=null and maintenanceType != ''">
+            and t.maintenance_type= #{maintenanceType}
+        </if>
+        <if test="payType !=null and payType != ''">
+            and t.pay_type= #{payType}
+        </if>
+        <if test="staffId != null and staffId != ''">
+            group by ru.staff_id
+        </if>
     </select>
-
 </mapper>

--
Gitblit v1.8.0