AssetsMapper.xml 41 KB

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