OrderInvoiceMapper.xml 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zhongzheng.modules.order.mapper.OrderInvoiceMapper">
  6. <resultMap type="com.zhongzheng.modules.order.domain.OrderInvoice" id="OrderInvoiceResult">
  7. <result property="invoiceId" column="invoice_id"/>
  8. <result property="type" column="type"/>
  9. <result property="invoiceTitle" column="invoice_title"/>
  10. <result property="email" column="email"/>
  11. <result property="periodStatus" column="period_status"/>
  12. <result property="subject" column="subject"/>
  13. <result property="userId" column="user_id"/>
  14. <result property="taxRegistryNumber" column="tax_registry_number"/>
  15. <result property="createTime" column="create_time"/>
  16. <result property="updateTime" column="update_time"/>
  17. <result property="status" column="status"/>
  18. <result property="invoiceStatus" column="invoice_status"/>
  19. <result property="amount" column="amount"/>
  20. <result property="invoiceCode" column="invoice_code"/>
  21. <result property="uploadInvoice" column="upload_invoice"/>
  22. <result property="sendInvoice" column="send_invoice"/>
  23. <result property="trackingNum" column="tracking_num"/>
  24. <result property="makeOutTime" column="make_out_time"/>
  25. <result property="applyTime" column="apply_time"/>
  26. <result property="invoiceImg" column="invoice_img"/>
  27. <result property="periodReason" column="period_reason"/>
  28. <result property="companyAddress" column="company_address"/>
  29. <result property="phone" column="phone"/>
  30. <result property="bankName" column="bank_name"/>
  31. <result property="bankAccount" column="bank_account"/>
  32. <result property="receivingAddress" column="receiving_address"/>
  33. <result property="receivingName" column="receiving_name"/>
  34. <result property="receivingTel" column="receiving_tel"/>
  35. <result property="invoiceNum" column="invoice_num"/>
  36. <result property="periodTime" column="period_time"/>
  37. </resultMap>
  38. <resultMap type="com.zhongzheng.modules.order.vo.OrderInvoiceVo" id="OrderInvoiceVoResult">
  39. <result property="invoiceId" column="invoice_id"/>
  40. <result property="type" column="type"/>
  41. <result property="invoiceTitle" column="invoice_title"/>
  42. <result property="email" column="email"/>
  43. <result property="periodStatus" column="period_status"/>
  44. <result property="subject" column="subject"/>
  45. <result property="userId" column="user_id"/>
  46. <result property="taxRegistryNumber" column="tax_registry_number"/>
  47. <result property="status" column="status"/>
  48. <result property="invoiceStatus" column="invoice_status"/>
  49. <result property="amount" column="amount"/>
  50. <result property="invoiceCode" column="invoice_code"/>
  51. <result property="uploadInvoice" column="upload_invoice"/>
  52. <result property="sendInvoice" column="send_invoice"/>
  53. <result property="trackingNum" column="tracking_num"/>
  54. <result property="makeOutTime" column="make_out_time"/>
  55. <result property="applyTime" column="apply_time"/>
  56. <result property="invoiceImg" column="invoice_img"/>
  57. <result property="periodReason" column="period_reason"/>
  58. <result property="companyAddress" column="company_address"/>
  59. <result property="phone" column="phone"/>
  60. <result property="bankName" column="bank_name"/>
  61. <result property="bankAccount" column="bank_account"/>
  62. <result property="receivingAddress" column="receiving_address"/>
  63. <result property="receivingName" column="receiving_name"/>
  64. <result property="receivingTel" column="receiving_tel"/>
  65. <result property="idCard" column="id_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
  66. <result property="realname" column="realname"/>
  67. <result property="invoiceNum" column="invoice_num"/>
  68. <result property="periodTime" column="period_time"/>
  69. <collection property="orderList" column="invoice_id" select="findOrderList"/>
  70. </resultMap>
  71. <resultMap type="com.zhongzheng.modules.order.vo.OrderGoodsVo" id="GoodsListResult">
  72. <result property="orderSn" column="order_sn"/>
  73. <result property="goodsName" column="goods_name"/>
  74. <result property="goodsRealPrice" column="goods_real_price"/>
  75. </resultMap>
  76. <select id="findOrderList" resultMap="GoodsListResult">
  77. SELECT
  78. og.order_sn,
  79. g.goods_name,
  80. og.goods_real_price
  81. FROM
  82. order_invoice_order oio
  83. LEFT JOIN order_goods og ON oio.order_goods_id = og.order_goods_id
  84. LEFT JOIN goods g ON og.goods_id = g.goods_id
  85. WHERE
  86. oio.invoice_id = #{invoice_id}
  87. </select>
  88. <select id="selectListByBo" parameterType="com.zhongzheng.modules.order.bo.OrderInvoiceQueryBo" resultMap="OrderInvoiceVoResult">
  89. SELECT
  90. oi.*,u.id_card,u.realname
  91. FROM
  92. order_invoice oi LEFT JOIN `user` u on oi.user_id = u.user_id
  93. where 1=1 and oi.`status` != -1 and oi.`invoice_type` = 1
  94. <if test="type != null and type != ''">
  95. AND oi.type = #{type}
  96. </if>
  97. <if test="periodStatus != null and periodStatus != ''">
  98. AND oi.period_status = #{periodStatus}
  99. </if>
  100. <if test="invoiceStatus != null and invoiceStatus != ''">
  101. AND oi.invoice_status = #{invoiceStatus}
  102. </if>
  103. <if test="subject != null and subject != ''">
  104. AND oi.subject = #{subject}
  105. </if>
  106. <if test="userId != null and userId != ''">
  107. AND oi.user_id = #{userId}
  108. </if>
  109. <if test="applyStartTime != null and applyStartTime != ''">
  110. AND oi.apply_time >= #{applyStartTime}
  111. </if>
  112. <if test="applyEndTime != null and applyEndTime != ''">
  113. AND #{applyStartTime} >= oi.apply_time
  114. </if>
  115. <if test="searchKey != null and searchKey != ''">
  116. and (
  117. u.realname like concat('%', #{searchKey}, '%')
  118. or u.id_card like concat('%', #{searchKey}, '%')
  119. or oi.invoice_code like concat('%', #{searchKey}, '%')
  120. or (SELECT COUNT(oio.id) FROM order_invoice_order oio
  121. LEFT JOIN order_goods og ON oio.order_goods_id = og.order_goods_id WHERE oio.invoice_id = oi.invoice_id AND og.order_sn = #{searchKey}) > 0
  122. )
  123. </if>
  124. ORDER BY oi.invoice_id DESC
  125. </select>
  126. <select id="checkHave" parameterType="Long" resultType="Long">
  127. SELECT
  128. count(*)
  129. FROM
  130. order_invoice oi
  131. LEFT JOIN order_invoice_order oio ON oi.invoice_id = oio.invoice_id
  132. WHERE
  133. oio.order_goods_id = #{orderGoodsId}
  134. AND oi.period_status != 2 and oi.`status` = 1
  135. </select>
  136. <select id="listCompanyOrderInvoice" parameterType="com.zhongzheng.modules.order.bo.CompanyOrderInvoiceBo"
  137. resultType="com.zhongzheng.modules.order.vo.CompanyOrderInvoiceVo">
  138. SELECT
  139. oi.invoice_id,
  140. CASE
  141. WHEN oi.period_status = 1 THEN
  142. 1
  143. WHEN oi.period_status = 2 THEN
  144. 3
  145. WHEN oi.invoice_status = 2 THEN
  146. 2 ELSE 0
  147. END invoiceStatus,
  148. oi.apply_time AS applyTime,
  149. oi.make_out_time AS invoiceTime,
  150. oh.handle_order_sn AS orderSn,
  151. oi.amount AS invoicePrice,
  152. oi.type,
  153. oi.invoice_title,
  154. oi.`subject`,
  155. oi.tax_registry_number,
  156. oi.invoice_remark as remark,
  157. oi.consignee,
  158. oi.shipping_address,
  159. oi.email,
  160. oi.`status`,
  161. oi.invoice_mode,
  162. oi.open_remark,
  163. oi.wash_status,
  164. oi.handle_remark
  165. FROM
  166. order_invoice oi
  167. LEFT JOIN order_invoice_order oio ON oi.invoice_id = oio.invoice_id
  168. LEFT JOIN order_handle oh ON oio.order_sn = oh.handle_order_sn
  169. LEFT JOIN `user` u ON oh.create_user_id = u.user_id
  170. WHERE
  171. oi.invoice_type = 2
  172. <if test="goodsType != null and goodsType != ''">
  173. AND oh.goods_type = #{goodsType}
  174. </if>
  175. <if test="educationTypeId != null and educationTypeId != ''">
  176. AND oh.education_type_id = #{goodsType}
  177. </if>
  178. <if test="businessId != null and businessId != ''">
  179. AND oh.business_id = #{businessId}
  180. </if>
  181. <if test="invoiceStatus != null and invoiceStatus == 1">
  182. AND oi.period_status = 1
  183. </if>
  184. <if test="invoiceStatus != null and invoiceStatus == 2">
  185. AND oi.invoice_status = 2
  186. </if>
  187. <if test="invoiceStatus != null and invoiceStatus == 3">
  188. AND oi.period_status = 2
  189. </if>
  190. <if test="washStatus != null">
  191. AND oi.wash_status = #{washStatus}
  192. </if>
  193. <if test="invoiceMode != null">
  194. AND INSTR( oi.invoice_mode, #{invoiceMode})
  195. </if>
  196. <if test="keyword != null and keyword != ''">
  197. AND ( oio.order_sn = #{keyword} OR u.realname like concat('%', #{keyword}, '%') OR u.id_card = #{keyword,typeHandler=com.zhongzheng.common.type.EncryptHandler} )
  198. </if>
  199. ORDER BY oi.create_time DESC
  200. </select>
  201. <select id="listWashInvoice" parameterType="map" resultType="com.zhongzheng.modules.order.domain.OrderInvoice">
  202. SELECT
  203. oi.*
  204. FROM
  205. order_invoice_order oio
  206. LEFT JOIN order_invoice oi ON oio.invoice_id = oi.invoice_id
  207. WHERE
  208. oio.order_sn = #{orderSn}
  209. AND oio.invoice_id != #{invoiceId}
  210. AND oi.wash_status = 1
  211. </select>
  212. </mapper>