SysUserMapper.xml 52 KB

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