java110
2021-04-01 3b0ddfa0b1c3490fbbf421a84e0431a60fb58387
java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml
@@ -7,18 +7,22 @@
    <!-- 保存报修信息信息 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
        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
        ) values (
        #{operate},#{repairName},#{appointmentTime},#{repairType},#{context},#{repairId},#{tel},#{state},#{communityId},#{bId},#{roomId}
        #{operate},#{repairName},#{appointmentTime},#{repairType},#{context},#{repairId},#{tel},#{state},#{communityId},#{bId},
        #{repairObjType},#{repairObjId},#{repairObjName},#{maintenanceType},#{repairChannel}
        )
    </insert>
    <!-- 查询报修信息信息(Business) 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
        from business_repair_pool t
        where 1 =1
        <if test="operate !=null and operate != ''">
@@ -48,22 +52,25 @@
        <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="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
        ) 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
        from business_repair_pool t where 1=1
        and t.operate= 'ADD'
        <if test="repairName !=null and repairName != ''">
@@ -90,42 +97,32 @@
        <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="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,
        (CASE
        WHEN t.`state` = '1000'
        THEN '未派单'
        WHEN t.state = '1100'
        THEN '处理中'
        ELSE
        '处理完成'
        END) stateName,
        (CASE
        WHEN t.`repair_type` = '10001'
        THEN '卧室报修'
        WHEN t.repair_type = '10002'
        THEN '管道报修'
        ELSE
        '客厅报修'
        END) repairTypeName
        bId, d.name stateName,t.maintenance_type maintenanceType,t.repair_channel repairChannel,
        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
        <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'
        <if test="staffId != null and staffId != ''">
            ,r_repair_user rru
            ,t_dict td
@@ -139,8 +136,14 @@
            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="returnVisitFlag !=null and returnVisitFlag != ''">
            and rs.return_visit_flag in ('001','002')
        </if>
        <if test="repairName !=null and repairName != ''">
            and t.repair_name= #{repairName}
            and t.repair_name like '%${repairName}%'
        </if>
        <if test="appointmentTime !=null ">
            and t.appointment_time= #{appointmentTime}
@@ -163,21 +166,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="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="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 ">
            limit #{page}, #{row}
        </if>
    </select>
    <!-- 修改报修信息信息 add by wuxw 2018-07-03 -->
    <update id="updateRepairInfoInstance" parameterType="Map">
@@ -206,8 +230,17 @@
        <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>
        where 1=1
        <if test="repairId !=null and repairId != ''">
@@ -216,13 +249,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
@@ -235,6 +268,84 @@
            and td.`table_name` = 'r_repair_user'
            AND td.`table_columns` = 'state'
            AND td.`status_cd` = rru.state
        </if>
        <if test="repairName !=null and repairName != ''">
            and t.repair_name like '%${repairName}%'
        </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="context !=null and context != ''">
            and t.context= #{context}
        </if>
        <if test="repairId !=null and repairId != ''">
            and t.repair_id= #{repairId}
        </if>
        <if test="tel !=null and tel != ''">
            and t.tel= #{tel}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <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="repairObjType !=null and repairObjType != ''">
            and t.repair_obj_type= #{repairObjType}
        </if>
        <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="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 -->
    <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.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
        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.state in ('10001','10002') and t.state
        in('1000','1100','1200','1300','1400','1700','1800')
        <if test="staffId !=null and staffId != ''">
            and ru.staff_id = #{staffId}
        </if>
        <if test="repairName !=null and repairName != ''">
            and t.repair_name= #{repairName}
@@ -266,11 +377,194 @@
        <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="repairObjId !=null and repairObjId != ''">
            and t.repair_obj_id= #{repairObjId}
        </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="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.state in ('10001','10002') and t.state
        in('1000','1100','1200','1300','1400','1700','1800')
        <if test="staffId !=null and staffId != ''">
            and ru.staff_id = #{staffId}
        </if>
        <if test="repairName !=null and repairName != ''">
            and t.repair_name= #{repairName}
        </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="context !=null and context != ''">
            and t.context= #{context}
        </if>
        <if test="repairId !=null and repairId != ''">
            and t.repair_id= #{repairId}
        </if>
        <if test="tel !=null and tel != ''">
            and t.tel= #{tel}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="state !=null and state != ''">
            and t.state= #{state}
        </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="repairObjType !=null and repairObjType != ''">
            and t.repair_obj_type= #{repairObjType}
        </if>
        <if test="repairObjId !=null and repairObjId != ''">
            and t.repair_obj_id= #{repairObjId}
        </if>
    </select>
    <!-- 查询报修信息信息 add by wuxw 2018-07-03 -->
    <select id="getStaffFinishRepairInfo" 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,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
        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','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>
        <if test="appointmentTime !=null ">
            and t.appointment_time= #{appointmentTime}
        </if>
        <if test="repairType !=null and repairType != ''">
            and t.repair_type= #{repairType}
        </if>
        <if test="context !=null and context != ''">
            and t.context= #{context}
        </if>
        <if test="repairId !=null and repairId != ''">
            and t.repair_id= #{repairId}
        </if>
        <if test="tel !=null and tel != ''">
            and t.tel= #{tel}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <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="repairObjType !=null and repairObjType != ''">
            and t.repair_obj_type= #{repairObjType}
        </if>
        <if test="repairObjId !=null and repairObjId != ''">
            and t.repair_obj_id= #{repairObjId}
        </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
        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
        where 1 =1
        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>
        <if test="appointmentTime !=null ">
            and t.appointment_time= #{appointmentTime}
        </if>
        <if test="repairType !=null and repairType != ''">
            and t.repair_type= #{repairType}
        </if>
        <if test="context !=null and context != ''">
            and t.context= #{context}
        </if>
        <if test="repairId !=null and repairId != ''">
            and t.repair_id= #{repairId}
        </if>
        <if test="tel !=null and tel != ''">
            and t.tel= #{tel}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <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="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
    </select>
</mapper>