Prechádzať zdrojové kódy

이태영 - 20210608 SCM 입점업체 주문 목록 페이징 처리

xodud lee 5 rokov pred
rodič
commit
97b201ecf9

+ 11 - 1
src/main/java/com/style24/core/biz/dao/TscScmDao.java

@@ -18,7 +18,17 @@ import com.style24.persistence.domain.Payment;
 @ShopDs
 public interface TscScmDao {
 	/**
-	 * 입점업체미발주 주문목록
+	 * 입점업체미발주 주문목록 카운트
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 06. 09
+	 */
+	int getOrderSellerUnorderListCount(Order order);
+
+	/**
+	 * 입점업체 주문목록
 	 *
 	 * @param Order - 주문 정보
 	 * @return

+ 11 - 0
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -215,6 +215,17 @@ public class TscOrderService {
 		return orderDao.getOrderMemoList(order);
 	}
 
+	/**
+	 * 입점업체미발주 주문목록
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2020. 11. 30
+	 */
+	public int getOrderSellerUnorderListCount(Order order) {
+		return scmDao.getOrderSellerUnorderListCount(order);
+	}
+
 	/**
 	 * 입점업체미발주 주문목록
 	 * @param Order

+ 123 - 46
src/main/java/com/style24/persistence/mybatis/shop/TscScm.xml

@@ -14,51 +14,10 @@
 		WHERE NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
 	</sql>
 
-	<!-- 주문/배송 > 입점업체미발주목록 -->
-	<select id="getOrderSellerUnorderList" parameterType="Order" resultType="Order">
-		/* tscScm.getOrderSellerUnorderList */
-		SELECT OD.SUPPLY_COMP_CD
-		     , (SELECT SC.SUPPLY_COMP_NM
-		        FROM   TB_SUPPLY_COMPANY SC
-		        WHERE  SC.SUPPLY_COMP_CD = OD.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
-		     , G.BRAND_CD
-		     , (SELECT B.BRAND_KNM
-		        FROM   TB_BRAND B
-		        WHERE  B.BRAND_CD = G.BRAND_CD) AS BRAND_KNM
-		     , OD.ORD_NO
-		     , OD.ORD_DTL_NO
-		     , OD.ORD_DTL_STAT
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT ) AS ORD_DTL_STAT_NM
-		     , O.CUST_NO
-		     , O.ORD_NM
-		     , DATE_FORMAT(O.ORD_DT,'%Y%m%d%H%i%S') AS ORD_DT
-		     , P.PG_GB
-		     , P.PAY_MEANS
-		     , FN_GET_CODE_NM('G014', P.PAY_MEANS  ) AS PAY_MEANS_NM
-		     , O.ORD_PHNNO
-		     , DA.RECIP_NM
-		     , DA.RECIP_PHNNO
-		     , DA.RECIP_ZIPCODE
-		     , DA.RECIP_BASE_ADDR
-		     , DA.RECIP_DTL_ADDR
-		     , G.SUPPLY_GOODS_CD
-		     , G.GOODS_CD
-		     , G.GOODS_NM
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , OD.ORD_QTY
-		     , OD.CNCL_RTN_QTY
-		     , OD.ORD_AMT
-		     , OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.CART_CPN_DC_AMT + OD.PNT_DC_AMT + OD.PRE_PNT_DC_AMT AS TOT_DC_AMT
-		     , OD.REAL_ORD_AMT
-		     , OD.INVOICE_NO
-		     , OD.SHIP_COMP_CD
-		     , OD.ORD_EXCH_GB
-		     , CAC.BANK_CD
-		     , CAC.ACCOUNT_NO
-		     , CAC.ACCOUNT_NM
-		     , 0 AS CANCEL_QTY		/*수정X > 입점발주확정 리스트 미출고수량 디폴트값을 위해 지정*/
-		     , OD.ORD_QTY - OD.CNCL_RTN_QTY AS DELV_QTY		/*수정X > 입점발주확정 리스트 출고수량 디폴트값을 위해 지정*/
+	<!-- 주문/배송 > 입점업체주문목록 -->
+	<select id="getOrderSellerUnorderListCount" parameterType="Order" resultType="int">
+		/* TscScm.getOrderSellerUnorderListCount */
+		SELECT COUNT(1)
 		FROM   TB_ORDER O
 		INNER  JOIN TB_ORDER_DETAIL OD
 		ON     O.ORD_NO = OD.ORD_NO
@@ -101,7 +60,7 @@
 		<if test="multiBrand != null and multiBrand != ''">
 		AND    G.BRAND_CD IN
 			<foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
+		         #{item}
 			</foreach>
 		</if>
 		<if test="ordDtlStat != null and ordDtlStat != ''">
@@ -123,6 +82,124 @@
 		AND    OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
 	</select>
 
+	<!-- 주문/배송 > 입점업체주문목록 -->
+	<select id="getOrderSellerUnorderList" parameterType="Order" resultType="Order">
+		/* tscScm.getOrderSellerUnorderList */
+		SELECT X.*
+		FROM (SELECT @rownum := @rownum + 1 AS RNUM
+		           , Z.*
+		      FROM (SELECT OD.SUPPLY_COMP_CD
+		                 , (SELECT SC.SUPPLY_COMP_NM
+		                    FROM   TB_SUPPLY_COMPANY SC
+		                    WHERE  SC.SUPPLY_COMP_CD = OD.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
+		                 , G.BRAND_CD
+		                 , (SELECT B.BRAND_KNM
+		                    FROM   TB_BRAND B
+		                    WHERE  B.BRAND_CD = G.BRAND_CD) AS BRAND_KNM
+		                 , OD.ORD_NO
+		                 , OD.ORD_DTL_NO
+		                 , OD.ORD_DTL_STAT
+		                 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT ) AS ORD_DTL_STAT_NM
+		                 , O.CUST_NO
+		                 , O.ORD_NM
+		                 , DATE_FORMAT(O.ORD_DT,'%Y%m%d%H%i%S') AS ORD_DT
+		                 , P.PG_GB
+		                 , P.PAY_MEANS
+		                 , FN_GET_CODE_NM('G014', P.PAY_MEANS  ) AS PAY_MEANS_NM
+		                 , O.ORD_PHNNO
+		                 , DA.RECIP_NM
+		                 , DA.RECIP_PHNNO
+		                 , DA.RECIP_ZIPCODE
+		                 , DA.RECIP_BASE_ADDR
+		                 , DA.RECIP_DTL_ADDR
+		                 , G.SUPPLY_GOODS_CD
+		                 , G.GOODS_CD
+		                 , G.GOODS_NM
+		                 , ODI.OPT_CD1
+		                 , ODI.OPT_CD2
+		                 , OD.ORD_QTY
+		                 , OD.CNCL_RTN_QTY
+		                 , OD.ORD_AMT
+		                 , OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.CART_CPN_DC_AMT + OD.PNT_DC_AMT + OD.PRE_PNT_DC_AMT AS TOT_DC_AMT
+		                 , OD.REAL_ORD_AMT
+		                 , OD.INVOICE_NO
+		                 , OD.SHIP_COMP_CD
+		                 , OD.ORD_EXCH_GB
+		                 , CAC.BANK_CD
+		                 , CAC.ACCOUNT_NO
+		                 , CAC.ACCOUNT_NM
+		                 , OD.REG_DT
+		                 , 0 AS CANCEL_QTY		/*수정X > 입점발주확정 리스트 미출고수량 디폴트값을 위해 지정*/
+		                 , OD.ORD_QTY - OD.CNCL_RTN_QTY AS DELV_QTY		/*수정X > 입점발주확정 리스트 출고수량 디폴트값을 위해 지정*/
+		            FROM   TB_ORDER O
+		            INNER  JOIN TB_ORDER_DETAIL OD
+		            ON     O.ORD_NO = OD.ORD_NO
+		            INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
+		            ON     OD.ORD_NO = ODI.ORD_NO
+		            AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		            INNER  JOIN TB_PAYMENT P
+		            ON     O.ORD_NO = P.ORD_NO
+		            AND    P.PAY_GB = 'O'
+		            AND    P.PAY_STAT = 'G016_30'
+		            INNER  JOIN TB_GOODS G
+		            ON     OD.GOODS_CD = G.GOODS_CD
+		            INNER  JOIN TB_DELIVERY_ADDR DA
+		            ON     OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
+		            LEFT   OUTER JOIN TB_CUST_ACCOUNT CAC
+		            ON     CAC.CUST_NO = O.CUST_NO
+		            AND    CAC.DEFAULT_YN = 'Y'
+		            AND    CAC.DEL_YN = 'N'
+		            LEFT   OUTER JOIN (SELECT OD.ORD_NO
+		                                    , OD.DELV_FEE_CD
+		                               FROM   TB_ORDER_CHANGE_DETAIL OCD
+		                               INNER  JOIN TB_ORDER_DETAIL OD
+		                               ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		                               WHERE  1=1
+		                               AND    OCD.CHG_STAT IN ('G685_10', 'G685_11', 'G685_50', 'G685_51')
+		                               AND    OCD.CHG_QTY > 0
+		                               AND    OCD.DEL_YN = 'N'
+		                               GROUP  BY OD.ORD_NO, OD.DELV_FEE_CD) OCD
+		            ON     OCD.ORD_NO = OD.ORD_NO
+		            AND    OCD.DELV_FEE_CD = OD.DELV_FEE_CD
+		            WHERE  1=1
+		            AND    DA.RECIP_BASE_ADDR IS NOT NULL
+		            AND    G.SELF_GOODS_YN = 'N'
+		            <if test='ifYn == null or ifYn == ""'>
+		            AND    OCD.ORD_NO IS NULL
+		            </if>
+		            <if test='supplyCompCd != null and supplyCompCd != ""'>
+		            AND    OD.SUPPLY_COMP_CD = #{supplyCompCd}
+		            </if>
+		            <if test="multiBrand != null and multiBrand != ''">
+		            AND    G.BRAND_CD IN
+		            	<foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
+		            		#{item}
+		            	</foreach>
+		            </if>
+		            <if test="ordDtlStat != null and ordDtlStat != ''">
+		            AND    OD.ORD_DTL_STAT = #{ordDtlStat}
+		            </if>
+		            <if test="ordNo != null and ordNo != ''">
+		            AND    O.ORD_NO = #{ordNo}
+		            </if>
+		            <if test="ordNm != null and ordNm != ''">
+		            AND    O.ORD_NM = #{ordNm}
+		            </if>
+		            <if test='goodsCd != null and goodsCd != ""'>
+		            AND    G.GOODS_CD = #{goodsCd}
+		            </if>
+		            <if test='searchDateGb != null and searchDateGb == "ordDt"'>
+		            AND    O.ORD_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		            AND    O.ORD_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		            </if>
+		            AND    OD.ORD_QTY - OD.CNCL_RTN_QTY > 0 ) Z
+		      JOIN (SELECT @rownum := 0) R
+		      ORDER  BY Z.REG_DT ASC ) X
+		WHERE  1=1
+		AND    X.RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
+		ORDER  BY X.REG_DT ASC
+	</select>
+
 	<!-- 입점업체 엑셀다운용 임시테이블 삭제-->
 	<delete id="deleteEntryExcelDownTmp" parameterType="Order">
 		/* tscScm.deleteEntryExcelDownTmp */