CommissionDeclareMapper.xml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  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.dayou.mapper.CommissionDeclareMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.dayou.entity.CommissionDeclare">
  6. <result column="id" property="id" />
  7. <result column="deleted" property="deleted" />
  8. <result column="created" property="created" />
  9. <result column="modified" property="modified" />
  10. <result column="business_type" property="businessType" />
  11. <result column="commission_rate_id" property="commissionRateId" />
  12. <result column="business_id" property="businessId" />
  13. <result column="production_id" property="productionId" />
  14. <result column="declare_user_id" property="declareUserId" />
  15. <result column="declare_result" property="declareResult" />
  16. </resultMap>
  17. <!-- 通用查询结果列 -->
  18. <sql id="Base_Column_List">
  19. id,
  20. deleted,
  21. created,
  22. modified,
  23. business_type, commission_rate_id, business_id, production_id, declare_user_id, declare_result
  24. </sql>
  25. <select id="majorMarketDeclarePage" parameterType="com.dayou.vo.CommissionDeclareVO" resultType="com.dayou.vo.CommissionDeclareVO">
  26. SELECT
  27. bus.*,
  28. dd.NAME AS commissionType
  29. FROM
  30. (
  31. SELECT
  32. IFNULL( cd.id,( SELECT id FROM commission_declare WHERE deleted = 0 AND business_id = major.businessId AND production_id IS NULL
  33. AND business_type ='COMMISSION_DECLARE_MAJOR_MARKET' and declare_user_id =#{marketUserId}) ) id,
  34. IFNULL( cd.commission_rate_id,( SELECT commission_rate_id FROM commission_declare WHERE deleted = 0 AND business_id = major.businessId AND production_id IS NULL
  35. AND business_type ='COMMISSION_DECLARE_MAJOR_MARKET' and declare_user_id =#{marketUserId} ) ) commission_rate_id,
  36. IFNULL( cd.declare_result,( SELECT declare_result FROM commission_declare WHERE deleted = 0 AND business_id = major.businessId AND production_id IS NULL
  37. AND business_type ='COMMISSION_DECLARE_MAJOR_MARKET' and declare_user_id =#{marketUserId}) ) declare_result,
  38. major.*
  39. FROM
  40. (
  41. SELECT
  42. m.id AS businessId,
  43. mp.id AS productionId,
  44. ifnull( mp.id, m.id ) AS mId,
  45. m.NAME AS orderName,
  46. m.order_id,
  47. m.business_object_type,
  48. m.bailor_contact_name,
  49. m.bailor_contact_tel,
  50. m.bailor,
  51. m.created AS orderCreated,
  52. u.NAME AS clientManager,
  53. u1.NAME AS principal,
  54. cc1.NAME AS clienteleName,
  55. cc2.NAME AS clienteleSubName,
  56. mp.NAME,
  57. mp.report_no,
  58. mp.created
  59. FROM
  60. major m
  61. LEFT JOIN ( SELECT id, NAME, major_id, report_no, created FROM major_production WHERE deleted = 0 ) mp ON m.id = mp.major_id
  62. LEFT JOIN `user` u ON u.id = m.client_manager_id
  63. LEFT JOIN `user` u1 ON u1.id = m.principal_id
  64. LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
  65. LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
  66. WHERE
  67. m.deleted = 0
  68. AND m.client_manager_id = #{marketUserId}
  69. ) major
  70. LEFT JOIN (
  71. SELECT
  72. id,
  73. ifnull( production_id, business_id ) AS xId,
  74. commission_rate_id,
  75. declare_result
  76. FROM
  77. commission_declare
  78. WHERE
  79. deleted = 0
  80. AND business_type='COMMISSION_DECLARE_MAJOR_MARKET'
  81. AND declare_user_id = #{marketUserId}) cd ON major.mId = cd.xId) bus left join business_commission_rate bcr on
  82. bus.commission_rate_id = bcr.id
  83. LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
  84. <where>
  85. <if test="declare!=null and declare.orderId!=null and declare.orderId!=''">
  86. and bus.order_id like concat ('%',#{declare.orderId},'%')
  87. </if>
  88. <if test="declare!=null and declare.name!=null and declare.name!=''">
  89. and (bus.orderName like concat ('%',#{declare.name},'%') or bus.name like concat ('%',#{declare.name},'%') )
  90. </if>
  91. <if test="declare!=null and declare.reportNo!=null and declare.reportNo!=''">
  92. and bus.report_no like concat ('%',#{declare.reportNo},'%')
  93. </if>
  94. <if test="declare!=null and declare.commissionRateId!=null ">
  95. and bus.commission_rate_id = #{declare.commissionRateId}
  96. </if>
  97. <if test="declare!=null and declare.declareType!=null and declare.declareType==true">
  98. and bus.productionId is not null
  99. </if>
  100. <if test="declare!=null and declare.declareType!=null and declare.declareType==false">
  101. and bus.productionId is null
  102. </if>
  103. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='待申报'">
  104. and bus.declare_result is null
  105. </if>
  106. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核中'">
  107. and bus.declare_result = #{declare.declareResult}
  108. </if>
  109. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核通过'">
  110. and bus.declare_result = #{declare.declareResult}
  111. </if>
  112. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核拒绝'">
  113. and bus.declare_result = #{declare.declareResult}
  114. </if>
  115. </where>
  116. order by bus.created DESC ,bus.orderCreated DESC
  117. </select>
  118. <select id="majorEvaluateDeclarePage" parameterType="com.dayou.vo.CommissionDeclareVO" resultType="com.dayou.vo.CommissionDeclareVO">
  119. select bus.*,dd.name as commissionType from (SELECT
  120. IFNULL(cd.id,(SELECT id from commission_declare where deleted = 0 and business_id= major.businessId and production_id is null
  121. AND business_type ='COMMISSION_DECLARE_MAJOR_EVALUATE' and declare_user_id =#{evaluateUserId}) ) id,
  122. IFNULL(cd.commission_rate_id,(SELECT commission_rate_id from commission_declare where deleted = 0 and business_id= major.businessId and production_id is null
  123. AND business_type ='COMMISSION_DECLARE_MAJOR_EVALUATE' and declare_user_id = #{evaluateUserId}) ) commission_rate_id,
  124. IFNULL(cd.declare_result,(SELECT declare_result from commission_declare where deleted = 0 and business_id= major.businessId and production_id is null
  125. AND business_type ='COMMISSION_DECLARE_MAJOR_EVALUATE' and declare_user_id = #{evaluateUserId}) ) declare_result,
  126. major.*
  127. FROM
  128. (
  129. SELECT
  130. m.id AS businessId,
  131. mp.id AS productionId,
  132. ifnull( mp.id, m.id ) AS mId,
  133. m.NAME AS orderName,
  134. m.order_id,
  135. m.business_object_type,
  136. m.bailor_contact_name,
  137. m.bailor_contact_tel,
  138. m.bailor,
  139. m.created AS orderCreated,
  140. u.NAME AS clientManager,
  141. u1.NAME AS principal,
  142. cc1.NAME AS clienteleName,
  143. cc2.NAME AS clienteleSubName,
  144. mp.NAME,
  145. mp.report_no ,
  146. mp.created
  147. FROM
  148. major m
  149. LEFT JOIN ( SELECT id, NAME, major_id, report_no,created FROM major_production WHERE deleted = 0 ) mp ON m.id = mp.major_id
  150. LEFT JOIN user u ON u.id = m.client_manager_id
  151. LEFT JOIN user u1 ON u1.id = m.principal_id
  152. LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
  153. LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
  154. WHERE
  155. m.deleted = 0
  156. AND m.principal_id = #{evaluateUserId}
  157. ) major
  158. LEFT JOIN ( SELECT id, ifnull( production_id, business_id ) AS xId, commission_rate_id,declare_result FROM commission_declare
  159. WHERE deleted = 0 and declare_user_id = #{evaluateUserId}
  160. AND business_type='COMMISSION_DECLARE_MAJOR_EVALUATE'
  161. ) cd ON major.mId = cd.xId) bus left join business_commission_rate bcr on
  162. bus.commission_rate_id = bcr.id left join dict_data dd on dd.id = bcr.business_cate_id
  163. <where>
  164. <if test="declare!=null and declare.orderId!=null and declare.orderId!=''">
  165. and bus.order_id like concat ('%',#{declare.orderId},'%')
  166. </if>
  167. <if test="declare!=null and declare.name!=null and declare.name!=''">
  168. and (bus.orderName like concat ('%',#{declare.name},'%') or bus.name like concat ('%',#{declare.name},'%') )
  169. </if>
  170. <if test="declare!=null and declare.reportNo!=null and declare.reportNo!=''">
  171. and bus.report_no like concat ('%',#{declare.reportNo},'%')
  172. </if>
  173. <if test="declare!=null and declare.commissionRateId!=null ">
  174. and bus.commission_rate_id = #{declare.commissionRateId}
  175. </if>
  176. <if test="declare!=null and declare.declareType!=null and declare.declareType==true">
  177. and bus.productionId is not null
  178. </if>
  179. <if test="declare!=null and declare.declareType!=null and declare.declareType==false">
  180. and bus.productionId is null
  181. </if>
  182. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='待申报'">
  183. and bus.declare_result is null
  184. </if>
  185. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核中'">
  186. and bus.declare_result = #{declare.declareResult}
  187. </if>
  188. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核通过'">
  189. and bus.declare_result = #{declare.declareResult}
  190. </if>
  191. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核拒绝'">
  192. and bus.declare_result = #{declare.declareResult}
  193. </if>
  194. </where>
  195. order by bus.created DESC ,bus.orderCreated DESC
  196. </select>
  197. <select id="detail" parameterType="java.lang.Long" resultType="com.dayou.vo.CommissionDeclareVO">
  198. SELECT
  199. cd.id,
  200. cd.commission_rate_id,
  201. cd.business_id,
  202. cd.production_id,
  203. cd.created,
  204. cd.declare_result,
  205. dd.NAME AS businessCate,
  206. u.NAME AS declareUser,
  207. bcr.business_cate_id,
  208. bcr.business_type,
  209. cd.created,
  210. cd.ratio,
  211. cd.defined_low_limit_amount,
  212. cd.business_type AS declareBusinessType
  213. FROM
  214. commission_declare cd
  215. LEFT JOIN business_commission_rate bcr ON bcr.id = cd.commission_rate_id
  216. LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
  217. LEFT JOIN user u ON u.id = cd.declare_user_id
  218. where cd.deleted = 0 and bcr.deleted = 0 and cd.id =#{id}
  219. </select>
  220. <resultMap id="majorDeclareTodoCheckMap" type="com.dayou.vo.CommissionDeclareTodoCheckVO">
  221. <id property="id" column="id"></id>
  222. <result property="taskId" column="taskId"></result>
  223. <result property="currentNodeId" column="currentNodeId"></result>
  224. <result property="businessId" column="business_id"></result>
  225. <result property="businessType" column="business_type"></result>
  226. <result property="orderName" column="orderName"></result>
  227. <result property="name" column="name"></result>
  228. <result property="reportNo" column="report_no"></result>
  229. <result property="orderId" column="order_id"></result>
  230. <result property="nodeName" column="nodeName"></result>
  231. <result property="nodeCode" column="nodeCode"></result>
  232. <result property="handler" column="handler"></result>
  233. <result property="declareUser" column="declareUser"></result>
  234. <result property="businessCate" column="businessCate"></result>
  235. <result property="userType" column="userType"></result>
  236. <result property="ratio" column="ratio"></result>
  237. <result property="created" column="created"></result>
  238. <result property="prodId" column="prodId"></result>
  239. <result property="majorId" column="majorId"></result>
  240. <association property="majorSimple" column="{majorId=majorId,prodId=prodId}" javaType="com.dayou.dto.MajorDeclareSimpleDTO"
  241. select="selectMajorSimple" ></association>
  242. </resultMap>
  243. <sql id="majorDeclareTodoCheck">
  244. SELECT
  245. t.*,
  246. u.NAME AS HANDLER,
  247. u1.NAME AS declareUser,
  248. dd.NAME AS businessCate,
  249. ( CASE bcr.user_type WHEN 'MARKETER' THEN '市场人员' WHEN 'EVALUATOR' THEN '评估人员' ELSE '--' END ) AS userType,
  250. bcr.min_ratio AS ratio
  251. FROM
  252. (
  253. SELECT
  254. wfni.id,
  255. wtr.id AS taskId,
  256. wfni.id AS currentNodeId,
  257. wfni.business_id,
  258. wfni.business_type,
  259. wfni.NAME AS nodeName,
  260. wfni.CODE AS nodeCode,
  261. cd.majorId,
  262. cd.production_id as prodId,
  263. cd.id AS cId,
  264. wtr.handler_id,
  265. cd.commission_rate_id,
  266. cd.declare_user_id,
  267. cd.created
  268. FROM
  269. work_task_record wtr
  270. INNER JOIN (
  271. SELECT
  272. wn.NAME,
  273. wn.CODE,
  274. wfni.id,
  275. wfni.business_id,
  276. wfni.state,
  277. wfni.business_type
  278. FROM
  279. work_flow_node_instance wfni
  280. LEFT JOIN work_node wn ON wn.id = wfni.node_id
  281. WHERE
  282. wfni.business_type IN ( 'COMMISSION_DECLARE_MAJOR_MARKET', 'COMMISSION_DECLARE_MAJOR_EVALUATE' )
  283. AND wfni.state = 'PENDING'
  284. AND wfni.deleted = 0
  285. AND wn.deleted = 0
  286. ) wfni ON wtr.instance_id = wfni.id
  287. INNER JOIN ( SELECT id, production_id, business_id AS majorId, commission_rate_id, declare_result, declare_user_id, created FROM commission_declare WHERE deleted = 0 AND declare_result = '审核中' ) cd ON cd.id = wfni.business_id
  288. WHERE
  289. wtr.handler_id = #{checkVO.handlerId}
  290. ) t
  291. LEFT JOIN user u ON u.id = t.handler_id
  292. LEFT JOIN business_commission_rate bcr ON bcr.id = t.commission_rate_id
  293. LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
  294. LEFT JOIN user u1 ON u1.id = t.declare_user_id
  295. </sql>
  296. <select id="selectMajorSimple" resultType="com.dayou.dto.MajorDeclareSimpleDTO">
  297. <if test="majorId!=null and prodId!=null">
  298. SELECT
  299. m.id as majorId,
  300. m.NAME AS orderName,
  301. m.order_id as orderId,
  302. mp.NAME as name,
  303. mp.report_no as reportNo,
  304. mp.id as prodId
  305. FROM
  306. major m
  307. LEFT JOIN ( SELECT id, name, major_id, report_no FROM major_production WHERE deleted = 0 ) mp ON
  308. m.id = mp.major_id
  309. where m.id = #{majorId} and mp.id= #{prodId}
  310. </if>
  311. <if test="majorId!=null and prodId==null">
  312. SELECT
  313. m.id as majorId,
  314. m.NAME AS orderName,
  315. m.order_id as orderId
  316. FROM
  317. major m
  318. where m.id = #{majorId}
  319. </if>
  320. </select>
  321. <select id="todoCheckPage" parameterType="com.dayou.vo.CommissionDeclareTodoCheckVO" resultMap="majorDeclareTodoCheckMap">
  322. <include refid="majorDeclareTodoCheck"/>
  323. </select>
  324. <select id="todoCheckList" resultMap="majorDeclareTodoCheckMap">
  325. <include refid="majorDeclareTodoCheck"/>
  326. limit 8
  327. </select>
  328. <!--获取资产评估人员提成申报列表-->
  329. <select id="assetsEvaluateDeclarePage" resultType="com.dayou.vo.CommissionDeclareVO">
  330. select bus.*,dd.name as commissionType from (
  331. SELECT
  332. IFNULL(
  333. cd.id,
  334. ( SELECT id FROM commission_declare WHERE deleted = 0 AND business_id = assets.businessId AND production_id IS
  335. NULL AND declare_user_id =#{evaluateUserId} AND business_type ='COMMISSION_DECLARE_ASSET_EVALUATE')) id,
  336. IFNULL(
  337. cd.commission_rate_id,
  338. ( SELECT commission_rate_id FROM commission_declare WHERE deleted = 0 AND business_id = assets.businessId AND
  339. production_id IS NULL AND declare_user_id =#{evaluateUserId} AND business_type
  340. ='COMMISSION_DECLARE_ASSET_EVALUATE')) commission_rate_id,
  341. IFNULL(
  342. cd.declare_result,
  343. ( SELECT declare_result FROM commission_declare WHERE deleted = 0 AND business_id = assets.businessId AND
  344. production_id IS NULL AND declare_user_id =#{evaluateUserId} AND business_type
  345. ='COMMISSION_DECLARE_ASSET_EVALUATE')) declare_result,
  346. assets.*
  347. FROM
  348. (
  349. SELECT
  350. assets.id AS businessId,
  351. ap.id AS productionId,
  352. ifnull( ap.id, assets.id ) AS aId,
  353. assets.NAME AS orderName,
  354. assets.order_id,
  355. assets.bailor_contact_name,
  356. assets.bailor_contact_tel,
  357. assets.bailor,
  358. assets.created AS orderCreated,
  359. u.NAME AS clientManager,
  360. u1.NAME AS principal,
  361. cc1.NAME AS clienteleName,
  362. cc2.NAME AS clienteleSubName,
  363. ap.production_no AS reportNo,
  364. ap.created
  365. FROM
  366. assets
  367. LEFT JOIN ( SELECT id, business_id, production_no, create_production_date, created FROM assets_production WHERE deleted = 0 AND production_type != 'STATEMENT' ) ap ON assets.id = ap.business_id
  368. LEFT JOIN `user` u ON u.id = assets.client_manager_id
  369. LEFT JOIN `user` u1 ON u1.id = assets.principal_id
  370. LEFT JOIN customer_company cc1 ON cc1.id = assets.clientele_id
  371. LEFT JOIN customer_company cc2 ON cc2.id = assets.clientele_sub_id
  372. WHERE
  373. assets.deleted = 0
  374. AND assets.principal_id = #{evaluateUserId}
  375. ) assets
  376. LEFT JOIN (
  377. SELECT
  378. id,
  379. ifnull( production_id, business_id ) AS xId,
  380. commission_rate_id,
  381. declare_result
  382. FROM
  383. commission_declare
  384. WHERE
  385. deleted = 0
  386. AND declare_user_id = #{evaluateUserId}) cd ON assets.aId = cd.xId) bus
  387. left join business_commission_rate bcr on bus.commission_rate_id = bcr.id
  388. left join dict_data dd on dd.id = bcr.business_cate_id
  389. <where>
  390. <if test="declare!=null and declare.orderId!=null and declare.orderId!=''">
  391. and bus.order_id like concat ('%',#{declare.orderId},'%')
  392. </if>
  393. <if test="declare!=null and declare.name!=null and declare.name!=''">
  394. and (bus.orderName like concat ('%',#{declare.name},'%')
  395. </if>
  396. <if test="declare!=null and declare.reportNo!=null and declare.reportNo!=''">
  397. and bus.report_no like concat ('%',#{declare.reportNo},'%')
  398. </if>
  399. <if test="declare!=null and declare.commissionRateId!=null ">
  400. and bus.commission_rate_id = #{declare.commissionRateId}
  401. </if>
  402. <if test="declare!=null and declare.declareType!=null and declare.declareType==true">
  403. and bus.productionId is not null
  404. </if>
  405. <if test="declare!=null and declare.declareType!=null and declare.declareType==false">
  406. and bus.productionId is null
  407. </if>
  408. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='待申报'">
  409. and bus.declare_result is null
  410. </if>
  411. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核中'">
  412. and bus.declare_result = #{declare.declareResult}
  413. </if>
  414. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核通过'">
  415. and bus.declare_result = #{declare.declareResult}
  416. </if>
  417. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核拒绝'">
  418. and bus.declare_result = #{declare.declareResult}
  419. </if>
  420. </where>
  421. order by bus.created DESC ,bus.orderCreated DESC
  422. </select>
  423. <!--获取资产市场人员提成申报列表-->
  424. <select id="assetsMarketDeclarePage" resultType="com.dayou.vo.CommissionDeclareVO">
  425. SELECT
  426. bus.*,
  427. dd.NAME AS commissionType
  428. FROM
  429. (
  430. SELECT
  431. IFNULL( cd.id,( SELECT id FROM commission_declare WHERE deleted = 0 AND business_id = assets.businessId AND
  432. production_id IS NULL and declare_user_id =#{marketUserId}) AND business_type
  433. ='COMMISSION_DECLARE_ASSET_MARKET') id,
  434. IFNULL( cd.commission_rate_id,( SELECT commission_rate_id FROM commission_declare WHERE deleted = 0 AND
  435. business_id = assets.businessId AND production_id IS NULL and declare_user_id =#{marketUserId} AND business_type
  436. ='COMMISSION_DECLARE_ASSET_MARKET') ) commission_rate_id,
  437. IFNULL( cd.declare_result,( SELECT declare_result FROM commission_declare WHERE deleted = 0 AND business_id =
  438. assets.businessId AND production_id IS NULL and declare_user_id =#{marketUserId} AND business_type
  439. ='COMMISSION_DECLARE_ASSET_MARKET') ) declare_result,
  440. assets.*
  441. FROM
  442. (
  443. SELECT
  444. assets.id AS businessId,
  445. ap.id AS productionId,
  446. ifnull( ap.id, assets.id ) AS aId,
  447. assets.NAME AS orderName,
  448. assets.order_id,
  449. assets.bailor_contact_name,
  450. assets.bailor_contact_tel,
  451. assets.bailor,
  452. assets.created AS orderCreated,
  453. u.NAME AS clientManager,
  454. u1.NAME AS principal,
  455. cc1.NAME AS clienteleName,
  456. cc2.NAME AS clienteleSubName,
  457. ap.production_no AS reportNo,
  458. ap.created
  459. FROM
  460. assets
  461. LEFT JOIN ( SELECT id, business_id, production_no, create_production_date, created FROM assets_production WHERE production_type!='STATEMENT' AND deleted = 0 ) ap ON assets.id = ap.business_id
  462. LEFT JOIN `user` u ON u.id = assets.client_manager_id
  463. LEFT JOIN `user` u1 ON u1.id = assets.principal_id
  464. LEFT JOIN customer_company cc1 ON cc1.id = assets.clientele_id
  465. LEFT JOIN customer_company cc2 ON cc2.id = assets.clientele_sub_id
  466. WHERE
  467. assets.deleted = 0
  468. AND assets.client_manager_id = #{marketUserId}
  469. ) assets
  470. LEFT JOIN (
  471. SELECT
  472. id,
  473. ifnull( production_id, business_id ) AS xId,
  474. commission_rate_id,
  475. declare_result
  476. FROM
  477. commission_declare
  478. WHERE
  479. deleted = 0
  480. AND declare_user_id = #{marketUserId}) cd ON assets.aId = cd.xId) bus left join business_commission_rate bcr on
  481. bus.commission_rate_id = bcr.id
  482. LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
  483. <where>
  484. <if test="declare!=null and declare.orderId!=null and declare.orderId!=''">
  485. and bus.order_id like concat ('%',#{declare.orderId},'%')
  486. </if>
  487. <if test="declare!=null and declare.name!=null and declare.name!=''">
  488. and bus.orderName like concat ('%',#{declare.name},'%')
  489. </if>
  490. <if test="declare!=null and declare.reportNo!=null and declare.reportNo!=''">
  491. and bus.report_no like concat ('%',#{declare.reportNo},'%')
  492. </if>
  493. <if test="declare!=null and declare.commissionRateId!=null ">
  494. and bus.commission_rate_id = #{declare.commissionRateId}
  495. </if>
  496. <if test="declare!=null and declare.declareType!=null and declare.declareType==true">
  497. and bus.productionId is not null
  498. </if>
  499. <if test="declare!=null and declare.declareType!=null and declare.declareType==false">
  500. and bus.productionId is null
  501. </if>
  502. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='待申报'">
  503. and bus.declare_result is null
  504. </if>
  505. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核中'">
  506. and bus.declare_result = #{declare.declareResult}
  507. </if>
  508. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核通过'">
  509. and bus.declare_result = #{declare.declareResult}
  510. </if>
  511. <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核拒绝'">
  512. and bus.declare_result = #{declare.declareResult}
  513. </if>
  514. </where>
  515. order by bus.created DESC ,bus.orderCreated DESC
  516. </select>
  517. <!--资产绩效提成申报待办result-->
  518. <resultMap id="assetsDeclareTodoCheckMap" type="com.dayou.vo.CommissionDeclareTodoCheckVO">
  519. <id property="id" column="id"></id>
  520. <result property="taskId" column="taskId"></result>
  521. <result property="currentNodeId" column="currentNodeId"></result>
  522. <result property="businessId" column="business_id"></result>
  523. <result property="businessType" column="business_type"></result>
  524. <result property="orderName" column="orderName"></result>
  525. <result property="name" column="name"></result>
  526. <result property="reportNo" column="report_no"></result>
  527. <result property="orderId" column="order_id"></result>
  528. <result property="nodeName" column="nodeName"></result>
  529. <result property="nodeCode" column="nodeCode"></result>
  530. <result property="handler" column="handler"></result>
  531. <result property="declareUser" column="declareUser"></result>
  532. <result property="businessCate" column="businessCate"></result>
  533. <result property="userType" column="userType"></result>
  534. <result property="ratio" column="ratio"></result>
  535. <result property="created" column="created"></result>
  536. <result property="prodId" column="prodId"></result>
  537. <result property="assetsId" column="assetsId"></result>
  538. <association property="assetsSimple" column="{assetsId=assetsId,prodId=prodId}" javaType="com.dayou.dto.AssetsDeclareSimpleDTO"
  539. select="selectAssetsSimple" ></association>
  540. </resultMap>
  541. <!--查询资产绩效提成申报流程信息-->
  542. <sql id="getAssetsTodoCheck">
  543. SELECT
  544. t.*,
  545. u.NAME AS handler,
  546. u1.NAME AS declareUser,
  547. dd.NAME AS businessCate,
  548. ( CASE bcr.user_type WHEN 'MARKETER' THEN '市场人员' WHEN 'EVALUATOR' THEN '评估人员' ELSE '--' END ) AS userType,
  549. bcr.min_ratio AS ratio
  550. FROM
  551. (
  552. SELECT
  553. wfni.id,
  554. wtr.id AS taskId,
  555. wfni.id AS currentNodeId,
  556. wfni.business_id,
  557. wfni.business_type,
  558. wfni.NAME AS nodeName,
  559. wfni.CODE AS nodeCode,
  560. cd.assetsId,
  561. cd.production_id as prodId,
  562. cd.id AS cId,
  563. wtr.handler_id,
  564. cd.commission_rate_id,
  565. cd.declare_user_id,
  566. cd.created
  567. FROM
  568. work_task_record wtr
  569. INNER JOIN (
  570. SELECT
  571. wn.NAME,
  572. wn.CODE,
  573. wfni.id,
  574. wfni.business_id,
  575. wfni.state,
  576. wfni.business_type
  577. FROM
  578. work_flow_node_instance wfni
  579. LEFT JOIN work_node wn ON wn.id = wfni.node_id
  580. WHERE
  581. wfni.business_type IN ( 'COMMISSION_DECLARE_ASSET_MARKET', 'COMMISSION_DECLARE_ASSET_EVALUATE' )
  582. AND wfni.state = 'PENDING'
  583. AND wfni.deleted = 0
  584. AND wn.deleted = 0
  585. ) wfni ON wtr.instance_id = wfni.id
  586. INNER JOIN (
  587. SELECT id, production_id, business_id AS assetsId, commission_rate_id, declare_result, declare_user_id, created
  588. FROM commission_declare
  589. WHERE deleted = 0 AND declare_result = '审核中'
  590. ) cd ON cd.id = wfni.business_id
  591. WHERE
  592. wtr.handler_id = #{checkVO.handlerId}
  593. ) t
  594. LEFT JOIN user u ON u.id = t.handler_id
  595. LEFT JOIN business_commission_rate bcr ON bcr.id = t.commission_rate_id
  596. LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
  597. LEFT JOIN user u1 ON u1.id = t.declare_user_id
  598. </sql>
  599. <!--查询资产绩效提成申报关联项目信息-->
  600. <select id="selectAssetsSimple" resultType="com.dayou.dto.AssetsDeclareSimpleDTO">
  601. <if test="assetsId!=null and prodId!=null">
  602. SELECT
  603. assets.id as assetsId,
  604. assets.NAME AS orderName,
  605. assets.order_id as orderId,
  606. ap.production_no as reportNo,
  607. ap.id as prodId
  608. FROM
  609. assets
  610. LEFT JOIN ( SELECT id, business_id, production_no FROM assets_production WHERE deleted = 0 ) ap ON
  611. assets.id = ap.business_id
  612. where assets.id = #{assetsId} and ap.id= #{prodId}
  613. </if>
  614. <if test="assetsId!=null and prodId==null">
  615. SELECT
  616. assets.id as assetsId,
  617. assets.NAME AS orderName,
  618. assets.order_id as orderId
  619. FROM
  620. assets
  621. where assets.id = #{assetsId}
  622. </if>
  623. </select>
  624. <!--资产待办绩效申报列表-->
  625. <select id="assetsTodoCheckPage" resultType="com.dayou.vo.CommissionDeclareTodoCheckVO" resultMap="assetsDeclareTodoCheckMap">
  626. <include refid="getAssetsTodoCheck" />
  627. </select>
  628. <!--资产待办绩效申报集合-->
  629. <select id="assetsTodoCheckList" resultType="com.dayou.vo.CommissionDeclareTodoCheckVO" resultMap="assetsDeclareTodoCheckMap">
  630. <include refid="getAssetsTodoCheck" />
  631. LIMIT 8
  632. </select>
  633. <!--更新资产绩效申报提成比列与下限信息-->
  634. <update id="updateAssetsCommissionDeclare">
  635. UPDATE commission_declare
  636. SET ratio = #{declareDTO.ratio},
  637. defined_low_limit_amount = #{declareDTO.definedLowLimitAmount}
  638. WHERE id = #{declareDTO.id}
  639. </update>
  640. </mapper>