UnpaidMng.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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.oqpo.api.mapper.loanmng.UnpaidMngMapper">
  4. <select id="selectUnpaidMngGridList" resultType="com.oqpo.api.entity.settmng.StlMgntBaseInfoEntity">
  5. /* UnpaidMngMapper.selectUnpaidMngGridList */
  6. SELECT store.store_id, store.store_nm, store.brand_id, FN_BRAND_NM(store.brand_id) AS brand_nm,
  7. store.sttl_req_cfrm_term, /* 정산요청확인기간 */
  8. store.sttl_rcp_amt_term, /* 정산대금입금기간 */
  9. loan.loan_mgnt_unq_no, /* 여신관리고유번호 */
  10. loan.loan_dvsn, FN_CODE_NM('LOAN_DVSN', loan.loan_dvsn) AS loan_dvsn_nm, /* 여신구분(정산타입) */
  11. loan.credt_limit_amt - loan.use_amt_total + loan.acct_bal + loan.tmp_rcv_acct_total AS use_amt_total, /* 사용가능한도 */
  12. loan.acct_bal, /* 계좌잔액 */
  13. loan.credt_limit_amt, /* 신용한도금액(후불) */
  14. loan.tmp_rcv_acct_total, /* 가수금액합계(선결제) */
  15. DATE_FORMAT(stl.sttl_req_dt, '%Y.%m.%d') AS sttl_req_dt, /* 정산요청일자 */
  16. DATE_FORMAT(stl.sttl_dt, '%Y.%m.%d') AS sttl_dt, /* 정산확정일자 */
  17. stl.sttl_req_amt, /* 정산요청금액 */
  18. stl.sttl_amt, /* 정산확정금액 */
  19. stl.rcpt_amt, /* 수납금액 */
  20. (IFNULL(stl.sttl_amt, stl.sttl_req_amt) - IFNULL(stl.rcpt_amt, 0)) AS unpaid_amt, /* 미납금액 */
  21. stl.sttl_st_cd, FN_CODE_NM('STTL_ST_CD', stl.sttl_st_cd) AS sttl_st_nm, /* 정산상태코드 */
  22. <![CDATA[
  23. CASE WHEN store.sttl_req_cfrm_term > 0 AND store.sttl_rcp_amt_term > 0 THEN
  24. CASE WHEN stl.sttl_req_dt IS NULL THEN '정산요청전'
  25. ELSE CASE WHEN stl.sttl_dt IS NULL
  26. THEN CASE WHEN ADDDATE(DATE_FORMAT(stl.sttl_req_dt, '%Y%m%d'), store.sttl_req_cfrm_term) < DATE_FORMAT(now(), '%Y-%m-%d')
  27. THEN CASE WHEN ADDDATE(DATE_FORMAT(stl.sttl_req_dt, '%Y%m%d'), store.sttl_req_cfrm_term + store.sttl_rcp_amt_term) < DATE_FORMAT(NOW(), '%Y-%m-%d')
  28. THEN '정산미납'
  29. ELSE '정산대기' END
  30. ELSE '정산미확인' END
  31. ELSE CASE WHEN ADDDATE(DATE_FORMAT(stl.sttl_dt, '%Y%m%d'), store.sttl_rcp_amt_term) < DATE_FORMAT(NOW(), '%Y-%m-%d')
  32. THEN '정산미납'
  33. ELSE '정산대기' END
  34. END
  35. END
  36. ELSE '정산대기'
  37. END AS sttl_add_st_nm, /* 정산부가상태명 */
  38. ]]>
  39. stl.sttl_mgnt_unq_no /* 정산관리고유번호 */
  40. FROM store_base_info store
  41. INNER JOIN loan_mgnt_base_info loan
  42. ON store.loan_mgnt_unq_no = loan.loan_mgnt_unq_no
  43. AND store.loan_dvsn = loan.loan_dvsn
  44. AND store.store_id = loan.store_id
  45. AND loan.loan_dvsn = 'LD02'
  46. AND loan.use_amt_total > 0
  47. INNER JOIN stl_mgnt_base_info stl
  48. ON store.store_id = stl.store_id
  49. AND store.brand_id = stl.brand_id
  50. AND stl.sttl_req_dt BETWEEN #{fromDt} AND #{toDt}
  51. AND stl.sttl_st_cd IN ('ST10', 'ST20') /* 정산요청/정산확정 */
  52. AND IFNULL(stl.rcpt_yn, 'N') = 'N' /* 수납여부(후불사용) */
  53. WHERE 1 = 1
  54. AND store.brand_id = #{sBrandId}
  55. <if test="sStoreId != null and sStoreId != ''">
  56. AND store.store_id = #{sStoreId}
  57. </if>
  58. <choose>
  59. <when test="gridRequest.sidx != null and gridRequest.sidx != ''">
  60. <if test="gridRequest.sidx == 'VIEW_NUM'.toString()">
  61. <if test="gridRequest.sord == 'asc'.toString()">
  62. ORDER BY stl.sttl_mgnt_unq_no ASC
  63. </if>
  64. <if test="gridRequest.sord == 'desc'.toString()">
  65. ORDER BY stl.sttl_mgnt_unq_no DESC
  66. </if>
  67. </if>
  68. </when>
  69. <otherwise>
  70. ORDER BY stl.sttl_mgnt_unq_no ASC
  71. </otherwise>
  72. </choose>
  73. <if test="gridRequest.pagingYn == true">
  74. limit #{gridRequest.gridFirst}, #{gridRequest.gridSize}
  75. </if>
  76. </select>
  77. <select id="selectUnpaidMngGridCnt" resultType="int">
  78. /* UnpaidMngMapper.selectUnpaidMngGridCnt */
  79. SELECT COUNT(*)
  80. FROM store_base_info store
  81. INNER JOIN loan_mgnt_base_info loan
  82. ON store.loan_mgnt_unq_no = loan.loan_mgnt_unq_no
  83. AND store.loan_dvsn = loan.loan_dvsn
  84. AND store.store_id = loan.store_id
  85. AND loan.loan_dvsn = 'LD02'
  86. AND loan.use_amt_total > 0
  87. INNER JOIN stl_mgnt_base_info stl
  88. ON store.store_id = stl.store_id
  89. AND store.brand_id = stl.brand_id
  90. AND stl.sttl_req_dt BETWEEN #{fromDt} AND #{toDt}
  91. AND stl.sttl_st_cd IN ('ST10', 'ST20') /* 정산요청/정산확정 */
  92. AND IFNULL(stl.rcpt_yn, 'N') = 'N'
  93. WHERE 1 = 1
  94. AND store.brand_id = #{sBrandId}
  95. <if test="sStoreId != null and sStoreId != ''">
  96. AND store.store_id = #{sStoreId}
  97. </if>
  98. </select>
  99. <select id="selectStlMgntBaseInfo" resultType="com.oqpo.api.entity.settmng.StlMgntBaseInfoEntity">
  100. /* UnpaidMngMapper.selectStlMgntBaseInfo */
  101. SELECT store.store_id, store.store_nm, store.brand_id, FN_BRAND_NM(store.brand_id) AS brand_nm,
  102. store.sttl_req_cfrm_term, /* 정산요청확인기간 */
  103. store.sttl_rcp_amt_term, /* 정산대금입금기간 */
  104. loan.loan_mgnt_unq_no, /* 여신관리고유번호 */
  105. loan.loan_dvsn, FN_CODE_NM('LOAN_DVSN', loan.loan_dvsn) AS loan_dvsn_nm, /* 여신구분(정산타입) */
  106. loan.credt_limit_amt - loan.use_amt_total + loan.acct_bal + loan.tmp_rcv_acct_total AS use_amt_total, /* 사용가능한도 */
  107. loan.acct_bal, /* 매장 계좌잔액 */
  108. loan.credt_limit_amt, /* 신용한도금액(후불) */
  109. loan.tmp_rcv_acct_total, /* 가수금액합계(선결제) */
  110. DATE_FORMAT(stl.sttl_req_dt, '%Y.%m.%d') AS sttl_req_dt, /* 정산요청일자 */
  111. DATE_FORMAT(stl.sttl_dt, '%Y.%m.%d') AS sttl_dt, /* 정산확정일자 */
  112. stl.sttl_req_amt, /* 정산요청금액 */
  113. stl.sttl_amt, /* 정산확정금액 */
  114. stl.rcpt_amt, /* 수납금액 */
  115. (IFNULL(stl.sttl_amt, stl.sttl_req_amt) - IFNULL(stl.rcpt_amt, 0)) AS unpaid_amt, /* 미납금액 */
  116. stl.sttl_st_cd, FN_CODE_NM('STTL_ST_CD', stl.sttl_st_cd) AS sttl_st_nm, /* 정산상태코드 */
  117. <![CDATA[
  118. CASE WHEN store.sttl_req_cfrm_term > 0 AND store.sttl_rcp_amt_term > 0 THEN
  119. CASE WHEN stl.sttl_req_dt IS NULL THEN '정산요청전'
  120. ELSE CASE WHEN stl.sttl_dt IS NULL
  121. THEN CASE WHEN ADDDATE(DATE_FORMAT(stl.sttl_req_dt, '%Y%m%d'), store.sttl_req_cfrm_term) < DATE_FORMAT(now(), '%Y-%m-%d')
  122. THEN CASE WHEN ADDDATE(DATE_FORMAT(stl.sttl_req_dt, '%Y%m%d'), store.sttl_req_cfrm_term + store.sttl_rcp_amt_term) < DATE_FORMAT(NOW(), '%Y-%m-%d')
  123. THEN '정산미납'
  124. ELSE '정산대기' END
  125. ELSE '정산미확인' END
  126. ELSE CASE WHEN ADDDATE(DATE_FORMAT(stl.sttl_dt, '%Y%m%d'), store.sttl_rcp_amt_term) < DATE_FORMAT(NOW(), '%Y-%m-%d')
  127. THEN '정산미납'
  128. ELSE '정산대기' END
  129. END
  130. END
  131. ELSE '정산대기'
  132. END AS sttl_add_st_nm, /* 상태 */
  133. ]]>
  134. stl.sttl_mgnt_unq_no, /* 정산관리고유번호 */
  135. stl.rcpt_yn, /* 수납여부(후불사용) */
  136. DATE_FORMAT(stl.sys_reg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_reg_dttm,
  137. FN_USER_NM(stl.sys_reg_id) AS sys_reg_nm
  138. FROM store_base_info store
  139. INNER JOIN loan_mgnt_base_info loan
  140. ON store.loan_mgnt_unq_no = loan.loan_mgnt_unq_no
  141. AND store.loan_dvsn = loan.loan_dvsn
  142. AND store.store_id = loan.store_id
  143. INNER JOIN stl_mgnt_base_info stl
  144. ON store.store_id = stl.store_id
  145. AND store.brand_id = stl.brand_id
  146. WHERE stl.sttl_mgnt_unq_no = #{sttlMgntUnqNo}
  147. </select>
  148. <select id="selectStlMgntDtlPtclList" resultType="com.oqpo.api.entity.settmng.StlMgntDtlPtclEntity">
  149. /* UnpaidMngMapper.selectStlMgntDtlPtclList */
  150. SELECT A.sttl_mgnt_unq_no, A.sttl_mgnt_dtl_no,
  151. A.brand_id, FN_BRAND_NM(A.brand_id) AS brand_nm,
  152. A.store_id, FN_STORE_NM(A.brand_id, A.store_id) AS store_nm,
  153. A.item_id, A.item_nm, A.unit, A.unit_amt,
  154. A.podr_qty, A.dlv_qty,
  155. A.sttl_dvsn, FN_CODE_NM('STTL_DVSN', A.sttl_dvsn) AS sttl_dvsn_nm, /* 정산구분 */
  156. CASE WHEN A.sttl_dvsn = 'SW00' THEN A.whs_qty WHEN A.sttl_dvsn = 'SC00' THEN A.col_qty END AS whs_col_qty, /* 입고/수거수량 */
  157. DATE_FORMAT(CASE WHEN A.sttl_dvsn = 'SW00' THEN A.dlv_cmplt_dt WHEN A.sttl_dvsn = 'SC00' THEN A.col_dt END, '%Y.%m.%d') AS whs_col_dt, /* 입고/수거일자 */
  158. CASE WHEN A.sttl_dvsn = 'SW00' THEN A.whs_amt WHEN A.sttl_dvsn = 'SC00' THEN A.col_amt END AS whs_col_amt, /* 입고/수거금액 */
  159. A.dlv_qty * A.unit_amt AS sttl_req_amt, /* 정산요청금액 : 납품수량 * 수량 */
  160. CASE WHEN A.sttl_dvsn = 'SW00' THEN A.pch_podr_unq_no WHEN A.sttl_dvsn = 'SC00' THEN A.rtn_podr_unq_no END AS podr_unq_no, /* 발주고유번호 */
  161. CASE WHEN A.sttl_dvsn = 'SW00' THEN A.pch_podr_dtl_no WHEN A.sttl_dvsn = 'SC00' THEN A.rtn_podr_dtl_no END AS podr_dtl_no /* 발주상세번호 */
  162. FROM stl_mgnt_dtl_ptcl A
  163. WHERE A.sttl_mgnt_unq_no = #{sttlMgntUnqNo}
  164. ORDER BY A.sttl_mgnt_dtl_no ASC
  165. </select>
  166. <select id="selectPgKiccBaseInfo" resultType="com.oqpo.api.entity.settmng.PgKiccBaseInfoEntity">
  167. /* UnpaidMngMapper.selectPgKiccBaseInfo */
  168. SELECT A.brand_id, A.mall_id, A.use_yn, A.mall_reg_dt, A.mall_del_dt,
  169. DATE_FORMAT(A.sys_reg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_reg_dttm, A.sys_reg_id,
  170. DATE_FORMAT(A.sys_chg_dttm,'%Y.%m.%d %H:%i:%s') AS sys_chg_dttm, A.sys_chg_id
  171. FROM pg_kicc_base_info A
  172. WHERE A.brand_id = #{brandId}
  173. AND A.use_yn = 'Y'
  174. ORDER BY A.sys_reg_dttm DESC
  175. LIMIT 1
  176. </select>
  177. <insert id="insertPgKiccPayPtcl" >
  178. /* UnpaidMngMapper.insertPgKiccPayPtcl */
  179. INSERT INTO pg_kicc_pay_ptcl
  180. (po_ord_no, brand_id, store_id, mall_id, tran_type, res_cd, res_msg, cno, amount, auth_no,
  181. tran_date, stat_cd, stat_msg, pay_type, card_no, issuer_cd, issuer_nm, acquirer_cd, acquirer_nm,
  182. install_period, noint, sys_reg_dttm, sys_reg_id, sys_chg_dttm, sys_chg_id)
  183. VALUES
  184. (#{entity.poOrdNo}, #{entity.brandId}, #{entity.storeId}, #{entity.mallId},
  185. #{entity.tranType}, #{entity.resCd}, #{entity.resMsg}, #{entity.cno}, #{entity.amount},
  186. #{entity.authNo}, #{entity.tranDate}, #{entity.statCd}, #{entity.statMsg}, #{entity.payType},
  187. #{entity.cardNo}, #{entity.issuerCd}, #{entity.issuerNm}, #{entity.acquirerCd}, #{entity.acquirerNm},
  188. #{entity.installPeriod}, #{entity.noint},
  189. NOW(), #{userId}, NOW(), #{userId})
  190. </insert>
  191. <update id="updateStlMgntBaseInfo4Rcpt" >
  192. /* UnpaidMngMapper.updateStlMgntBaseInfo4Rcpt */
  193. UPDATE stl_mgnt_base_info SET
  194. rcpt_yn = 'Y', /* 수납여부 */
  195. rcpt_dt = DATE_FORMAT(NOW(),'%Y%m%d'), /* 수납일자 */
  196. rcpt_amt = IFNULL(rcpt_amt, 0) + #{easypayPaymentRequest.r_amount}, /* 수납금액 : 결제금액을 더한다. */
  197. sys_chg_dttm = NOW(),
  198. sys_chg_id = #{userId}
  199. WHERE sttl_mgnt_unq_no = #{easypayPaymentRequest.sttlMgntUnqNo}
  200. </update>
  201. <update id="updateLoanMgntBaseInfo4UnpaidPay" >
  202. /* UnpaidMngMapper.updateLoanMgntBaseInfo4UnpaidPay */
  203. UPDATE loan_mgnt_base_info SET
  204. use_amt_total = #{entity.useAmtTotal}, /* 사용금액합계 */
  205. sys_chg_dttm = NOW(),
  206. sys_chg_id = #{userId}
  207. WHERE loan_mgnt_unq_no = #{entity.loanMgntUnqNo}
  208. </update>
  209. </mapper>