调解系统后端服务

MsCaseApplicationMapper.xml 8.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseApplicationMapper">
  4. <resultMap id="BaseResultMap" type="com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication">
  5. <!--
  6. WARNING - @mbg.generated
  7. -->
  8. <id column="id" jdbcType="BIGINT" property="id" />
  9. <result column="batch_number" jdbcType="INTEGER" property="batchNumber" />
  10. <result column="template_id" jdbcType="BIGINT" property="templateId" />
  11. <result column="case_num" jdbcType="VARCHAR" property="caseNum" />
  12. <result column="case_subject_amount" jdbcType="DECIMAL" property="caseSubjectAmount" />
  13. <result column="mediation_method" jdbcType="CHAR" property="mediationMethod" />
  14. <result column="case_status_name" jdbcType="VARCHAR" property="caseStatusName" />
  15. <result column="case_flow_id" jdbcType="BIGINT" property="caseFlowId" />
  16. <result column="hear_date" jdbcType="TIMESTAMP" property="hearDate" />
  17. <result column="fee_payable" jdbcType="DECIMAL" property="feePayable" />
  18. <result column="mediator_id" jdbcType="BIGINT" property="mediatorId" />
  19. <result column="mediator_name" jdbcType="VARCHAR" property="mediatorName" />
  20. <result column="pay_type" jdbcType="CHAR" property="payType" />
  21. <result column="is_absence" jdbcType="INTEGER" property="isAbsence" />
  22. <result column="lock_status" jdbcType="INTEGER" property="lockStatus" />
  23. <result column="room_id" jdbcType="VARCHAR" property="roomId" />
  24. <result column="appli_iswrit_hear" jdbcType="INTEGER" property="appliIswritHear" />
  25. <result column="respon_isWrit_hear" jdbcType="INTEGER" property="responIswritHear" />
  26. <result column="create_by" jdbcType="VARCHAR" property="createBy" />
  27. <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
  28. <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
  29. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
  30. <result column="version" jdbcType="INTEGER" property="version" />
  31. <result column="arbitrat_claims" jdbcType="LONGVARCHAR" property="arbitratClaims" />
  32. <result column="facts" jdbcType="LONGVARCHAR" property="facts" />
  33. <result column="mediation_url" jdbcType="LONGVARCHAR" property="mediationUrl" />
  34. <result column="mediation_agreement" jdbcType="LONGVARCHAR" property="mediationAgreement" />
  35. <result column="is_reconci" jdbcType="INTEGER" property="isReconci" />
  36. </resultMap>
  37. <sql id="SELECT_LIST_QUERY">
  38. FROM
  39. ms_case_application c
  40. JOIN ms_case_affiliate a ON c.id = a.case_appli_id
  41. LEFT JOIN ms_sys_user u ON u.user_id = a.user_id
  42. LEFT JOIN ms_sys_user u1 ON u1.user_id = c.mediator_id
  43. LEFT JOIN ms_sys_user_role ur ON u.user_id = ur.user_id or u1.user_id = ur.user_id
  44. LEFT JOIN ms_sys_role r ON r.role_id = ur.role_id or r.role_id = ur.role_id
  45. LEFT JOIN ms_sys_dept d ON d.dept_id = a.applicant_dept_id
  46. <where>
  47. <!-- 调解员角色和申请人,被申,代理人-->
  48. <if test = 'req.mediatorId != null and req.userId!=null'>
  49. AND (c.mediator_id = #{req.mediatorId} or a.user_id=#{req.userId})
  50. </if>
  51. <!-- admin,财务,顾问,部门长查看所有案件,申请人,被申,代理人根据userId查-->
  52. <if test = 'req.mediatorId == null and req.userId != null'>
  53. AND (a.user_id=#{req.userId} )
  54. </if>
  55. <!-- 根据角色查询-->
  56. <if test='roleIds != null and roleIds.size() > 0 '>
  57. and r.role_id in
  58. <foreach item='roleId' index='index' collection='roleIds' open='(' separator=',' close=')'>
  59. #{roleId}
  60. </foreach>
  61. </if>
  62. <!-- 角色相关的状态-->
  63. <if test='caseFlowIds != null and caseFlowIds.size() > 0 '>
  64. and c.case_flow_id in
  65. <foreach item='flowId' index='index' collection='caseFlowIds' open='(' separator=',' close=')'>
  66. #{flowId}
  67. </foreach>
  68. </if>
  69. <!-- 案件状态id条件-->
  70. <if test = 'req.caseFlowId != null'>
  71. AND c.case_flow_id = #{req.caseFlowId}
  72. </if>
  73. <if test = 'req.caseId != null'>
  74. AND c.id = #{req.caseId}
  75. </if>
  76. <!-- 案件编号-->
  77. <if test = 'req.caseNum != null and req.caseNum != "" '>
  78. AND c.case_num = #{req.caseNum}
  79. </if>
  80. <!-- 时间-->
  81. <if test = 'req.startTime != null and req.startTime != "" '>
  82. and c.create_time &gt;= #{req.startTime}
  83. </if>
  84. <if test = 'req.endTime != null and req.endTime != "" '>
  85. and c.create_time &lt;= #{req.endTime}
  86. </if>
  87. </where>
  88. </sql>
  89. <select id="listMediator" resultMap="BaseResultMap">
  90. select mediator_id ,id ,case_status_name,case_flow_id from ms_case_application <where>
  91. <if test = 'userIds!=null and userIds.size()>0'>
  92. and mediator_id in
  93. <foreach item='item' index='index' collection='userIds' open='(' separator=',' close=')'>
  94. #{item}
  95. </foreach>
  96. </if>
  97. <!-- <if test = 'recordCaeIdList!=null and recordCaeIdList.size()>0'> and id not in
  98. <foreach item='id' index='index' collection='recordCaeIdList' open='(' separator=',' close=')'>
  99. #{id}
  100. </foreach>
  101. </if> -->
  102. </where>
  103. </select>
  104. <select id="todoCount" resultType="com.ruoyi.wisdomarbitrate.domain.vo.mscase.CaseToDoCount">
  105. SELECT c.case_flow_id caseFlowId,count(DISTINCT c.id) caseCount
  106. <include refid="SELECT_LIST_QUERY"/>
  107. group by c.case_flow_id
  108. </select>
  109. <select id="list" resultType="com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO">
  110. select t.* from(
  111. SELECT
  112. c.id,c.mediator_id mediatorId,c.case_source caseSource,c.media_result mediaResult,c.room_id roomId,0 AS pendingStatus,
  113. c.case_flow_id caseFlowId,c.batch_number batchNumber,c.case_num caseNum,
  114. u1.nick_name mediatorName,c.hear_date hearDate,c.case_status_name caseStatusName,c.create_time createTime,
  115. c.mediation_method mediationMethod,
  116. CASE c.mediation_method when 1 then '线上调解' when 2 then '线下调解' ELSE '' END mediationMethodName
  117. <include refid="SELECT_LIST_QUERY"/>
  118. GROUP BY
  119. c.id
  120. union
  121. SELECT
  122. c.id,c.mediator_id mediatorId,c.case_source caseSource,c.media_result mediaResult,c.room_id roomId,1 AS pendingStatus,
  123. c.case_flow_id caseFlowId,c.batch_number batchNumber,c.case_num caseNum,
  124. u1.nick_name mediatorName,c.hear_date hearDate,c.case_status_name caseStatusName,c.create_time createTime,
  125. c.mediation_method mediationMethod,
  126. CASE c.mediation_method when 1 then '线上调解' when 2 then '线下调解' ELSE '' END mediationMethodName
  127. FROM
  128. ms_case_log_record r
  129. join ms_case_application c on r.case_appli_id=c.id
  130. JOIN ms_case_affiliate a ON c.id = a.case_appli_id
  131. LEFT JOIN ms_sys_user u ON u.user_id = a.user_id
  132. LEFT JOIN ms_sys_user u1 ON u1.user_id = c.mediator_id
  133. LEFT JOIN ms_sys_dept d ON d.dept_id = a.applicant_dept_id
  134. <where>
  135. r.create_by=#{req.userName} and c.id not in ( SELECT c.id
  136. <include refid="SELECT_LIST_QUERY"/>
  137. )
  138. <!-- 案件状态id条件-->
  139. <if test = 'req.caseFlowId != null'>
  140. AND c.case_flow_id = #{req.caseFlowId}
  141. </if>
  142. <if test = 'req.caseId != null'>
  143. AND c.id = #{req.caseId}
  144. </if>
  145. <!-- 案件编号-->
  146. <if test = 'req.caseNum != null and req.caseNum != "" '>
  147. AND c.case_num = #{req.caseNum}
  148. </if>
  149. <!-- 时间-->
  150. <if test = 'req.startTime != null and req.startTime != "" '>
  151. and c.create_time &gt;= #{req.startTime}
  152. </if>
  153. <if test = 'req.endTime != null and req.endTime != "" '>
  154. and c.create_time &lt;= #{req.endTime}
  155. </if>
  156. </where>
  157. GROUP BY
  158. c.id
  159. ) t ORDER BY t.createTime desc,t.caseNum desc
  160. </select>
  161. <select id="countCasePerson" resultType="java.lang.Long">
  162. select c.id from ms_case_application c where c.mediator_id
  163. in
  164. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  165. #{userId}
  166. </foreach>
  167. union ALL
  168. select a.id from ms_case_affiliate a where a.user_id
  169. in
  170. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  171. #{userId}
  172. </foreach>
  173. union all
  174. SELECT id from ms_dept_identify where user_id
  175. in
  176. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  177. #{userId}
  178. </foreach>
  179. </select>
  180. <select id="selectCaseByDeptId" resultType="java.lang.Long">
  181. select a.id from ms_case_affiliate a where a.applicant_dept_id=#{deptId}
  182. union all
  183. SELECT id from ms_dept_identify where dept_id=#{deptId}
  184. </select>
  185. </mapper>