ElderlyChangeRecordMapper.xml 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800
  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="cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyChangeRecordMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="selectBedListPage" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.BedChangeRecordRespVO">
  11. SELECT
  12. ecr.id,
  13. ei.id AS elderlyId,
  14. ei.elder_name AS elderlyName,
  15. ei.id_card,
  16. ei.bed_id,
  17. ei.bed_name,
  18. ecr.original_id,
  19. ecr.original_name,
  20. soc.charge_name AS originalItemName,
  21. st.name as tenantName,
  22. st.id as tenantId,
  23. ecr.expect_id,
  24. ecr.expect_name,
  25. soc2.charge_name AS expectItemName,
  26. ecr.change_date,
  27. ecr.is_private_room,
  28. ecr.amount,
  29. bbf.`status`,
  30. bbf.process_instance_id
  31. FROM elderly_change_record ecr
  32. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  33. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  34. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  35. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 1
  36. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.expect_overhead_charge_id
  37. INNER JOIN sys_overhead_charge soc2 ON soc2.id = overhead_charge_id
  38. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id
  39. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  40. WHERE ecr.current_flag = 0 AND ecr.change_type = 0
  41. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  42. <if test="pageVO.bedName != null">
  43. AND ecr.expect_name LIKE CONCAT('%', #{pageVO.bedName}, '%')
  44. </if>
  45. <if test="pageVO.expectId != null">
  46. AND ecr.expect_id = #{pageVO.expectId}
  47. </if>
  48. <if test="pageVO.originalBedName != null">
  49. AND ecr.original_name LIKE CONCAT('%', #{pageVO.originalBedName}, '%')
  50. </if>
  51. <if test="pageVO.elderName != null">
  52. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  53. </if>
  54. <if test="pageVO.changeDate != null">
  55. AND ecr.change_date between #{pageVO.changeDate[0]} and #{pageVO.changeDate[1]}
  56. </if>
  57. <if test="pageVO.status != null">
  58. and bbf.`status` = #{pageVO.status}
  59. </if>
  60. <if test="pageVO.type != null">
  61. and bbf.`type` = #{pageVO.type}
  62. </if>
  63. <if test="pageVO.orgType != null">
  64. and ei.org_type = #{pageVO.orgType}
  65. </if>
  66. <if test="pageVO.tenantIds != null">
  67. and ei.tenant_id in
  68. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  69. #{id}
  70. </foreach>
  71. </if>
  72. ORDER BY ecr.create_time DESC , ecr.update_time DESC
  73. </select>
  74. <select id="getBedDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.BedChangeRecordRespVO">
  75. SELECT
  76. ecr.id,
  77. ei.id_card,
  78. ei.id AS elderlyId,
  79. ei.elder_name,
  80. ei.bed_id,
  81. ei.bed_name,
  82. ecr.original_id,
  83. ecr.original_name,
  84. ecr.overhead_charge_id,
  85. soc2.charge_name AS "originalItemName",
  86. eei.item_name AS originalItemName,
  87. eei.is_discount AS originalIsDiscount,
  88. ecr.original_amount AS originalAmount,
  89. ecr.expect_id,
  90. ecr.expect_name,
  91. ecr.expect_overhead_charge_id,
  92. soc.charge_name AS "expectItemName",
  93. ecr.change_date,
  94. ecr.is_private_room,
  95. ecr.is_discount,
  96. ecr.reason,
  97. ecr.elderly_id,
  98. ecr.change_files AS bedFiles,
  99. ecr.overhead_charge_id,
  100. ecr.amount,
  101. ecr.actual_amount,
  102. ecr.discount_amount,
  103. ecr.discount,
  104. ecr.category_name,
  105. bbf.start_tenant_id
  106. FROM elderly_change_record ecr
  107. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 4
  108. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  109. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  110. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  111. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 1
  112. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.expect_overhead_charge_id
  113. INNER JOIN sys_overhead_charge soc2 ON ecr.overhead_charge_id = soc2.id
  114. WHERE ecr.current_flag = #{currentFlag} AND ecr.id = #{id}
  115. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  116. </select>
  117. <select id="createBedChangeGetDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.BedChangeRecordRespVO">
  118. SELECT
  119. ecr.id,
  120. ei.id_card,
  121. ei.id AS elderlyId,
  122. ei.elder_name,
  123. ei.bed_id,
  124. ei.bed_name,
  125. ecr.original_id,
  126. ecr.original_name,
  127. ecr.overhead_charge_id,
  128. soc2.charge_name AS "originalItemName",
  129. eei.item_name AS originalItemName,
  130. eei.is_discount AS originalIsDiscount,
  131. eei.actual_amount AS originalAmount,
  132. ecr.expect_id,
  133. ecr.expect_name,
  134. ecr.expect_overhead_charge_id,
  135. soc.charge_name AS "expectItemName",
  136. ecr.change_date,
  137. ecr.is_private_room,
  138. ecr.is_discount,
  139. ecr.reason,
  140. ecr.elderly_id,
  141. ecr.change_files AS bedFiles,
  142. ecr.overhead_charge_id,
  143. ecr.amount,
  144. ecr.actual_amount,
  145. ecr.discount_amount,
  146. ecr.discount,
  147. ecr.category_name,
  148. bbf.start_tenant_id
  149. FROM elderly_change_record ecr
  150. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 4
  151. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  152. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  153. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  154. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 1
  155. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.expect_overhead_charge_id
  156. INNER JOIN sys_overhead_charge soc2 ON ecr.overhead_charge_id = soc2.id
  157. WHERE ecr.current_flag = #{currentFlag} AND ecr.id = #{id}
  158. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  159. </select>
  160. <select id="selectElderlyPage" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.BedChangeElderlyRespVO">
  161. SELECT
  162. eei.id AS expenseItemId,
  163. eei.item_name,
  164. ei.id,
  165. ei.elder_name,
  166. ei.id_card,
  167. ei.bed_id,
  168. eei.item_id AS originalId,
  169. eei.item_id AS overheadChargeId,
  170. eei.actual_amount,
  171. eei.discount_amount,
  172. eei.is_discount,
  173. ei.tenant_id,
  174. st.name AS tenantName,
  175. ei.elder_sex
  176. FROM
  177. elderly_info ei
  178. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  179. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  180. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id
  181. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  182. WHERE
  183. ei.in_status = 1
  184. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  185. <if test="pageVO.elderName != null">
  186. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  187. </if>
  188. <if test="pageVO.identification != null">
  189. AND scc.identification = #{pageVO.identification}
  190. </if>
  191. <if test="pageVO.tenantIds != null">
  192. AND ei.tenant_id in
  193. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  194. #{id}
  195. </foreach>
  196. </if>
  197. order by ei.update_time desc
  198. </select>
  199. <select id="selectElderlyById" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.BedChangeElderlyRespVO">
  200. SELECT
  201. eei.item_name,
  202. ei.id,
  203. ei.elder_name,
  204. ei.id_card,
  205. ei.bed_id,
  206. eei.item_id AS originalId,
  207. eei.item_id AS overheadChargeId,
  208. eei.actual_amount,
  209. eei.discount_amount,
  210. eei.is_discount,
  211. ei.tenant_id,
  212. st.name AS tenantName,
  213. ei.elder_sex
  214. FROM
  215. elderly_info ei
  216. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  217. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  218. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id
  219. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  220. WHERE
  221. ei.in_status = 1
  222. AND ei.id = #{elderId}
  223. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  224. <if test="pageVO.identification != null">
  225. AND scc.identification = #{pageVO.identification}
  226. </if>
  227. <if test="pageVO.tenantIds != null">
  228. AND ei.tenant_id in
  229. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  230. #{id}
  231. </foreach>
  232. </if>
  233. order by ei.update_time desc
  234. </select>
  235. <select id="selectNurseListPage" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.NurseChangeRecordRespVO">
  236. SELECT
  237. ecr.id,
  238. eei.item_name AS originalItemName,
  239. soc.charge_name,
  240. ei.id AS elderlyId,
  241. ei.elder_name AS elderlyName,
  242. ei.id_card,
  243. ecr.original_id,
  244. ecr.original_name,
  245. ecr.expect_id,
  246. ecr.expect_name,
  247. ecr.change_date,
  248. ecr.is_private_room,
  249. ecr.amount,
  250. st.name as tenantName,
  251. st.id as tenantId,
  252. bbf.`status`,
  253. bbf.process_instance_id
  254. FROM elderly_change_record ecr
  255. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  256. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  257. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  258. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 2
  259. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  260. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id
  261. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  262. WHERE ecr.current_flag = 0
  263. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  264. <if test="pageVO.expectName != null">
  265. AND ecr.expect_name LIKE CONCAT('%', #{pageVO.expectName}, '%')
  266. </if>
  267. <if test="pageVO.originalName != null">
  268. AND ecr.original_name LIKE CONCAT('%', #{pageVO.originalName}, '%')
  269. </if>
  270. <if test="pageVO.elderName != null">
  271. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  272. </if>
  273. <if test="pageVO.changeDate != null">
  274. AND ecr.change_date between #{pageVO.changeDate[0]} and #{pageVO.changeDate[1]}
  275. </if>
  276. <if test="pageVO.status != null">
  277. and bbf.`status` = #{pageVO.status}
  278. </if>
  279. <if test="pageVO.type != null">
  280. and bbf.`type` = #{pageVO.type}
  281. </if>
  282. <if test="pageVO.changeType != null">
  283. and ecr.change_type = #{pageVO.changeType}
  284. </if>
  285. <if test="pageVO.orgType != null">
  286. and ei.org_type = #{pageVO.orgType}
  287. </if>
  288. <if test="pageVO.tenantIds != null">
  289. and ei.tenant_id in
  290. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  291. #{id}
  292. </foreach>
  293. </if>
  294. ORDER BY ecr.create_time DESC , ecr.update_time DESC
  295. </select>
  296. <select id="selectCateringListPage" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.CateringChangeRecordRespVO">
  297. SELECT
  298. ecr.id,
  299. eei.item_name AS originalItemName,
  300. soc.charge_name,
  301. ei.id AS elderlyId,
  302. ei.elder_name AS elderlyName,
  303. ei.id_card,
  304. ei.elder_sex,
  305. ecr.original_id,
  306. ecr.original_name,
  307. ecr.expect_id,
  308. ecr.expect_name,
  309. ecr.change_date,
  310. ecr.is_private_room,
  311. ecr.amount,
  312. ecr.overhead_charge_id,
  313. ecr.category_name,
  314. bbf.`status`,
  315. bbf.process_instance_id,
  316. st.name as tenantName,
  317. st.id as tenantId
  318. FROM elderly_change_record ecr
  319. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  320. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  321. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  322. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 3
  323. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  324. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id
  325. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  326. WHERE ecr.current_flag = 0
  327. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  328. <if test="pageVO.expectName != null">
  329. AND ecr.expect_name LIKE CONCAT('%', #{pageVO.expectName}, '%')
  330. </if>
  331. <if test="pageVO.originalName != null">
  332. AND ecr.original_name LIKE CONCAT('%', #{pageVO.originalName}, '%')
  333. </if>
  334. <if test="pageVO.elderName != null">
  335. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  336. </if>
  337. <if test="pageVO.changeDate != null">
  338. AND ecr.change_date between #{pageVO.changeDate[0]} and #{pageVO.changeDate[1]}
  339. </if>
  340. <if test="pageVO.status != null">
  341. and bbf.`status` = #{pageVO.status}
  342. </if>
  343. <if test="pageVO.type != null">
  344. and bbf.`type` = #{pageVO.type}
  345. </if>
  346. <if test="pageVO.changeType != null">
  347. and ecr.change_type = #{pageVO.changeType}
  348. </if>
  349. <if test="pageVO.orgType != null">
  350. and ei.org_type = #{pageVO.orgType}
  351. </if>
  352. <if test="pageVO.tenantIds != null">
  353. and ei.tenant_id in
  354. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  355. #{id}
  356. </foreach>
  357. </if>
  358. ORDER BY ecr.create_time DESC , ecr.update_time DESC
  359. </select>
  360. <select id="selectPriceListPage" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.PriceChangeRecordRespVO">
  361. SELECT
  362. ecr.id,
  363. ei.id AS elderlyId,
  364. ei.elder_name AS elderlyName,
  365. ei.id_card,
  366. ecr.change_date,
  367. ecr.category_name,
  368. bbf.`status`,
  369. bbf.process_instance_id,
  370. st.name as tenantName,
  371. st.id as tenantId
  372. FROM elderly_change_record ecr
  373. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  374. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id
  375. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  376. WHERE ecr.current_flag = 0
  377. <if test="pageVO.expectName != null">
  378. AND ecr.expect_name LIKE CONCAT('%', #{pageVO.expectName}, '%')
  379. </if>
  380. <if test="pageVO.originalName != null">
  381. AND ecr.original_name LIKE CONCAT('%', #{pageVO.originalName}, '%')
  382. </if>
  383. <if test="pageVO.elderName != null">
  384. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  385. </if>
  386. <if test="pageVO.changeDate != null">
  387. AND ecr.change_date between #{pageVO.changeDate[0]} and #{pageVO.changeDate[1]}
  388. </if>
  389. <if test="pageVO.status != null">
  390. and bbf.`status` = #{pageVO.status}
  391. </if>
  392. <if test="pageVO.type != null">
  393. and bbf.`type` = #{pageVO.type}
  394. </if>
  395. <if test="pageVO.changeType != null">
  396. and ecr.change_type = #{pageVO.changeType}
  397. </if>
  398. <if test="pageVO.orgType != null">
  399. and ei.org_type = #{pageVO.orgType}
  400. </if>
  401. <if test="pageVO.tenantIds != null">
  402. and ei.tenant_id in
  403. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  404. #{id}
  405. </foreach>
  406. </if>
  407. ORDER BY ecr.create_time DESC , ecr.update_time DESC
  408. </select>
  409. <select id="selectTransferListPage" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.TransferChangeRecordRespVO">
  410. SELECT
  411. ecr.id,
  412. ei.id AS elderlyId,
  413. ei.elder_name AS elderlyName,
  414. ecr.change_date,
  415. bbf.`status`,
  416. bbf.process_instance_id,
  417. st.name as tenantName,
  418. st.id as tenantId
  419. FROM elderly_change_record ecr
  420. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  421. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id
  422. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  423. WHERE ecr.current_flag = 0
  424. <if test="pageVO.expectName != null">
  425. AND ecr.expect_name LIKE CONCAT('%', #{pageVO.expectName}, '%')
  426. </if>
  427. <if test="pageVO.originalName != null">
  428. AND ecr.original_name LIKE CONCAT('%', #{pageVO.originalName}, '%')
  429. </if>
  430. <if test="pageVO.elderName != null">
  431. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  432. </if>
  433. <if test="pageVO.changeDate != null">
  434. AND ecr.change_date between #{pageVO.changeDate[0]} and #{pageVO.changeDate[1]}
  435. </if>
  436. <if test="pageVO.status != null">
  437. and bbf.`status` = #{pageVO.status}
  438. </if>
  439. <if test="pageVO.type != null">
  440. and bbf.`type` = #{pageVO.type}
  441. </if>
  442. <if test="pageVO.changeType != null">
  443. and ecr.change_type = #{pageVO.changeType}
  444. </if>
  445. <if test="pageVO.orgType != null">
  446. and ei.org_type = #{pageVO.orgType}
  447. </if>
  448. <if test="pageVO.tenantIds != null">
  449. and ei.tenant_id in
  450. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  451. #{id}
  452. </foreach>
  453. </if>
  454. ORDER BY ecr.create_time DESC , ecr.update_time DESC
  455. </select>
  456. <select id="getEvaluationByElderId" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.NurseChangeyEvaluationRespVO">
  457. SELECT
  458. sep.id AS evaluationProcessId,
  459. sep.process_name,
  460. sep.type,
  461. esa.id AS syntheticAbilityId,
  462. esa.total_score
  463. FROM elderly_synthetic_ability esa
  464. INNER JOIN sys_evaluation_process sep ON esa.questionnaire_id = sep.id
  465. INNER JOIN elderly_info ei ON esa.elder_id = ei.id
  466. WHERE esa.status = 0 AND ei.id = #{elderId}
  467. </select>
  468. <select id="getNurseDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.NurseChangeDetailRespVO">
  469. SELECT
  470. ecr.id,
  471. eei.item_name AS originalItemName,
  472. eei.is_discount AS originalIsDiscount,
  473. ecr.original_amount AS originalAmount,
  474. eei.discount_amount AS originalDiscountAmount,
  475. ecr.original_amount AS originalActualAmount,
  476. eei.discount AS originalDiscount,
  477. soc.charge_name,
  478. ei.elder_name,
  479. ei.id_card,
  480. ei.bed_id,
  481. ecr.original_id,
  482. ecr.original_name,
  483. ecr.expect_id,
  484. ecr.expect_name,
  485. ecr.change_date,
  486. ecr.is_private_room,
  487. ecr.is_discount,
  488. ecr.reason,
  489. ecr.elderly_id,
  490. ecr.change_files,
  491. ecr.overhead_charge_id,
  492. ecr.amount,
  493. ecr.actual_amount,
  494. ecr.discount_amount,
  495. ecr.discount,
  496. esa.id AS syntheticAbilityId,
  497. esa.questionnaire_name AS processName,
  498. sep.id AS evaluationProcessId,
  499. esa.total_score,
  500. bbf.start_tenant_id
  501. FROM elderly_change_record ecr
  502. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 5
  503. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  504. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  505. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  506. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 2
  507. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  508. LEFT JOIN sys_evaluation_process sep ON ecr.associate_id = sep.id
  509. LEFT JOIN elderly_synthetic_ability esa ON sep.id = esa.questionnaire_id AND esa.elder_id = ei.id
  510. WHERE ecr.current_flag = 0 AND ecr.id = #{id}
  511. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  512. </select>
  513. <select id="createNurseChangeGetDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.NurseChangeDetailRespVO">
  514. SELECT
  515. ecr.id,
  516. eei.item_name AS originalItemName,
  517. eei.is_discount AS originalIsDiscount,
  518. ecr.original_amount AS originalAmount,
  519. eei.discount_amount AS originalDiscountAmount,
  520. eei.actual_amount AS originalActualAmount,
  521. eei.discount AS originalDiscount,
  522. soc.charge_name,
  523. ei.elder_name,
  524. ei.id_card,
  525. ei.bed_id,
  526. ecr.original_id,
  527. ecr.original_name,
  528. ecr.expect_id,
  529. ecr.expect_name,
  530. ecr.change_date,
  531. ecr.is_private_room,
  532. ecr.is_discount,
  533. ecr.reason,
  534. ecr.elderly_id,
  535. ecr.change_files,
  536. ecr.overhead_charge_id,
  537. ecr.amount,
  538. ecr.actual_amount,
  539. ecr.discount_amount,
  540. ecr.discount,
  541. esa.id AS syntheticAbilityId,
  542. esa.questionnaire_name AS processName,
  543. sep.id AS evaluationProcessId,
  544. esa.total_score,
  545. bbf.start_tenant_id
  546. FROM elderly_change_record ecr
  547. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 5
  548. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  549. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  550. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  551. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 2
  552. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  553. LEFT JOIN sys_evaluation_process sep ON ecr.associate_id = sep.id
  554. LEFT JOIN elderly_synthetic_ability esa ON sep.id = esa.questionnaire_id AND esa.elder_id = ei.id
  555. WHERE ecr.current_flag = 0 AND ecr.id = #{id}
  556. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  557. </select>
  558. <select id="createCateringChangeGetDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.CateringChangeDetailRespVO">
  559. SELECT
  560. ecr.id,
  561. eei.item_name AS originalItemName,
  562. eei.is_discount AS originalIsDiscount,
  563. eei.actual_amount AS originalAmount,
  564. soc.charge_name,
  565. ei.elder_name,
  566. ei.id_card,
  567. ei.bed_id,
  568. ecr.original_id,
  569. ecr.original_name,
  570. ecr.expect_id,
  571. ecr.expect_name,
  572. ecr.change_date,
  573. ecr.is_private_room,
  574. ecr.is_discount,
  575. ecr.reason,
  576. ecr.elderly_id,
  577. ecr.change_files,
  578. ecr.overhead_charge_id,
  579. ecr.amount,
  580. ecr.actual_amount,
  581. ecr.discount_amount,
  582. ecr.discount,
  583. bbf.process_instance_id,
  584. bbf.status
  585. FROM elderly_change_record ecr
  586. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 6
  587. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  588. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  589. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  590. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 3
  591. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  592. WHERE ecr.current_flag = 0 AND ecr.id = #{id}
  593. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  594. </select>
  595. <select id="getCateringDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.CateringChangeDetailRespVO">
  596. SELECT
  597. ecr.id,
  598. eei.item_name AS originalItemName,
  599. eei.is_discount AS originalIsDiscount,
  600. soc.price AS originalAmount,
  601. soc.charge_name,
  602. ei.elder_name,
  603. ei.id_card,
  604. ei.bed_id,
  605. ecr.original_id,
  606. ecr.original_name,
  607. ecr.expect_id,
  608. ecr.expect_name,
  609. ecr.change_date,
  610. ecr.is_private_room,
  611. ecr.is_discount,
  612. ecr.reason,
  613. ecr.elderly_id,
  614. ecr.change_files,
  615. ecr.overhead_charge_id,
  616. ecr.amount,
  617. ecr.actual_amount,
  618. ecr.discount_amount,
  619. ecr.discount,
  620. bbf.process_instance_id,
  621. bbf.status
  622. FROM elderly_change_record ecr
  623. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 6
  624. INNER JOIN elderly_info ei ON ecr.elderly_id = ei.id
  625. INNER JOIN elderly_expense ee ON ei.id = ee.elder_id
  626. INNER JOIN elderly_expense_item eei ON eei.expense_id = ee.id
  627. INNER JOIN sys_charge_category scc ON scc.id = eei.item_category_id AND scc.identification = 3
  628. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  629. WHERE ecr.current_flag = 0 AND ecr.id = #{id}
  630. AND ee.created_time = (SELECT MAX(ee2.created_time) FROM elderly_expense ee2 WHERE ee2.elder_id = ei.id)
  631. </select>
  632. <select id="selectDetail" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.TransferChangeDetailRespVO">
  633. SELECT
  634. ecr.id,
  635. ecr.elderly_id,
  636. ecr.original_id,
  637. ecr.original_name,
  638. ecr.change_date,
  639. ecr.expect_id,
  640. ecr.expect_name,
  641. ecr.associate_id,
  642. ecr.category_name,
  643. ecr.overhead_charge_id,
  644. ecr.amount,
  645. ecr.actual_amount,
  646. ecr.discount_amount,
  647. ecr.discount,
  648. ecr.is_discount,
  649. ecr.is_private_room,
  650. ecr.change_files,
  651. ecr.reason,
  652. ecr.current_flag,
  653. ecr.change_type,
  654. ecr.create_time,
  655. ecr.update_time,
  656. ecr.creator,
  657. ecr.updater,
  658. ecr.deleted ,
  659. bbf.process_instance_id,
  660. bbf.`status`,
  661. ei.elder_name,
  662. ei.id_card
  663. FROM
  664. elderly_change_record ecr
  665. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id AND type = 8
  666. INNER JOIN elderly_info ei ON ei.id = bbf.business_id2
  667. WHERE
  668. ecr.id = #{id}
  669. </select>
  670. <select id="selectTransferElderlyPage" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.BedChangeElderlyRespVO">
  671. SELECT
  672. ei.id,
  673. ei.elder_name,
  674. ei.id_card,
  675. ei.bed_id,
  676. ei.tenant_id,
  677. st.name AS tenantName,
  678. ei.elder_sex
  679. FROM
  680. elderly_info ei
  681. INNER JOIN system_tenant st ON st.id = ei.tenant_id
  682. WHERE ei.in_status = 1
  683. <if test="pageVO.elderName != null">
  684. AND ei.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
  685. </if>
  686. <if test="pageVO.tenantIds != null">
  687. AND ei.tenant_id in
  688. <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
  689. #{id}
  690. </foreach>
  691. </if>
  692. order by ei.update_time desc
  693. </select>
  694. <select id="selectLastRecordByElderId" resultType="cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyChangeRecordDO">
  695. SELECT
  696. ecr.change_date
  697. FROM
  698. `elderly_change_record` ecr
  699. INNER JOIN bpm_business_form bbf ON ecr.id = bbf.business_id AND bbf.type = #{bpmType}
  700. WHERE ecr.change_type = #{changeType}
  701. AND ecr.elderly_id = #{elderlyId}
  702. AND bbf.`status` IN (2, 5)
  703. AND DATE_FORMAT(ecr.change_date, '%Y-%m') = DATE_FORMAT(#{changeDate}, '%Y-%m')
  704. AND ecr.id != #{id}
  705. ORDER BY change_date DESC LIMIT 1
  706. </select>
  707. <select id="checkBpmBusinessFormById" resultType="java.lang.Integer">
  708. SELECT count(1)
  709. FROM elderly_change_record ecr
  710. INNER JOIN bpm_business_form bbf ON bbf.business_id = ecr.id AND bbf.type = 4
  711. WHERE bbf.business_id = #{id}
  712. AND bbf.type = 4
  713. AND ecr.current_flag = 0
  714. </select>
  715. <select id="getBedNurseChangeOriginById" resultType="cn.iocoder.yudao.module.system.api.order.VO.BedNurseChangeOriginVO">
  716. SELECT eei.id as expenseItemId,
  717. soc.id as originalItemId,
  718. soc.charge_name as originalItemName,
  719. soc.price as originalAmount,
  720. eei.change_start_date as changeStartDate
  721. FROM elderly_expense_item eei
  722. INNER JOIN elderly_change_record ecr ON ecr.expect_overhead_charge_id = eei.item_id
  723. INNER JOIN sys_overhead_charge soc ON soc.id = ecr.overhead_charge_id
  724. WHERE eei.id = #{expenseItemId}
  725. AND eei.change_start_date &gt;= #{begin}
  726. AND eei.change_start_date &lt; #{end}
  727. AND soc.price is not null
  728. ORDER BY ecr.update_time DESC
  729. LIMIT 1
  730. </select>
  731. <select id="selectLastNurseRecordByElderIds" resultType="cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyChangeRecordDO">
  732. SELECT t.*
  733. FROM elderly_change_record t
  734. INNER JOIN (
  735. SELECT elderly_id, MAX(change_date) AS max_change_date
  736. FROM elderly_change_record
  737. WHERE change_type = 1
  738. AND tenant_id = #{tenantId}
  739. AND change_date &lt;= #{monthEnd}
  740. AND elderly_id IN
  741. <foreach item="id" collection="elderIds" open="(" separator="," close=")">
  742. #{id}
  743. </foreach>
  744. GROUP BY elderly_id
  745. ) x ON x.elderly_id = t.elderly_id AND x.max_change_date = t.change_date
  746. WHERE t.change_type = 1
  747. AND t.tenant_id = #{tenantId}
  748. </select>
  749. <select id="selectLastBedRecordByElderIds" resultType="cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyChangeRecordDO">
  750. SELECT t.*
  751. FROM elderly_change_record t
  752. INNER JOIN (
  753. SELECT elderly_id, MAX(change_date) AS max_change_date
  754. FROM elderly_change_record
  755. WHERE change_type = 0
  756. AND tenant_id = #{tenantId}
  757. AND change_date &lt;= #{monthEnd}
  758. AND elderly_id IN
  759. <foreach item="id" collection="elderIds" open="(" separator="," close=")">
  760. #{id}
  761. </foreach>
  762. GROUP BY elderly_id
  763. ) x ON x.elderly_id = t.elderly_id AND x.max_change_date = t.change_date
  764. WHERE t.change_type = 0
  765. AND t.tenant_id = #{tenantId}
  766. </select>
  767. </mapper>