Files
Mediation-Backend/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/mscase/MsCaseApplicationMapper.xml
T
2024-04-07 11:10:35 +08:00

162 lines
7.6 KiB
XML

<?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.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseApplicationMapper">
<resultMap id="BaseResultMap" type="com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="batch_number" jdbcType="INTEGER" property="batchNumber" />
<result column="template_id" jdbcType="BIGINT" property="templateId" />
<result column="case_num" jdbcType="VARCHAR" property="caseNum" />
<result column="case_subject_amount" jdbcType="DECIMAL" property="caseSubjectAmount" />
<result column="mediation_method" jdbcType="CHAR" property="mediationMethod" />
<result column="case_status_name" jdbcType="VARCHAR" property="caseStatusName" />
<result column="case_flow_id" jdbcType="BIGINT" property="caseFlowId" />
<result column="hear_date" jdbcType="TIMESTAMP" property="hearDate" />
<result column="fee_payable" jdbcType="DECIMAL" property="feePayable" />
<result column="mediator_id" jdbcType="BIGINT" property="mediatorId" />
<result column="mediator_name" jdbcType="VARCHAR" property="mediatorName" />
<result column="pay_type" jdbcType="CHAR" property="payType" />
<result column="is_absence" jdbcType="INTEGER" property="isAbsence" />
<result column="lock_status" jdbcType="INTEGER" property="lockStatus" />
<result column="room_id" jdbcType="VARCHAR" property="roomId" />
<result column="appli_iswrit_hear" jdbcType="INTEGER" property="appliIswritHear" />
<result column="respon_isWrit_hear" jdbcType="INTEGER" property="responIswritHear" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="version" jdbcType="INTEGER" property="version" />
<result column="arbitrat_claims" jdbcType="LONGVARCHAR" property="arbitratClaims" />
<result column="facts" jdbcType="LONGVARCHAR" property="facts" />
<result column="mediation_url" jdbcType="LONGVARCHAR" property="mediationUrl" />
<result column="mediation_agreement" jdbcType="LONGVARCHAR" property="mediationAgreement" />
<result column="is_reconci" jdbcType="INTEGER" property="isReconci" />
</resultMap>
<sql id="SELECT_LIST_QUERY">
FROM
ms_case_application c
JOIN ms_case_affiliate a ON c.id = a.case_appli_id
LEFT JOIN ms_sys_user u ON u.user_id = a.user_id
LEFT JOIN ms_sys_user u1 ON u1.user_id = c.mediator_id
LEFT JOIN ms_sys_user_role ur ON u.user_id = ur.user_id or u1.user_id = ur.user_id
LEFT JOIN ms_sys_role r ON r.role_id = ur.role_id or r.role_id = ur.role_id
LEFT JOIN ms_sys_dept d ON d.dept_id = a.applicant_dept_id
<where>
<!-- 调解员角色和申请人,被申,代理人-->
<if test = 'req.mediatorId != null and req.userId!=null'>
AND (c.mediator_id = #{req.mediatorId} or a.user_id=#{req.userId})
</if>
<!-- admin,财务,顾问,部门长查看所有案件,申请人,被申,代理人根据userId查-->
<if test = 'req.mediatorId == null and req.userId != null'>
AND (a.user_id=#{req.userId} )
</if>
<!-- 根据角色查询-->
<if test='roleIds != null and roleIds.size() > 0 '>
and r.role_id in
<foreach item='roleId' index='index' collection='roleIds' open='(' separator=',' close=')'>
#{roleId}
</foreach>
</if>
<!-- 角色相关的状态-->
<if test='caseFlowIds != null and caseFlowIds.size() > 0 '>
and c.case_flow_id in
<foreach item='flowId' index='index' collection='caseFlowIds' open='(' separator=',' close=')'>
#{flowId}
</foreach>
</if>
<!-- 案件状态id条件-->
<if test = 'req.caseFlowId != null'>
AND c.case_flow_id = #{req.caseFlowId}
</if>
<!-- 案件编号-->
<if test = 'req.caseNum != null and req.caseNum != "" '>
AND c.case_num = #{req.caseNum}
</if>
<!-- 时间-->
<if test = 'req.startTime != null and req.startTime != "" '>
and c.create_time &gt;= #{req.startTime}
</if>
<if test = 'req.endTime != null and req.endTime != "" '>
and c.create_time &lt;= #{req.endTime}
</if>
</where>
</sql>
<select id="listMediator" resultMap="BaseResultMap">
select mediator_id ,id ,case_status_name,case_flow_id from ms_case_application <where>
<if test = 'userIds!=null and userIds.size()>0'>
and mediator_id in
<foreach item='item' index='index' collection='userIds' open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<!-- <if test = 'recordCaeIdList!=null and recordCaeIdList.size()>0'> and id not in
<foreach item='id' index='index' collection='recordCaeIdList' open='(' separator=',' close=')'>
#{id}
</foreach>
</if> -->
</where>
</select>
<select id="todoCount" resultType="com.ruoyi.wisdomarbitrate.domain.vo.mscase.CaseToDoCount">
SELECT c.case_flow_id caseFlowId,count(DISTINCT c.id) caseCount
<include refid="SELECT_LIST_QUERY"/>
group by c.case_flow_id
</select>
<select id="list" resultType="com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO">
select t.* from(
SELECT
c.id,c.organize_flag organizeFlag,c.case_source caseSource,c.media_result mediaResult,c.room_id roomId,0 AS pendingStatus,
c.case_flow_id caseFlowId,c.batch_number batchNumber,c.case_num caseNum,
u1.nick_name mediatorName,c.hear_date hearDate,c.case_status_name caseStatusName,c.create_time createTime,
c.mediation_method mediationMethod,
CASE c.mediation_method when 1 then '线上调解' when 2 then '线下调解' ELSE '' END mediationMethodName
<include refid="SELECT_LIST_QUERY"/>
GROUP BY
c.id
union
SELECT
c.id,c.organize_flag organizeFlag,c.case_source caseSource,c.media_result mediaResult,c.room_id roomId,1 AS pendingStatus,
c.case_flow_id caseFlowId,c.batch_number batchNumber,c.case_num caseNum,
u1.nick_name mediatorName,c.hear_date hearDate,c.case_status_name caseStatusName,c.create_time createTime,
c.mediation_method mediationMethod,
CASE c.mediation_method when 1 then '线上调解' when 2 then '线下调解' ELSE '' END mediationMethodName
FROM
ms_case_log_record r
join ms_case_application c on r.case_appli_id=c.id
JOIN ms_case_affiliate a ON c.id = a.case_appli_id
LEFT JOIN ms_sys_user u ON u.user_id = a.user_id
LEFT JOIN ms_sys_user u1 ON u1.user_id = c.mediator_id
LEFT JOIN ms_sys_dept d ON d.dept_id = a.applicant_dept_id
<where>
r.create_by=#{req.userName} and c.id not in ( SELECT c.id
<include refid="SELECT_LIST_QUERY"/>
)
<!-- 案件状态id条件-->
<if test = 'req.caseFlowId != null'>
AND c.case_flow_id = #{req.caseFlowId}
</if>
<!-- 案件编号-->
<if test = 'req.caseNum != null and req.caseNum != "" '>
AND c.case_num = #{req.caseNum}
</if>
<!-- 时间-->
<if test = 'req.startTime != null and req.startTime != "" '>
and c.create_time &gt;= #{req.startTime}
</if>
<if test = 'req.endTime != null and req.endTime != "" '>
and c.create_time &lt;= #{req.endTime}
</if>
</where>
GROUP BY
c.id
) t ORDER BY t.createTime desc,t.caseNum desc
</select>
</mapper>