AssetsMapper.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  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. FROM (SELECT @i := 0) AS sort,assets
  75. LEFT JOIN user ON user.id = assets.principal_id
  76. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  77. #查询当前进行的节点信息(并使用左连接)
  78. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  79. user.name AS handlerName,
  80. node.name AS currentNodeName,
  81. node.code AS currentNodeCode,
  82. nodeInstance.business_id AS businessId,
  83. nodeInstance.business_sub_id,
  84. nodeInstance.business_min_id,
  85. record.id AS recordId
  86. FROM work_flow_node_instance AS nodeInstance,
  87. work_task_record AS record,
  88. user,
  89. work_node AS node
  90. WHERE state = 'PENDING'
  91. AND nodeInstance.node_id = node.id
  92. AND record.handler_id = user.id
  93. AND nodeInstance.deleted = 0
  94. AND record.instance_id = nodeInstance.id
  95. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  96. WHERE assets.deleted = 0
  97. #评估业务类别(业务类型)查询
  98. <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
  99. AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
  100. </if>
  101. #项目负责人查询
  102. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  103. AND assets.principal_id = #{assetsSelectDTO.principalId}
  104. </if>
  105. #客户经理查询
  106. <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
  107. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  108. </if>
  109. #关键字模糊查询
  110. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  111. AND (
  112. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  113. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  114. production.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  115. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  116. )
  117. </if>
  118. # 根据处理节点查询(节点code)
  119. <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
  120. AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
  121. </if>
  122. ORDER BY assets.created DESC
  123. </select>
  124. <!--条件查询我的资产任务订单列表-->
  125. <select id="selectMyOrderPage" resultType="com.dayou.vo.AssetsVO">
  126. SELECT (@i := @i + 1) AS id,
  127. assets.id AS assetsId,
  128. assets.name,
  129. assets.order_id,
  130. assets_business_gener,
  131. allot_type,
  132. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
  133. (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportNo,
  134. (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
  135. clientele_id,
  136. customer.name AS customerName,
  137. bailor,
  138. bailor_contact_name,
  139. bailor_contact_tel,
  140. assets.created,
  141. ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value,
  142. fund.id AS orderFundId,
  143. fund.should_amount,
  144. fund.real_amount,
  145. fund.discount,
  146. pFund.standard_amount,
  147. invoice.real_amount AS invoiceRealAmount,
  148. #查询客户经理
  149. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  150. #查询项目负责人
  151. (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
  152. #查询业务来源(即子级客户)
  153. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
  154. nodeInfo.businessId,
  155. nodeInfo.currentNodeName,
  156. nodeInfo.currentNodeCode,
  157. nodeInfo.handlerName,
  158. nodeInfo.recordId,
  159. nodeInfo.currentNodeId,
  160. warehouse.id AS warehouseId
  161. FROM (SELECT @i := 0) AS sort,assets
  162. LEFT JOIN user ON user.id = assets.principal_id
  163. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  164. LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS'
  165. LEFT JOIN production_fund AS pFund ON pFund.business_id = assets.id
  166. LEFT JOIN finance_invoice AS invoice ON pFund.order_fund_id = fund.id
  167. #查询当前进行的节点信息
  168. LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
  169. user.name AS handlerName,
  170. node.name AS currentNodeName,
  171. node.code AS currentNodeCode,
  172. nodeInstance.business_id AS businessId,
  173. nodeInstance.business_sub_id,
  174. nodeInstance.business_min_id,
  175. record.id AS recordId
  176. FROM work_flow_node_instance AS nodeInstance,
  177. work_task_record AS record,
  178. user,
  179. work_node AS node
  180. WHERE state = 'PENDING'
  181. AND nodeInstance.node_id = node.id
  182. AND record.handler_id = user.id
  183. AND nodeInstance.deleted = 0
  184. AND record.instance_id = nodeInstance.id
  185. ) AS nodeInfo ON nodeInfo.businessId = assets.id
  186. LEFT JOIN production_out_warehouse AS warehouse ON warehouse.report_no = nodeInfo.business_min_id AND warehouse.deleted = 0
  187. WHERE assets.deleted = 0
  188. AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
  189. #送达状态查询
  190. <if test="assetsSelectDTO != null and assetsSelectDTO.delivery != null">
  191. AND production.delivery = #{assetsSelectDTO.delivery}
  192. </if>
  193. #项目负责人查询
  194. <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
  195. AND assets.principal_id = #{assetsSelectDTO.principalId}
  196. </if>
  197. #关键字模糊查询
  198. <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
  199. AND (
  200. assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  201. assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  202. production.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
  203. customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
  204. )
  205. </if>
  206. ORDER BY assets.created DESC
  207. </select>
  208. <!--根据业务id获取资产业务详情-->
  209. <select id="getAssetsDetailById" resultType="com.dayou.vo.AssetsVO">
  210. SELECT assets.id,
  211. #查询客户经理
  212. (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
  213. user.name AS principalName,
  214. allot_type,
  215. assets.department_id,
  216. assets.order_id,
  217. assets.name,
  218. assets.assets_business_gener,
  219. assets.entrust_again,
  220. assets.clientele_type,
  221. assets.principal_id,
  222. customer.id AS clienteleId,
  223. customer.name AS customerName,
  224. linkman.id AS clienteleContactId,
  225. linkman.name AS linkmanName,
  226. linkman.department AS linkmanDepartment,
  227. linkman.duty AS linkmanDuty,
  228. linkman.mobile AS linkmanMobile,
  229. assets.security,
  230. assets.significant_assets_reorganization,
  231. assets.state_assets,
  232. assets.foreign_assets_involved,
  233. assets.dispense_benefit,
  234. assets.bailor,
  235. assets.bailor_address,
  236. assets.bailor_contact_name,
  237. assets.bailor_contact_tel,
  238. assets.terminal_clientele_id,
  239. assets.terminal_clientele_type,
  240. assets.remark,
  241. tLinkman.id AS tLinkmanId,
  242. tLinkman.name AS tLinkmanName,
  243. tLinkman.mobile AS tLinkmanMobile,
  244. assets.members AS members,
  245. #查询终端客户名称
  246. (SELECT customer_company.name FROM customer_company WHERE customer_company.id = assets.terminal_clientele_id) AS
  247. terminalClienteleName,
  248. assets.clientele_sub_id
  249. FROM assets
  250. LEFT JOIN user ON user.id = assets.principal_id
  251. LEFT JOIN department ON department.id = assets.department_id
  252. LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
  253. LEFT JOIN customer_linkman AS linkman ON linkman.id = assets.clientele_contact_id
  254. LEFT JOIN (SELECT tLinkman.id, tLinkman.name, tLinkman.mobile FROM customer_linkman AS tLinkman) AS tLinkman ON
  255. tLinkman.id = assets.terminal_clientele_contact_id
  256. <where>
  257. <if test="id != null">
  258. AND assets.id = #{id}
  259. </if>
  260. </where>
  261. </select>
  262. <!--根据业务id获取资产业务款项信息-->
  263. <select id="getOrderFundInvoiceById" resultType="com.dayou.vo.AssetsOrderFundInvoiceVO">
  264. SELECT order_fund.id,
  265. business_id,
  266. should_amount,
  267. order_fund.real_amount,
  268. title,
  269. type,
  270. tax_no,
  271. bank_name,
  272. bank_account,
  273. bank_address,
  274. bank_tel
  275. FROM order_fund
  276. LEFT JOIN finance_invoice ON finance_invoice.order_fund_id = order_fund.id
  277. WHERE order_fund.business_id = #{id}
  278. AND order_fund.deleted = 0
  279. </select>
  280. <!--根据业务类型与取号类型获取业务取号信息-->
  281. <select id="getBusinessNum" resultType="com.dayou.entity.BusinessNumber">
  282. SELECT id, year, month, next_no
  283. FROM business_number
  284. WHERE take_type = #{takeType}
  285. AND business_type = #{businessType}
  286. AND year = #{year}
  287. AND deleted = 0
  288. </select>
  289. <!--新增取号信息-->
  290. <insert id="addBusinessNum">
  291. INSERT INTO business_number(id, take_type, business_type, year, month, next_no)
  292. VALUE (NULL, #{takeType}, #{businessType}, #{year}, #{month}, #{nextNo})
  293. </insert>
  294. <!--更新取号信息-->
  295. <update id="updateBusinessNum">
  296. UPDATE business_number
  297. SET month = #{month},
  298. next_no = #{nextNo}
  299. WHERE id = #{id}
  300. </update>
  301. <!--获取项目参与人-->
  302. <select id="getBusinessMembers" resultType="com.dayou.entity.Assets">
  303. SELECT id, principal_id, members
  304. FROM assets
  305. WHERE deleted = 0
  306. AND id = #{businessId}
  307. </select>
  308. <!--获取报告签字师-->
  309. <select id="getSignatorys" resultType="java.lang.String">
  310. SELECT signatory
  311. FROM assets_production
  312. WHERE deleted = 0
  313. AND production_no = #{reportNo}
  314. </select>
  315. <!--获取用户信息-->
  316. <select id="getAssetsBusinessMember" resultType="com.dayou.vo.AssetsBusinessMember">
  317. SELECT id AS memberId, name AS memberName
  318. FROM user
  319. WHERE deleted = 0
  320. AND id = #{userId}
  321. </select>
  322. </mapper>