SysUserMapper.xml 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388
  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.ydtech.modules.admin.dao.SysUserMapper">
  4. <resultMap id="sysUserMap" type="com.ydtech.modules.admin.model.SysUser">
  5. <id column="id" jdbcType="VARCHAR" property="id"/>
  6. <result column="name" jdbcType="VARCHAR" property="name"/>
  7. <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
  8. <result column="status" jdbcType="VARCHAR" property="status"/>
  9. <result column="identity" jdbcType="VARCHAR" property="identity"/>
  10. <result column="dept_id" jdbcType="VARCHAR" property="deptId"/>
  11. <result column="openid" jdbcType="VARCHAR" property="openid"/>
  12. <result column="role_id" jdbcType="VARCHAR" property="roleId"/>
  13. <result column="role_name" jdbcType="VARCHAR" property="roleName"/>
  14. <result column="dept_name" jdbcType="VARCHAR" property="deptName"/>
  15. <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
  16. <result column="create_by" jdbcType="VARCHAR" property="createBy"/>
  17. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
  18. <result column="update_by" jdbcType="TIMESTAMP" property="updateBy"/>
  19. </resultMap>
  20. <sql id="Sys_User_Column_List">
  21. su.id,
  22. su.name,
  23. su.mobile,
  24. su.status,
  25. su.openid,
  26. su.identity,
  27. su.dept_id,
  28. su.create_by,
  29. su.create_time,
  30. su.update_by,
  31. su.update_time,
  32. sur.role_id,
  33. sr.name as role_name,
  34. sd.name as dept_name,
  35. su.create_time,
  36. su.create_by,
  37. su.update_time,
  38. su.update_by
  39. from sys_user su
  40. left join sys_user_role sur on su.id = sur.user_id
  41. left join sys_role sr on sur.role_id = sr.id
  42. left join sys_dept sd on su.dept_id = sd.id
  43. </sql>
  44. <sql id="Sys_User_Where_Clause">
  45. <where>
  46. <if test="sysUser.name != null &amp;&amp; sysUser.name != ''">
  47. and su.name = #{sysUser.name}
  48. </if>
  49. <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
  50. and su.mobile = #{sysUser.mobile}
  51. </if>
  52. <if test="sysUser.status != null">
  53. and su.status = #{sysUser.status}
  54. </if>
  55. <if test="containsSubDept != null &amp;&amp; containsSubDept == 0">
  56. and su.dept_id = #{sysUser.deptId}
  57. </if>
  58. <if test="containsSubDept != null &amp;&amp; containsSubDept == 1">
  59. <!-- 查询子部门 -->
  60. and su.dept_id like concat('%',#{sysUser.deptId},'%')
  61. </if>
  62. </where>
  63. </sql>
  64. <select id="selectUserPage" resultMap="sysUserMap">
  65. select
  66. <include refid="Sys_User_Column_List"/>
  67. <include refid="Sys_User_Where_Clause"></include>
  68. </select>
  69. <select id="gainUserBaseInfo" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  70. select
  71. su.id as userId,
  72. su.name,
  73. info.sex,
  74. su.mobile,
  75. su.status,
  76. sd.id as deptId,
  77. sd.name as deptName,
  78. psd.id as pDeptId,
  79. psd.name as pDeptName,
  80. t4.id as roleId,
  81. t4.name as roleName,
  82. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  83. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  84. approveTime,
  85. (select id from sys_dept where id = su.pDeptId ) as levelFourDeptId,
  86. (select name from sys_dept where id = su.pDeptId) as levelFourDeptName
  87. from sys_user su
  88. left join sys_dept sd on su.dept_id=sd.id
  89. left join sys_dept psd on sd.parent_id=psd.id
  90. left join sys_user_info info on info.id=su.id
  91. left join sys_user_role t3 on su.id=t3.user_id
  92. left join sys_role t4 on t3.role_id=t4.id
  93. where 1=1
  94. AND sd.id &lt;&gt; ''
  95. <if test='user !=null '>
  96. <if test='user.status !=null and user.status!="" '>
  97. and su.status = #{user.status}
  98. </if>
  99. <if test='user.name !=null and user.name!="" '>
  100. and su.name like concat('%',#{user.name},'%')
  101. </if>
  102. <if test='user.userId !=null and user.userId!="" '>
  103. and su.id = #{user.userId}
  104. </if>
  105. <if test='user.mobile !=null and user.mobile!="" '>
  106. and su.mobile = #{user.mobile}
  107. </if>
  108. <if test='user.deptId !=null and user.deptId!="" '>
  109. and su.dept_id like concat('%',#{user.deptId},'%')
  110. </if>
  111. <if test='user.roleId !=null and user.roleId!="" '>
  112. and t3.role_id in (${user.roleId})
  113. </if>
  114. </if>
  115. </select>
  116. <select id="findUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  117. SELECT
  118. su.id as userId,
  119. su.name,
  120. info.sex,
  121. su.mobile,
  122. su.status,
  123. sd.id as deptId,
  124. sd.name as deptName,
  125. t4.id as roleId,
  126. t4.name as roleName,
  127. sd.management_source,
  128. psd.id as pDeptId,
  129. psd.name as pDeptName,
  130. su.create_time as submitTime,
  131. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  132. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveTime
  133. FROM
  134. sys_user su
  135. LEFT JOIN sys_user_info info ON info.id = su.id
  136. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  137. left join sys_dept psd on psd.id = sd.parent_id
  138. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  139. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  140. AND sd.del_flag = '0'
  141. WHERE
  142. 1=1
  143. <if test='user !=null '>
  144. <if test='user.status !=null and user.status!="" '>
  145. and su.status = #{user.status}
  146. </if>
  147. <if test='user.name !=null and user.name!="" '>
  148. and su.name like concat('%',#{user.name},'%')
  149. </if>
  150. <if test='user.userId !=null and user.userId!="" '>
  151. and su.id = #{user.userId}
  152. </if>
  153. <if test='user.mobile !=null and user.mobile!="" '>
  154. and su.mobile = #{user.mobile}
  155. </if>
  156. <if test='user.deptId !=null and user.deptId!="" '>
  157. and su.dept_id like concat('%',#{user.deptId},'%')
  158. </if>
  159. <if test='user.leaderName !=null and user.leaderName!="" '>
  160. and su.leader_name like concat('%',#{user.leaderName},'%')
  161. </if>
  162. <if test='user.roleId !=null and user.roleId!="" '>
  163. and t3.role_id in (${user.roleId})
  164. </if>
  165. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  166. and sd.management_source = #{user.agentFlag}
  167. </if>
  168. <if test="user.agentFlag != null and user.agentFlag == 0">
  169. and sd.management_source is null
  170. </if>
  171. </if>
  172. </select>
  173. <select id="findAllUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  174. SELECT
  175. su.id as userId,
  176. su.name,
  177. info.sex,
  178. su.mobile,
  179. su.status,
  180. sd.id as deptId,
  181. sd.name as deptName,
  182. t4.id as roleId,
  183. t4.name as roleName,
  184. sd.management_source,
  185. psd.id as pDeptId,
  186. psd.name as pDeptName
  187. FROM
  188. sys_user su
  189. LEFT JOIN sys_user_info info ON info.id = su.id
  190. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  191. left join sys_dept psd on psd.id = sd.parent_id
  192. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  193. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  194. AND sd.del_flag = '0'
  195. WHERE
  196. 1=1
  197. <if test='user !=null '>
  198. <if test='user.status !=null and user.status!="" '>
  199. and su.status = #{user.status}
  200. </if>
  201. <if test='user.name !=null and user.name!="" '>
  202. and su.name like concat('%',#{user.name},'%')
  203. </if>
  204. <if test='user.userId !=null and user.userId!="" '>
  205. and su.id = #{user.userId}
  206. </if>
  207. <if test='user.mobile !=null and user.mobile!="" '>
  208. and su.mobile = #{user.mobile}
  209. </if>
  210. <if test='user.deptId !=null and user.deptId!="" '>
  211. and su.dept_id like concat('%',#{user.deptId},'%')
  212. </if>
  213. <if test='user.leaderName !=null and user.leaderName!="" '>
  214. and su.leader_name like concat('%',#{user.leaderName},'%')
  215. </if>
  216. <if test='user.roleId !=null and user.roleId!="" '>
  217. and t3.role_id in (${user.roleId})
  218. </if>
  219. </if>
  220. </select>
  221. <select id="findBackUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  222. SELECT
  223. su.id as userId,
  224. su.name,
  225. su.position_name,
  226. info.sex,
  227. su.mobile,
  228. su.status,
  229. sd.id as deptId,
  230. sd.name as deptName,
  231. t4.id as roleId,
  232. t4.name as roleName,
  233. sd.management_source,
  234. psd.id as pDeptId,
  235. psd.name as pDeptName,
  236. su.create_time as submitTime,
  237. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  238. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveTime
  239. FROM
  240. sys_user su
  241. LEFT JOIN sys_user_info info ON info.id = su.id
  242. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  243. left join sys_dept psd on psd.id = sd.parent_id
  244. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  245. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  246. AND sd.del_flag = '0'
  247. WHERE
  248. 1=1
  249. <if test='user !=null '>
  250. <if test='user.status !=null and user.status!="" '>
  251. and su.status = #{user.status}
  252. </if>
  253. <if test='user.name !=null and user.name!="" '>
  254. and su.name like concat('%',#{user.name},'%')
  255. </if>
  256. <if test='user.userId !=null and user.userId!="" '>
  257. and su.id = #{user.userId}
  258. </if>
  259. <if test='user.mobile !=null and user.mobile!="" '>
  260. and su.mobile = #{user.mobile}
  261. </if>
  262. <if test='user.deptId !=null and user.deptId!="" '>
  263. and su.dept_id like concat('%',#{user.deptId},'%')
  264. </if>
  265. <if test='user.leaderName !=null and user.leaderName!="" '>
  266. and su.leader_name like concat('%',#{user.leaderName},'%')
  267. </if>
  268. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  269. and sd.management_source = #{user.agentFlag}
  270. </if>
  271. <if test="user.agentFlag != null and user.agentFlag == 0">
  272. and sd.management_source is null
  273. </if>
  274. and su.id NOT LIKE '%M%'
  275. </if>
  276. </select>
  277. <select id="findBackUserList1" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  278. SELECT
  279. su.id as userId,
  280. su.name,
  281. su.position_name,
  282. info.sex,
  283. su.mobile,
  284. su.status,
  285. sd.id as deptId,
  286. sd.name as deptName,
  287. t4.id as roleId,
  288. t4.name as roleName,
  289. sd.management_source,
  290. psd.id as pDeptId,
  291. psd.name as pDeptName
  292. FROM
  293. sys_user su
  294. LEFT JOIN sys_user_info info ON info.id = su.id
  295. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  296. left join sys_dept psd on psd.id = sd.parent_id
  297. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  298. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  299. AND sd.del_flag = '0'
  300. WHERE
  301. 1=1
  302. and su.status = '1'
  303. <if test='user !=null '>
  304. <if test='user.name !=null and user.name!="" '>
  305. and su.name like concat('%',#{user.name},'%')
  306. </if>
  307. <if test='user.userId !=null and user.userId!="" '>
  308. and su.id = #{user.userId}
  309. </if>
  310. <if test='user.mobile !=null and user.mobile!="" '>
  311. and su.mobile = #{user.mobile}
  312. </if>
  313. <if test='user.deptId !=null and user.deptId!="" '>
  314. and su.dept_id like concat('%',#{user.deptId},'%')
  315. </if>
  316. <if test='user.leaderName !=null and user.leaderName!="" '>
  317. and su.leader_name like concat('%',#{user.leaderName},'%')
  318. </if>
  319. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  320. and sd.management_source = #{user.agentFlag}
  321. </if>
  322. <if test="user.agentFlag != null and user.agentFlag == 0">
  323. and sd.management_source is null
  324. </if>
  325. and su.id NOT LIKE '%M%'
  326. </if>
  327. </select>
  328. <resultMap id="QuTeamNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  329. <id column="id" javaType="String" jdbcType="VARCHAR" property="deptId"/>
  330. <result column="name" javaType="String" jdbcType="VARCHAR" property="deptName"/>
  331. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  332. <result column="companyId" javaType="String" jdbcType="VARCHAR" property="companyId"/>
  333. <result column="insCompany" javaType="String" jdbcType="VARCHAR" property="insCompany"/>
  334. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  335. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  336. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  337. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  338. </resultMap>
  339. <select id="getDept" resultMap="QuTeamNumMap">
  340. SELECT
  341. sd.id,
  342. sd.name,
  343. i.orderstatus,
  344. i.count,
  345. i.jqpremium,
  346. i.sypremium,
  347. i.taxamount
  348. FROM
  349. sys_dept sd
  350. LEFT JOIN (
  351. SELECT
  352. io.deptid AS deptid,
  353. iac.orderstatus AS orderstatus,
  354. count(*) AS count,
  355. sum( iac.jqpremium ) AS jqpremium,
  356. sum( iac.sypremium ) AS sypremium,
  357. sum( iac.taxamount ) AS taxamount
  358. FROM
  359. ins_orders io
  360. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  361. WHERE
  362. iac.orderstatus in (1,2,3)
  363. <if test="quTeamNumDto.createTimeStart != null">
  364. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  365. </if>
  366. <if test="quTeamNumDto.createTimeEnd != null">
  367. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  368. </if>
  369. GROUP BY
  370. iac.orderstatus,
  371. io.userid,
  372. io.deptid
  373. ) AS i ON i.deptid = sd.id
  374. WHERE
  375. sd.del_flag = 0
  376. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  377. and sd.id like concat(#{quTeamNumDto.deptId},'%')
  378. </if>
  379. <if test="quTeamNumDto.deptName != null and quTeamNumDto.deptName != ''">
  380. and sd.name like concat(#{quTeamNumDto.deptName},'%')
  381. </if>
  382. </select>
  383. <select id="getDeptByCompany" resultMap="QuTeamNumMap">
  384. SELECT
  385. iac.company_id as companyId,
  386. iac.inscompany as insCompany,
  387. COUNT(*) AS quoteNum,
  388. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  389. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  390. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremium,
  391. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremium,
  392. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamount,
  393. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  394. FROM
  395. ins_orders io
  396. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  397. WHERE
  398. iac.orderstatus IN ( 1, 2, 3 )
  399. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  400. and io.deptid = #{quTeamNumDto.deptId}
  401. </if>
  402. GROUP BY
  403. iac.company_id,
  404. iac.inscompany
  405. </select>
  406. <resultMap id="QuUserNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  407. <id column="id" javaType="String" jdbcType="VARCHAR" property="userId"/>
  408. <result column="name" javaType="String" jdbcType="VARCHAR" property="userName"/>
  409. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  410. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  411. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  412. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  413. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  414. </resultMap>
  415. <select id="getUser" resultMap="QuUserNumMap">
  416. SELECT
  417. su.id,
  418. su.name,
  419. i.orderstatus,
  420. i.count,
  421. i.jqpremium,
  422. i.sypremium,
  423. i.taxamount
  424. FROM
  425. sys_user su
  426. LEFT JOIN (
  427. SELECT
  428. io.userid AS userid,
  429. iac.orderstatus AS orderstatus,
  430. count(*) AS count,
  431. sum( iac.jqpremium ) AS jqpremium,
  432. sum( iac.sypremium ) AS sypremium,
  433. sum( iac.taxamount ) AS taxamount
  434. FROM
  435. ins_orders io
  436. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  437. WHERE
  438. iac.orderstatus in (1,2,3)
  439. <if test="quTeamNumDto.createTimeStart != null">
  440. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  441. </if>
  442. <if test="quTeamNumDto.createTimeEnd != null">
  443. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  444. </if>
  445. GROUP BY
  446. iac.orderstatus,
  447. io.userid
  448. ) AS i ON i.userid = su.id
  449. WHERE
  450. su.status = 1
  451. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  452. and su.dept_id like concat(#{quTeamNumDto.deptId},'%')
  453. </if>
  454. <if test="quTeamNumDto.userName != null and quTeamNumDto.userName != ''">
  455. and su.name like concat(#{quTeamNumDto.userName},'%')
  456. </if>
  457. </select>
  458. <select id="findListByDeptId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  459. SELECT
  460. su.id,
  461. su.name
  462. FROM
  463. sys_user su
  464. WHERE
  465. su.status = 1
  466. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  467. and su.dept_id = #{sysUser.deptId}
  468. </if>
  469. <if test="sysUser.id != null and sysUser.id != ''">
  470. and su.id != #{sysUser.id}
  471. </if>
  472. </select>
  473. <select id="getUserNum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  474. SELECT
  475. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  476. COUNT(*) AS quoteNum,
  477. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  478. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  479. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  480. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  481. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  482. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  483. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  484. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  485. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  486. FROM
  487. ins_orders io
  488. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  489. WHERE
  490. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  491. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  492. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  493. </if>
  494. <if test="quUserNumDto.userIds != null">
  495. and io.userid IN
  496. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  497. #{id}
  498. </foreach>
  499. </if>
  500. GROUP BY
  501. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  502. </select>
  503. <select id="getMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  504. SELECT
  505. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  506. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  507. FROM
  508. ins_orders io
  509. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  510. WHERE
  511. iac.orderstatus IN (1)
  512. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  513. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  514. </if>
  515. <if test="quUserNumDto.userIds != null">
  516. and io.userid IN
  517. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  518. #{id}
  519. </foreach>
  520. </if>
  521. GROUP BY
  522. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  523. </select>
  524. <select id="getMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  525. SELECT
  526. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  527. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  528. FROM
  529. ins_orders io
  530. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  531. WHERE
  532. iac.orderstatus IN (2)
  533. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  534. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  535. </if>
  536. <if test="quUserNumDto.userIds != null">
  537. and io.userid IN
  538. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  539. #{id}
  540. </foreach>
  541. </if>
  542. GROUP BY
  543. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  544. </select>
  545. <select id="getMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  546. SELECT
  547. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  548. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  549. FROM
  550. ins_orders io
  551. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  552. WHERE
  553. iac.orderstatus IN (3)
  554. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  555. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  556. </if>
  557. <if test="quUserNumDto.userIds != null">
  558. and io.userid IN
  559. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  560. #{id}
  561. </foreach>
  562. </if>
  563. GROUP BY
  564. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  565. </select>
  566. <select id="getUserByCompany" resultType="com.ydtech.modules.admin.model.QuUserNum">
  567. SELECT
  568. iac.company_id as companyId,
  569. iac.inscompany as insCompany,
  570. COUNT(*) AS quoteNum,
  571. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  572. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  573. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  574. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  575. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  576. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  577. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  578. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  579. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  580. FROM
  581. ins_orders io
  582. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  583. WHERE
  584. iac.orderstatus IN ( 0, 1, 2, 3, 4 )
  585. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  586. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  587. </if>
  588. <if test="quUserNumDto.userIds != null">
  589. and io.userid IN
  590. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  591. #{id}
  592. </foreach>
  593. </if>
  594. GROUP BY
  595. iac.company_id,
  596. iac.inscompany
  597. </select>
  598. <select id="getComMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  599. SELECT
  600. iac.company_id as companyId,
  601. iac.inscompany as insCompany,
  602. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  603. FROM
  604. ins_orders io
  605. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  606. WHERE
  607. iac.orderstatus IN (1)
  608. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  609. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  610. </if>
  611. <if test="quUserNumDto.userIds != null">
  612. and io.userid IN
  613. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  614. #{id}
  615. </foreach>
  616. </if>
  617. GROUP BY
  618. iac.company_id,
  619. iac.inscompany
  620. </select>
  621. <select id="getComMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  622. SELECT
  623. iac.company_id as companyId,
  624. iac.inscompany as insCompany,
  625. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  626. FROM
  627. ins_orders io
  628. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  629. WHERE
  630. iac.orderstatus IN (2)
  631. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  632. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  633. </if>
  634. <if test="quUserNumDto.userIds != null">
  635. and io.userid IN
  636. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  637. #{id}
  638. </foreach>
  639. </if>
  640. GROUP BY
  641. iac.company_id,
  642. iac.inscompany
  643. </select>
  644. <select id="getComMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  645. SELECT
  646. iac.company_id as companyId,
  647. iac.inscompany as insCompany,
  648. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  649. FROM
  650. ins_orders io
  651. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  652. WHERE
  653. iac.orderstatus IN (3)
  654. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  655. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  656. </if>
  657. <if test="quUserNumDto.userIds != null">
  658. and io.userid IN
  659. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  660. #{id}
  661. </foreach>
  662. </if>
  663. GROUP BY
  664. iac.company_id,
  665. iac.inscompany
  666. </select>
  667. <select id="getUserDetail" resultType="com.ydtech.modules.admin.model.QuUserNum">
  668. SELECT
  669. io.userid,
  670. io.username,
  671. COUNT(*) AS quoteNum,
  672. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  673. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  674. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  675. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  676. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  677. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  678. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  679. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  680. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  681. FROM
  682. ins_orders io
  683. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  684. WHERE
  685. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  686. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  687. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  688. </if>
  689. <if test="quUserNumDto.userIds != null">
  690. and io.userid IN
  691. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  692. #{id}
  693. </foreach>
  694. </if>
  695. GROUP BY
  696. io.userid,
  697. io.username
  698. </select>
  699. <select id="getUserMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  700. SELECT
  701. io.userid,
  702. io.username,
  703. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  704. FROM
  705. ins_orders io
  706. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  707. WHERE
  708. iac.orderstatus IN (1)
  709. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  710. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  711. </if>
  712. <if test="quUserNumDto.userIds != null">
  713. and io.userid IN
  714. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  715. #{id}
  716. </foreach>
  717. </if>
  718. GROUP BY
  719. io.userid,
  720. io.username
  721. </select>
  722. <select id="getUserMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  723. SELECT
  724. io.userid,
  725. io.username,
  726. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  727. FROM
  728. ins_orders io
  729. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  730. WHERE
  731. iac.orderstatus IN (2)
  732. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  733. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  734. </if>
  735. <if test="quUserNumDto.userIds != null">
  736. and io.userid IN
  737. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  738. #{id}
  739. </foreach>
  740. </if>
  741. GROUP BY
  742. io.userid,
  743. io.username
  744. </select>
  745. <select id="getUserMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  746. SELECT
  747. io.userid,
  748. io.username,
  749. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  750. FROM
  751. ins_orders io
  752. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  753. WHERE
  754. iac.orderstatus IN (3)
  755. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  756. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  757. </if>
  758. <if test="quUserNumDto.userIds != null">
  759. and io.userid IN
  760. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  761. #{id}
  762. </foreach>
  763. </if>
  764. GROUP BY
  765. io.userid,
  766. io.username
  767. </select>
  768. <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  769. SELECT
  770. su.id as userId,
  771. su.name,
  772. info.sex,
  773. su.mobile,
  774. su.status,
  775. sd.id as deptId,
  776. sd.name as deptName,
  777. t4.id as roleId,
  778. t4.name as roleName,
  779. sd.management_source as managementSource,
  780. psd.id as pDeptId,
  781. psd.name as pDeptName,
  782. "" as noType
  783. FROM
  784. sys_user su
  785. LEFT JOIN sys_user_info info ON info.id = su.id
  786. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  787. left join sys_dept psd on psd.id = sd.parent_id
  788. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  789. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  790. AND sd.del_flag = '0'
  791. WHERE
  792. su.status =1 AND su.id LIKE '%M%'
  793. <if test='user !=null '>
  794. <if test='user.name !=null and user.name!="" '>
  795. and su.name = #{user.name}
  796. </if>
  797. <if test='user.userId !=null and user.userId!="" '>
  798. and su.id = #{user.userId}
  799. </if>
  800. <if test='user.mobile !=null and user.mobile!="" '>
  801. and su.mobile = #{user.mobile}
  802. </if>
  803. <if test='user.identity !=null and user.identity!="" '>
  804. and su.identity = #{user.identity}
  805. </if>
  806. </if>
  807. </select>
  808. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  809. SELECT
  810. t1.id AS userId,
  811. t1.NAME AS NAME,
  812. t1.mobile AS mobile,
  813. t1.`status` AS `status`,
  814. t2.id AS deptId,
  815. t2.`name` AS deptName,
  816. sd2.id AS pDeptId,
  817. sd2.`name` AS pDeptName
  818. FROM
  819. sys_user t1
  820. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  821. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  822. WHERE
  823. t1.`status` = 1
  824. AND t1.id NOT LIKE '%M%'
  825. <if test='user !=null '>
  826. <if test='user.name !=null and user.name!="" '>
  827. and t1.name = #{user.name}
  828. </if>
  829. <if test='user.userId !=null and user.userId!="" '>
  830. and t1.id = #{user.userId}
  831. </if>
  832. <if test='user.mobile !=null and user.mobile!="" '>
  833. and t1.mobile = #{user.mobile}
  834. </if>
  835. <if test='user.identity !=null and user.identity!="" '>
  836. and t1.identity = #{user.identity}
  837. </if>
  838. </if>
  839. </select>
  840. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  841. SELECT
  842. t2.id
  843. FROM
  844. sys_user t1
  845. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  846. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  847. WHERE
  848. t1.`status` = 1
  849. <if test="userIds != null and userIds.size>0" >
  850. AND
  851. t1.id IN
  852. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  853. #{item}
  854. </foreach>
  855. </if>
  856. <if test="roleIds != null and roleIds.size>0" >
  857. AND
  858. sur.role_id IN
  859. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  860. #{item}
  861. </foreach>
  862. </if>
  863. GROUP BY t2.id
  864. </select>
  865. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  866. SELECT
  867. t1.id AS userId,
  868. t1.NAME AS NAME,
  869. t1.mobile AS mobile,
  870. t1.`status` AS `status`,
  871. t2.id AS deptId,
  872. t2.`name` AS deptName,
  873. sd2.id AS pDeptId,
  874. sd2.`name` AS pDeptName,
  875. CASE
  876. WHEN ( SELECT count( 0 ) FROM sys_user_link_pl_agreement link WHERE link.user_id = t1.id) > 0 THEN
  877. true ELSE false
  878. END AS flag
  879. FROM
  880. sys_user t1
  881. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  882. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  883. WHERE
  884. t1.`status` = 1
  885. AND t1.id NOT LIKE '%M%'
  886. <if test='user !=null '>
  887. <if test='user.name !=null and user.name!="" '>
  888. and t1.name like CONCAT('%', #{user.name}, '%')
  889. </if>
  890. <if test='user.userId !=null and user.userId!="" '>
  891. and t1.id = #{user.userId}
  892. </if>
  893. <if test='user.mobile !=null and user.mobile!="" '>
  894. and t1.mobile = #{user.mobile}
  895. </if>
  896. <if test='user.deptId !=null and user.deptId!="" '>
  897. and t2.id like CONCAT('', #{user.deptId}, '%')
  898. </if>
  899. </if>
  900. order by flag desc
  901. </select>
  902. <select id="getDeptIdsByUserIds" resultType="String">
  903. SELECT
  904. t2.id
  905. FROM
  906. sys_user t1
  907. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  908. WHERE
  909. t1.`status` = 1
  910. AND EXISTS (
  911. SELECT
  912. *
  913. FROM
  914. (
  915. SELECT
  916. t1.id
  917. FROM
  918. sys_user t1
  919. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  920. WHERE
  921. t1.`status` = 1
  922. AND t1.leader_id = #{userId}
  923. AND EXISTS (
  924. SELECT
  925. *
  926. FROM
  927. ( SELECT 1 AS id UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 21 ) roleAll
  928. WHERE
  929. roleAll.id = sur.role_id
  930. )
  931. ) users
  932. WHERE
  933. users.id = t1.id
  934. )
  935. GROUP BY
  936. t2.id
  937. </select>
  938. <select id="findUserListByAreaPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  939. SELECT
  940. t1.id AS userId,
  941. t1.NAME AS NAME,
  942. t1.mobile AS mobile,
  943. t1.`status` AS `status`,
  944. t2.id AS deptId,
  945. t2.`name` AS deptName,
  946. sd2.id AS pDeptId,
  947. sd2.`name` AS pDeptName,
  948. CASE
  949. WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
  950. true ELSE false
  951. END AS flag
  952. FROM
  953. sys_user t1
  954. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  955. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  956. WHERE
  957. t1.`status` = 1
  958. AND t1.id NOT LIKE '%M%'
  959. <if test='user !=null '>
  960. <if test='user.name !=null and user.name!="" '>
  961. and t1.name like CONCAT('%', #{user.name}, '%')
  962. </if>
  963. <if test='user.userId !=null and user.userId!="" '>
  964. and t1.id = #{user.userId}
  965. </if>
  966. <if test='user.mobile !=null and user.mobile!="" '>
  967. and t1.mobile = #{user.mobile}
  968. </if>
  969. <if test='user.deptId !=null and user.deptId!="" '>
  970. and t2.id like CONCAT('', #{user.deptId}, '%')
  971. </if>
  972. </if>
  973. order by flag desc
  974. </select>
  975. <select id="getAgentUserIdsByAreaIds" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  976. SELECT
  977. su.id AS userId,
  978. su.dept_id AS deptId
  979. FROM
  980. sys_user su
  981. LEFT JOIN sys_user_info info ON info.id = su.id
  982. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  983. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  984. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  985. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  986. AND sd.del_flag = '0'
  987. AND su.STATUS = 1
  988. WHERE
  989. t3.role_id =20
  990. AND sd.management_source = 2
  991. </select>
  992. <select id="getCountByDeptAndRoleId" resultType="Integer">
  993. SELECT
  994. count( 0 )
  995. FROM
  996. sys_user su
  997. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  998. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  999. WHERE
  1000. su.dept_id = #{user.deptId}
  1001. AND t4.id = #{user.roleId}
  1002. </select>
  1003. <select id="findTDZUserIdByDeptId" resultType="String">
  1004. SELECT
  1005. su.id
  1006. FROM
  1007. sys_user su
  1008. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1009. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1010. WHERE
  1011. su.dept_id = #{deptId}
  1012. AND t4.id = 21
  1013. </select>
  1014. <select id="findSumCountAndAvgAge" resultType="java.util.HashMap">
  1015. SELECT
  1016. count( su.id ) AS sumCount,
  1017. FLOOR(
  1018. avg(
  1019. TIMESTAMPDIFF(
  1020. YEAR,
  1021. STR_TO_DATE( SUBSTRING( su.identity, 7, 8 ), '%Y%m%d' ),
  1022. CURDATE()))) AS avgAge
  1023. FROM
  1024. sys_user su
  1025. WHERE
  1026. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1027. AND su.identity IS NOT NULL
  1028. </select>
  1029. <select id="findEducationSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1030. SELECT
  1031. uinfo.education AS NAME,
  1032. count( uinfo.education ) AS count
  1033. FROM
  1034. sys_user su
  1035. LEFT JOIN sys_user_info uinfo ON su.id = uinfo.id
  1036. WHERE
  1037. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1038. AND uinfo.education IS NOT NULL
  1039. GROUP BY
  1040. uinfo.education
  1041. </select>
  1042. <select id="findQXTDSumCountAndAvgAge" resultType="java.util.HashMap">
  1043. SELECT
  1044. count( su.id ) AS sumCount,
  1045. FLOOR(
  1046. avg(
  1047. TIMESTAMPDIFF(
  1048. YEAR,
  1049. STR_TO_DATE( SUBSTRING( su.identity, 7, 8 ), '%Y%m%d' ),
  1050. CURDATE()))) AS avgAge
  1051. FROM
  1052. sys_user su
  1053. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1054. WHERE
  1055. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1056. AND ro.role_id=21
  1057. </select>
  1058. <select id="findQXDLSumCountAndAvgAge" resultType="java.util.HashMap">
  1059. SELECT
  1060. count( su.id ) AS sumCount,
  1061. FLOOR(
  1062. avg(
  1063. TIMESTAMPDIFF(
  1064. YEAR,
  1065. STR_TO_DATE( SUBSTRING( su.identity, 7, 8 ), '%Y%m%d' ),
  1066. CURDATE()))) AS avgAge
  1067. FROM
  1068. sys_user su
  1069. LEFT JOIN sys_dept dept ON su.dept_id = dept.id
  1070. WHERE
  1071. su.dept_id LIKE CONCAT(#{deptId}, '%' )
  1072. AND dept.management_source = #{type}
  1073. </select>
  1074. <select id="findQXTDAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1075. SELECT
  1076. sa.area_cname AS NAME,
  1077. count( 0 ) AS count
  1078. FROM
  1079. sys_user su
  1080. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1081. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING( LPAD( su.id, 8, 0 ), 3, 8 )
  1082. WHERE
  1083. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1084. AND ro.role_id=21
  1085. AND sa.area_cname IS NOT NULL
  1086. GROUP BY
  1087. sa.area_cname
  1088. </select>
  1089. <select id="findQXDLAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1090. SELECT
  1091. sa.area_cname AS NAME,
  1092. count( 0 ) AS count
  1093. FROM
  1094. sys_user su
  1095. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1096. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING( LPAD( su.id, 8, 0 ), 3, 8 )
  1097. WHERE
  1098. sd.management_source = 2
  1099. AND sd.del_flag = '0'
  1100. AND su.STATUS = 1
  1101. AND sa.area_cname IS NOT NULL
  1102. GROUP BY
  1103. sa.area_cname
  1104. </select>
  1105. <select id="findQXTDSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1106. SELECT
  1107. CASE
  1108. WHEN
  1109. uinfo.sex = 'M' THEN
  1110. '男'
  1111. WHEN uinfo.sex = 'F' THEN
  1112. '女' ELSE ''
  1113. END AS NAME,
  1114. count( 0 ) AS count
  1115. FROM
  1116. sys_user su
  1117. LEFT JOIN sys_user_info uinfo ON su.id = uinfo.id
  1118. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1119. WHERE
  1120. su.dept_id LIKE CONCAT(#{deptId}, '%' )
  1121. AND ro.role_id = 21
  1122. AND uinfo.sex IS NOT NULL
  1123. GROUP BY
  1124. uinfo.sex
  1125. </select>
  1126. <select id="findQXDLSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1127. SELECT
  1128. CASE
  1129. WHEN
  1130. uinfo.sex = 'M' THEN
  1131. '男'
  1132. WHEN uinfo.sex = 'F' THEN
  1133. '女' ELSE ''
  1134. END AS NAME,
  1135. count( 0 ) AS count
  1136. FROM
  1137. sys_user su
  1138. LEFT JOIN sys_user_info uinfo ON uinfo.id = su.id
  1139. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1140. WHERE
  1141. sd.management_source = 2
  1142. AND sd.del_flag = '0'
  1143. AND su.STATUS = 1
  1144. AND uinfo.sex IS NOT NULL
  1145. GROUP BY
  1146. uinfo.sex
  1147. </select>
  1148. <select id="findQXTDWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1149. SELECT
  1150. su.leader_name as name,
  1151. count( 0 ) AS count
  1152. FROM
  1153. sys_user su
  1154. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1155. WHERE
  1156. su.dept_id LIKE CONCAT(#{deptId}, '%' )
  1157. AND ro.role_id = 21
  1158. AND su.leader_name IS NOT NULL
  1159. GROUP BY
  1160. su.leader_name
  1161. </select>
  1162. <select id="findQXDLWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1163. SELECT
  1164. su.leader_name as name,
  1165. count( 0 ) AS count
  1166. FROM
  1167. sys_user su
  1168. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1169. WHERE
  1170. sd.management_source = 2
  1171. AND sd.del_flag = '0'
  1172. AND su.STATUS = 1
  1173. AND su.leader_name IS NOT NULL
  1174. GROUP BY
  1175. su.leader_name
  1176. </select>
  1177. <select id="queryQXQDReportData"
  1178. resultType="com.ydtech.modules.admin.model.report.user.QianLineQDPersonnelReportDto">
  1179. SELECT
  1180. su.name as userName,
  1181. su.leader_name as leadName,
  1182. "渠道" as typeName,
  1183. "" as qdType
  1184. FROM
  1185. sys_user su
  1186. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1187. WHERE
  1188. sd.management_source = 1
  1189. AND sd.del_flag = '0'
  1190. AND su.STATUS = 1
  1191. and su.leader_name is not null
  1192. </select>
  1193. <select id="findQXDLUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1194. SELECT
  1195. su.id as id,
  1196. su.name as name
  1197. FROM
  1198. sys_user su
  1199. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1200. WHERE
  1201. sd.management_source = 2
  1202. AND sd.del_flag = '0'
  1203. AND su.STATUS = 1
  1204. AND su.leader_name IS NOT NULL
  1205. GROUP BY
  1206. su.leader_name
  1207. </select>
  1208. <select id="findHxUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1209. SELECT
  1210. t1.id AS id,
  1211. t1.NAME AS NAME,
  1212. t1.mobile AS mobile,
  1213. t1.`status` AS `status`,
  1214. t2.id AS deptId,
  1215. t2.`name` AS deptName,
  1216. sd2.id AS pDeptId,
  1217. sd2.`name` AS pDeptName
  1218. FROM
  1219. sys_user t1
  1220. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1221. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1222. WHERE
  1223. t1.`status` = 1
  1224. AND t1.id NOT LIKE '%M%'
  1225. </select>
  1226. <select id="queryHXReportDataNew" resultType="java.util.HashMap">
  1227. SELECT
  1228. sum(info.salary) as "salary",
  1229. sum(case when info.sex ='M' THEN 1 ELSE 0 END ) as "manSex",
  1230. sum(case when info.sex ='F' THEN 1 ELSE 0 END) as "femaleSex",
  1231. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) + sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "manProportion",
  1232. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) + sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "femaleProportion",
  1233. sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) as "computerSpecialityPersion",
  1234. sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END) as "otherSpecialityPersion",
  1235. sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)) as "computerSpecialityProportion",
  1236. sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)) as "otherSpecialityProportion"
  1237. FROM
  1238. sys_user su
  1239. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1240. LEFT JOIN sys_user_info info ON info.id = su.id
  1241. <where>
  1242. info.id is not null
  1243. and su.id LIKE '%M%'
  1244. and su.status = '1'
  1245. <if test="vo.provinceId != null and vo.provinceId != ''">
  1246. and sd.deptid like "$vo.provinceId}%"
  1247. </if>
  1248. <if test="vo.cityId != null and vo.cityId != ''">
  1249. and sd.deptid like "${vo.cityId}%"
  1250. </if>
  1251. <if test="vo.countyId != null and vo.countyId != ''">
  1252. and sd.deptid like "${vo.countyId}%"
  1253. </if>
  1254. <if test="vo.houseId != null and vo.houseId != ''">
  1255. and sd.deptid like "${vo.houseId}%"
  1256. </if>
  1257. </where>
  1258. </select>
  1259. <select id="queryQxFrontlineAgent" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1260. SELECT
  1261. sd.name as "deptName",
  1262. su.name as "name",
  1263. su.id as "userId",
  1264. su.dept_id as "deptId",
  1265. inf.file_path as "filePath"
  1266. FROM
  1267. sys_user su
  1268. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1269. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1270. <where>
  1271. su.id LIKE '%M%'
  1272. and su.status = '1'
  1273. <if test="vo.managementSource != null and vo.managementSource!='' ">
  1274. AND sd.management_source =#{vo.managementSource}
  1275. </if>
  1276. <if test="vo.provinceId != null and vo.provinceId != ''">
  1277. and sd.id like concat('%',#{vo.provinceId},'%')
  1278. </if>
  1279. <if test="vo.cityId != null and vo.cityId != ''">
  1280. and sd.id like concat('%',#{vo.cityId},'%')
  1281. </if>
  1282. <if test="vo.countyId != null and vo.countyId != ''">
  1283. and sd.id like concat('%',#{vo.countyId},'%')
  1284. </if>
  1285. <if test="vo.houseId != null and vo.houseId != ''">
  1286. and sd.id like concat('%',#{vo.houseId},'%')
  1287. </if>
  1288. <if test="vo.name != null and vo.name != ''">
  1289. and su.name =#{vo.name}
  1290. </if>
  1291. <if test="vo.userCode != null and vo.userCode != ''">
  1292. and su.id =#{vo.userCode}
  1293. </if>
  1294. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1295. and su.mobile =#{vo.phoneNumber}
  1296. </if>
  1297. </where>
  1298. </select>
  1299. <select id="getByIdsList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1300. SELECT
  1301. su.name as "name",
  1302. sd.name as "deptName",
  1303. su.id as "userId",
  1304. su.dept_id as "deptId"
  1305. FROM
  1306. sys_user su
  1307. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1308. <where>
  1309. su.id LIKE '%M%'
  1310. and su.status = '1'
  1311. <if test="vo.ids != null and vo.ids.size()>0 ">
  1312. AND su.id IN
  1313. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1314. #{item}
  1315. </foreach>
  1316. </if>
  1317. </where>
  1318. </select>
  1319. <select id="getByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
  1320. select t.id id,t.name name,t.mobile mobile,t2.management_source managementSource
  1321. from sys_user t left join sys_dept t2 on t.dept_id=t2.id
  1322. where t.id=#{id}
  1323. </select>
  1324. <select id="findByReferrerId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  1325. SELECT u.id, u.name
  1326. FROM sys_user u
  1327. where u.dept_id = #{deptId}
  1328. </select>
  1329. </mapper>