PersonalMapper.xml 39 KB

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