PurchaseOrderDetailMapper.xml 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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.jt.cloud.module.print.dal.mysql.purchaseorder.PurchaseOrderDetailMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="capacityTotalPage" resultType="com.jt.cloud.module.print.controller.admin.purchaseorder.vo.CapacityTotalListVO">
  11. SELECT
  12. a.purchase_order AS purchaseOrder,
  13. b.purchase_order_type AS purchaseOrderType,
  14. a.company_code AS companyCode,
  15. a.purchasing_organization AS purchasingOrganization,
  16. a.purchasing_group AS purchasingGroup,
  17. a.supplier,
  18. a.supplier_name AS supplierName,
  19. a.create_time AS creationDate,
  20. b.printed,
  21. b.printed_by_name AS printedByName,
  22. b.printed_time AS printedTime,
  23. a.purchase_order_item AS purchaseOrderItem,
  24. a.material,
  25. c.material_name materialName,
  26. a.order_quantity AS orderQuantity,
  27. c.customer_material_no AS customerMaterialNo,
  28. COALESCE(c.material_name, '') AS customerMaterialName,
  29. c.style_no AS styleNo,
  30. c.barcode
  31. FROM purchase_order_detail a
  32. LEFT JOIN purchase_order_header b ON a.purchase_order = b.purchase_order AND b.deleted = 0
  33. LEFT JOIN material_base_info c ON a.material = c.sap_material_code AND c.deleted = 0
  34. WHERE a.deleted = 0
  35. <if test="queryDTO.purchaseOrder != null and queryDTO.purchaseOrder != ''">
  36. AND a.purchase_order LIKE CONCAT('%', #{queryDTO.purchaseOrder}, '%')
  37. </if>
  38. <if test="queryDTO.styleNo != null and queryDTO.styleNo != ''">
  39. AND c.style_no LIKE CONCAT('%', #{queryDTO.styleNo}, '%')
  40. </if>
  41. <if test="queryDTO.printed != null">
  42. AND b.printed = #{queryDTO.printed}
  43. </if>
  44. <if test="queryDTO.printedByName != null and queryDTO.printedByName != ''">
  45. AND b.printed_by_name LIKE CONCAT('%', #{queryDTO.printedByName}, '%')
  46. </if>
  47. <if test="queryDTO.printedStartDate != null and queryDTO.printedStartDate != ''">
  48. AND b.printed_time >= #{queryDTO.printedStartDate}
  49. </if>
  50. <if test="queryDTO.printedEndDate != null and queryDTO.printedEndDate != ''">
  51. AND b.printed_time &lt;= #{queryDTO.printedEndDate}
  52. </if>
  53. <if test="queryDTO.createStartDate != null and queryDTO.createStartDate != ''">
  54. AND a.create_time >= #{queryDTO.createStartDate}
  55. </if>
  56. <if test="queryDTO.createEndDate != null and queryDTO.createEndDate != ''">
  57. AND a.create_time &lt;= #{queryDTO.createEndDate}
  58. </if>
  59. ORDER BY a.create_time DESC
  60. </select>
  61. <select id="getCapacityTotal" resultType="java.lang.Long">
  62. SELECT
  63. COALESCE(SUM(a.order_quantity), 0) as total
  64. FROM purchase_order_detail a
  65. LEFT JOIN purchase_order_header b ON a.purchase_order = b.purchase_order AND b.deleted = 0
  66. LEFT JOIN material_base_info c ON a.material = c.sap_material_code AND c.deleted = 0
  67. WHERE a.deleted = 0 and a.order_quantity is not null
  68. <if test="queryDTO.purchaseOrder != null and queryDTO.purchaseOrder != ''">
  69. AND a.purchase_order LIKE CONCAT('%', #{queryDTO.purchaseOrder}, '%')
  70. </if>
  71. <if test="queryDTO.styleNo != null and queryDTO.styleNo != ''">
  72. AND c.style_no LIKE CONCAT('%', #{queryDTO.styleNo}, '%')
  73. </if>
  74. <if test="queryDTO.printed != null">
  75. AND b.printed = #{queryDTO.printed}
  76. </if>
  77. <if test="queryDTO.printedByName != null and queryDTO.printedByName != ''">
  78. AND b.printed_by_name LIKE CONCAT('%', #{queryDTO.printedByName}, '%')
  79. </if>
  80. <if test="queryDTO.printedStartDate != null and queryDTO.printedStartDate != ''">
  81. AND b.printed_time >= #{queryDTO.printedStartDate}
  82. </if>
  83. <if test="queryDTO.printedEndDate != null and queryDTO.printedEndDate != ''">
  84. AND b.printed_time &lt;= #{queryDTO.printedEndDate}
  85. </if>
  86. <if test="queryDTO.createStartDate != null and queryDTO.createStartDate != ''">
  87. AND a.create_time >= #{queryDTO.createStartDate}
  88. </if>
  89. <if test="queryDTO.createEndDate != null and queryDTO.createEndDate != ''">
  90. AND a.create_time &lt;= #{queryDTO.createEndDate}
  91. </if>
  92. </select>
  93. </mapper>