AssetsMapper.xml 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811
  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.AssetsMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.dayou.entity.Assets">
  6. <result column="id" property="id"/>
  7. <result column="deleted" property="deleted"/>
  8. <result column="created" property="created"/>
  9. <result column="modified" property="modified"/>
  10. <result column="name" property="name"/>
  11. <result column="order_id" property="orderId"/>
  12. <result column="financial" property="financial"/>
  13. <result column="allot_type" property="allotType"/>
  14. <result column="client_manager_id" property="clientManagerId"/>
  15. <result column="principal_id" property="principalId"/>
  16. <result column="department_id" property="departmentId"/>
  17. <result column="assets_business_gener" property="assetsBusinessGener"/>
  18. <result column="entrust_again" property="entrustAgain"/>
  19. <result column="clientele_type" property="clienteleType"/>
  20. <result column="clientele_id" property="clienteleId"/>
  21. <result column="clientele_sub_id" property="clienteleSubId"/>
  22. <result column="clientele_contact_id" property="clienteleContactId"/>
  23. <result column="security" property="security"/>
  24. <result column="significant_assets_reorganization" property="significantAssetsReorganization"/>
  25. <result column="state_assets" property="stateAssets"/>
  26. <result column="foreign_assets_involved" property="foreignAssetsInvolved"/>
  27. <result column="dispense_benefit" property="dispenseBenefit"/>
  28. <result column="bailor" property="bailor"/>
  29. <result column="bailor_address" property="bailorAddress"/>
  30. <result column="bailor_contact_name" property="bailorContactName"/>
  31. <result column="bailor_contact_tel" property="bailorContactTel"/>
  32. <result column="terminal_clientele_id" property="terminalClienteleId"/>
  33. <result column="terminal_clientele_type" property="terminalClienteleType"/>
  34. <result column="terminal_clientele_contact_id" property="terminalClienteleContactId"/>
  35. <result column="members" property="members"/>
  36. <result column="remark" property="remark"/>
  37. </resultMap>
  38. <!-- 通用查询结果列 -->
  39. <sql id="Base_Column_List">
  40. id,
  41. deleted,
  42. created,
  43. modified,
  44. name, order_id, financial, allot_type, client_manager_id, principal_id, department_id, assets_business_gener, entrust_again, clientele_type, clientele_id, clientele_sub_id, clientele_contact_id, security, significant_assets_reorganization, state_assets, foreign_assets_involved, dispense_benefit, bailor, bailor_address, bailor_contact_name, bailor_contact_tel, terminal_clientele_id, terminal_clientele_type, terminal_clientele_contact_id, members, remark
  45. </sql>
  46. <!--条件查询资产任务列表-->
  47. <select id="selectPage" resultType="com.dayou.vo.AssetsVO">
  48. SELECT DISTINCT
  49. # (@i := @i + 1) AS id,
  50. nodeInfo.recordId AS id,
  51. assets.id AS assetsId,
  52. assets.name,
  53. order_id,
  54. assets_business_gener,
  55. allot_type,
  56. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id AND business_id = nodeInfo.businessId) AS statementNo,
  57. (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id AND business_id = nodeInfo.businessId) AS statementName,
  58. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id AND business_id = nodeInfo.businessId) AS reportNo,
  59. (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id AND business_id = nodeInfo.businessId) AS reportName,
  60. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id AND business_id = nodeInfo.businessId) AS productionType,
  61. clientele_id,
  62. customer.name AS customerName,
  63. bailor,
  64. bailor_contact_tel,
  65. assets.created,
  66. #查询客户经理
  67. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  68. #查询项目负责人
  69. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  70. #查询业务来源(即子级客户)
  71. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  72. nodeInfo.businessId,
  73. nodeInfo.currentNodeName,
  74. nodeInfo.currentNodeCode,
  75. nodeInfo.handlerName,
  76. nodeInfo.currentNodeId,
  77. nodeInfo.recordId,
  78. nodeInfo.handlerId
  79. FROM assets
  80. LEFT JOIN user ON user.id = assets.principal_id
  81. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  82. #查询当前进行的节点信息(并使用左连接)
  83. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  84. user.name AS handlerName,
  85. node.name AS currentNodeName,
  86. node.code AS currentNodeCode,
  87. nodeInstance.business_id AS businessId,
  88. nodeInstance.business_sub_id,
  89. nodeInstance.business_min_id,
  90. nodeInstance.state,
  91. record.id AS recordId,
  92. record.handler_id AS handlerId
  93. FROM work_flow_node_instance AS nodeInstance,
  94. work_task_record AS record,
  95. user,
  96. work_node AS node
  97. WHERE state = 'PENDING'
  98. # (state = 'PENDING' OR( state = 'FINISHED' AND node.`code` = 'BUSINESS_ARCHIVING' ))
  99. AND nodeInstance.node_id = node.id
  100. AND record.handler_id = user.id
  101. AND nodeInstance.deleted = 0
  102. AND record.instance_id = nodeInstance.id
  103. AND nodeInstance.business_type = 'ASSET_BUSINESS'
  104. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  105. <if test="assetsSelectDTO != null and assetsSelectDTO.selectByDepartment">
  106. INNER JOIN (
  107. SELECT DISTINCT
  108. department.id,
  109. department.parent_id,
  110. user.id AS userId
  111. FROM
  112. user,
  113. post,
  114. department,
  115. user_post ,
  116. work_task_record AS record
  117. WHERE
  118. user.id = user_post.user_id
  119. AND user_post.post_id = post.id
  120. AND post.department_id = department.id
  121. AND user_post.deleted = 0
  122. ) AS department ON (department.id IN
  123. <foreach collection="assetsSelectDTO.departmentIdList" index="index" item="item" open="(" separator=","
  124. close=")">
  125. #{item}
  126. </foreach>
  127. )
  128. AND department.userId = nodeInfo.handlerId
  129. </if>
  130. <if test="assetsSelectDTO != null and assetsSelectDTO.selectByAll">
  131. INNER JOIN (
  132. SELECT DISTINCT
  133. department.id,
  134. department.parent_id,
  135. user.id AS userId
  136. FROM
  137. user,
  138. post,
  139. department,
  140. user_post ,
  141. work_task_record AS record
  142. WHERE
  143. user.id = user_post.user_id
  144. AND user_post.post_id = post.id
  145. AND post.department_id = department.id
  146. AND user_post.deleted = 0
  147. ) AS department ON (department.id IN
  148. <foreach collection="assetsSelectDTO.departmentIdList" index="index" item="item" open="(" separator=","
  149. close=")">
  150. #{item}
  151. </foreach>
  152. )
  153. AND (department.userId = assets.principal_id OR department.userId = assets.client_manager_id)
  154. </if>
  155. WHERE assets.deleted = 0
  156. AND nodeInfo.state = 'PENDING'
  157. #评估业务类别(业务类型)查询
  158. <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
  159. AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
  160. </if>
  161. #项目负责人查询
  162. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  163. AND assets.principal_id = #{assetsSelectDTO.principalId}
  164. </if>
  165. #客户经理查询
  166. <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
  167. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  168. </if>
  169. #关键字模糊查询
  170. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  171. AND (
  172. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  173. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  174. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  175. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  176. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  177. )
  178. </if>
  179. # 根据处理节点查询(节点code)
  180. <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
  181. AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
  182. </if>
  183. <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null ">
  184. AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId}
  185. </if>
  186. <if test="assetsSelectDTO != null and assetsSelectDTO.departmentId">
  187. AND assets.department_id = #{assetsSelectDTO.departmentId}
  188. </if>
  189. <if test="assetsSelectDTO != null and assetsSelectDTO.getNodeIsBookbindingStamp">
  190. AND (nodeInfo.currentNodeCode = 'STATEMENT_BOOKBINDING_STAMP' OR nodeInfo.currentNodeCode = 'REPORT_BOOKBINDING_STAMP')
  191. </if>
  192. ORDER BY assets.created DESC
  193. </select>
  194. <sql id="selectMyOrderSql">
  195. SELECT (@i := @i + 1) AS id,
  196. assets.id AS assetsId,
  197. CASE
  198. WHEN reportInfo.assets_name IS NOT NULL THEN reportInfo.assets_name
  199. WHEN (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) IS NOT NULL THEN (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id)
  200. ELSE assets.name
  201. END AS name,
  202. assets.order_id,
  203. assets_business_gener,
  204. allot_type,
  205. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  206. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
  207. reportInfo.production_no AS reportNo,
  208. reportInfo.repertory_state AS reportRepertoryState,
  209. reportInfo.delivery AS reportDelivery,
  210. reportInfo.assets_name AS reportName,
  211. clientele_id,
  212. customer.name AS customerName,
  213. bailor,
  214. bailor_contact_name,
  215. bailor_contact_tel,
  216. assets.created,
  217. ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value,
  218. fund.id AS orderFundId,
  219. fund.should_amount,
  220. fund.real_amount,
  221. fund.discount,
  222. pFund.id AS productionFundId,
  223. pFund.standard_amount,
  224. pFund.production_should_amount,
  225. pFund.real_amount AS productionRealAmount,
  226. # invoice.real_amount AS invoiceRealAmount,
  227. (SELECT SUM(real_amount) FROM finance_invoice WHERE order_fund_id = fund.id AND finance_invoice.production_fund_id = pFund.id AND deleted = 0) AS invoiceRealAmount,
  228. #查询客户经理
  229. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  230. #查询项目负责人
  231. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  232. #查询业务来源(即子级客户)
  233. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  234. nodeInfo.businessId,
  235. nodeInfo.currentNodeName,
  236. nodeInfo.currentNodeCode,
  237. nodeInfo.handlerName,
  238. nodeInfo.recordId,
  239. nodeInfo.currentNodeId,
  240. nodeInfo.handlerId
  241. FROM (SELECT @i := 0) AS sort,assets
  242. LEFT JOIN user ON user.id = assets.principal_id
  243. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  244. LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS'
  245. # LEFT JOIN finance_invoice AS invoice ON invoice.order_fund_id = fund.id
  246. #查询当前进行的节点信息
  247. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  248. user.name AS handlerName,
  249. node.name AS currentNodeName,
  250. node.code AS currentNodeCode,
  251. nodeInstance.business_id AS businessId,
  252. nodeInstance.business_sub_id,
  253. nodeInstance.business_min_id,
  254. record.id AS recordId,
  255. record.handler_id AS handlerId
  256. FROM work_flow_node_instance AS nodeInstance,
  257. work_task_record AS record,
  258. user,
  259. work_node AS node
  260. WHERE (state = 'PENDING' OR( state = 'FINISHED' AND node.`code` = 'BUSINESS_ARCHIVING' ))
  261. AND nodeInstance.node_id = node.id
  262. AND record.handler_id = user.id
  263. AND nodeInstance.deleted = 0
  264. AND record.instance_id = nodeInstance.id
  265. AND nodeInstance.business_type = 'ASSET_BUSINESS'
  266. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  267. LEFT JOIN production_fund AS pFund ON pFund.order_fund_id = fund.id AND pFund.production_no = nodeInfo.business_min_id
  268. LEFT JOIN(SELECT production_no,repertory_state,production_type,delivery,assets_name FROM assets_production) AS reportInfo ON reportInfo.production_no = nodeInfo.business_min_id
  269. WHERE assets.deleted = 0
  270. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  271. #送达状态查询
  272. <if test="assetsSelectDTO != null and assetsSelectDTO.delivery != null">
  273. AND reportInfo.delivery = #{assetsSelectDTO.delivery}
  274. </if>
  275. #项目负责人查询
  276. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  277. AND assets.principal_id = #{assetsSelectDTO.principalId}
  278. </if>
  279. #关键字模糊查询
  280. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  281. AND (
  282. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  283. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  284. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  285. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  286. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  287. )
  288. </if>
  289. <if test="assetsSelectDTO != null and assetsSelectDTO.startTime != null and assetsSelectDTO.endTime != null ">
  290. AND assets.created BETWEEN #{assetsSelectDTO.startTime} AND #{assetsSelectDTO.endTime}
  291. </if>
  292. <if test="assetsSelectDTO != null and assetsSelectDTO.departmentId != null ">
  293. AND assets.department_id = #{assetsSelectDTO.departmentId}
  294. </if>
  295. ORDER BY assets.created DESC
  296. </sql>
  297. <!--条件查询我的资产订单列表-->
  298. <select id="selectMyOrderPage" resultType="com.dayou.vo.AssetsVO">
  299. <include refid="selectMyOrderSql" />
  300. </select>
  301. <!--导出我的资产订单列表-->
  302. <select id="exportMyOrder" resultType="com.dayou.vo.AssetsVO">
  303. <include refid="selectMyOrderSql" />
  304. </select>
  305. <!--条件查询资产已归档列表-->
  306. <select id="selectArchivedPage" resultType="com.dayou.vo.AssetsVO">
  307. SELECT (@i := @i + 1) AS id,
  308. assets.id AS assetsId,
  309. assets.name,
  310. assets.order_id,
  311. assets_business_gener,
  312. allot_type,
  313. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  314. (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementName,
  315. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id limit 1) AS reportNo,
  316. (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id limit 1) AS reportName,
  317. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
  318. clientele_id,
  319. customer.name AS customerName,
  320. bailor,
  321. bailor_contact_name,
  322. bailor_contact_tel,
  323. assets.created,
  324. ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value,
  325. fund.id AS orderFundId,
  326. fund.should_amount,
  327. fund.real_amount,
  328. # fund.discount,
  329. pFund.standard_amount,
  330. # invoice.real_amount AS invoiceRealAmount,
  331. (SELECT SUM(real_amount) FROM finance_invoice WHERE order_fund_id = fund.id AND deleted = 0) AS invoiceRealAmount,
  332. #查询客户经理
  333. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  334. #查询项目负责人
  335. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  336. #查询业务来源(即子级客户)
  337. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  338. nodeInfo.businessId,
  339. nodeInfo.currentNodeName,
  340. nodeInfo.currentNodeCode,
  341. nodeInfo.handlerName,
  342. nodeInfo.recordId,
  343. nodeInfo.currentNodeId,
  344. nodeInfo.handlerId
  345. FROM (SELECT @i := 0) AS sort,assets
  346. LEFT JOIN user ON user.id = assets.principal_id
  347. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  348. LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS'
  349. #查询当前进行的节点信息
  350. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  351. user.name AS handlerName,
  352. node.name AS currentNodeName,
  353. node.code AS currentNodeCode,
  354. nodeInstance.business_id AS businessId,
  355. nodeInstance.business_sub_id,
  356. nodeInstance.business_min_id,
  357. record.id AS recordId,
  358. record.handler_id AS handlerId
  359. FROM work_flow_node_instance AS nodeInstance,
  360. work_task_record AS record,
  361. user,
  362. work_node AS node
  363. WHERE state = 'FINISHED'
  364. AND nodeInstance.node_id = node.id
  365. AND record.handler_id = user.id
  366. AND nodeInstance.deleted = 0
  367. AND record.instance_id = nodeInstance.id
  368. AND nodeInstance.business_type = 'ASSET_BUSINESS'
  369. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  370. LEFT JOIN production_fund AS pFund ON pFund.business_id = assets.id AND pFund.production_no = nodeInfo.business_min_id
  371. # LEFT JOIN finance_invoice AS invoice ON pFund.order_fund_id = fund.id
  372. WHERE assets.deleted = 0
  373. AND nodeInfo.currentNodeCode = 'BUSINESS_ARCHIVING'
  374. #评估业务类别(业务类型)查询
  375. <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
  376. AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
  377. </if>
  378. #项目负责人查询
  379. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  380. AND assets.principal_id = #{assetsSelectDTO.principalId}
  381. </if>
  382. #客户经理查询
  383. <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
  384. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  385. </if>
  386. #关键字模糊查询
  387. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  388. AND (
  389. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  390. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  391. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  392. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  393. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  394. )
  395. </if>
  396. # 根据处理节点查询(节点code)
  397. <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
  398. AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
  399. </if>
  400. <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null ">
  401. AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId}
  402. </if>
  403. <if test="assetsSelectDTO != null and assetsSelectDTO.departmentId != null ">
  404. AND assets.department_id = #{assetsSelectDTO.departmentId}
  405. </if>
  406. ORDER BY assets.created DESC
  407. </select>
  408. <!--条件查询资产已终止列表-->
  409. <select id="selectTerminatedPage" resultType="com.dayou.vo.AssetsVO">
  410. SELECT (@i := @i + 1) AS id,
  411. assets.id AS assetsId,
  412. assets.name,
  413. assets.order_id,
  414. assets_business_gener,
  415. allot_type,
  416. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  417. (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementName,
  418. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportNo,
  419. (SELECT assets_name FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportName,
  420. clientele_id,
  421. customer.name AS customerName,
  422. bailor,
  423. bailor_contact_name,
  424. bailor_contact_tel,
  425. assets.created,
  426. #查询客户经理
  427. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  428. #查询项目负责人
  429. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  430. #查询业务来源(即子级客户)
  431. (SELECT customer_company.name
  432. FROM customer_company
  433. WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  434. nodeInfo.businessId,
  435. nodeInfo.comment
  436. FROM (SELECT @i := 0) AS sort,
  437. assets
  438. LEFT JOIN user ON user.id = assets.principal_id
  439. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  440. #查询当前进行的节点信息
  441. RIGHT JOIN (SELECT nodeInstance.id AS currentNodeId,
  442. nodeInstance.business_id AS businessId,
  443. nodeInstance.business_sub_id,
  444. nodeInstance.business_min_id,
  445. nodeInstance.state AS state,
  446. record.id AS recordId,
  447. nodeInstance.comment AS comment
  448. FROM work_flow_node_instance AS nodeInstance,
  449. work_task_record AS record,
  450. user,
  451. work_node AS node
  452. WHERE nodeInstance.state = 'CLOSED'
  453. AND nodeInstance.node_id = node.id
  454. AND record.handler_id = user.id
  455. AND nodeInstance.deleted = 0
  456. AND record.instance_id = nodeInstance.id
  457. AND business_type = 'ASSET_BUSINESS') AS nodeInfo ON nodeInfo.businessId = assets.id
  458. WHERE assets.deleted = 0
  459. AND #{assetsSelectDTO.handlerId} IN (SELECT record.handler_id
  460. FROM work_flow_node_instance AS nodeInstance,
  461. work_task_record AS record
  462. WHERE business_id = assets.id
  463. AND record.instance_id = nodeInstance.id)
  464. <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
  465. AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
  466. </if>
  467. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  468. AND assets.principal_id = #{assetsSelectDTO.principalId}
  469. </if>
  470. <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
  471. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  472. </if>
  473. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  474. AND (
  475. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  476. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  477. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  478. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  479. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  480. )
  481. </if>
  482. <if test="assetsSelectDTO != null and assetsSelectDTO.departmentId != null ">
  483. AND assets.department_id = #{assetsSelectDTO.departmentId}
  484. </if>
  485. ORDER BY assets.created DESC
  486. </select>
  487. <!--条件查询资产入库统计列表(分页查询)-->
  488. <select id="selectRepertoryPage" resultType="com.dayou.vo.AssetsRepertoryVo">
  489. SELECT (@i := @i + 1) AS id,
  490. assets.order_id AS orderId,
  491. production.production_no AS reportNo,
  492. production.assets_name AS orderName,
  493. purpose.purpose_name AS purposeName,
  494. method.method_name AS methodName,
  495. (SELECT instance.created
  496. FROM work_flow_node_instance AS instance,
  497. work_node AS node
  498. WHERE instance.business_id = assets.id
  499. AND instance.node_id = node.id
  500. AND instance.deleted = 0
  501. AND node.code = 'SPOT_RECONNAISSANCE_DETERMINE_PRICE') AS startTime,
  502. (SELECT instance.created
  503. FROM work_flow_node_instance AS instance,
  504. work_node AS node
  505. WHERE business_min_id = reportNo
  506. AND instance.node_id = node.id
  507. AND instance.deleted = 0
  508. AND node.code = 'REPORT_OUT') AS endTime,
  509. production.valuation_basis_date AS valuationBasisDate,
  510. production.evaluate_amount AS evaluateAmount,
  511. production.evaluate_price AS evaluatePrice,
  512. assets.bailor,
  513. assets.bailor_contact_tel AS bailorContactTel,
  514. (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS principalName,
  515. (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS firstReporter,
  516. (SELECT user.name FROM user WHERE user.id = assets.client_manager_id) AS managerName,
  517. (SELECT customer_company.name
  518. FROM customer_company
  519. WHERE customer_company.id = assets.clientele_id) AS customerName,
  520. (SELECT customer_company.name
  521. FROM customer_company
  522. WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  523. production.repertory_in_time AS repertoryInTime,
  524. production.repertory_out_time AS repertoryOutTime,
  525. (SELECT instance.modified
  526. FROM work_flow_node_instance AS instance,
  527. work_node AS node
  528. WHERE business_min_id = reportNo
  529. AND instance.node_id = node.id
  530. AND instance.deleted = 0
  531. AND node.code = 'BUSINESS_ARCHIVING') AS archivedTime,
  532. (SELECT department.name FROM department WHERE department.id = assets.department_id) AS evaluateDepartment,
  533. (SELECT GROUP_CONCAT( department.name SEPARATOR '、' )
  534. FROM department,
  535. user,
  536. user_post,
  537. post
  538. WHERE user.id = user_post.user_id
  539. AND user_post.post_id = post.id
  540. AND post.department_id = department.id
  541. AND user.id = assets.client_manager_id
  542. AND user_post.deleted = 0) AS marketDepartment,
  543. fund.real_amount AS productionRealAmount
  544. FROM (SELECT @i := 0) AS sort,
  545. assets_production AS production
  546. LEFT JOIN assets ON assets.id = production.business_id
  547. LEFT JOIN assets_evaluation_target AS target ON target.report_no = production.production_no
  548. LEFT JOIN assets_evaluation_target_purpose AS purpose ON purpose.id = target.evaluation_purpose_id
  549. LEFT JOIN assets_evaluation_method AS method ON method.id = target.choice_evaluation_method_id
  550. LEFT JOIN production_fund AS fund ON fund.production_no = production.production_no
  551. WHERE production.deleted = 0
  552. AND (production.repertory_state = 0 OR production.repertory_state = 1)
  553. AND production.production_type != 'STATEMENT'
  554. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  555. AND (
  556. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  557. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  558. production.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  559. )
  560. </if>
  561. <if test="assetsSelectDTO != null and assetsSelectDTO.departmentId != null ">
  562. AND assets.department_id = #{assetsSelectDTO.departmentId}
  563. </if>
  564. <if test="assetsSelectDTO != null and assetsSelectDTO.startTime != null and assetsSelectDTO.endTime != null ">
  565. HAVING startTime &gt;= #{assetsSelectDTO.startTime}
  566. AND endTime &lt;= #{assetsSelectDTO.endTime}
  567. </if>
  568. </select>
  569. <!--条件查询资产入库统计集合(用于导出)-->
  570. <select id="selectRepertoryList" resultType="com.dayou.vo.AssetsRepertoryVo">
  571. SELECT (@i := @i + 1) AS id,
  572. assets.order_id AS orderId,
  573. production.production_no AS reportNo,
  574. production.assets_name AS orderName,
  575. purpose.purpose_name AS purposeName,
  576. method.method_name AS methodName,
  577. (SELECT instance.created
  578. FROM work_flow_node_instance AS instance,
  579. work_node AS node
  580. WHERE instance.business_id = assets.id
  581. AND instance.node_id = node.id
  582. AND instance.deleted = 0
  583. AND node.code = 'SPOT_RECONNAISSANCE_DETERMINE_PRICE') AS startTime,
  584. (SELECT instance.created
  585. FROM work_flow_node_instance AS instance,
  586. work_node AS node
  587. WHERE business_min_id = reportNo
  588. AND instance.node_id = node.id
  589. AND instance.deleted = 0
  590. AND node.code = 'REPORT_OUT') AS endTime,
  591. production.valuation_basis_date AS valuationBasisDate,
  592. production.evaluate_amount AS evaluateAmount,
  593. production.evaluate_price AS evaluatePrice,
  594. assets.bailor,
  595. assets.bailor_contact_tel AS bailorContactTel,
  596. (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS principalName,
  597. (SELECT user.name FROM user WHERE user.id = assets.principal_id) AS firstReporter,
  598. (SELECT user.name FROM user WHERE user.id = assets.client_manager_id) AS managerName,
  599. (SELECT customer_company.name
  600. FROM customer_company
  601. WHERE customer_company.id = assets.clientele_id) AS customerName,
  602. (SELECT customer_company.name
  603. FROM customer_company
  604. WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  605. production.repertory_in_time AS repertoryInTime,
  606. production.repertory_out_time AS repertoryOutTime,
  607. (SELECT instance.modified
  608. FROM work_flow_node_instance AS instance,
  609. work_node AS node
  610. WHERE business_min_id = reportNo
  611. AND instance.node_id = node.id
  612. AND instance.deleted = 0
  613. AND node.code = 'BUSINESS_ARCHIVING') AS archivedTime,
  614. (SELECT department.name FROM department WHERE department.id = assets.department_id) AS evaluateDepartment,
  615. (SELECT department.name
  616. FROM department,
  617. user,
  618. user_post,
  619. post
  620. WHERE user.id = user_post.user_id
  621. AND user_post.post_id = post.id
  622. AND post.department_id = department.id
  623. AND user.id = assets.client_manager_id) AS marketDepartment,
  624. fund.real_amount AS productionRealAmount
  625. FROM (SELECT @i := 0) AS sort,
  626. assets_production AS production
  627. LEFT JOIN assets ON assets.id = production.business_id
  628. LEFT JOIN assets_evaluation_target AS target ON target.report_no = production.production_no
  629. LEFT JOIN assets_evaluation_target_purpose AS purpose ON purpose.id = target.evaluation_purpose_id
  630. LEFT JOIN assets_evaluation_method AS method ON method.id = target.choice_evaluation_method_id
  631. LEFT JOIN production_fund AS fund ON fund.production_no = production.production_no
  632. WHERE production.deleted = 0
  633. AND (production.repertory_state = 0 OR production.repertory_state = 1)
  634. AND production.production_type != 'STATEMENT'
  635. <if test="assetsSelectDTO != null and assetsSelectDTO.departmentId != null ">
  636. AND assets.department_id = #{assetsSelectDTO.departmentId}
  637. </if>
  638. <if test="assetsSelectDTO != null and assetsSelectDTO.startTime != null and assetsSelectDTO.endTime != null ">
  639. HAVING startTime &gt;= #{assetsSelectDTO.startTime}
  640. AND endTime &lt;= #{assetsSelectDTO.endTime}
  641. </if>
  642. </select>
  643. <!--根据业务id获取资产业务详情-->
  644. <select id="getAssetsDetailById" resultType="com.dayou.vo.AssetsVO">
  645. SELECT assets.id,
  646. #查询客户经理
  647. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  648. user.name AS principalName,
  649. allot_type,
  650. assets.department_id,
  651. assets.order_id,
  652. assets.name,
  653. assets.assets_business_gener,
  654. assets.entrust_again,
  655. assets.clientele_type,
  656. assets.principal_id,
  657. assets.terminal_clientele_contact_id AS terminalClienteleContactId,
  658. customer.id AS clienteleId,
  659. customer.name AS customerName,
  660. linkman.id AS clienteleContactId,
  661. linkman.name AS linkmanName,
  662. linkman.department AS linkmanDepartment,
  663. linkman.duty AS linkmanDuty,
  664. linkman.mobile AS linkmanMobile,
  665. assets.security,
  666. assets.significant_assets_reorganization,
  667. assets.state_assets,
  668. assets.foreign_assets_involved,
  669. assets.dispense_benefit,
  670. assets.bailor,
  671. assets.bailor_address,
  672. assets.bailor_contact_name,
  673. assets.bailor_contact_tel,
  674. assets.terminal_clientele_id,
  675. assets.terminal_clientele_type,
  676. assets.remark,
  677. tLinkman.id AS tLinkmanId,
  678. tLinkman.name AS tLinkmanName,
  679. tLinkman.mobile AS tLinkmanMobile,
  680. assets.members AS members,
  681. #查询终端客户名称
  682. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = assets.terminal_clientele_id) AS
  683. terminalClienteleName,
  684. assets.clientele_sub_id
  685. FROM assets
  686. LEFT JOIN user ON user.id = assets.principal_id
  687. LEFT JOIN department ON department.id = assets.department_id
  688. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  689. LEFT JOIN customer_linkman AS linkman ON linkman.id = assets.clientele_contact_id
  690. LEFT JOIN (SELECT tLinkman.id, tLinkman.name, tLinkman.mobile FROM customer_linkman AS tLinkman) AS tLinkman ON
  691. tLinkman.id = assets.terminal_clientele_contact_id
  692. <where>
  693. <if test="id != null">
  694. AND assets.id = #{id}
  695. </if>
  696. </where>
  697. </select>
  698. <!--根据业务id获取资产业务款项信息-->
  699. <select id="getOrderFundInvoiceById" resultType="com.dayou.vo.AssetsOrderFundInvoiceVO">
  700. SELECT order_fund.id,
  701. business_id,
  702. should_amount,
  703. order_fund.real_amount
  704. FROM order_fund
  705. WHERE order_fund.business_id = #{id}
  706. AND order_fund.deleted = 0
  707. AND business_type = 'ASSET_BUSINESS'
  708. </select>
  709. <!--根据业务类型与取号类型获取业务取号信息-->
  710. <select id="getBusinessNum" resultType="com.dayou.entity.BusinessNumber">
  711. SELECT id, year, month, next_no
  712. FROM business_number
  713. WHERE take_type = #{takeType}
  714. AND business_type = #{businessType}
  715. AND year = #{year}
  716. AND deleted = 0
  717. </select>
  718. <!--新增取号信息-->
  719. <insert id="addBusinessNum">
  720. INSERT INTO business_number(id, take_type, business_type, year, month, next_no)
  721. VALUE (NULL, #{takeType}, #{businessType}, #{year}, #{month}, #{nextNo})
  722. </insert>
  723. <!--更新取号信息-->
  724. <update id="updateBusinessNum">
  725. UPDATE business_number
  726. SET month = #{month},
  727. next_no = #{nextNo}
  728. WHERE id = #{id}
  729. </update>
  730. <!--获取项目参与人-->
  731. <select id="getBusinessMembers" resultType="com.dayou.entity.Assets">
  732. SELECT id, principal_id, members
  733. FROM assets
  734. WHERE deleted = 0
  735. AND id = #{businessId}
  736. </select>
  737. <!--获取报告签字师-->
  738. <select id="getSignatorys" resultType="java.lang.String">
  739. SELECT signatory
  740. FROM assets_production
  741. WHERE deleted = 0
  742. AND production_no = #{reportNo}
  743. </select>
  744. <!--获取用户信息-->
  745. <select id="getAssetsBusinessMember" resultType="com.dayou.vo.AssetsBusinessMember">
  746. SELECT id AS memberId, name AS memberName
  747. FROM user
  748. WHERE deleted = 0
  749. AND id = #{userId}
  750. </select>
  751. <!--通过客户经理id获取下单部门-->
  752. <select id="getManagerDepId" resultType="java.lang.Long">
  753. SELECT post.department_id
  754. FROM user,user_post,post
  755. WHERE user.id = user_post.user_id
  756. AND user_post.post_id = post.id
  757. AND user_post.deleted = 0
  758. AND post.deleted = 0
  759. AND user.id = #{managerId}
  760. LIMIT 1
  761. </select>
  762. <!--获取资产下单部门-->
  763. <select id="getMarkeDepartment" resultType="com.dayou.entity.Department">
  764. SELECT department.id,department.name
  765. FROM assets,department
  766. WHERE assets.market_department_id = department.id
  767. AND department.deleted = 0
  768. AND assets.deleted = 0
  769. GROUP BY department.id
  770. </select>
  771. <!--更新资产订单基本信息-->
  772. <update id="updateOrderBaseInfo">
  773. UPDATE assets
  774. SET name = #{assets.name},
  775. assets_business_gener = #{assets.assetsBusinessGener},
  776. entrust_again = #{assets.entrustAgain},
  777. security = #{assets.security},
  778. significant_assets_reorganization = #{assets.significantAssetsReorganization},
  779. state_assets = #{assets.stateAssets},
  780. foreign_assets_involved = #{assets.foreignAssetsInvolved},
  781. dispense_benefit = #{assets.dispenseBenefit},
  782. bailor = #{assets.bailor},
  783. bailor_address = #{assets.bailorAddress},
  784. bailor_contact_name = #{assets.bailorContactName},
  785. bailor_contact_tel = #{assets.bailorContactTel}
  786. WHERE id = #{assets.id}
  787. AND deleted = 0
  788. </update>
  789. </mapper>