From ba5210dc8c6c537cacc59c18d58baa9744cd2b9d Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 10 五月 2022 11:14:39 +0800
Subject: [PATCH] 优化报修单推送bug
---
java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml | 201 +++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 167 insertions(+), 34 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 59232f0..a16f9cf
--- a/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
@@ -7,10 +7,11 @@
<!-- 淇濆瓨鎶ヤ慨淇℃伅淇℃伅 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,repair_obj_type,repair_obj_id,repair_obj_name
+ 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}
+ #{repairObjType},#{repairObjId},#{repairObjName},#{maintenanceType},#{repairChannel},#{repairMaterials},#{repairFee},#{payType}
)
</insert>
@@ -20,7 +21,9 @@
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.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
+ 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 != ''">
@@ -50,6 +53,21 @@
<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>
@@ -59,10 +77,11 @@
<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,
- repair_obj_type,repair_obj_id,repair_obj_name
+ 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.repair_obj_type,t.repair_obj_id,t.repair_obj_name
+ 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 != ''">
@@ -89,6 +108,21 @@
<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>
@@ -99,22 +133,27 @@
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,
- d.name stateName,
+ 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
+ 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
<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}
@@ -126,8 +165,14 @@
<if test="repairWay !=null and repairWay != ''">
and rs.repair_way= #{repairWay}
</if>
- <if test="returnVisitFlag !=null and returnVisitFlag != ''">
+ <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 like '%${repairName}%'
@@ -170,6 +215,27 @@
</if>
<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>
order by t.create_time desc
<if test="page != -1 and page != null ">
@@ -213,6 +279,18 @@
<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 != ''">
and t.repair_id= #{repairId}
@@ -226,6 +304,7 @@
<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
@@ -247,6 +326,12 @@
</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}
@@ -284,27 +369,42 @@
<if test="repairObjId !=null and repairObjId != ''">
and t.repair_obj_id= #{repairObjId}
</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,ru.pre_staff_id preStaffId,ru.pre_staff_name preStaffName,
- d.name stateName,
- rs.repair_type_name repairTypeName,rs.repair_way repairWay,
- 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,
- sru.ru_id startRuId,ru.ru_id ruId
+ 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
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 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>
@@ -340,6 +440,15 @@
</if>
<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 ">
@@ -347,17 +456,22 @@
</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>
@@ -393,6 +507,9 @@
</if>
<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>
@@ -401,18 +518,23 @@
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,
- 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
+ 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 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','10003','10004','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>
@@ -454,6 +576,9 @@
</if>
<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>
order by t.create_time desc
<if test="page != -1 and page != null ">
@@ -463,14 +588,18 @@
<!-- 鏌ヨ鎶ヤ慨淇℃伅鏁伴噺 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','10003','10004','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>
@@ -507,13 +636,17 @@
<if test="bId !=null and bId != ''">
and t.b_id= #{bId}
</if>
-
<if test="repairObjType !=null and repairObjType != ''">
and t.repair_obj_type= #{repairObjType}
</if>
<if test="repairObjId !=null and repairObjId != ''">
and t.repair_obj_id= #{repairObjId}
</if>
- group by ru.staff_id
+ <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