AssetsMapper.xml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  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 (@i := @i + 1) AS id,
  49. assets.id AS assetsId,
  50. assets.name,
  51. order_id,
  52. assets_business_gener,
  53. allot_type,
  54. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  55. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportNo,
  56. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
  57. clientele_id,
  58. customer.name AS customerName,
  59. bailor,
  60. bailor_contact_tel,
  61. assets.created,
  62. #查询客户经理
  63. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  64. #查询项目负责人
  65. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  66. #查询业务来源(即子级客户)
  67. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  68. nodeInfo.businessId,
  69. nodeInfo.currentNodeName,
  70. nodeInfo.currentNodeCode,
  71. nodeInfo.handlerName,
  72. nodeInfo.currentNodeId,
  73. nodeInfo.recordId,
  74. nodeInfo.handlerId
  75. FROM (SELECT @i := 0) AS sort,assets
  76. LEFT JOIN user ON user.id = assets.principal_id
  77. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  78. #查询当前进行的节点信息(并使用左连接)
  79. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  80. user.name AS handlerName,
  81. node.name AS currentNodeName,
  82. node.code AS currentNodeCode,
  83. nodeInstance.business_id AS businessId,
  84. nodeInstance.business_sub_id,
  85. nodeInstance.business_min_id,
  86. record.id AS recordId,
  87. record.handler_id AS handlerId
  88. FROM work_flow_node_instance AS nodeInstance,
  89. work_task_record AS record,
  90. user,
  91. work_node AS node
  92. WHERE state = 'PENDING'
  93. AND nodeInstance.node_id = node.id
  94. AND record.handler_id = user.id
  95. AND nodeInstance.deleted = 0
  96. AND record.instance_id = nodeInstance.id
  97. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  98. WHERE assets.deleted = 0
  99. #评估业务类别(业务类型)查询
  100. <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
  101. AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
  102. </if>
  103. #项目负责人查询
  104. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  105. AND assets.principal_id = #{assetsSelectDTO.principalId}
  106. </if>
  107. #客户经理查询
  108. <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
  109. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  110. </if>
  111. #关键字模糊查询
  112. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  113. AND (
  114. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  115. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  116. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  117. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  118. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  119. )
  120. </if>
  121. # 根据处理节点查询(节点code)
  122. <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
  123. AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
  124. </if>
  125. <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null ">
  126. AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId}
  127. </if>
  128. ORDER BY assets.created DESC
  129. </select>
  130. <!--条件查询我的资产任务订单列表-->
  131. <select id="selectMyOrderPage" resultType="com.dayou.vo.AssetsVO">
  132. SELECT (@i := @i + 1) AS id,
  133. assets.id AS assetsId,
  134. assets.name,
  135. assets.order_id,
  136. assets_business_gener,
  137. allot_type,
  138. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  139. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportNo,
  140. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
  141. clientele_id,
  142. customer.name AS customerName,
  143. bailor,
  144. bailor_contact_name,
  145. bailor_contact_tel,
  146. assets.created,
  147. ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value,
  148. fund.id AS orderFundId,
  149. fund.should_amount,
  150. fund.real_amount,
  151. fund.discount,
  152. pFund.standard_amount,
  153. invoice.real_amount AS invoiceRealAmount,
  154. #查询客户经理
  155. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  156. #查询项目负责人
  157. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  158. #查询业务来源(即子级客户)
  159. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  160. nodeInfo.businessId,
  161. nodeInfo.currentNodeName,
  162. nodeInfo.currentNodeCode,
  163. nodeInfo.handlerName,
  164. nodeInfo.recordId,
  165. nodeInfo.currentNodeId,
  166. nodeInfo.handlerId
  167. FROM (SELECT @i := 0) AS sort,assets
  168. LEFT JOIN user ON user.id = assets.principal_id
  169. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  170. LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS'
  171. LEFT JOIN production_fund AS pFund ON pFund.business_id = assets.id
  172. LEFT JOIN finance_invoice AS invoice ON pFund.order_fund_id = fund.id
  173. #查询当前进行的节点信息
  174. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  175. user.name AS handlerName,
  176. node.name AS currentNodeName,
  177. node.code AS currentNodeCode,
  178. nodeInstance.business_id AS businessId,
  179. nodeInstance.business_sub_id,
  180. nodeInstance.business_min_id,
  181. record.id AS recordId,
  182. record.handler_id AS handlerId
  183. FROM work_flow_node_instance AS nodeInstance,
  184. work_task_record AS record,
  185. user,
  186. work_node AS node
  187. WHERE state = 'PENDING'
  188. AND nodeInstance.node_id = node.id
  189. AND record.handler_id = user.id
  190. AND nodeInstance.deleted = 0
  191. AND record.instance_id = nodeInstance.id
  192. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  193. WHERE assets.deleted = 0
  194. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  195. #送达状态查询
  196. <if test="assetsSelectDTO != null and assetsSelectDTO.delivery != null">
  197. AND production.delivery = #{assetsSelectDTO.delivery}
  198. </if>
  199. #项目负责人查询
  200. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  201. AND assets.principal_id = #{assetsSelectDTO.principalId}
  202. </if>
  203. #关键字模糊查询
  204. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  205. AND (
  206. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  207. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  208. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  209. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  210. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  211. )
  212. </if>
  213. ORDER BY assets.created DESC
  214. </select>
  215. <!--条件查询资产已归档列表-->
  216. <select id="selectArchivedPage" resultType="com.dayou.vo.AssetsVO">
  217. SELECT (@i := @i + 1) AS id,
  218. assets.id AS assetsId,
  219. assets.name,
  220. assets.order_id,
  221. assets_business_gener,
  222. allot_type,
  223. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  224. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportNo,
  225. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
  226. clientele_id,
  227. customer.name AS customerName,
  228. bailor,
  229. bailor_contact_name,
  230. bailor_contact_tel,
  231. assets.created,
  232. ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value,
  233. fund.id AS orderFundId,
  234. fund.should_amount,
  235. fund.real_amount,
  236. fund.discount,
  237. pFund.standard_amount,
  238. invoice.real_amount AS invoiceRealAmount,
  239. #查询客户经理
  240. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  241. #查询项目负责人
  242. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  243. #查询业务来源(即子级客户)
  244. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  245. nodeInfo.businessId,
  246. nodeInfo.currentNodeName,
  247. nodeInfo.currentNodeCode,
  248. nodeInfo.handlerName,
  249. nodeInfo.recordId,
  250. nodeInfo.currentNodeId,
  251. nodeInfo.handlerId
  252. FROM (SELECT @i := 0) AS sort,assets
  253. LEFT JOIN user ON user.id = assets.principal_id
  254. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  255. LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS'
  256. LEFT JOIN production_fund AS pFund ON pFund.business_id = assets.id
  257. LEFT JOIN finance_invoice AS invoice ON pFund.order_fund_id = fund.id
  258. #查询当前进行的节点信息
  259. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  260. user.name AS handlerName,
  261. node.name AS currentNodeName,
  262. node.code AS currentNodeCode,
  263. nodeInstance.business_id AS businessId,
  264. nodeInstance.business_sub_id,
  265. nodeInstance.business_min_id,
  266. record.id AS recordId,
  267. record.handler_id AS handlerId
  268. FROM work_flow_node_instance AS nodeInstance,
  269. work_task_record AS record,
  270. user,
  271. work_node AS node
  272. WHERE state = 'FINISHED'
  273. AND nodeInstance.node_id = node.id
  274. AND record.handler_id = user.id
  275. AND nodeInstance.deleted = 0
  276. AND record.instance_id = nodeInstance.id
  277. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  278. WHERE assets.deleted = 0
  279. AND nodeInfo.currentNodeCode = 'BUSINESS_ARCHIVING'
  280. #评估业务类别(业务类型)查询
  281. <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
  282. AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
  283. </if>
  284. #项目负责人查询
  285. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  286. AND assets.principal_id = #{assetsSelectDTO.principalId}
  287. </if>
  288. #客户经理查询
  289. <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
  290. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  291. </if>
  292. #关键字模糊查询
  293. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  294. AND (
  295. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  296. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  297. nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  298. nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  299. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  300. )
  301. </if>
  302. # 根据处理节点查询(节点code)
  303. <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
  304. AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
  305. </if>
  306. <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null ">
  307. AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId}
  308. </if>
  309. ORDER BY assets.created DESC
  310. </select>
  311. <!--根据业务id获取资产业务详情-->
  312. <select id="getAssetsDetailById" resultType="com.dayou.vo.AssetsVO">
  313. SELECT assets.id,
  314. #查询客户经理
  315. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  316. user.name AS principalName,
  317. allot_type,
  318. assets.department_id,
  319. assets.order_id,
  320. assets.name,
  321. assets.assets_business_gener,
  322. assets.entrust_again,
  323. assets.clientele_type,
  324. assets.principal_id,
  325. customer.id AS clienteleId,
  326. customer.name AS customerName,
  327. linkman.id AS clienteleContactId,
  328. linkman.name AS linkmanName,
  329. linkman.department AS linkmanDepartment,
  330. linkman.duty AS linkmanDuty,
  331. linkman.mobile AS linkmanMobile,
  332. assets.security,
  333. assets.significant_assets_reorganization,
  334. assets.state_assets,
  335. assets.foreign_assets_involved,
  336. assets.dispense_benefit,
  337. assets.bailor,
  338. assets.bailor_address,
  339. assets.bailor_contact_name,
  340. assets.bailor_contact_tel,
  341. assets.terminal_clientele_id,
  342. assets.terminal_clientele_type,
  343. assets.remark,
  344. tLinkman.id AS tLinkmanId,
  345. tLinkman.name AS tLinkmanName,
  346. tLinkman.mobile AS tLinkmanMobile,
  347. assets.members AS members,
  348. #查询终端客户名称
  349. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = assets.terminal_clientele_id) AS
  350. terminalClienteleName,
  351. assets.clientele_sub_id
  352. FROM assets
  353. LEFT JOIN user ON user.id = assets.principal_id
  354. LEFT JOIN department ON department.id = assets.department_id
  355. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  356. LEFT JOIN customer_linkman AS linkman ON linkman.id = assets.clientele_contact_id
  357. LEFT JOIN (SELECT tLinkman.id, tLinkman.name, tLinkman.mobile FROM customer_linkman AS tLinkman) AS tLinkman ON
  358. tLinkman.id = assets.terminal_clientele_contact_id
  359. <where>
  360. <if test="id != null">
  361. AND assets.id = #{id}
  362. </if>
  363. </where>
  364. </select>
  365. <!--根据业务id获取资产业务款项信息-->
  366. <select id="getOrderFundInvoiceById" resultType="com.dayou.vo.AssetsOrderFundInvoiceVO">
  367. SELECT order_fund.id,
  368. business_id,
  369. should_amount,
  370. order_fund.real_amount,
  371. title,
  372. type,
  373. tax_no,
  374. bank_name,
  375. bank_account,
  376. bank_address,
  377. bank_tel
  378. FROM order_fund
  379. LEFT JOIN finance_invoice ON finance_invoice.order_fund_id = order_fund.id
  380. WHERE order_fund.business_id = #{id}
  381. AND order_fund.deleted = 0
  382. </select>
  383. <!--根据业务类型与取号类型获取业务取号信息-->
  384. <select id="getBusinessNum" resultType="com.dayou.entity.BusinessNumber">
  385. SELECT id, year, month, next_no
  386. FROM business_number
  387. WHERE take_type = #{takeType}
  388. AND business_type = #{businessType}
  389. AND year = #{year}
  390. AND deleted = 0
  391. </select>
  392. <!--新增取号信息-->
  393. <insert id="addBusinessNum">
  394. INSERT INTO business_number(id, take_type, business_type, year, month, next_no)
  395. VALUE (NULL, #{takeType}, #{businessType}, #{year}, #{month}, #{nextNo})
  396. </insert>
  397. <!--更新取号信息-->
  398. <update id="updateBusinessNum">
  399. UPDATE business_number
  400. SET month = #{month},
  401. next_no = #{nextNo}
  402. WHERE id = #{id}
  403. </update>
  404. <!--获取项目参与人-->
  405. <select id="getBusinessMembers" resultType="com.dayou.entity.Assets">
  406. SELECT id, principal_id, members
  407. FROM assets
  408. WHERE deleted = 0
  409. AND id = #{businessId}
  410. </select>
  411. <!--获取报告签字师-->
  412. <select id="getSignatorys" resultType="java.lang.String">
  413. SELECT signatory
  414. FROM assets_production
  415. WHERE deleted = 0
  416. AND production_no = #{reportNo}
  417. </select>
  418. <!--获取用户信息-->
  419. <select id="getAssetsBusinessMember" resultType="com.dayou.vo.AssetsBusinessMember">
  420. SELECT id AS memberId, name AS memberName
  421. FROM user
  422. WHERE deleted = 0
  423. AND id = #{userId}
  424. </select>
  425. </mapper>