PersonalMapper.xml 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  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.PersonalMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.dayou.entity.Personal">
  6. <result column="id" property="id" />
  7. <result column="created" property="created" />
  8. <result column="modified" property="modified" />
  9. <result column="deleted" property="deleted" />
  10. <result column="order_id" property="orderId" />
  11. <result column="location" property="location" />
  12. <result column="evaluate_aim" property="evaluateAim" />
  13. <result column="purpose" property="purpose" />
  14. <result column="clientele_type" property="clienteleType" />
  15. <result column="clientele_id" property="clienteleId" />
  16. <result column="clientele_sub_id" property="clienteleSubId" />
  17. <result column="clientele_contact_id" property="clienteleContactId" />
  18. <result column="agent" property="agent" />
  19. <result column="loan_nature" property="loanNature" />
  20. <result column="loan_aim" property="loanAim" />
  21. <result column="loan_limit" property="loanLimit" />
  22. <result column="loan_period" property="loanPeriod" />
  23. <result column="loan_expire" property="loanExpire" />
  24. <result column="bailorA" property="bailorA" />
  25. <result column="bailorB" property="bailorB" />
  26. <result column="bailorA_tel" property="bailoraTel" />
  27. <result column="bailorB_tel" property="bailorbTel" />
  28. <result column="terminal_clientele_type" property="terminalClienteleType" />
  29. <result column="terminal_clientele_contact_id" property="terminalClienteleContactId" />
  30. <result column="terminal_clientele_id" property="terminalClienteleId" />
  31. <result column="credentials" property="credentials" />
  32. <result column="client_manager_id" property="clientManagerId" />
  33. <result column="outward_staff" property="outwardStaff" />
  34. <result column="inward_staff" property="inwardStaff" />
  35. <result column="pricing_staff" property="pricingStaff" />
  36. <result column="remark" property="remark" />
  37. <result column="save_file_check" property="saveFileCheck" />
  38. <result column="if_save_file" property="ifSaveFile" />
  39. <result column="save_file_date" property="saveFileDate" />
  40. </resultMap>
  41. <!-- 通用查询结果列 -->
  42. <sql id="Base_Column_List">
  43. id,
  44. created,
  45. modified,
  46. deleted,
  47. order_id, location, evaluate_aim, purpose, clientele_type, clientele_id, clientele_sub_id, clientele_contact_id, agent, loan_nature, loan_aim, loan_limit, loan_period, loan_expire, bailorA, bailorB, bailorA_tel, bailorB_tel, terminal_clientele_type, terminal_clientele_contact_id, terminal_clientele_id, credentials, is_online, client_manager_id, outward_staff, inward_staff, pricing_staff, remark
  48. </sql>
  49. <sql id="Common_query_sql">
  50. SELECT
  51. wf.id AS currentNodeId,
  52. wf.node_id,
  53. wf.business_id,
  54. wf.business_sub_id,
  55. wf.modified AS nodeTime,
  56. wn.NAME as currentNodeName,
  57. wn.CODE currentNodeCode,
  58. p.id,
  59. p.order_id,
  60. p.location,
  61. p.agent,
  62. p.bailorA,
  63. p.bailorB,
  64. p.bailorA_tel,
  65. p.bailorB_tel,
  66. p.client_manager_id,
  67. p.remark,
  68. pt.acreage,
  69. pt.price,
  70. pt.amount,
  71. cc1.NAME AS clientName,
  72. cc2.NAME AS clientSubName,
  73. cl1.NAME AS contactName,
  74. cl1.mobile AS contactTel,
  75. u.NAME AS clientManager,
  76. u1.NAME AS outwardStaffName,
  77. u2.NAME AS inwardStaffName,
  78. u3.NAME AS pricingStaffName,
  79. u4.name as handlerName,
  80. u4.id as handlerId,
  81. p.created,
  82. c.comments
  83. FROM
  84. work_flow_node_instance wf
  85. LEFT JOIN work_node wn ON wn.id = wf.node_id
  86. LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
  87. LEFT JOIN user u4 ON u4.id = wtr.handler_id
  88. LEFT JOIN personal p ON p.id = wf.business_id
  89. LEFT JOIN personal_target pt ON pt.personal_id = wf.business_id
  90. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  91. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  92. LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
  93. LEFT JOIN user u ON u.id = p.client_manager_id
  94. LEFT JOIN user u1 ON u1.id = p.outward_staff
  95. LEFT JOIN user u2 ON u2.id = p.inward_staff
  96. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  97. left join (
  98. select business_id,comments from work_flow_log where concat(business_id,modified) in (
  99. select concat(business_id,max(modified)) from work_flow_log where business_type = 'PERSONAL_BUSINESS' and comments is not null group BY business_id
  100. )
  101. ) c on p.id = c.business_id
  102. WHERE
  103. wf.business_type = "PERSONAL_BUSINESS"
  104. AND wf.state = 'PENDING'
  105. AND wf.deleted = 0
  106. AND wn.deleted = 0
  107. AND p.deleted = 0
  108. </sql>
  109. <select id="xSelectPage" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  110. <include refid="Common_query_sql" />
  111. <if test="keyword!=null and keyword!='' ">
  112. and (
  113. p.location like concat ('%',#{keyword},'%')
  114. or p.order_id like concat('%',#{keyword},'%')
  115. or p.agent like concat('%',#{keyword},'%')
  116. or p.bailorA like concat('%',#{keyword},'%')
  117. or p.bailorB like concat('%',#{keyword},'%')
  118. or cc1.name like concat('%',#{keyword},'%')
  119. or cc2.name like concat('%',#{keyword},'%')
  120. or cl1.name like concat('%',#{keyword},'%')
  121. or p.bailorA_tel like concat('%',#{keyword},'%')
  122. or p.bailorB_tel like concat('%',#{keyword},'%')
  123. )
  124. </if>
  125. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  126. and p.created &gt;= #{personal.startDate}
  127. </if>
  128. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  129. and p.created &lt;= #{personal.endDate}
  130. </if>
  131. <if test="personal!=null and personal.nodeId!=null">
  132. and wn.id = #{personal.nodeId}
  133. </if>
  134. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  135. and cc1.NAME like concat('%',#{personal.clientName},'%')
  136. </if>
  137. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  138. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  139. </if>
  140. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  141. and u.name like concat('%',#{personal.clientManager},'%')
  142. </if>
  143. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  144. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  145. </if>
  146. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  147. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  148. </if>
  149. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  150. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  151. </if>
  152. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  153. and u4.name like concat('%',#{personal.handlerName},'%')
  154. </if>
  155. <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==true">
  156. and u4.name = '项目作废'
  157. </if>
  158. <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==false">
  159. and u4.name != '项目作废'
  160. </if>
  161. <if test="personal!=null and personal.userIds!=null and personal.userIds.size!=0">
  162. and p.client_manager_id in
  163. <foreach collection="personal.userIds" open="(" close=")" separator="," item="userId">
  164. #{userId}
  165. </foreach>
  166. </if>
  167. order by wf.modified DESC
  168. </select>
  169. <select id="getDetail" parameterType="java.lang.Long" resultType="com.dayou.vo.PersonalVO">
  170. SELECT
  171. p.*,
  172. cc1.NAME AS clientName,
  173. cc2.NAME AS clientSubName,
  174. cl1.NAME AS contactName,
  175. cl1.mobile AS contactTel,
  176. cl1.duty AS cDuty,
  177. cl1.department as cDepartment,
  178. u.NAME AS clientManager,
  179. u1.NAME AS outwardStaffName,
  180. u2.NAME AS inwardStaffName,
  181. u3.NAME AS pricingStaffName,
  182. cc3.name as tTerminalClienteleName,
  183. cc3.phone as tCompanyMobile,
  184. cl2.name as tTerminalClienteleContactName,
  185. cl2.mobile as tMobile
  186. FROM
  187. personal p
  188. LEFT JOIN personal_target pt ON p.id = pt.personal_id
  189. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  190. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  191. LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
  192. left join customer_company cc3 on cc3.id = p.terminal_clientele_id
  193. left join customer_linkman cl2 on cl2.id = p.terminal_clientele_contact_id
  194. LEFT JOIN user u ON u.id = p.client_manager_id
  195. LEFT JOIN user u1 ON u1.id = p.outward_staff
  196. LEFT JOIN user u2 ON u2.id = p.inward_staff
  197. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  198. where p.deleted = 0 and p.id = #{id}
  199. </select>
  200. <select id="getByTargetId" parameterType="java.lang.Long" resultType="com.dayou.entity.Personal">
  201. select id,credentials from personal where id = (select personal_id from personal_target where id = #{targetId} and deleted = 0) and deleted = 0
  202. </select>
  203. <select id="waitingSaveFile" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  204. select
  205. wf.id AS currentNodeId,
  206. wtr.id as taskId,
  207. wtr.created as taskCreated,
  208. p.id,
  209. p.order_id,
  210. p.location,
  211. pt.acreage,
  212. pt.price,
  213. pt.amount,
  214. cc1.NAME AS clientName,
  215. cc2.NAME AS clientSubName,
  216. u.NAME AS clientManager,
  217. u1.NAME AS outwardStaffName,
  218. u2.NAME AS inwardStaffName,
  219. u3.NAME AS pricingStaffName,
  220. p.created,
  221. o.real_amount
  222. from (select id,node_id,business_id from work_flow_node_instance where business_type = "PERSONAL_BUSINESS" and state = 'PENDING' and deleted = 0) wf
  223. LEFT JOIN work_node wn ON wn.id = wf.node_id
  224. LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
  225. LEFT JOIN personal p ON p.id = wf.business_id
  226. LEFT JOIN personal_target pt ON pt.personal_id = wf.business_id
  227. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  228. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  229. LEFT JOIN user u ON u.id = p.client_manager_id
  230. LEFT JOIN user u1 ON u1.id = p.outward_staff
  231. LEFT JOIN user u2 ON u2.id = p.inward_staff
  232. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  233. left join (select business_id,real_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
  234. where wn.code = 'BUSINESS_ARCHIVING'
  235. AND wn.deleted = 0
  236. AND p.deleted = 0
  237. <if test="keyword!=null and keyword!='' ">
  238. and (
  239. p.location like concat ('%',#{keyword},'%')
  240. or p.order_id like concat('%',#{keyword},'%')
  241. or cc1.name like concat('%',#{keyword},'%')
  242. or cc2.name like concat('%',#{keyword},'%')
  243. or p.bailorA_tel like concat('%',#{keyword},'%')
  244. or p.bailorB_tel like concat('%',#{keyword},'%')
  245. )
  246. </if>
  247. order by p.order_id DESC
  248. </select>
  249. <update id="updateSaveFileInfo" parameterType="java.util.List">
  250. update personal set if_save_file = 1 ,save_file_date= now() where id in (
  251. <foreach collection="list" index="index" item="item" separator=",">
  252. #{item}
  253. </foreach>
  254. )
  255. </update>
  256. <select id="saveFileDone" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  257. select
  258. p.id,
  259. p.order_id,
  260. p.location,
  261. pt.acreage,
  262. pt.price,
  263. pt.amount,
  264. cc1.NAME AS clientName,
  265. cc2.NAME AS clientSubName,
  266. u.NAME AS clientManager,
  267. u1.NAME AS outwardStaffName,
  268. u2.NAME AS inwardStaffName,
  269. u3.NAME AS pricingStaffName,
  270. p.created,
  271. o.real_amount,
  272. p.save_file_date
  273. from
  274. personal p
  275. LEFT JOIN personal_target pt ON pt.personal_id = p.id
  276. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  277. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  278. LEFT JOIN user u ON u.id = p.client_manager_id
  279. LEFT JOIN user u1 ON u1.id = p.outward_staff
  280. LEFT JOIN user u2 ON u2.id = p.inward_staff
  281. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  282. left join (select business_id,real_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
  283. where
  284. p.deleted = 0 and p.if_save_file = 1 and pt.deleted= 0
  285. <if test="keyword!=null and keyword!='' ">
  286. and (
  287. p.location like concat ('%',#{keyword},'%')
  288. or p.order_id like concat('%',#{keyword},'%')
  289. or p.bailorA like concat('%',#{keyword},'%')
  290. or p.bailorB like concat('%',#{keyword},'%')
  291. or cc1.name like concat('%',#{keyword},'%')
  292. or cc2.name like concat('%',#{keyword},'%')
  293. or p.bailorA_tel like concat('%',#{keyword},'%')
  294. or p.bailorB_tel like concat('%',#{keyword},'%')
  295. )
  296. </if>
  297. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  298. and p.created &gt;= #{personal.startDate}
  299. </if>
  300. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  301. and p.created &lt;= #{personal.endDate}
  302. </if>
  303. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  304. and cc1.NAME like concat('%',#{personal.clientName},'%')
  305. </if>
  306. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  307. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  308. </if>
  309. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  310. and u.name like concat('%',#{personal.clientManager},'%')
  311. </if>
  312. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  313. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  314. </if>
  315. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  316. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  317. </if>
  318. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  319. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  320. </if>
  321. </select>
  322. <sql id="myOrderSql">
  323. select
  324. p.id,
  325. p.order_id,
  326. p.location,
  327. p.location as orderName,
  328. pt.acreage,
  329. pt.price,
  330. pt.amount,
  331. cc1.NAME AS clientName,
  332. cc2.NAME AS clientSubName,
  333. p.agent,
  334. cl.name as contactName,
  335. p.bailorA,
  336. p.bailorB,
  337. cl.mobile as contactTel,
  338. u1.NAME AS outwardStaffName,
  339. u2.NAME AS inwardStaffName,
  340. u3.NAME AS pricingStaffName,
  341. p.created,
  342. o.real_amount,
  343. o.should_amount,
  344. p.save_file_date,
  345. o.id as orderFundId,
  346. fi.invoiceAmount
  347. from
  348. personal p
  349. LEFT JOIN personal_target pt ON pt.personal_id = p.id
  350. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  351. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  352. left join customer_linkman cl on cl.id = p.clientele_contact_id
  353. LEFT JOIN user u1 ON u1.id = p.outward_staff
  354. LEFT JOIN user u2 ON u2.id = p.inward_staff
  355. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  356. left join (select id,business_id,real_amount,should_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
  357. left join (select sum(real_amount) as invoiceAmount,order_fund_id from finance_invoice where state ='已开票' and deleted = 0 GROUP BY order_fund_id) fi on fi.order_fund_id = o.id
  358. where
  359. p.deleted = 0 and p.client_manager_id = #{personal.clientManagerId}
  360. AND IF(#{personal.hasRealAmount}, o.real_amount IS NOT NULL, o.real_amount IS NULL)
  361. <if test="keyword!=null and keyword!='' ">
  362. and (
  363. p.location like concat ('%',#{keyword},'%')
  364. or p.order_id like concat('%',#{keyword},'%')
  365. or p.agent like concat('%',#{keyword},'%')
  366. or p.bailorA like concat('%',#{keyword},'%')
  367. or p.bailorB like concat('%',#{keyword},'%')
  368. or cc1.name like concat('%',#{keyword},'%')
  369. or cc2.name like concat('%',#{keyword},'%')
  370. or p.bailorA_tel like concat('%',#{keyword},'%')
  371. or p.bailorB_tel like concat('%',#{keyword},'%')
  372. )
  373. </if>
  374. <if test="personal!=null and personal.orderId!=null">
  375. AND p.order_id like concat('%',#{personal.orderId},'%')
  376. </if>
  377. <if test="personal!=null and personal.bailor!=null">
  378. AND (
  379. p.bailorA like concat('%',#{personal.bailor},'%')
  380. or p.bailorB like concat('%',#{personal.bailor},'%')
  381. )
  382. </if>
  383. <if test="personal!=null and personal.clientName!=null">
  384. AND cc1.name like concat('%',#{personal.clientName},'%')
  385. </if>
  386. <if test="personal!=null and personal.clientSubName!=null">
  387. AND cc2.name like concat('%',#{personal.clientSubName},'%')
  388. </if>
  389. <if test="personal!=null and personal.shouldAmount!=null">
  390. AND o.should_amount = #{personal.shouldAmount}
  391. </if>
  392. <if test="personal!=null and personal.invoiceAmountCondition!=null">
  393. AND fi.invoiceAmount = #{personal.invoiceAmountCondition}
  394. </if>
  395. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  396. and p.created &gt;= #{personal.startDate}
  397. </if>
  398. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  399. and p.created &lt;= #{personal.endDate}
  400. </if>
  401. <if test="personal!=null and personal.nodeCode!=null and personal.nodeCode!=''">
  402. and wn.code = #{personal.nodeCode}
  403. </if>
  404. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  405. and cc1.NAME like concat('%',#{personal.clientName},'%')
  406. </if>
  407. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  408. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  409. </if>
  410. ORDER BY
  411. <if test="personal!=null and personal.invoiceAmount!=null">
  412. fi.invoiceAmount=${personal.invoiceAmount} desc,
  413. </if>
  414. p.created DESC
  415. </sql>
  416. <select id="myOrder" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  417. <include refid="myOrderSql"/>
  418. </select>
  419. <select id="exportMyOrder" resultType="com.dayou.vo.PersonalVO">
  420. <include refid="myOrderSql"/>
  421. </select>
  422. <select id="waitingAllotOrderPage" resultType="com.dayou.vo.PersonalVO">
  423. SELECT
  424. wfni.*,
  425. p.location,
  426. p.clientele_type,
  427. p.agent,
  428. p.bailorA,
  429. p.bailorA_tel,
  430. p.bailorB,
  431. p.bailorB_tel,
  432. cc1.NAME AS clientName,
  433. cc2.NAME AS clientSubName,
  434. cl1.NAME AS contactName,
  435. cl1.mobile AS contactTel,
  436. u.NAME AS clientManager,
  437. c.comments
  438. FROM
  439. ( SELECT wf.id as currentNodeId, wn.name as currentNodeName,wf.node_id, wf.business_id as id, wf.business_sub_id as orderId FROM work_flow_node_instance wf
  440. left join work_node wn on (wn.id = wf.node_id and wf.flow_id = wn.flow_id)
  441. WHERE wf.business_type = 'PERSONAL_BUSINESS' AND wf.state = 'PENDING' AND wf.deleted = 0 and wn.code = 'DEPARTMENT_ALLOCATION') wfni
  442. LEFT JOIN personal p ON p.id = wfni.id
  443. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  444. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  445. LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
  446. LEFT JOIN `user` u ON u.id = p.client_manager_id
  447. left join (
  448. select business_id,comments from work_flow_log where concat(business_id,created) in (
  449. select concat(business_id,max(created)) from work_flow_log where business_type = 'PERSONAL_BUSINESS' and comments is not null group BY business_id
  450. )
  451. ) c on c.business_id = p.id
  452. WHERE
  453. p.deleted = 0
  454. <if test="keyword!=null and keyword!='' ">
  455. and (
  456. p.location like concat ('%',#{keyword},'%')
  457. or p.order_id like concat('%',#{keyword},'%')
  458. or p.agent like concat('%',#{keyword},'%')
  459. or p.bailorA like concat('%',#{keyword},'%')
  460. or p.bailorB like concat('%',#{keyword},'%')
  461. or cc1.name like concat('%',#{keyword},'%')
  462. or cc2.name like concat('%',#{keyword},'%')
  463. or cl1.name like concat('%',#{keyword},'%')
  464. or p.bailorA_tel like concat('%',#{keyword},'%')
  465. or p.bailorB_tel like concat('%',#{keyword},'%')
  466. )
  467. </if>
  468. order by p.created DESC
  469. </select>
  470. <update id="batchUpdateOutWardStaffId">
  471. update personal set outward_staff = #{userId} ,pricing_staff = #{priceStaffId} where id in (
  472. <foreach collection="list" item="item" separator="," index="index">
  473. #{item}
  474. </foreach>
  475. )
  476. </update>
  477. <select id="selectOrder" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  478. SELECT
  479. p.id,
  480. p.order_id,
  481. p.location,
  482. p.agent,
  483. p.bailorA,
  484. p.bailorB,
  485. p.bailorA_tel,
  486. p.bailorB_tel,
  487. p.client_manager_id,
  488. p.remark,
  489. pt.acreage,
  490. pt.price,
  491. pt.amount,
  492. ps.created AS valueTiming,
  493. found.real_amount,
  494. cc1.NAME AS clientName,
  495. cc2.NAME AS clientSubName,
  496. cl1.NAME AS contactName,
  497. cl1.mobile AS contactTel,
  498. u.NAME AS clientManager,
  499. u1.NAME AS outwardStaffName,
  500. u2.NAME AS inwardStaffName,
  501. u3.NAME AS pricingStaffName,
  502. p.created,
  503. p.created as xCreated,
  504. pt.productions
  505. FROM
  506. personal p
  507. LEFT JOIN (select personal_id,acreage,price,amount,created,productions from personal_target where deleted = 0) pt ON pt.personal_id = p.id
  508. LEFT JOIN (
  509. SELECT
  510. f.business_id,
  511. f.real_amount
  512. FROM
  513. order_fund f
  514. WHERE
  515. f.business_type = 'PERSONAL_BUSINESS'
  516. AND f.deleted = 0
  517. ) found ON found.business_id = p.id
  518. left join (select personal_id, created from personal_scene) ps on ps.personal_id = p.id
  519. LEFT JOIN (select id,name from customer_company where deleted=0) cc1 ON cc1.id = p.clientele_id
  520. LEFT JOIN (select id,name from customer_company where deleted=0) cc2 ON cc2.id = p.clientele_sub_id
  521. LEFT JOIN (select id,name,mobile from customer_linkman where deleted = 0) cl1 ON cl1.id = p.clientele_contact_id
  522. LEFT JOIN (select id,name from user where deleted = 0) u ON u.id = p.client_manager_id
  523. LEFT JOIN (select id,name from user where deleted = 0) u1 ON u1.id = p.outward_staff
  524. LEFT JOIN (select id,name from user where deleted = 0) u2 ON u2.id = p.inward_staff
  525. LEFT JOIN (select id,name from user where deleted = 0) u3 ON u3.id = p.pricing_staff
  526. WHERE
  527. p.deleted = 0
  528. <if test="keyword!=null and keyword!='' ">
  529. and (
  530. p.location like concat ('%',#{keyword},'%')
  531. or p.order_id like concat('%',#{keyword},'%')
  532. or p.agent like concat('%',#{keyword},'%')
  533. or p.bailorA like concat('%',#{keyword},'%')
  534. or p.bailorB like concat('%',#{keyword},'%')
  535. or cc1.name like concat('%',#{keyword},'%')
  536. or cc2.name like concat('%',#{keyword},'%')
  537. or cl1.name like concat('%',#{keyword},'%')
  538. or p.bailorA_tel like concat('%',#{keyword},'%')
  539. or p.bailorB_tel like concat('%',#{keyword},'%')
  540. )
  541. </if>
  542. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==true ">
  543. and (found.real_amount is not null and found.real_amount !=0)
  544. </if>
  545. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==false ">
  546. and (found.real_amount is null or found.real_amount=0)
  547. </if>
  548. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  549. and p.created &gt;= #{personal.startDate}
  550. </if>
  551. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  552. and p.created &lt;= #{personal.endDate}
  553. </if>
  554. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  555. and cc1.NAME like concat('%',#{personal.clientName},'%')
  556. </if>
  557. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  558. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  559. </if>
  560. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  561. and u.name like concat('%',#{personal.clientManager},'%')
  562. </if>
  563. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  564. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  565. </if>
  566. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  567. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  568. </if>
  569. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  570. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  571. </if>
  572. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  573. and u4.name like concat('%',#{personal.handlerName},'%')
  574. </if>
  575. <if test="personal!=null and personal.productions!=null and personal.productions!='' ">
  576. and pt.productions like concat('%',#{personal.productions},'%')
  577. </if>
  578. order by p.created desc
  579. </select>
  580. <select id="getAllOrderCount" parameterType="com.dayou.vo.PersonalVO" resultType="java.lang.Long">
  581. SELECT
  582. count(1)
  583. FROM
  584. personal p
  585. LEFT JOIN (select personal_id,acreage,price,amount,created from personal_target where deleted = 0) pt ON pt.personal_id = p.id
  586. LEFT JOIN (
  587. SELECT
  588. f.business_id,
  589. f.real_amount
  590. FROM
  591. order_fund f
  592. WHERE
  593. f.business_type = 'PERSONAL_BUSINESS'
  594. AND f.deleted = 0
  595. ) found ON found.business_id = p.id
  596. left join (select personal_id, created from personal_scene) ps on ps.personal_id = p.id
  597. LEFT JOIN (select id,name from customer_company where deleted=0) cc1 ON cc1.id = p.clientele_id
  598. LEFT JOIN (select id,name from customer_company where deleted=0) cc2 ON cc2.id = p.clientele_sub_id
  599. LEFT JOIN (select id,name,mobile from customer_linkman where deleted = 0) cl1 ON cl1.id = p.clientele_contact_id
  600. LEFT JOIN (select id,name from user where deleted = 0) u ON u.id = p.client_manager_id
  601. LEFT JOIN (select id,name from user where deleted = 0) u1 ON u1.id = p.outward_staff
  602. LEFT JOIN (select id,name from user where deleted = 0) u2 ON u2.id = p.inward_staff
  603. LEFT JOIN (select id,name from user where deleted = 0) u3 ON u3.id = p.pricing_staff
  604. WHERE
  605. p.deleted = 0
  606. <if test="keyword!=null and keyword!='' ">
  607. and (
  608. p.location like concat ('%',#{keyword},'%')
  609. or p.order_id like concat('%',#{keyword},'%')
  610. or p.agent like concat('%',#{keyword},'%')
  611. or p.bailorA like concat('%',#{keyword},'%')
  612. or p.bailorB like concat('%',#{keyword},'%')
  613. or cc1.name like concat('%',#{keyword},'%')
  614. or cc2.name like concat('%',#{keyword},'%')
  615. or cl1.name like concat('%',#{keyword},'%')
  616. or p.bailorA_tel like concat('%',#{keyword},'%')
  617. or p.bailorB_tel like concat('%',#{keyword},'%')
  618. )
  619. </if>
  620. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==true ">
  621. and (found.real_amount is not null and found.real_amount !=0)
  622. </if>
  623. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==false ">
  624. and (found.real_amount is null or found.real_amount=0)
  625. </if>
  626. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  627. and p.created &gt;= #{personal.startDate}
  628. </if>
  629. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  630. and p.created &lt;= #{personal.endDate}
  631. </if>
  632. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  633. and cc1.NAME like concat('%',#{personal.clientName},'%')
  634. </if>
  635. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  636. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  637. </if>
  638. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  639. and u.name like concat('%',#{personal.clientManager},'%')
  640. </if>
  641. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  642. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  643. </if>
  644. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  645. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  646. </if>
  647. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  648. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  649. </if>
  650. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  651. and u4.name like concat('%',#{personal.handlerName},'%')
  652. </if>
  653. order by p.created desc
  654. </select>
  655. </mapper>