|
|
@@ -2,6 +2,18 @@
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
<mapper namespace="com.style24.batch.biz.dao.TsbStatisticsDao">
|
|
|
|
|
|
+ <!-- 페이징을 위한 select절 상단 -->
|
|
|
+ <sql id="selectForPagingHeader">
|
|
|
+ SELECT *
|
|
|
+ FROM (
|
|
|
+ </sql>
|
|
|
+
|
|
|
+ <!-- 페이징을 위한 select절 하단 -->
|
|
|
+ <sql id="selectForPagingFooter">
|
|
|
+ ) ORIGINAL
|
|
|
+ LIMIT #{limitStartRow} , #{pageSize}
|
|
|
+ </sql>
|
|
|
+
|
|
|
<!-- 사이트 제휴코드 유입집계 -->
|
|
|
<insert id="createInflowDaily" parameterType="String">
|
|
|
/* TsbStatistics.createInflowDaily */
|
|
|
@@ -931,5 +943,148 @@
|
|
|
AND ODIH.ORD_DTL_STAT IN ('G720_10','G720_30','G720_40','G720_50','G720_60') /*판매-결제완료, 환입-취소완료, 환입-품절취소, 환입-반품완료, 환입-교환완료*/
|
|
|
) ODIH
|
|
|
</select>
|
|
|
+
|
|
|
+ <!-- 어제일자 매출반영목록 생성 -->
|
|
|
+ <insert id="createYesterdaySalesUploadList" parameterType="String">
|
|
|
+ /* TsbStatistics.createYesterdaySalesUploadList */
|
|
|
+ INSERT INTO TB_HANSAE_SALES (
|
|
|
+ ERP_GB
|
|
|
+ , NO_IF
|
|
|
+ , DT_SALE
|
|
|
+ , TP_SALE
|
|
|
+ , CD_STYLE
|
|
|
+ , CD_COLOR
|
|
|
+ , CD_SIZE
|
|
|
+ , QT_SALE
|
|
|
+ , AM_ACSALE
|
|
|
+ , DS_REMARK
|
|
|
+ , REG_DT
|
|
|
+ )
|
|
|
+ SELECT #{erpGb} AS ERP_GB
|
|
|
+ , CONCAT(DATE_FORMAT(NOW(),'%Y%m%d%H%i%S'),
|
|
|
+ LPAD(ROW_NUMBER() OVER(ORDER BY DT_SALE
|
|
|
+ , CD_STYLE
|
|
|
+ , CD_COLOR
|
|
|
+ , CD_SIZE),4,'0')
|
|
|
+ ) AS NO_IF
|
|
|
+ , DT_SALE
|
|
|
+ , TP_SALE
|
|
|
+ , CD_STYLE
|
|
|
+ , CD_COLOR
|
|
|
+ , CD_SIZE
|
|
|
+ , QT_SALE
|
|
|
+ , AM_ACSALE
|
|
|
+ , 'TEST' AS DS_REMARK
|
|
|
+ , NOW() AS REG_DT
|
|
|
+ FROM (
|
|
|
+ SELECT DATE_FORMAT(O.PAY_DT,'%Y%m%d') AS DT_SALE /*판매일자*/
|
|
|
+ , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
|
|
|
+ ELSE '2'
|
|
|
+ END AS TP_SALE /*판매구분(1:판매, 2:환불)*/
|
|
|
+ , ODIH.ITEM_CD AS CD_STYLE /*스타일코드*/
|
|
|
+ , ODIH.OPT_CD1 AS CD_COLOR /*색상코드*/
|
|
|
+ , ODIH.OPT_CD2 AS CD_SIZE /*사이즈코드*/
|
|
|
+ , SUM((CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
|
|
|
+ *
|
|
|
+ CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
|
|
|
+ ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
|
|
|
+ END AS SIGNED INT)) AS QT_SALE /*판매수량*/
|
|
|
+ , SUM((CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
|
|
|
+ *
|
|
|
+ CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' /*판매-배송중*/ THEN
|
|
|
+ ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
|
|
|
+ IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
|
|
|
+ ELSE
|
|
|
+ ODIH.ITEM_PRICE
|
|
|
+ END))
|
|
|
+ + ODIH.CPN1_DC_AMT
|
|
|
+ ELSE /*환입-반품완료,환입-교환완료*/
|
|
|
+ (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
|
|
|
+ IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
|
|
|
+ ELSE
|
|
|
+ ODIH.ITEM_PRICE
|
|
|
+ END))
|
|
|
+ + ODIH.CPN1_DC_AMT
|
|
|
+ END AS SIGNED INT)) AS AM_ACSALE /*실판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
|
|
|
+ FROM TB_ORDER_DETAIL_ITEM_HST ODIH
|
|
|
+ INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
|
|
|
+ INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
|
|
|
+ INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
|
|
|
+ LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
|
|
|
+ WHERE 1 = 1
|
|
|
+ -- AND ODIH.REG_DT BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) AND CURRENT_DATE() /*전일자*/
|
|
|
+ AND ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -7 DAY)
|
|
|
+ AND ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
|
|
|
+ <if test='erpGb == "hsmk"'>
|
|
|
+ AND OD.SUPPLY_COMP_CD IN (5,4) /*한세MK, FRJ*/
|
|
|
+ </if>
|
|
|
+ <if test='erpGb == "hsdr"'>
|
|
|
+ AND OD.SUPPLY_COMP_CD = 3 /*한세드림*/
|
|
|
+ </if>
|
|
|
+ AND SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
|
|
|
+ GROUP BY DATE_FORMAT(O.PAY_DT,'%Y%m%d')
|
|
|
+ , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
|
|
|
+ ELSE '2'
|
|
|
+ END
|
|
|
+ , ODIH.ITEM_CD
|
|
|
+ , ODIH.OPT_CD1
|
|
|
+ , ODIH.OPT_CD2
|
|
|
+ ) ODIH
|
|
|
+ WHERE QT_SALE <![CDATA[<>]]> 0
|
|
|
+ AND NOT EXISTS (SELECT 1
|
|
|
+ FROM TB_HANSAE_SALES
|
|
|
+ WHERE ERP_GB = #{erpGb}
|
|
|
+ AND DT_SALE = ODIH.DT_SALE
|
|
|
+ AND TP_SALE = ODIH.TP_SALE
|
|
|
+ AND CD_STYLE = ODIH.CD_STYLE
|
|
|
+ AND CD_COLOR = ODIH.CD_COLOR
|
|
|
+ AND CD_SIZE = ODIH.CD_SIZE
|
|
|
+ )
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <!-- 매출반영 총건수 조회 -->
|
|
|
+ <select id="getSalesUploadTotalCount" parameterType="String" resultType="int">
|
|
|
+ /* TsbStatistics.getSalesUploadTotalCount */
|
|
|
+ SELECT COUNT(*) AS CNT
|
|
|
+ FROM TB_HANSAE_SALES
|
|
|
+ WHERE ERP_GB = #{erpGb}
|
|
|
+ AND NO_IF LIKE CONCAT(DATE_FORMAT(NOW(),'%Y%m%d'),'%')
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 매출반영 목록 -->
|
|
|
+ <select id="getSalesUploadList" parameterType="Erp" resultType="paramMap">
|
|
|
+ /* TsbStatistics.getSalesUploadList */
|
|
|
+ <include refid="selectForPagingHeader"/>
|
|
|
+ SELECT NO_IF
|
|
|
+ , DT_SALE
|
|
|
+ , TP_SALE
|
|
|
+ , CD_STYLE
|
|
|
+ , CD_COLOR
|
|
|
+ , CD_SIZE
|
|
|
+ , QT_SALE
|
|
|
+ , AM_ACSALE
|
|
|
+ , DS_REMARK
|
|
|
+ FROM TB_HANSAE_SALES
|
|
|
+ WHERE ERP_GB = #{erpGb}
|
|
|
+ AND NO_IF LIKE CONCAT(DATE_FORMAT(NOW(),'%Y%m%d'),'%')
|
|
|
+ AND CD_SALEBILL IS NULL
|
|
|
+ ORDER BY NO_IF
|
|
|
+ <include refid="selectForPagingFooter"/>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 매출반영결과 처리 -->
|
|
|
+ <update id="updateSalesUploadResult" parameterType="paramMap">
|
|
|
+ /* TsbStatistics.updateSalesUploadResult */
|
|
|
+ UPDATE TB_HANSAE_SALES
|
|
|
+ SET CD_SALEBILL = #{CD_SALEBILL}
|
|
|
+ , DS_ERROR = #{DS_ERROR}
|
|
|
+ , UPD_DT = NOW()
|
|
|
+ WHERE ERP_GB = #{ERP_GB}
|
|
|
+ AND NO_IF = #{NO_IF}
|
|
|
+ AND DT_SALE = #{DT_SALE}
|
|
|
+ AND CD_STYLE = #{CD_STYLE}
|
|
|
+ AND CD_COLOR = #{CD_COLOR}
|
|
|
+ AND CD_SIZE = #{CD_SIZE}
|
|
|
+ </update>
|
|
|
|
|
|
</mapper>
|