ExpenseInfoMapper.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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.expense.dal.mysql.expenseinfo.ExpenseInfoMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="selectPageCount" resultType="java.lang.Long">
  11. SELECT COUNT(fei.id)
  12. FROM
  13. finance_expense_info fei
  14. LEFT JOIN employee_info ei ON fei.employee_id = ei.id and ei.deleted = 0
  15. LEFT JOIN system_post sp ON sp.id = ei.post_id and sp.deleted = 0
  16. LEFT JOIN employee_info ei2 ON fei.create_employee_id = ei2.id and ei2.deleted = 0
  17. LEFT JOIN system_dept sd ON fei.dept_id = sd.id and sd.deleted = 0
  18. LEFT JOIN finance_expense_type fet ON fei.expense_type_id = fet.id and fet.deleted = 0
  19. WHERE fei.deleted = 0
  20. <if test="page.employeeName != null and page.employeeName != ''">
  21. AND ei.name like concat('%',#{page.employeeName},'%')
  22. </if>
  23. <if test="page.deptId != null">
  24. AND fei.dept_id = #{page.deptId}
  25. </if>
  26. <if test="page.postId != null">
  27. AND fei.post_id = #{page.postId}
  28. </if>
  29. <if test="page.employeePhone != null and page.employeePhone != ''">
  30. AND ei.phone like concat('%',#{page.employeePhone},'%')
  31. </if>
  32. <if test="page.expenseTypeId != null">
  33. AND fei.expense_type_id = #{page.expenseTypeId}
  34. </if>
  35. <if test="page.infoSource != null and page.infoSource != ''">
  36. AND fei.info_source = #{page.infoSource}
  37. </if>
  38. <if test="page.createEmployeeName != null and page.createEmployeeName != ''">
  39. AND ei2.name like concat('%',#{page.createEmployeeName},'%')
  40. </if>
  41. <if test="page.createTime != null and page.createTime.length > 0">
  42. AND fei.create_time BETWEEN #{page.createTime[0]} AND #{page.createTime[1]}
  43. </if>
  44. </select>
  45. <select id="selectPageList"
  46. resultType="cn.iocoder.yudao.module.expense.controller.admin.expenseinfo.vo.ExpenseInfoRespVO">
  47. SELECT
  48. fei.id,
  49. fei.expense_uuid,
  50. fei.employee_id,
  51. ei.name employeeName,
  52. ei.phone employeePhone,
  53. fei.post_id,
  54. sp.name AS "position",
  55. fei.dept_id,
  56. sd.`name` deptName,
  57. fei.expense_type_id,
  58. fet.name expenseTypeName,
  59. fei.expense_month,
  60. fei.total_money,
  61. fei.remarks,
  62. fei.status,
  63. fei.info_source,
  64. fei.create_employee_id,
  65. fei.create_time,
  66. ei2.name createEmployeeName
  67. FROM
  68. finance_expense_info fei
  69. LEFT JOIN employee_info ei ON fei.employee_id = ei.id and ei.deleted = 0
  70. LEFT JOIN system_post sp ON sp.id = ei.post_id and sp.deleted = 0
  71. LEFT JOIN employee_info ei2 ON fei.create_employee_id = ei2.id and ei2.deleted = 0
  72. LEFT JOIN system_dept sd ON fei.dept_id = sd.id and sd.deleted = 0
  73. LEFT JOIN finance_expense_type fet ON fei.expense_type_id = fet.id and fet.deleted = 0
  74. WHERE fei.deleted = 0
  75. <if test="page.employeeName != null and page.employeeName != ''">
  76. AND ei.name like concat('%',#{page.employeeName},'%')
  77. </if>
  78. <if test="page.deptId != null">
  79. AND fei.dept_id = #{page.deptId}
  80. </if>
  81. <if test="page.postId != null">
  82. AND fei.post_id = #{page.postId}
  83. </if>
  84. <if test="page.employeePhone != null and page.employeePhone != ''">
  85. AND ei.phone like concat('%',#{page.employeePhone},'%')
  86. </if>
  87. <if test="page.expenseTypeId != null">
  88. AND fei.expense_type_id = #{page.expenseTypeId}
  89. </if>
  90. <if test="page.infoSource != null and page.infoSource != ''">
  91. AND fei.info_source = #{page.infoSource}
  92. </if>
  93. <if test="page.createEmployeeName != null and page.createEmployeeName != ''">
  94. AND ei2.name like concat('%',#{page.createEmployeeName},'%')
  95. </if>
  96. <if test="page.createTime != null and page.createTime.length > 0">
  97. AND fei.create_time BETWEEN #{page.createTime[0]} AND #{page.createTime[1]}
  98. </if>
  99. ORDER BY fei.create_time DESC
  100. <if test="page.pageSize != -1">
  101. LIMIT #{page.pageNo}, #{page.pageSize}
  102. </if>
  103. </select>
  104. </mapper>