PersonalMapper.xml 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800
  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. or wn.NAME like concat('%',#{keyword},'%')
  124. )
  125. </if>
  126. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  127. and p.created &gt;= #{personal.startDate}
  128. </if>
  129. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  130. and p.created &lt;= #{personal.endDate}
  131. </if>
  132. <if test="personal!=null and personal.nodeId!=null">
  133. and wn.id = #{personal.nodeId}
  134. </if>
  135. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  136. and cc1.NAME like concat('%',#{personal.clientName},'%')
  137. </if>
  138. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  139. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  140. </if>
  141. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  142. and u.name like concat('%',#{personal.clientManager},'%')
  143. </if>
  144. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  145. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  146. </if>
  147. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  148. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  149. </if>
  150. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  151. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  152. </if>
  153. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  154. and u4.name like concat('%',#{personal.handlerName},'%')
  155. </if>
  156. <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==true">
  157. and u4.name = '项目作废'
  158. </if>
  159. <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==false">
  160. and u4.name != '项目作废'
  161. </if>
  162. <if test="personal!=null and personal.userIds!=null and personal.userIds.size!=0">
  163. and p.client_manager_id in
  164. <foreach collection="personal.userIds" open="(" close=")" separator="," item="userId">
  165. #{userId}
  166. </foreach>
  167. </if>
  168. order by wf.modified DESC
  169. </select>
  170. <select id="getTerminatedPage" resultType="com.dayou.vo.PersonalVO">
  171. SELECT
  172. wf.id AS currentNodeId,
  173. wf.node_id,
  174. wf.business_id,
  175. wf.business_sub_id,
  176. wf.modified AS nodeTime,
  177. wn.NAME as currentNodeName,
  178. wn.CODE currentNodeCode,
  179. p.id,
  180. p.order_id,
  181. p.location,
  182. p.agent,
  183. p.bailorA,
  184. p.bailorB,
  185. p.bailorA_tel,
  186. p.bailorB_tel,
  187. p.client_manager_id,
  188. p.remark,
  189. pt.acreage,
  190. pt.price,
  191. pt.amount,
  192. cc1.NAME AS clientName,
  193. cc2.NAME AS clientSubName,
  194. cl1.NAME AS contactName,
  195. cl1.mobile AS contactTel,
  196. u.NAME AS clientManager,
  197. u1.NAME AS outwardStaffName,
  198. u2.NAME AS inwardStaffName,
  199. u3.NAME AS pricingStaffName,
  200. u4.name as handlerName,
  201. u4.id as handlerId,
  202. p.created,
  203. wf.comment as comments
  204. FROM
  205. work_flow_node_instance wf
  206. LEFT JOIN work_node wn ON wn.id = wf.node_id
  207. LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
  208. LEFT JOIN user u4 ON u4.id = wtr.handler_id
  209. LEFT JOIN personal p ON p.id = wf.business_id
  210. LEFT JOIN personal_target pt ON pt.personal_id = wf.business_id
  211. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  212. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  213. LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
  214. LEFT JOIN user u ON u.id = p.client_manager_id
  215. LEFT JOIN user u1 ON u1.id = p.outward_staff
  216. LEFT JOIN user u2 ON u2.id = p.inward_staff
  217. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  218. WHERE wf.business_type = 'PERSONAL_BUSINESS'
  219. AND wf.state = 'CLOSED'
  220. AND wf.deleted = 0
  221. AND wn.deleted = 0
  222. AND p.deleted = 0
  223. <if test="keyword!=null and keyword!='' ">
  224. and (
  225. p.location like concat ('%',#{keyword},'%')
  226. or p.order_id like concat('%',#{keyword},'%')
  227. or p.agent like concat('%',#{keyword},'%')
  228. or p.bailorA like concat('%',#{keyword},'%')
  229. or p.bailorB like concat('%',#{keyword},'%')
  230. or cc1.name like concat('%',#{keyword},'%')
  231. or cc2.name like concat('%',#{keyword},'%')
  232. or cl1.name like concat('%',#{keyword},'%')
  233. or p.bailorA_tel like concat('%',#{keyword},'%')
  234. or p.bailorB_tel like concat('%',#{keyword},'%')
  235. )
  236. </if>
  237. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  238. and p.created &gt;= #{personal.startDate}
  239. </if>
  240. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  241. and p.created &lt;= #{personal.endDate}
  242. </if>
  243. <if test="personal!=null and personal.nodeId!=null">
  244. and wn.id = #{personal.nodeId}
  245. </if>
  246. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  247. and cc1.NAME like concat('%',#{personal.clientName},'%')
  248. </if>
  249. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  250. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  251. </if>
  252. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  253. and u.name like concat('%',#{personal.clientManager},'%')
  254. </if>
  255. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  256. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  257. </if>
  258. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  259. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  260. </if>
  261. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  262. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  263. </if>
  264. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  265. and u4.name like concat('%',#{personal.handlerName},'%')
  266. </if>
  267. <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==true">
  268. and u4.name = '项目作废'
  269. </if>
  270. <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==false">
  271. and u4.name != '项目作废'
  272. </if>
  273. <if test="personal!=null and personal.userIds!=null and personal.userIds.size!=0">
  274. and p.client_manager_id in
  275. <foreach collection="personal.userIds" open="(" close=")" separator="," item="userId">
  276. #{userId}
  277. </foreach>
  278. </if>
  279. order by wf.modified desc
  280. </select>
  281. <select id="getDetail" parameterType="java.lang.Long" resultType="com.dayou.vo.PersonalVO">
  282. SELECT
  283. p.*,
  284. cc1.NAME AS clientName,
  285. cc2.NAME AS clientSubName,
  286. cl1.NAME AS contactName,
  287. cl1.mobile AS contactTel,
  288. cl1.duty AS cDuty,
  289. cl1.department as cDepartment,
  290. u.NAME AS clientManager,
  291. u1.NAME AS outwardStaffName,
  292. u2.NAME AS inwardStaffName,
  293. u3.NAME AS pricingStaffName,
  294. cc3.name as tTerminalClienteleName,
  295. cc3.phone as tCompanyMobile,
  296. cl2.name as tTerminalClienteleContactName,
  297. cl2.mobile as tMobile
  298. FROM
  299. personal p
  300. LEFT JOIN personal_target pt ON p.id = pt.personal_id
  301. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  302. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  303. LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
  304. left join customer_company cc3 on cc3.id = p.terminal_clientele_id
  305. left join customer_linkman cl2 on cl2.id = p.terminal_clientele_contact_id
  306. LEFT JOIN user u ON u.id = p.client_manager_id
  307. LEFT JOIN user u1 ON u1.id = p.outward_staff
  308. LEFT JOIN user u2 ON u2.id = p.inward_staff
  309. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  310. where p.deleted = 0 and p.id = #{id}
  311. </select>
  312. <select id="getByTargetId" parameterType="java.lang.Long" resultType="com.dayou.entity.Personal">
  313. select id,credentials from personal where id = (select personal_id from personal_target where id = #{targetId} and deleted = 0) and deleted = 0
  314. </select>
  315. <select id="waitingSaveFile" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  316. select
  317. wf.id AS currentNodeId,
  318. wtr.id as taskId,
  319. wtr.created as taskCreated,
  320. p.id,
  321. p.order_id,
  322. p.location,
  323. pt.acreage,
  324. pt.price,
  325. pt.amount,
  326. cc1.NAME AS clientName,
  327. cc2.NAME AS clientSubName,
  328. u.NAME AS clientManager,
  329. u1.NAME AS outwardStaffName,
  330. u2.NAME AS inwardStaffName,
  331. u3.NAME AS pricingStaffName,
  332. p.created,
  333. o.real_amount
  334. from (select id,node_id,business_id from work_flow_node_instance where business_type = "PERSONAL_BUSINESS" and state = 'PENDING' and deleted = 0) wf
  335. LEFT JOIN work_node wn ON wn.id = wf.node_id
  336. LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
  337. LEFT JOIN personal p ON p.id = wf.business_id
  338. LEFT JOIN personal_target pt ON pt.personal_id = wf.business_id
  339. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  340. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  341. LEFT JOIN user u ON u.id = p.client_manager_id
  342. LEFT JOIN user u1 ON u1.id = p.outward_staff
  343. LEFT JOIN user u2 ON u2.id = p.inward_staff
  344. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  345. 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
  346. where wn.code = 'BUSINESS_ARCHIVING'
  347. AND wn.deleted = 0
  348. AND p.deleted = 0
  349. <if test="keyword!=null and keyword!='' ">
  350. and (
  351. p.location like concat ('%',#{keyword},'%')
  352. or p.order_id like concat('%',#{keyword},'%')
  353. or cc1.name like concat('%',#{keyword},'%')
  354. or cc2.name like concat('%',#{keyword},'%')
  355. or p.bailorA_tel like concat('%',#{keyword},'%')
  356. or p.bailorB_tel like concat('%',#{keyword},'%')
  357. )
  358. </if>
  359. order by p.order_id DESC
  360. </select>
  361. <update id="updateSaveFileInfo" parameterType="java.util.List">
  362. update personal set if_save_file = 1 ,save_file_date= now() where id in (
  363. <foreach collection="list" index="index" item="item" separator=",">
  364. #{item}
  365. </foreach>
  366. )
  367. </update>
  368. <select id="saveFileDone" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  369. select
  370. p.id,
  371. p.order_id,
  372. p.location,
  373. pt.acreage,
  374. pt.price,
  375. pt.amount,
  376. cc1.NAME AS clientName,
  377. cc2.NAME AS clientSubName,
  378. u.NAME AS clientManager,
  379. u1.NAME AS outwardStaffName,
  380. u2.NAME AS inwardStaffName,
  381. u3.NAME AS pricingStaffName,
  382. p.created,
  383. o.real_amount,
  384. p.save_file_date
  385. from
  386. personal p
  387. LEFT JOIN personal_target pt ON pt.personal_id = p.id
  388. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  389. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  390. LEFT JOIN user u ON u.id = p.client_manager_id
  391. LEFT JOIN user u1 ON u1.id = p.outward_staff
  392. LEFT JOIN user u2 ON u2.id = p.inward_staff
  393. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  394. 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
  395. where
  396. p.deleted = 0 and p.if_save_file = 1 and pt.deleted= 0
  397. <if test="keyword!=null and keyword!='' ">
  398. and (
  399. p.location like concat ('%',#{keyword},'%')
  400. or p.order_id like concat('%',#{keyword},'%')
  401. or p.bailorA like concat('%',#{keyword},'%')
  402. or p.bailorB like concat('%',#{keyword},'%')
  403. or cc1.name like concat('%',#{keyword},'%')
  404. or cc2.name like concat('%',#{keyword},'%')
  405. or p.bailorA_tel like concat('%',#{keyword},'%')
  406. or p.bailorB_tel like concat('%',#{keyword},'%')
  407. )
  408. </if>
  409. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  410. and p.created &gt;= #{personal.startDate}
  411. </if>
  412. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  413. and p.created &lt;= #{personal.endDate}
  414. </if>
  415. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  416. and cc1.NAME like concat('%',#{personal.clientName},'%')
  417. </if>
  418. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  419. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  420. </if>
  421. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  422. and u.name like concat('%',#{personal.clientManager},'%')
  423. </if>
  424. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  425. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  426. </if>
  427. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  428. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  429. </if>
  430. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  431. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  432. </if>
  433. </select>
  434. <sql id="myOrderSql">
  435. select
  436. p.id,
  437. p.order_id,
  438. p.location,
  439. p.location as orderName,
  440. pt.acreage,
  441. pt.price,
  442. pt.amount,
  443. cc1.NAME AS clientName,
  444. cc2.NAME AS clientSubName,
  445. p.agent,
  446. cl.name as contactName,
  447. p.bailorA,
  448. p.bailorB,
  449. cl.mobile as contactTel,
  450. u1.NAME AS outwardStaffName,
  451. u2.NAME AS inwardStaffName,
  452. u3.NAME AS pricingStaffName,
  453. p.created,
  454. o.real_amount,
  455. o.should_amount,
  456. p.save_file_date,
  457. o.id as orderFundId,
  458. fi.invoiceAmount,
  459. pp.productions
  460. from
  461. personal p
  462. LEFT JOIN personal_target pt ON pt.personal_id = p.id
  463. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  464. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  465. left join customer_linkman cl on cl.id = p.clientele_contact_id
  466. LEFT JOIN user u1 ON u1.id = p.outward_staff
  467. LEFT JOIN user u2 ON u2.id = p.inward_staff
  468. LEFT JOIN user u3 ON u3.id = p.pricing_staff
  469. 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
  470. 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
  471. LEFT JOIN ( SELECT target_id, GROUP_CONCAT( case production when 'STATEMENT' then '意见书' when 'FINAL' then '结果报告' when 'TECHNIC' then '技术报告' when 'LETTER' then '复评函' end )as productions FROM personal_production WHERE deleted = 0 AND production_time IS NOT NULL GROUP BY target_id ) pp on pp.target_id = pt.id
  472. where
  473. p.deleted = 0 and p.client_manager_id = #{personal.clientManagerId}
  474. <if test="keyword!=null and keyword!='' ">
  475. and (
  476. p.location like concat ('%',#{keyword},'%')
  477. or p.order_id like concat('%',#{keyword},'%')
  478. or p.agent like concat('%',#{keyword},'%')
  479. or p.bailorA like concat('%',#{keyword},'%')
  480. or p.bailorB like concat('%',#{keyword},'%')
  481. or cc1.name like concat('%',#{keyword},'%')
  482. or cc2.name like concat('%',#{keyword},'%')
  483. or p.bailorA_tel like concat('%',#{keyword},'%')
  484. or p.bailorB_tel like concat('%',#{keyword},'%')
  485. )
  486. </if>
  487. <if test="personal!=null and personal.orderId!=null">
  488. AND p.order_id like concat('%',#{personal.orderId},'%')
  489. </if>
  490. <if test="personal!=null and personal.bailor!=null">
  491. AND (
  492. p.bailorA like concat('%',#{personal.bailor},'%')
  493. or p.bailorB like concat('%',#{personal.bailor},'%')
  494. )
  495. </if>
  496. <if test="personal!=null and personal.clientName!=null">
  497. AND cc1.name like concat('%',#{personal.clientName},'%')
  498. </if>
  499. <if test="personal!=null and personal.clientSubName!=null">
  500. AND cc2.name like concat('%',#{personal.clientSubName},'%')
  501. </if>
  502. <if test="personal!=null and personal.shouldAmount!=null">
  503. AND o.should_amount = #{personal.shouldAmount}
  504. </if>
  505. <if test="personal!=null and personal.invoiceAmountCondition!=null">
  506. AND fi.invoiceAmount = #{personal.invoiceAmountCondition}
  507. </if>
  508. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  509. and p.created &gt;= #{personal.startDate}
  510. </if>
  511. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  512. and p.created &lt;= #{personal.endDate}
  513. </if>
  514. <if test="personal!=null and personal.nodeCode!=null and personal.nodeCode!=''">
  515. and wn.code = #{personal.nodeCode}
  516. </if>
  517. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  518. and cc1.NAME like concat('%',#{personal.clientName},'%')
  519. </if>
  520. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  521. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  522. </if>
  523. <if test="personal!=null and personal.productions!=null and personal.productions!='' ">
  524. and pp.productions like concat('%',#{personal.productions},'%')
  525. </if>
  526. ORDER BY
  527. <if test="personal!=null and personal.invoiceAmount!=null">
  528. fi.invoiceAmount=${personal.invoiceAmount} desc,
  529. </if>
  530. p.created DESC
  531. </sql>
  532. <select id="myOrder" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  533. <include refid="myOrderSql"/>
  534. </select>
  535. <select id="exportMyOrder" resultType="com.dayou.vo.PersonalVO">
  536. <include refid="myOrderSql"/>
  537. </select>
  538. <select id="waitingAllotOrderPage" resultType="com.dayou.vo.PersonalVO">
  539. SELECT
  540. wfni.*,
  541. p.location,
  542. p.clientele_type,
  543. p.agent,
  544. p.bailorA,
  545. p.bailorA_tel,
  546. p.bailorB,
  547. p.bailorB_tel,
  548. cc1.NAME AS clientName,
  549. cc2.NAME AS clientSubName,
  550. cl1.NAME AS contactName,
  551. cl1.mobile AS contactTel,
  552. u.NAME AS clientManager,
  553. c.comments
  554. FROM
  555. ( 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
  556. left join work_node wn on (wn.id = wf.node_id and wf.flow_id = wn.flow_id)
  557. WHERE wf.business_type = 'PERSONAL_BUSINESS' AND wf.state = 'PENDING' AND wf.deleted = 0 and wn.code = 'DEPARTMENT_ALLOCATION') wfni
  558. LEFT JOIN personal p ON p.id = wfni.id
  559. LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
  560. LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
  561. LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
  562. LEFT JOIN `user` u ON u.id = p.client_manager_id
  563. left join (
  564. select business_id,comments from work_flow_log where concat(business_id,created) in (
  565. select concat(business_id,max(created)) from work_flow_log where business_type = 'PERSONAL_BUSINESS' and comments is not null group BY business_id
  566. )
  567. ) c on c.business_id = p.id
  568. WHERE
  569. p.deleted = 0
  570. <if test="keyword!=null and keyword!='' ">
  571. and (
  572. p.location like concat ('%',#{keyword},'%')
  573. or p.order_id like concat('%',#{keyword},'%')
  574. or p.agent like concat('%',#{keyword},'%')
  575. or p.bailorA like concat('%',#{keyword},'%')
  576. or p.bailorB like concat('%',#{keyword},'%')
  577. or cc1.name like concat('%',#{keyword},'%')
  578. or cc2.name like concat('%',#{keyword},'%')
  579. or cl1.name like concat('%',#{keyword},'%')
  580. or p.bailorA_tel like concat('%',#{keyword},'%')
  581. or p.bailorB_tel like concat('%',#{keyword},'%')
  582. )
  583. </if>
  584. order by p.created DESC
  585. </select>
  586. <update id="batchUpdateOutWardStaffId">
  587. update personal set outward_staff = #{userId} ,pricing_staff = #{priceStaffId} where id in (
  588. <foreach collection="list" item="item" separator="," index="index">
  589. #{item}
  590. </foreach>
  591. )
  592. </update>
  593. <select id="selectOrder" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
  594. SELECT
  595. p.id,
  596. p.order_id,
  597. p.location,
  598. p.agent,
  599. p.bailorA,
  600. p.bailorB,
  601. p.bailorA_tel,
  602. p.bailorB_tel,
  603. p.client_manager_id,
  604. p.remark,
  605. pt.acreage,
  606. pt.price,
  607. pt.amount,
  608. (select created from work_flow_log where instance_id =
  609. (select id from work_flow_node_instance where business_type = 'PERSONAL_BUSINESS' and deleted = 0 and business_id = p.id and node_id = 100 ) order by created desc limit 1) AS valueTiming,
  610. found.real_amount,
  611. cc1.NAME AS clientName,
  612. cc2.NAME AS clientSubName,
  613. cl1.NAME AS contactName,
  614. cl1.mobile AS contactTel,
  615. u.NAME AS clientManager,
  616. u1.NAME AS outwardStaffName,
  617. u2.NAME AS inwardStaffName,
  618. u3.NAME AS pricingStaffName,
  619. p.created,
  620. p.created as xCreated,
  621. pp.productions,
  622. p.evaluate_aim
  623. FROM
  624. personal p
  625. LEFT JOIN (select id, personal_id,acreage,price,amount,created from personal_target where deleted = 0) pt ON pt.personal_id = p.id
  626. LEFT JOIN (
  627. SELECT
  628. f.business_id,
  629. f.real_amount
  630. FROM
  631. order_fund f
  632. WHERE
  633. f.business_type = 'PERSONAL_BUSINESS'
  634. AND f.deleted = 0
  635. ) found ON found.business_id = p.id
  636. LEFT JOIN (select id,name from customer_company where deleted=0) cc1 ON cc1.id = p.clientele_id
  637. LEFT JOIN (select id,name from customer_company where deleted=0) cc2 ON cc2.id = p.clientele_sub_id
  638. LEFT JOIN (select id,name,mobile from customer_linkman where deleted = 0) cl1 ON cl1.id = p.clientele_contact_id
  639. LEFT JOIN (select id,name from user where deleted = 0) u ON u.id = p.client_manager_id
  640. LEFT JOIN (select id,name from user where deleted = 0) u1 ON u1.id = p.outward_staff
  641. LEFT JOIN (select id,name from user where deleted = 0) u2 ON u2.id = p.inward_staff
  642. LEFT JOIN (select id,name from user where deleted = 0) u3 ON u3.id = p.pricing_staff
  643. LEFT JOIN ( SELECT target_id, GROUP_CONCAT( case production when 'STATEMENT' then '意见书' when 'FINAL' then '结果报告' when 'TECHNIC' then '技术报告' end )as productions FROM personal_production WHERE deleted = 0 AND production_time IS NOT NULL GROUP BY target_id ) pp on pp.target_id = pt.id
  644. WHERE
  645. p.deleted = 0
  646. <if test="keyword!=null and keyword!='' ">
  647. and (
  648. p.location like concat ('%',#{keyword},'%')
  649. or p.order_id like concat('%',#{keyword},'%')
  650. or p.agent like concat('%',#{keyword},'%')
  651. or p.bailorA like concat('%',#{keyword},'%')
  652. or p.bailorB like concat('%',#{keyword},'%')
  653. or cc1.name like concat('%',#{keyword},'%')
  654. or cc2.name like concat('%',#{keyword},'%')
  655. or cl1.name like concat('%',#{keyword},'%')
  656. or p.bailorA_tel like concat('%',#{keyword},'%')
  657. or p.bailorB_tel like concat('%',#{keyword},'%')
  658. )
  659. </if>
  660. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==true ">
  661. and (found.real_amount is not null and found.real_amount !=0)
  662. </if>
  663. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==false ">
  664. and (found.real_amount is null or found.real_amount=0)
  665. </if>
  666. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  667. and p.created &gt;= #{personal.startDate}
  668. </if>
  669. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  670. and p.created &lt;= #{personal.endDate}
  671. </if>
  672. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  673. and cc1.NAME like concat('%',#{personal.clientName},'%')
  674. </if>
  675. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  676. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  677. </if>
  678. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  679. and u.name like concat('%',#{personal.clientManager},'%')
  680. </if>
  681. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  682. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  683. </if>
  684. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  685. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  686. </if>
  687. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  688. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  689. </if>
  690. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  691. and u4.name like concat('%',#{personal.handlerName},'%')
  692. </if>
  693. <if test="personal!=null and personal.productions!=null and personal.productions!='' ">
  694. and pp.productions like concat('%',#{personal.productions},'%')
  695. </if>
  696. <if test="personal!=null and personal.evaluateAim!=null and personal.evaluateAim!='' ">
  697. and p.evaluate_aim = #{personal.evaluateAim}
  698. </if>
  699. order by p.created desc
  700. </select>
  701. <select id="getAllOrderCount" parameterType="com.dayou.vo.PersonalVO" resultType="java.lang.Long">
  702. SELECT
  703. count(1)
  704. FROM
  705. personal p
  706. LEFT JOIN (select id, personal_id,acreage,price,amount,created from personal_target where deleted = 0) pt ON pt.personal_id = p.id
  707. LEFT JOIN (
  708. SELECT
  709. f.business_id,
  710. f.real_amount
  711. FROM
  712. order_fund f
  713. WHERE
  714. f.business_type = 'PERSONAL_BUSINESS'
  715. AND f.deleted = 0
  716. ) found ON found.business_id = p.id
  717. left join (select personal_id, created from personal_scene) ps on ps.personal_id = p.id
  718. LEFT JOIN (select id,name from customer_company where deleted=0) cc1 ON cc1.id = p.clientele_id
  719. LEFT JOIN (select id,name from customer_company where deleted=0) cc2 ON cc2.id = p.clientele_sub_id
  720. LEFT JOIN (select id,name,mobile from customer_linkman where deleted = 0) cl1 ON cl1.id = p.clientele_contact_id
  721. LEFT JOIN (select id,name from user where deleted = 0) u ON u.id = p.client_manager_id
  722. LEFT JOIN (select id,name from user where deleted = 0) u1 ON u1.id = p.outward_staff
  723. LEFT JOIN (select id,name from user where deleted = 0) u2 ON u2.id = p.inward_staff
  724. LEFT JOIN (select id,name from user where deleted = 0) u3 ON u3.id = p.pricing_staff
  725. LEFT JOIN ( SELECT target_id, GROUP_CONCAT( case production when 'STATEMENT' then '意见书' when 'FINAL' then '结果报告' when 'TECHNIC' then '技术报告' when 'LETTER' then '复评函' end )as productions FROM personal_production WHERE deleted = 0 AND production_time IS NOT NULL GROUP BY target_id ) pp on pp.target_id = pt.id
  726. WHERE
  727. p.deleted = 0
  728. <if test="keyword!=null and keyword!='' ">
  729. and (
  730. p.location like concat ('%',#{keyword},'%')
  731. or p.order_id like concat('%',#{keyword},'%')
  732. or p.agent like concat('%',#{keyword},'%')
  733. or p.bailorA like concat('%',#{keyword},'%')
  734. or p.bailorB like concat('%',#{keyword},'%')
  735. or cc1.name like concat('%',#{keyword},'%')
  736. or cc2.name like concat('%',#{keyword},'%')
  737. or cl1.name like concat('%',#{keyword},'%')
  738. or p.bailorA_tel like concat('%',#{keyword},'%')
  739. or p.bailorB_tel like concat('%',#{keyword},'%')
  740. )
  741. </if>
  742. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==true ">
  743. and (found.real_amount is not null and found.real_amount !=0)
  744. </if>
  745. <if test="personal!=null and personal.personalRealAmount!=null and personal.personalRealAmount==false ">
  746. and (found.real_amount is null or found.real_amount=0)
  747. </if>
  748. <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
  749. and p.created &gt;= #{personal.startDate}
  750. </if>
  751. <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
  752. and p.created &lt;= #{personal.endDate}
  753. </if>
  754. <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
  755. and cc1.NAME like concat('%',#{personal.clientName},'%')
  756. </if>
  757. <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
  758. and cc2.NAME like concat('%',#{personal.clientSubName},'%')
  759. </if>
  760. <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
  761. and u.name like concat('%',#{personal.clientManager},'%')
  762. </if>
  763. <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
  764. and u1.name like concat('%',#{personal.outwardStaffName},'%')
  765. </if>
  766. <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
  767. and u2.name like concat('%',#{personal.inwardStaffName},'%')
  768. </if>
  769. <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
  770. and u3.name like concat('%',#{personal.pricingStaffName},'%')
  771. </if>
  772. <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
  773. and u4.name like concat('%',#{personal.handlerName},'%')
  774. </if>
  775. <if test="personal!=null and personal.evaluateAim!=null and personal.evaluateAim!='' ">
  776. and p.evaluate_aim = #{personal.evaluateAim}
  777. </if>
  778. <if test="personal!=null and personal.productions!=null and personal.productions!='' ">
  779. and pp.productions like concat('%',#{personal.productions},'%')
  780. </if>
  781. order by p.created desc
  782. </select>
  783. </mapper>