Pārlūkot izejas kodu

제휴몰검색

jsh77b 4 gadi atpakaļ
vecāks
revīzija
c92b428647

+ 22 - 15
src/main/java/com/style24/admin/biz/web/TsaDeliveryController.java

@@ -71,27 +71,28 @@ public class TsaDeliveryController extends TsaBaseController {
 		ModelAndView mav = new ModelAndView();
 
 		// 몰구분
-		//mav.addObject("mallGbList", rendererService.getMallGbCommonCodeList(TsaSession.getInfo().getRoleCd()));
 		mav.addObject("mallGbList", rendererService.getAvailCommonCodeList("G011"));
+		
 		// 주문상세상태코드
 		mav.addObject("ordDtlStatList", rendererService.getAvailCommonCodeList("G013"));
+		
 		// 출고처
 		mav.addObject("deliveryLocList", rendererService.getDeliveryLocAllList());
+		
 		// 사이트구분
 		mav.addObject("siteCdList", rendererService.getAvailCommonCodeList("G000"));
+		
 		// 택배사명 목록
 		mav.addObject("shipCompanyList", rendererService.getShipCompanyList());
-		// 출고처분류
-		// mav.addObject("delvTypeList", rendererService.getAvailCommonCodeList("G024"));
-		
-		String supplyCompCd = "";
-		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
-			supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
-		}
 		
 		// 공급업체
 		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList("","Y"));
-        //mav.addObject("vendorList", rendererService.getVendorCommonCodeList(TsaSession.getInfo().getRoleCd()));
+		
+		// 제휴몰
+		Extmall extmall = new Extmall();
+		extmall.setVendorId(TscConstants.VendorId.SHOPLINKER.value()); // 샵링커
+		mav.addObject("extmallList", ocmService.getExtmallList(extmall));
+		mav.addObject("vendorId", TscConstants.VendorId.SHOPLINKER.value());
 
 		mav.setViewName("delivery/DeliveryListForm");
 
@@ -181,11 +182,11 @@ public class TsaDeliveryController extends TsaBaseController {
 	@PostMapping("/list/soldout")
 	@ResponseBody
 	public GagaResponse soldoutDeliveryList(@RequestBody Collection<Delivery> deliveryList) throws Exception {
+		
 		if (deliveryList == null || deliveryList.isEmpty()) {
 			throw new IllegalStateException(message.getMessage("FAIL_1002"));
 		}
-		//deliveryService.cancelSoldout(deliveryList);
-
+		
 		return super.ok(message.getMessage("SUCC_0004"));
 	}
 	
@@ -598,27 +599,33 @@ public class TsaDeliveryController extends TsaBaseController {
 		ModelAndView mav = new ModelAndView();
 
 		// 몰구분
-		//mav.addObject("mallGbList", rendererService.getMallGbCommonCodeList(TsaSession.getInfo().getRoleCd()));
 		mav.addObject("mallGbList", rendererService.getAvailCommonCodeList("G011"));
+		
 		// 주문상세상태코드
 		mav.addObject("ordDtlStatList", rendererService.getAvailCommonCodeList("G013"));
+		
 		// 출고처
 		mav.addObject("deliveryLocList", rendererService.getDeliveryLocAllList());
+		
 		// 사이트구분
 		mav.addObject("siteCdList", rendererService.getAvailCommonCodeList("G000"));
+		
 		// 택배사명 목록
 		mav.addObject("shipCompanyList", rendererService.getShipCompanyList());
-		// 출고처분류
-		// mav.addObject("delvTypeList", rendererService.getAvailCommonCodeList("G024"));
 		
 		String supplyCompCd = "";
 		if ("G001_B000".equals(TsaSession.getInfo().getRoleCd())) {
 			supplyCompCd = TsaSession.getInfo().getSupplyCompCd();
 		}
 		
+		// 제휴몰
+		Extmall extmall = new Extmall();
+		extmall.setVendorId(TscConstants.VendorId.SHOPLINKER.value()); // 샵링커
+		mav.addObject("extmallList", ocmService.getExtmallList(extmall));
+		mav.addObject("vendorId", TscConstants.VendorId.SHOPLINKER.value());
+		
 		// 공급업체
 		mav.addObject("supplyCompList", rendererService.getSupplyCompanyList("","Y"));
-        //mav.addObject("vendorList", rendererService.getVendorCommonCodeList(TsaSession.getInfo().getRoleCd()));
 
 		mav.setViewName("delivery/DeliveryListScmForm");
 

+ 691 - 538
src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml

@@ -19,281 +19,338 @@
 	<!-- 배송목록 건수 -->
 	<select id="getDeliveryListCount" parameterType="Delivery" resultType="int">
 		/* TsaDelivery.getDeliveryListCount */
-		SELECT COUNT(*) AS TOTCNT
+		SELECT COUNT(1) AS TOTCNT
 		  FROM (
-				SELECT A.*
-				  FROM (
-					SELECT
-							  CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
-							       THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
-							       ELSE NULL END AS DELV_DELAY_DAYS
-							, FN_GET_CODE_NM('G024', (SELECT B.DELV_LOC_CLSF FROM TB_DELIVERY_LOC B WHERE  A.DELV_LOC_CD = B.DELV_LOC_CD AND A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) ) AS DELV_LOC_CLSF  -- 출고처 분류 G024  물류창고, 일반매장, 직송매장, 입점업체
-					  FROM (
-							SELECT
-								  A.PAY_DT         -- 결제일시
-								, B.SUPPLY_COMP_CD -- 공급업체
-								, B.ORD_DTL_STAT  -- 주문상세상태
-								, B.DELV_LOC_CD   -- 출고처
-								, (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
-					            , B.ORD_EXCH_GB
-							FROM  TB_ORDER A
-							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
-							      INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
-							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-							      INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
-							WHERE 1=1
-							  AND C.SELF_GOODS_YN = 'Y'
-							<include refid="getDeliveryListCondition_sql"/>
-					) A
-				) A
-				WHERE 1=1
-				<if test='delvDelayDays != null and delvDelayDays != ""'>
-				<![CDATA[
-				AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
-				]]>
-				</if>
-				<if test='delvLocClsf != null and delvLocClsf != ""'>
-				AND   A.DELV_LOC_CLSF = #{delvLocClsf}
-				</if>
-			) A
-
+		    SELECT A.*
+		      FROM (
+		        SELECT CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
+		                    THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
+		                    ELSE NULL 
+		                    END AS DELV_DELAY_DAYS
+		             , FN_GET_CODE_NM('G024', (SELECT B.DELV_LOC_CLSF FROM TB_DELIVERY_LOC B WHERE  A.DELV_LOC_CD = B.DELV_LOC_CD AND A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) ) AS DELV_LOC_CLSF  -- 출고처 분류 G024  물류창고, 일반매장, 직송매장, 입점업체
+		          FROM (
+		            SELECT A.PAY_DT         -- 결제일시
+		                 , B.SUPPLY_COMP_CD -- 공급업체
+		                 , B.ORD_DTL_STAT  -- 주문상세상태
+		                 , B.DELV_LOC_CD   -- 출고처
+		                 , (SELECT MAX(CH.WD_EDDT) 
+		                      FROM TB_ORDER_CHANGE CH 
+		                     INNER JOIN TB_ORDER_CHANGE_DETAIL CHD 
+		                        ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ 
+		                     WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
+		                 , B.ORD_EXCH_GB
+		              FROM TB_ORDER A
+		             INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
+		             INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
+		             INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
+		             INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
+		             INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
+		             WHERE 1=1
+		               AND C.SELF_GOODS_YN = 'Y'
+					<include refid="getDeliveryListCondition_sql"/>
+		             GROUP BY A.PAY_DT         -- 결제일시
+		                 , B.SUPPLY_COMP_CD -- 공급업체
+		                 , B.ORD_DTL_STAT  -- 주문상세상태
+		                 , B.DELV_LOC_CD   -- 출고처
+		                 , B.ORD_DTL_NO
+		        ) A
+		    ) A
+		     WHERE 1=1
+			<if test='delvDelayDays != null and delvDelayDays != ""'>
+			<![CDATA[
+		       AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
+			]]>
+			</if>
+			<if test='delvLocClsf != null and delvLocClsf != ""'>
+		       AND A.DELV_LOC_CLSF = #{delvLocClsf}
+			</if>
+		) A
 	</select>
 
 	<!-- 배송목록 -->
 	<select id="getDeliveryList" parameterType="Delivery" resultType="Delivery">
 		/* TsaDelivery.getDeliveryList */
 		SELECT Z.*
-		    , FN_GET_CODE_NM('G000', Z.SITE_CD) AS SITE_NM
-			, ( SELECT SELL_STORE_NM
-		      FROM   TB_SELL_STORE
-		      WHERE  SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD
-		      AND    SELL_STORE_CD = Z.SELL_STORE_CD
-		     ) AS SELL_STORE_NM
-		    , FN_GET_CODE_NM('G011', Z.MALL_GB) AS MALL_GB_NM
-		    , CASE WHEN Z.ORD_DTL_STAT = 'G013_99' AND (SELECT MAX(OC.CHG_REASON) FROM TB_ORDER_CHANGE OC JOIN TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ AND OCD.ORD_DTL_NO = Z.ORD_DTL_NO AND OC.CHG_REASON = 'G686_30') IS NOT NULL
-		           THEN '품절취소' ELSE FN_GET_CODE_NM('G013', Z.ORD_DTL_STAT) END  AS ORD_DTL_STAT_NM
-		    , (SELECT B.DELV_LOC_NM FROM TB_DELIVERY_LOC B WHERE  Z.DELV_LOC_CD = B.DELV_LOC_CD AND Z.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) AS DELV_LOC_NM   -- 출고처명
-		    , (SELECT BD.BRAND_KNM FROM TB_BRAND BD WHERE BD.BRAND_CD = Z.BRAND_CD ) AS BRAND_NM
-		    , FN_GET_CODE_NM('G056', Z.GOODS_TYPE ) AS GOODS_TYPE_NM
-		    , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY S WHERE S.SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
-		    , IFNULL((SELECT  MAX(SWT_TRC_SEND_YN) FROM TB_ORDER_DETAIL_INVOICE V WHERE V.ORD_NO = Z.ORD_NO AND V.ORD_DTL_NO = Z.ORD_DTL_NO AND V.INVOICE_NO = Z.INVOICE_NO  ),'N') AS INVC_TRACKING
-
+		     , FN_GET_CODE_NM('G000', Z.SITE_CD) AS SITE_NM
+		     , (SELECT SELL_STORE_NM
+		        FROM   TB_SELL_STORE
+		        WHERE  SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD
+		        AND    SELL_STORE_CD = Z.SELL_STORE_CD) AS SELL_STORE_NM
+		     , FN_GET_CODE_NM('G011', Z.MALL_GB) AS MALL_GB_NM
+		     , CASE WHEN Z.ORD_DTL_STAT = 'G013_99' AND (SELECT MAX(OC.CHG_REASON) 
+		                                                 FROM   TB_ORDER_CHANGE OC 
+		                                                 JOIN   TB_ORDER_CHANGE_DETAIL OCD 
+		                                                 ON     OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ 
+		                                                 AND    OCD.ORD_DTL_NO = Z.ORD_DTL_NO 
+		                                                 AND OC.CHG_REASON = 'G686_30') IS NOT NULL
+		            THEN '품절취소' 
+		            ELSE FN_GET_CODE_NM('G013', Z.ORD_DTL_STAT) 
+		            END  AS ORD_DTL_STAT_NM
+		     , (SELECT B.DELV_LOC_NM FROM TB_DELIVERY_LOC B WHERE  Z.DELV_LOC_CD = B.DELV_LOC_CD AND Z.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) AS DELV_LOC_NM   -- 출고처명
+		     , (SELECT BD.BRAND_KNM FROM TB_BRAND BD WHERE BD.BRAND_CD = Z.BRAND_CD ) AS BRAND_NM
+		     , FN_GET_CODE_NM('G056', Z.GOODS_TYPE ) AS GOODS_TYPE_NM
+		     , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY S WHERE S.SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
+		     , IFNULL((SELECT  MAX(SWT_TRC_SEND_YN) FROM TB_ORDER_DETAIL_INVOICE V WHERE V.ORD_NO = Z.ORD_NO AND V.ORD_DTL_NO = Z.ORD_DTL_NO AND V.INVOICE_NO = Z.INVOICE_NO  ),'N') AS INVC_TRACKING
 		FROM (
-		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORD_NO DESC, A.ORD_DTL_NO) RNUM
+		    SELECT A.*
+		         , ROW_NUMBER() OVER(ORDER BY  A.ORD_NO DESC, A.ORD_DTL_NO) RNUM
 		    FROM (
-				SELECT A.*
-
-				  FROM (
-					SELECT
-							  CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
-							       THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
-							       ELSE NULL END AS DELV_DELAY_DAYS
-							, (SELECT CUST_ID FROM TB_CUSTOMER CT WHERE CT.CUST_NO= A.CUST_NO ) AS CUST_ID
-							, A.ORD_NO     -- 주문번호
-							, A.ORD_DTL_NO -- 주문상세번호
-							, A.SITE_CD    -- 사이트
-							, A.SELL_STORE_CD -- 판매몰
-							, A.EXTMALL_NM  -- 판매몰명
-							, A.ORD_DT         -- 주문일시
-							, A.PAY_DT         -- 결제일시
-							, A.MALL_GB        -- 몰구분
-							, A.ORD_NM         -- 주문자
-							, A.RECIP_NM       -- 수령인
-							, A.SUPPLY_COMP_CD -- 공급업체
-							, A.GOODS_CD       -- 상품코드
-							, A.GOODS_TYPE     -- 구성유형
-							, A.GOODS_NM       -- 상품명
-							, A.OPT_CD1        -- 옵션1
-							, A.OPT_CD2        -- 옵션2
-							, A.OPT_CD         -- SKU
-							, A.SKU_MODEL_NO
-							, A.PRODUCT_NO
-							, A.PRODUCT_CODE
-							, A.ORD_QTY        -- 주문수량
-							, A.CNCL_RTN_QTY   -- 취소수량
-							, A.SALE_QTY       -- 판매수량
-							, A.SALE_AMT       -- 판매금액
-							, A.REAL_ORD_AMT   -- 실결제금액
-							, A.ORD_DTL_STAT   -- 주문상세상태
-							, A.DELV_LOC_CD
-							, A.SHIP_COMP_CD  -- 출고택배사
-							, A.INVOICE_NO    -- 출고송장
-							-- 송장등록수정
-							-- 배송완료처리
-							, A.EXTMALL_ORDER_ID -- 외부몰주문번호
-							, A.AGENT_ORDER_ID   -- 에이전트주문번호
-							, A.SOLDOUT_YN    -- 결품여부
-							, A.DELV_MEMO     -- 배송메모
-							, CASE WHEN A.ORD_EXCH_GB ='E' THEN 'Y' ELSE 'N' END AS ORD_EXCH_GB   -- 교환여부
-							, A.DELV_STDT     -- 배송시작일
-							, A.BRAND_CD      -- 브랜드
-                            , A.CUST_NO
-                            , CASE WHEN A.SHOT_DELV_YN = 'Y' THEN '총알배송' ELSE '일반배송' END AS SHOT_DELV_YN
-				  			, A.PG_GB
-						    , A.PAY_MEANS
-						    , A.BANK_CD
-						    , A.ACCOUNT_NO
-						    , A.ACCOUNT_NM
-						    , A.ORD_PHNNO
-							, A.RECIP_ZIPCODE
-							, A.RECIP_BASE_ADDR
-							, A.RECIP_DTL_ADDR
-					  FROM (
-							SELECT
-								  A.ORD_NO     -- 주문번호
-								, B.ORD_DTL_NO -- 주문상세번호
-								, A.SITE_CD    -- 사이트
-								, B.SELL_STORE_CD -- 판매몰
-								, IFNULL((SELECT MAX(EXTMALL_NM) FROM TB_EXTMALL WHERE VENDOR_ID = B.VENDOR_ID
-								          AND  EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
-								, A.ORD_DT         -- 주문일시
-								, A.PAY_DT         -- 결제일시
-								, A.MALL_GB        -- 몰구분
-								, A.ORD_NM         -- 주문자
-								, D.RECIP_NM       -- 수령인
-								, B.SUPPLY_COMP_CD -- 공급업체
-								, B.GOODS_CD       -- 상품코드
-								, B.GOODS_TYPE     -- 구성유형
-								, C.GOODS_NM       -- 상품명
-								, ODI.OPT_CD1      -- 옵션1
-								, ODI.OPT_CD2      -- 옵션2
-								, ODI.OPT_CD       -- SKU
-								, ODI.SKU_MODEL_NO
-								, ODI.PRODUCT_NO
-								, ODI.PRODUCT_CODE
-								, ODI.ITEM_QTY * B.ORD_QTY      AS ORD_QTY      -- 주문수량
-								, ODI.ITEM_QTY * B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
-								, (ODI.ITEM_QTY * B.ORD_QTY  - ODI.ITEM_QTY * B.CNCL_RTN_QTY) SALE_QTY -- 판매수량
-								, B.ORD_AMT - B.CNCL_RTN_AMT  AS SALE_AMT       -- 판매금액
-								, B.REAL_ORD_AMT  -- 실결제금액
-								, B.ORD_DTL_STAT  -- 주문상세상태
-								, B.DELV_LOC_CD   -- 출고처
-								, B.SHIP_COMP_CD  -- 출고택배사
-								, B.INVOICE_NO    -- 출고송장
-								, B.EXTMALL_ORDER_ID -- 외부몰주문번호
-								, B.AGENT_ORDER_ID
-								, B.SOLDOUT_YN    -- 결품여부
-								, D.DELV_MEMO     -- 배송메모
-								, B.ORD_EXCH_GB   -- 교환여부
-								, B.DELV_STDT     -- 배송시작일
-								, (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
-							    , C.BRAND_CD
-							    , A.CUST_NO
-							    , B.SHOT_DELV_YN
-							    , P.PG_GB
-							    , P.PAY_MEANS
-							    , T.BANK_CD
-							    , T.ACCOUNT_NO
-							    , T.ACCOUNT_NM
-							    , A.ORD_PHNNO
-							    , D.RECIP_ZIPCODE
-							    , D.RECIP_BASE_ADDR
-							    , D.RECIP_DTL_ADDR
-							FROM  TB_ORDER A
-							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
-								  INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
-							      INNER JOIN TB_GOODS C               ON ODI.ITEM_CD    = C.GOODS_CD
-							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-								  INNER JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB = 'O'
-							 LEFT OUTER JOIN TB_CUST_ACCOUNT  T       ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
-							      INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
-							WHERE 1=1
-							  AND B.GOODS_TYPE NOT IN ('G056_S')
-							  AND C.SELF_GOODS_YN = 'Y'
-					        <include refid="getDeliveryListCondition_sql"/>
-
-							UNION ALL
-
-							SELECT
-								  A.ORD_NO     -- 주문번호
-								, B.ORD_DTL_NO -- 주문상세번호
-								, A.SITE_CD    -- 사이트
-								, B.SELL_STORE_CD -- 판매몰
-								, IFNULL((SELECT MAX(EXTMALL_NM) FROM TB_EXTMALL WHERE VENDOR_ID = B.VENDOR_ID
-								          AND  EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
-								, A.ORD_DT         -- 주문일시
-								, A.PAY_DT         -- 결제일시
-								, A.MALL_GB        -- 몰구분
-								, A.ORD_NM         -- 주문자
-								, D.RECIP_NM       -- 수령인
-								, B.SUPPLY_COMP_CD -- 공급업체
-								, B.GOODS_CD       -- 상품코드
-								, B.GOODS_TYPE     -- 구성유형
-								, C.GOODS_NM       -- 상품명
-								, '-' AS OPT_CD1   -- 옵션1
-								, '-' AS OPT_CD2   -- 옵션2
-								, '-' AS OPT_CD    -- SKU
-								, '-' AS SKU_MODEL_NO
-								, NULL  AS PRODUCT_NO
-								, '-'  AS PRODUCT_CODE
-								, B.ORD_QTY      AS ORD_QTY      -- 주문수량
-								, B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
-								, B.ORD_QTY  - B.CNCL_RTN_QTY   AS SALE_QTY   -- 판매수량
-								, B.ORD_AMT - B.CNCL_RTN_AMT    AS SALE_AMT   -- 판매금액
-								, B.REAL_ORD_AMT  -- 실결제금액
-								, B.ORD_DTL_STAT  -- 주문상세상태
-								, B.DELV_LOC_CD   -- 출고처
-								, B.SHIP_COMP_CD  -- 출고택배사
-								, B.INVOICE_NO    -- 출고송장
-								, B.EXTMALL_ORDER_ID -- 외부몰주문번호
-								, B.AGENT_ORDER_ID
-								, B.SOLDOUT_YN    -- 결품여부
-								, D.DELV_MEMO     -- 배송메모
-								, B.ORD_EXCH_GB   -- 교환여부
-								, B.DELV_STDT     -- 배송시작일
-								, (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
-							    , C.BRAND_CD
-							    , A.CUST_NO
-							    , B.SHOT_DELV_YN
-							    , P.PG_GB
-							    , P.PAY_MEANS
-							    , T.BANK_CD
-							    , T.ACCOUNT_NO
-							    , T.ACCOUNT_NM
-							    , A.ORD_PHNNO
-							    , D.RECIP_ZIPCODE
-							    , D.RECIP_BASE_ADDR
-							    , D.RECIP_DTL_ADDR
-							FROM  TB_ORDER A
-							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
-							      INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
-							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-								  INNER JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB ='O'
-							 LEFT OUTER JOIN TB_CUST_ACCOUNT  T       ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
-							      INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
-							WHERE 1=1
-							  AND B.GOODS_TYPE IN ('G056_S')
-							  AND C.SELF_GOODS_YN = 'Y'
-							<include refid="getDeliveryListCondition_sql"/>
-					) A
-				) A
-				WHERE 1=1
-				<if test='delvDelayDays != null and delvDelayDays != ""'>
-				<![CDATA[
-				AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
-				]]>
-				</if>
-				ORDER BY A.ORD_NO DESC, A.ORD_DTL_NO
-	<include refid="getListPagingCondition_sql"/>
+		        SELECT A.*
+		          FROM (
+		            SELECT CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
+		                        THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
+		                        ELSE NULL 
+		                        END AS DELV_DELAY_DAYS
+		                 , (SELECT CUST_ID FROM TB_CUSTOMER CT WHERE CT.CUST_NO= A.CUST_NO ) AS CUST_ID
+		                 , A.ORD_NO     -- 주문번호
+		                 , A.ORD_DTL_NO -- 주문상세번호
+		                 , A.SITE_CD    -- 사이트
+		                 , A.SELL_STORE_CD -- 판매몰
+		                 , A.EXTMALL_NM  -- 판매몰명
+		                 , A.ORD_DT         -- 주문일시
+		                 , A.PAY_DT         -- 결제일시
+		                 , A.MALL_GB        -- 몰구분
+		                 , A.ORD_NM         -- 주문자
+		                 , A.RECIP_NM       -- 수령인
+		                 , A.SUPPLY_COMP_CD -- 공급업체
+		                 , A.GOODS_CD       -- 상품코드
+		                 , A.GOODS_TYPE     -- 구성유형
+		                 , A.GOODS_NM       -- 상품명
+		                 , A.OPT_CD1        -- 옵션1
+		                 , A.OPT_CD2        -- 옵션2
+		                 , A.OPT_CD         -- SKU
+		                 , A.SKU_MODEL_NO
+		                 , A.PRODUCT_NO
+		                 , A.PRODUCT_CODE
+		                 , A.ORD_QTY        -- 주문수량
+		                 , A.CNCL_RTN_QTY   -- 취소수량
+		                 , A.SALE_QTY       -- 판매수량
+		                 , A.SALE_AMT       -- 판매금액
+		                 , A.REAL_ORD_AMT   -- 실결제금액
+		                 , A.ORD_DTL_STAT   -- 주문상세상태
+		                 , A.DELV_LOC_CD
+		                 , A.SHIP_COMP_CD  -- 출고택배사
+		                 , A.INVOICE_NO    -- 출고송장
+		                 , A.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                 , A.AGENT_ORDER_ID   -- 에이전트주문번호
+		                 , A.SOLDOUT_YN    -- 결품여부
+		                 , A.DELV_MEMO     -- 배송메모
+		                 , CASE WHEN A.ORD_EXCH_GB ='E' THEN 'Y' ELSE 'N' END AS ORD_EXCH_GB   -- 교환여부
+		                 , A.DELV_STDT     -- 배송시작일
+		                 , A.BRAND_CD      -- 브랜드
+		                 , A.CUST_NO
+		                 , CASE WHEN A.SHOT_DELV_YN = 'Y' THEN '총알배송' ELSE '일반배송' END AS SHOT_DELV_YN
+		                 , A.PG_GB
+		                 , A.PAY_MEANS
+		                 , A.BANK_CD
+		                 , A.ACCOUNT_NO
+		                 , A.ACCOUNT_NM
+		                 , A.ORD_PHNNO
+		                 , A.RECIP_ZIPCODE
+		                 , A.RECIP_BASE_ADDR
+		                 , A.RECIP_DTL_ADDR
+		              FROM (
+		                SELECT A.ORD_NO     -- 주문번호
+		                     , B.ORD_DTL_NO -- 주문상세번호
+		                     , A.SITE_CD    -- 사이트
+		                     , B.SELL_STORE_CD -- 판매몰
+		                     , IFNULL((SELECT MAX(EXTMALL_NM) 
+		                               FROM   TB_EXTMALL 
+		                               WHERE  VENDOR_ID = B.VENDOR_ID
+		                               AND    EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
+		                     , A.ORD_DT         -- 주문일시
+		                     , A.PAY_DT         -- 결제일시
+		                     , A.MALL_GB        -- 몰구분
+		                     , A.ORD_NM         -- 주문자
+		                     , D.RECIP_NM       -- 수령인
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.GOODS_CD       -- 상품코드
+		                     , B.GOODS_TYPE     -- 구성유형
+		                     , C.GOODS_NM       -- 상품명
+		                     , ODI.OPT_CD1      -- 옵션1
+		                     , ODI.OPT_CD2      -- 옵션2
+		                     , ODI.OPT_CD       -- SKU
+		                     , ODI.SKU_MODEL_NO
+		                     , ODI.PRODUCT_NO
+		                     , ODI.PRODUCT_CODE
+		                     , ODI.ITEM_QTY * B.ORD_QTY      AS ORD_QTY      -- 주문수량
+		                     , ODI.ITEM_QTY * B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
+		                     , (ODI.ITEM_QTY * B.ORD_QTY  - ODI.ITEM_QTY * B.CNCL_RTN_QTY) SALE_QTY -- 판매수량
+		                     , B.ORD_AMT - B.CNCL_RTN_AMT  AS SALE_AMT       -- 판매금액
+		                     , B.REAL_ORD_AMT  -- 실결제금액
+		                     , B.ORD_DTL_STAT  -- 주문상세상태
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.SHIP_COMP_CD  -- 출고택배사
+		                     , B.INVOICE_NO    -- 출고송장
+		                     , B.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                     , B.AGENT_ORDER_ID
+		                     , B.SOLDOUT_YN    -- 결품여부
+		                     , D.DELV_MEMO     -- 배송메모
+		                     , B.ORD_EXCH_GB   -- 교환여부
+		                     , B.DELV_STDT     -- 배송시작일
+		                     , (SELECT MAX(CH.WD_EDDT) 
+		                        FROM   TB_ORDER_CHANGE CH 
+		                        INNER  JOIN TB_ORDER_CHANGE_DETAIL CHD 
+		                        ON     CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ 
+		                        WHERE  CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
+		                     , C.BRAND_CD
+		                     , A.CUST_NO
+		                     , B.SHOT_DELV_YN
+		                     , P.PG_GB
+		                     , P.PAY_MEANS
+		                     , T.BANK_CD
+		                     , T.ACCOUNT_NO
+		                     , T.ACCOUNT_NM
+		                     , A.ORD_PHNNO
+		                     , D.RECIP_ZIPCODE
+		                     , D.RECIP_BASE_ADDR
+		                     , D.RECIP_DTL_ADDR
+		                  FROM TB_ORDER A
+		                 INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
+		                 INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
+		                 INNER JOIN TB_GOODS C               ON ODI.ITEM_CD    = C.GOODS_CD
+		                 INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
+		                 INNER JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB = 'O'
+		                  LEFT OUTER JOIN TB_CUST_ACCOUNT T  ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
+		                 INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
+		                 WHERE 1=1
+		                   AND B.GOODS_TYPE NOT IN ('G056_S')
+		                   AND C.SELF_GOODS_YN = 'Y'
+						<include refid="getDeliveryListCondition_sql"/>
+		                 UNION ALL
+		                SELECT A.ORD_NO     -- 주문번호
+		                     , B.ORD_DTL_NO -- 주문상세번호
+		                     , A.SITE_CD    -- 사이트
+		                     , B.SELL_STORE_CD -- 판매몰
+		                     , IFNULL((SELECT MAX(EXTMALL_NM) 
+		                               FROM   TB_EXTMALL WHERE VENDOR_ID = B.VENDOR_ID
+		                               AND    EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
+		                     , A.ORD_DT         -- 주문일시
+		                     , A.PAY_DT         -- 결제일시
+		                     , A.MALL_GB        -- 몰구분
+		                     , A.ORD_NM         -- 주문자
+		                     , D.RECIP_NM       -- 수령인
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.GOODS_CD       -- 상품코드
+		                     , B.GOODS_TYPE     -- 구성유형
+		                     , C.GOODS_NM       -- 상품명
+		                     , '-' AS OPT_CD1   -- 옵션1
+		                     , '-' AS OPT_CD2   -- 옵션2
+		                     , '-' AS OPT_CD    -- SKU
+		                     , '-' AS SKU_MODEL_NO
+		                     , NULL  AS PRODUCT_NO
+		                     , '-'  AS PRODUCT_CODE
+		                     , B.ORD_QTY      AS ORD_QTY      -- 주문수량
+		                     , B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
+		                     , B.ORD_QTY  - B.CNCL_RTN_QTY   AS SALE_QTY   -- 판매수량
+		                     , B.ORD_AMT - B.CNCL_RTN_AMT    AS SALE_AMT   -- 판매금액
+		                     , B.REAL_ORD_AMT  -- 실결제금액
+		                     , B.ORD_DTL_STAT  -- 주문상세상태
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.SHIP_COMP_CD  -- 출고택배사
+		                     , B.INVOICE_NO    -- 출고송장
+		                     , B.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                     , B.AGENT_ORDER_ID
+		                     , B.SOLDOUT_YN    -- 결품여부
+		                     , D.DELV_MEMO     -- 배송메모
+		                     , B.ORD_EXCH_GB   -- 교환여부
+		                     , B.DELV_STDT     -- 배송시작일
+		                     , (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
+		                     , C.BRAND_CD
+		                     , A.CUST_NO
+		                     , B.SHOT_DELV_YN
+		                     , P.PG_GB
+		                     , P.PAY_MEANS
+		                     , T.BANK_CD
+		                     , T.ACCOUNT_NO
+		                     , T.ACCOUNT_NM
+		                     , A.ORD_PHNNO
+		                     , D.RECIP_ZIPCODE
+		                     , D.RECIP_BASE_ADDR
+		                     , D.RECIP_DTL_ADDR
+		                  FROM TB_ORDER A
+		                 INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
+		                 INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
+		                 INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
+		                 INNER JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB ='O'
+		                  LEFT OUTER JOIN TB_CUST_ACCOUNT  T ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
+		                 INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
+		                 INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
+		                 WHERE 1=1
+		                   AND B.GOODS_TYPE IN ('G056_S')
+		                   AND C.SELF_GOODS_YN = 'Y'
+						<include refid="getDeliveryListCondition_sql"/>
+		               GROUP  BY A.ORD_NO     -- 주문번호
+		                     , B.ORD_DTL_NO -- 주문상세번호
+		                     , A.SITE_CD    -- 사이트
+		                     , B.SELL_STORE_CD -- 판매몰
+		                     , B.VENDOR_ID
+		                     , B.EXTMALL_ID
+		                     , A.ORD_DT         -- 주문일시
+		                     , A.PAY_DT         -- 결제일시
+		                     , A.MALL_GB        -- 몰구분
+		                     , A.ORD_NM         -- 주문자
+		                     , D.RECIP_NM       -- 수령인
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.GOODS_CD       -- 상품코드
+		                     , B.GOODS_TYPE     -- 구성유형
+		                     , C.GOODS_NM       -- 상품명
+		                     , B.ORD_QTY
+		                     , B.CNCL_RTN_QTY
+		                     , B.REAL_ORD_AMT
+		                     , B.ORD_DTL_STAT
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.SHIP_COMP_CD  -- 출고택배사
+		                     , B.INVOICE_NO    -- 출고송장
+		                     , B.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                     , B.AGENT_ORDER_ID
+		                     , B.SOLDOUT_YN    -- 결품여부
+		                     , D.DELV_MEMO     -- 배송메모
+		                     , B.ORD_EXCH_GB   -- 교환여부
+		                     , B.DELV_STDT     -- 배송시작일
+		                     , B.ORG_ORD_DTL_NO
+		                     , C.BRAND_CD
+		                     , A.CUST_NO
+		                     , B.SHOT_DELV_YN
+		                     , P.PG_GB
+		                     , P.PAY_MEANS
+		                     , T.BANK_CD
+		                     , T.ACCOUNT_NO
+		                     , T.ACCOUNT_NM
+		                     , A.ORD_PHNNO
+		                     , D.RECIP_ZIPCODE
+		                     , D.RECIP_BASE_ADDR
+		                     , D.RECIP_DTL_ADDR
+		            ) A
+		    ) A
+		     WHERE 1=1
+			<if test='delvDelayDays != null and delvDelayDays != ""'>
+			<![CDATA[
+		       AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
+			]]>
+			</if>
+		      ORDER BY A.ORD_NO DESC
+		      , A.ORD_DTL_NO
+		<include refid="getListPagingCondition_sql"/>
 	</select>
 
     <!-- 배송목록 조회 조건  -->
 	<sql id="getDeliveryListCondition_sql">
 		<if test='siteCd != null and siteCd != ""'>
-		AND  A.SITE_CD = #{siteCd}
+		AND   A.SITE_CD = #{siteCd}
 		</if>
 		<if test='mallGb != null and mallGb != ""'>
-		AND  A.MALL_GB = #{mallGb}
+		AND   A.MALL_GB = #{mallGb}
 		</if>
 		<if test='supplyCompCd != null and supplyCompCd != ""'>
-		AND B.SUPPLY_COMP_CD = #{supplyCompCd}
+		AND  B.SUPPLY_COMP_CD = #{supplyCompCd}
+		</if>
+		<if test="multiBrand != null and multiBrand != ''">
+		AND   C.BRAND_CD IN
+			<foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
+		     #{item}
+			</foreach>
 		</if>
-        <if test="multiBrand != null and multiBrand != ''">
-        AND C.BRAND_CD IN
-            <foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
-        	#{item}
-            </foreach>
-        </if>
 		<if test='orderNm != null and orderNm != ""'>
 		AND   A.ORD_NM = #{orderNm}
 		</if>
@@ -314,7 +371,6 @@
 		          <foreach collection="conditions" item="item" index="index"  open="(" close=")" separator=",">
 		      		#{item}
 		         </foreach>
-
 		     </when>
 		     <when test='search != null and search == "searchExtmallOrderId"'>
 		         B.EXTMALL_ORDER_ID IN
@@ -344,7 +400,7 @@
 		AND   B.DELV_LOC_CD = #{delvLocCd}
 		</if>
 		<if test="multiOrdDtlStat != null and multiOrdDtlStat !=''">
-		AND  B.ORD_DTL_STAT IN
+		AND   B.ORD_DTL_STAT IN
 		    <foreach collection="multiOrdDtlStat" item="item" index="index"  open="(" close=")" separator=",">
 		     #{item}
 		    </foreach>
@@ -376,7 +432,17 @@
 		<if test='custId != null and custId != ""'>
 		AND   CUST.CUST_ID = #{custId}
 		</if>
-		AND B.ORD_DTL_STAT != 'G013_00'
+		AND   B.ORD_DTL_STAT != 'G013_00'
+		<if test="optCd != null and optCd != ''">
+		AND   ODI.OPT_CD LIKE CONCAT('%',#{optCd},'%')
+		</if>
+		<if test="extmallId != null and extmallId != ''">
+		AND   B.VENDOR_ID = #{vendorId}
+		AND   B.EXTMALL_ID = #{extmallId}
+		</if>
+		<if test="extmallOrderId != null and extmallOrderId != ''">
+		AND   B.EXTMALL_ORDER_ID LIKE CONCAT('%',#{extmallOrderId},'%')
+		</if>
 	</sql>
 
 
@@ -799,10 +865,13 @@
 		         , B.GOODS_CD     -- 상품코드
 		      FROM TB_ORDER A
 		      JOIN TB_ORDER_DETAIL B      ON A.ORD_NO = B.ORD_NO
+		      JOIN TB_ORDER_DETAIL_ITEM C ON B.ORD_NO = C.ORD_NO AND B.ORD_DTL_NO = C.ORD_DTL_NO
 		      JOIN TB_GOODS D             ON B.GOODS_CD = D.GOODS_CD
 		     WHERE D.SELF_GOODS_YN  = 'Y'  -- 자사상품만
 		       AND B.ORD_DTL_STAT IN ('G013_20','G013_35')
 		       AND B.GOODS_TYPE    = 'G056_S'
+		     GROUP  BY B.ORD_DTL_NO
+		          , B.GOODS_CD
 			<include refid="getAssignListCondition_sql"/>
 		) A
 	</select>
@@ -814,7 +883,10 @@
 		     , FN_GET_CODE_NM('G000', Z.SITE_CD) AS SITE_NM
 		     , FN_GET_CODE_NM('G011', Z.MALL_GB) AS MALL_NM
 		     , FN_GET_CODE_NM('G056', Z.GOODS_TYPE) AS GOODS_TYPE_NM
-		     , CASE WHEN ORD_EXCH_GB ='O' THEN '주문' ELSE '교환' END AS ORD_EXCH_NM     -- 상품코드
+		     , CASE WHEN ORD_EXCH_GB ='O' 
+		            THEN '주문' 
+		            ELSE '교환' 
+		            END AS ORD_EXCH_NM
 		     , FN_GET_CODE_NM('G013', Z.ORD_DTL_STAT) AS ORD_DTL_STAT_NM
 		     , (SELECT MAX(EE.EXTMALL_NM)
 		          FROM TB_EXTMALL EE
@@ -850,6 +922,7 @@
 		                 , B.ORD_DTL_STAT 	-- 주문상세상태
 		                 , B.VENDOR_ID
 		                 , B.SUPPLY_COMP_CD
+		                 , B.EXTMALL_ORDER_ID
 		            FROM   TB_ORDER A
 		            JOIN   TB_ORDER_DETAIL B      ON A.ORD_NO = B.ORD_NO
 		            JOIN   TB_ORDER_DETAIL_ITEM C ON B.ORD_NO = C.ORD_NO AND B.ORD_DTL_NO = C.ORD_DTL_NO
@@ -884,13 +957,36 @@
 		                 , B.ORD_DTL_STAT 	-- 주문상세상태
 		                 , B.VENDOR_ID
 		                 , B.SUPPLY_COMP_CD
-		            FROM TB_ORDER A
-		            JOIN TB_ORDER_DETAIL B      ON A.ORD_NO = B.ORD_NO
-		            JOIN TB_GOODS D             ON B.GOODS_CD = D.GOODS_CD
-		            WHERE D.SELF_GOODS_YN  = 'Y'  -- 자사상품만
-		            AND B.ORD_DTL_STAT IN ('G013_20','G013_35')
-		            AND B.GOODS_TYPE     = 'G056_S'
+		                 , B.EXTMALL_ORDER_ID
+		            FROM   TB_ORDER A
+		            JOIN   TB_ORDER_DETAIL B        ON A.ORD_NO = B.ORD_NO
+		            JOIN   TB_ORDER_DETAIL_ITEM C   ON B.ORD_NO = C.ORD_NO AND B.ORD_DTL_NO = C.ORD_DTL_NO
+		            JOIN   TB_GOODS D               ON B.GOODS_CD = D.GOODS_CD
+		            WHERE  D.SELF_GOODS_YN  = 'Y'  -- 자사상품만
+		            AND    B.ORD_DTL_STAT IN ('G013_20','G013_35')
+		            AND    B.GOODS_TYPE     = 'G056_S'
 					<include refid="getAssignListCondition_sql"/>
+					GROUP  BY A.SITE_CD      -- 사이트
+		                 , A.ORD_NO       -- 주문번호
+		                 , B.ORD_DTL_NO   -- 주문상세번호
+		                 , B.DELV_LOC_CD  -- 출고처
+		                 , A.ORD_DT       -- 주문일시
+		                 , A.PAY_DT       -- 결제일시
+		                 , A.MALL_GB      -- 몰구분
+		                 , B.EXTMALL_ID   -- 외부몰
+		                 , A.ORD_NM       -- 주문자
+		                 , B.GOODS_TYPE   -- 구성유형  (신규)
+		                 , D.GOODS_NM     -- 상품명
+		                 , B.GOODS_CD     -- 상품코드
+		                 , B.ORD_QTY 
+		                 , B.CNCL_RTN_QTY
+		                 , B.ORD_AMT 
+		                 , B.CNCL_RTN_AMT
+		                 , B.ORD_EXCH_GB
+		                 , B.ORD_DTL_STAT
+		                 , B.VENDOR_ID
+		                 , B.SUPPLY_COMP_CD
+		                 , B.EXTMALL_ORDER_ID
 		        ) A
 		        ORDER  BY A.ORD_NO
 		             , A.ORD_DTL_NO
@@ -906,9 +1002,6 @@
 		<if test='ordDtlNo != null and ordDtlNo != ""'>
 			AND B.ORD_DTL_NO = #{ordDtlNo}
 		</if>
-		<if test='extmallOrderId != null and extmallOrderId != ""'>
-			AND LOWER(B.EXTMALL_ORDER_ID) LIKE LOWER(#{extmallOrderId}||'%')
-		</if>
 		<if test='siteCd != null and siteCd != ""'>
 			AND A.SITE_CD = #{siteCd}
 		</if>
@@ -916,7 +1009,7 @@
 			AND A.MALL_GB = #{mallGb}
 		</if>
 		<if test='goodsCd != null and goodsCd != ""'>
-			AND C.GOODS_CD = #{goodsCd}
+			AND B.GOODS_CD = #{goodsCd}
 		</if>
 		<if test='delvAssignStat == "Y"'>
 			AND B.DELV_LOC_CD IS NOT NULL
@@ -928,7 +1021,7 @@
 			AND B.DELV_LOC_CD = #{delvLocCd}
 		</if>
 		<if test='siteCd != null and siteCd != ""'>
-			AND  A.SITE_CD = #{siteCd}
+			AND A.SITE_CD = #{siteCd}
 		</if>
 		<if test='ordExchGb == "Y"'>
 			AND B.ORD_EXCH_GB = 'E'
@@ -942,6 +1035,19 @@
 		<if test='edDate != null and edDate != ""'>
 			AND A.ORD_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(replace(#{edDate},'-',''), '%Y%m%d%H%i%S'), INTERVAL 1 DAY)
 		</if>
+		<if test="optCd != null and optCd != ''">
+		    AND C.OPT_CD LIKE CONCAT('%',#{optCd},'%')
+		</if>
+		<if test="extmallId != null and extmallId != ''">
+		    AND B.VENDOR_ID = #{vendorId}
+		    AND B.EXTMALL_ID = #{extmallId}
+		</if>
+		<if test="extmallOrderId != null and extmallOrderId != ''">
+		    AND B.EXTMALL_ORDER_ID LIKE CONCAT('%',#{extmallOrderId},'%')
+		</if>
+		<if test="ordNm != null and ordNm != ''">
+		    AND A.ORD_NM = #{ordNm}
+		</if>
 	</sql>
 
 	<!-- 출고처 수동지정 대상 조회  -->
@@ -960,26 +1066,24 @@
 		     , B.CURR_PRICE
 	</select>
 
-
 	<!-- 출고처 수동지정 주문상세 리스트 조회 -->
 	<select id="getOrdDtlNoItemList" resultType="Delivery">
 		/*TsaDelivery.getOrdDtlNoItemList */
-		SELECT
-			  A.ORD_NO
-			, B.ORD_DTL_NO
-			, B.GOODS_CD
-			, C.ITEM_CD
-			, C.OPT_CD
-			, C.OPT_CD1
-			, C.OPT_CD2
-		    , (B.ORD_QTY - B.CNCL_RTN_QTY) * C.ITEM_QTY  AS ORD_QTY
-		    , (B.ORD_QTY - B.CNCL_RTN_QTY)               AS ORD_DTL_QTY
-		    , C.ITEM_QTY                                 AS ITEM_QTY
-		    , B.GOODS_TYPE
-		    , C.PRODUCT_NO
-    		, B.FORMAL_GB
-    		, B.SUPPLY_COMP_CD
-    		, D.BRAND_CD
+		SELECT A.ORD_NO
+		     , B.ORD_DTL_NO
+		     , B.GOODS_CD
+		     , C.ITEM_CD
+		     , C.OPT_CD
+		     , C.OPT_CD1
+		     , C.OPT_CD2
+		     , (B.ORD_QTY - B.CNCL_RTN_QTY) * C.ITEM_QTY  AS ORD_QTY
+		     , (B.ORD_QTY - B.CNCL_RTN_QTY)               AS ORD_DTL_QTY
+		     , C.ITEM_QTY                                 AS ITEM_QTY
+		     , B.GOODS_TYPE
+		     , C.PRODUCT_NO
+		     , B.FORMAL_GB
+		     , B.SUPPLY_COMP_CD
+		     , D.BRAND_CD
 		  FROM TB_ORDER             A
 		  JOIN TB_ORDER_DETAIL      B ON A.ORD_NO = B.ORD_NO
 		  JOIN TB_ORDER_DETAIL_ITEM C ON B.ORD_NO = C.ORD_NO AND B.ORD_DTL_NO = C.ORD_DTL_NO
@@ -1333,271 +1437,320 @@
 	<!-- 배송목록 건수 -->
 	<select id="getDeliveryListScmCount" parameterType="Delivery" resultType="int">
 		/* TsaDelivery.getDeliveryListScmCount */
-		SELECT COUNT(*) AS TOTCNT
+		SELECT COUNT(1) AS TOTCNT
 		  FROM (
-				SELECT A.*
-				  FROM (
-					SELECT
-							  CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
-							       THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
-							       ELSE NULL END AS DELV_DELAY_DAYS
-							, FN_GET_CODE_NM('G024', (SELECT B.DELV_LOC_CLSF FROM TB_DELIVERY_LOC B WHERE  A.DELV_LOC_CD = B.DELV_LOC_CD AND A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) ) AS DELV_LOC_CLSF  -- 출고처 분류 G024  물류창고, 일반매장, 직송매장, 입점업체
-							, SUPPLY_COMP_NM
-					  FROM (
-							SELECT
-								  A.PAY_DT         -- 결제일시
-								, B.SUPPLY_COMP_CD -- 공급업체
-								, B.ORD_DTL_STAT  -- 주문상세상태
-								, B.DELV_LOC_CD   -- 출고처
-								, (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
-					            , B.ORD_EXCH_GB
-					            , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY S WHERE S.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
-							FROM  TB_ORDER A
-							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
-							      INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
-							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-							      INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
-							WHERE 1=1
-							  AND C.SELF_GOODS_YN = 'N'
-							<include refid="getDeliveryListCondition_sql"/>
-					) A
-				) A
-				WHERE 1=1
-				<if test='delvDelayDays != null and delvDelayDays != ""'>
-				<![CDATA[
-				AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
-				]]>
-				</if>
-				<if test='delvLocClsf != null and delvLocClsf != ""'>
-				AND   A.DELV_LOC_CLSF = #{delvLocClsf}
-				</if>
-				<if test='supplyCompSearchTxt != null and supplyCompSearchTxt != ""'>
-				AND   A.SUPPLY_COMP_NM like concat(#{supplyCompSearchTxt},'%') 
-				</if>				
-			) A
-
+		    SELECT A.*
+		      FROM (
+		          SELECT CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
+		                 THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
+		                 ELSE NULL 
+		                 END AS DELV_DELAY_DAYS
+		               , FN_GET_CODE_NM('G024', (SELECT B.DELV_LOC_CLSF FROM TB_DELIVERY_LOC B WHERE  A.DELV_LOC_CD = B.DELV_LOC_CD AND A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) ) AS DELV_LOC_CLSF  -- 출고처 분류 G024  물류창고, 일반매장, 직송매장, 입점업체
+		               , SUPPLY_COMP_NM
+		            FROM (
+		                SELECT A.PAY_DT         -- 결제일시
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.ORD_DTL_STAT  -- 주문상세상태
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.ORD_DTL_NO
+		                  FROM TB_ORDER A
+		                 INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
+		                 INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
+		                 INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
+		                 INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
+		                 INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
+		                 WHERE 1=1
+		                   AND C.SELF_GOODS_YN = 'N'
+						<include refid="getDeliveryListCondition_sql"/>
+						GROUP  BY A.PAY_DT         -- 결제일시
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.ORD_DTL_STAT  -- 주문상세상태
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.ORD_DTL_NO
+		          ) A
+		    ) A
+		     WHERE 1=1
+			<if test='delvDelayDays != null and delvDelayDays != ""'>
+			<![CDATA[
+		       AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
+			]]>
+			</if>
+			<if test='delvLocClsf != null and delvLocClsf != ""'>
+		       AND   A.DELV_LOC_CLSF = #{delvLocClsf}
+			</if>
+			<if test='supplyCompSearchTxt != null and supplyCompSearchTxt != ""'>
+		       AND   A.SUPPLY_COMP_NM like concat(#{supplyCompSearchTxt},'%') 
+			</if>
+		) A
 	</select>
 
 	<!-- 배송목록 -->
 	<select id="getDeliveryScmList" parameterType="Delivery" resultType="Delivery">
 		/* TsaDelivery.getDeliveryScmList */
 		SELECT Z.*
-		    , FN_GET_CODE_NM('G000', Z.SITE_CD) AS SITE_NM
-			, ( SELECT SELL_STORE_NM
-		      FROM   TB_SELL_STORE
-		      WHERE  SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD
-		      AND    SELL_STORE_CD = Z.SELL_STORE_CD
-		     ) AS SELL_STORE_NM
-		    , FN_GET_CODE_NM('G011', Z.MALL_GB) AS MALL_GB_NM
-		    , CASE WHEN Z.ORD_DTL_STAT = 'G013_99' AND (SELECT MAX(OC.CHG_REASON) FROM TB_ORDER_CHANGE OC JOIN TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ AND OCD.ORD_DTL_NO = Z.ORD_DTL_NO AND OC.CHG_REASON = 'G686_30') IS NOT NULL
-		           THEN '품절취소' ELSE FN_GET_CODE_NM('G013', Z.ORD_DTL_STAT) END  AS ORD_DTL_STAT_NM
-		    , (SELECT B.DELV_LOC_NM FROM TB_DELIVERY_LOC B WHERE  Z.DELV_LOC_CD = B.DELV_LOC_CD AND Z.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) AS DELV_LOC_NM   -- 출고처명
-		    , (SELECT BD.BRAND_KNM FROM TB_BRAND BD WHERE BD.BRAND_CD = Z.BRAND_CD ) AS BRAND_NM
-		    , FN_GET_CODE_NM('G056', Z.GOODS_TYPE ) AS GOODS_TYPE_NM
-		    
-		    , IFNULL((SELECT  MAX(SWT_TRC_SEND_YN) FROM TB_ORDER_DETAIL_INVOICE V WHERE V.ORD_NO = Z.ORD_NO AND V.ORD_DTL_NO = Z.ORD_DTL_NO AND V.INVOICE_NO = Z.INVOICE_NO  ),'N') AS INVC_TRACKING
-
+		     , FN_GET_CODE_NM('G000', Z.SITE_CD) AS SITE_NM
+		     , (SELECT SELL_STORE_NM
+		        FROM   TB_SELL_STORE
+		        WHERE  SUPPLY_COMP_CD = Z.SUPPLY_COMP_CD
+		        AND    SELL_STORE_CD = Z.SELL_STORE_CD) AS SELL_STORE_NM
+		     , FN_GET_CODE_NM('G011', Z.MALL_GB) AS MALL_GB_NM
+		     , CASE WHEN Z.ORD_DTL_STAT = 'G013_99' AND (SELECT MAX(OC.CHG_REASON) FROM TB_ORDER_CHANGE OC JOIN TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ AND OCD.ORD_DTL_NO = Z.ORD_DTL_NO AND OC.CHG_REASON = 'G686_30') IS NOT NULL
+		            THEN '품절취소' 
+		            ELSE FN_GET_CODE_NM('G013', Z.ORD_DTL_STAT) 
+		            END  AS ORD_DTL_STAT_NM
+		     , (SELECT B.DELV_LOC_NM FROM TB_DELIVERY_LOC B WHERE  Z.DELV_LOC_CD = B.DELV_LOC_CD AND Z.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD ) AS DELV_LOC_NM   -- 출고처명
+		     , (SELECT BD.BRAND_KNM FROM TB_BRAND BD WHERE BD.BRAND_CD = Z.BRAND_CD ) AS BRAND_NM
+		     , FN_GET_CODE_NM('G056', Z.GOODS_TYPE ) AS GOODS_TYPE_NM
+		     , IFNULL((SELECT  MAX(SWT_TRC_SEND_YN) FROM TB_ORDER_DETAIL_INVOICE V WHERE V.ORD_NO = Z.ORD_NO AND V.ORD_DTL_NO = Z.ORD_DTL_NO AND V.INVOICE_NO = Z.INVOICE_NO  ),'N') AS INVC_TRACKING
 		FROM (
-		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORD_NO DESC, A.ORD_DTL_NO) RNUM
+		    SELECT A.*
+		         , ROW_NUMBER() OVER(ORDER BY  A.ORD_NO DESC, A.ORD_DTL_NO) RNUM
 		    FROM (
-				SELECT A.*
-
-				  FROM (
-					SELECT
-							  CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
-							       THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
-							       ELSE NULL END AS DELV_DELAY_DAYS
-							, (SELECT CUST_ID FROM TB_CUSTOMER CT WHERE CT.CUST_NO= A.CUST_NO ) AS CUST_ID
-							, (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY S WHERE S.SUPPLY_COMP_CD = A.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
-							, A.ORD_NO     -- 주문번호
-							, A.ORD_DTL_NO -- 주문상세번호
-							, A.SITE_CD    -- 사이트
-							, A.SELL_STORE_CD -- 판매몰
-							, A.EXTMALL_NM  -- 판매몰명
-							, A.ORD_DT         -- 주문일시
-							, A.PAY_DT         -- 결제일시
-							, A.MALL_GB        -- 몰구분
-							, A.ORD_NM         -- 주문자
-							, A.RECIP_NM       -- 수령인
-							, A.SUPPLY_COMP_CD -- 공급업체
-							, A.GOODS_CD       -- 상품코드
-							, A.GOODS_TYPE     -- 구성유형
-							, A.GOODS_NM       -- 상품명
-							, A.OPT_CD1        -- 옵션1
-							, A.OPT_CD2        -- 옵션2
-							, A.OPT_CD         -- SKU
-							, A.SKU_MODEL_NO
-							, A.PRODUCT_NO
-							, A.PRODUCT_CODE
-							, A.ORD_QTY        -- 주문수량
-							, A.CNCL_RTN_QTY   -- 취소수량
-							, A.SALE_QTY       -- 판매수량
-							, A.SALE_AMT       -- 판매금액
-							, A.REAL_ORD_AMT   -- 실결제금액
-							, A.ORD_DTL_STAT   -- 주문상세상태
-							, A.DELV_LOC_CD
-							, A.SHIP_COMP_CD  -- 출고택배사
-							, A.INVOICE_NO    -- 출고송장
-							-- 송장등록수정
-							-- 배송완료처리
-							, A.EXTMALL_ORDER_ID -- 외부몰주문번호
-							, A.AGENT_ORDER_ID   -- 에이전트주문번호
-							, A.SOLDOUT_YN    -- 결품여부
-							, A.DELV_MEMO     -- 배송메모
-							, CASE WHEN A.ORD_EXCH_GB ='E' THEN 'Y' ELSE 'N' END AS ORD_EXCH_GB   -- 교환여부
-							, A.DELV_STDT     -- 배송시작일
-							, A.BRAND_CD      -- 브랜드
-                            , A.CUST_NO
-                            , CASE WHEN A.SHOT_DELV_YN = 'Y' THEN '총알배송' ELSE '일반배송' END AS SHOT_DELV_YN
-				  			, A.PG_GB
-						    , A.PAY_MEANS
-						    , A.BANK_CD
-						    , A.ACCOUNT_NO
-						    , A.ACCOUNT_NM
-						    , A.ORD_PHNNO
-							, A.RECIP_ZIPCODE
-							, A.RECIP_BASE_ADDR
-							, A.RECIP_DTL_ADDR
-					  FROM (
-							SELECT
-								  A.ORD_NO     -- 주문번호
-								, B.ORD_DTL_NO -- 주문상세번호
-								, A.SITE_CD    -- 사이트
-								, B.SELL_STORE_CD -- 판매몰
-								, IFNULL((SELECT MAX(EXTMALL_NM) FROM TB_EXTMALL WHERE VENDOR_ID = B.VENDOR_ID
-								          AND  EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
-								, A.ORD_DT         -- 주문일시
-								, A.PAY_DT         -- 결제일시
-								, A.MALL_GB        -- 몰구분
-								, A.ORD_NM         -- 주문자
-								, D.RECIP_NM       -- 수령인
-								, B.SUPPLY_COMP_CD -- 공급업체
-								, B.GOODS_CD       -- 상품코드
-								, B.GOODS_TYPE     -- 구성유형
-								, C.GOODS_NM       -- 상품명
-								, ODI.OPT_CD1      -- 옵션1
-								, ODI.OPT_CD2      -- 옵션2
-								, ODI.OPT_CD       -- SKU
-								, ODI.SKU_MODEL_NO
-								, ODI.PRODUCT_NO
-								, ODI.PRODUCT_CODE
-								, ODI.ITEM_QTY * B.ORD_QTY      AS ORD_QTY      -- 주문수량
-								, ODI.ITEM_QTY * B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
-								, (ODI.ITEM_QTY * B.ORD_QTY  - ODI.ITEM_QTY * B.CNCL_RTN_QTY) SALE_QTY -- 판매수량
-								, B.ORD_AMT - B.CNCL_RTN_AMT  AS SALE_AMT       -- 판매금액
-								, B.REAL_ORD_AMT  -- 실결제금액
-								, B.ORD_DTL_STAT  -- 주문상세상태
-								, B.DELV_LOC_CD   -- 출고처
-								, B.SHIP_COMP_CD  -- 출고택배사
-								, B.INVOICE_NO    -- 출고송장
-								, B.EXTMALL_ORDER_ID -- 외부몰주문번호
-								, B.AGENT_ORDER_ID
-								, B.SOLDOUT_YN    -- 결품여부
-								, D.DELV_MEMO     -- 배송메모
-								, B.ORD_EXCH_GB   -- 교환여부
-								, B.DELV_STDT     -- 배송시작일
-								, (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
-							    , C.BRAND_CD
-							    , A.CUST_NO
-							    , B.SHOT_DELV_YN
-							    , P.PG_GB
-							    , P.PAY_MEANS
-							    , T.BANK_CD
-							    , T.ACCOUNT_NO
-							    , T.ACCOUNT_NM
-							    , A.ORD_PHNNO
-							    , D.RECIP_ZIPCODE
-							    , D.RECIP_BASE_ADDR
-							    , D.RECIP_DTL_ADDR
-							FROM  TB_ORDER A
-							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
-								  INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
-							      INNER JOIN TB_GOODS C               ON ODI.ITEM_CD    = C.GOODS_CD
-							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-								  INNER JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB = 'O'
-							 LEFT OUTER JOIN TB_CUST_ACCOUNT  T       ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
-							      INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
-							WHERE 1=1
-							  AND B.GOODS_TYPE NOT IN ('G056_S')
-							  AND C.SELF_GOODS_YN = 'N'
-					        <include refid="getDeliveryListScmCondition_sql"/>
-
-							UNION ALL
-
-							SELECT
-								  A.ORD_NO     -- 주문번호
-								, B.ORD_DTL_NO -- 주문상세번호
-								, A.SITE_CD    -- 사이트
-								, B.SELL_STORE_CD -- 판매몰
-								, IFNULL((SELECT MAX(EXTMALL_NM) FROM TB_EXTMALL WHERE VENDOR_ID = B.VENDOR_ID
-								          AND  EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
-								, A.ORD_DT         -- 주문일시
-								, A.PAY_DT         -- 결제일시
-								, A.MALL_GB        -- 몰구분
-								, A.ORD_NM         -- 주문자
-								, D.RECIP_NM       -- 수령인
-								, B.SUPPLY_COMP_CD -- 공급업체
-								, B.GOODS_CD       -- 상품코드
-								, B.GOODS_TYPE     -- 구성유형
-								, C.GOODS_NM       -- 상품명
-								, '-' AS OPT_CD1   -- 옵션1
-								, '-' AS OPT_CD2   -- 옵션2
-								, '-' AS OPT_CD    -- SKU
-								, '-' AS SKU_MODEL_NO
-								, NULL  AS PRODUCT_NO
-								, '-'  AS PRODUCT_CODE
-								, B.ORD_QTY      AS ORD_QTY      -- 주문수량
-								, B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
-								, B.ORD_QTY  - B.CNCL_RTN_QTY   AS SALE_QTY   -- 판매수량
-								, B.ORD_AMT - B.CNCL_RTN_AMT    AS SALE_AMT   -- 판매금액
-								, B.REAL_ORD_AMT  -- 실결제금액
-								, B.ORD_DTL_STAT  -- 주문상세상태
-								, B.DELV_LOC_CD   -- 출고처
-								, B.SHIP_COMP_CD  -- 출고택배사
-								, B.INVOICE_NO    -- 출고송장
-								, B.EXTMALL_ORDER_ID -- 외부몰주문번호
-								, B.AGENT_ORDER_ID
-								, B.SOLDOUT_YN    -- 결품여부
-								, D.DELV_MEMO     -- 배송메모
-								, B.ORD_EXCH_GB   -- 교환여부
-								, B.DELV_STDT     -- 배송시작일
-								, (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
-							    , C.BRAND_CD
-							    , A.CUST_NO
-							    , B.SHOT_DELV_YN
-							    , P.PG_GB
-							    , P.PAY_MEANS
-							    , T.BANK_CD
-							    , T.ACCOUNT_NO
-							    , T.ACCOUNT_NM
-							    , A.ORD_PHNNO
-							    , D.RECIP_ZIPCODE
-							    , D.RECIP_BASE_ADDR
-							    , D.RECIP_DTL_ADDR
-							FROM  TB_ORDER A
-							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
-							      INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
-							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-								  INNER JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB ='O'
-							 LEFT OUTER JOIN TB_CUST_ACCOUNT  T       ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
-							      INNER JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
-							WHERE 1=1
-							  AND B.GOODS_TYPE IN ('G056_S')
-							  AND C.SELF_GOODS_YN = 'N'
-							<include refid="getDeliveryListScmCondition_sql"/>
-					) A
-				) A
-				WHERE 1=1
+		        SELECT A.*
+		          FROM (
+		            SELECT CASE WHEN ORD_DTL_STAT IN('G013_20','G013_30','G013_35','G013_40')
+		                        THEN FN_GET_BIZDAYS(IF(A.ORD_EXCH_GB='O',DATE_FORMAT(A.PAY_DT,'%Y%m%d'),DATE_FORMAT(A.WD_EDDT,'%Y%m%d')),DATE_FORMAT(NOW(),'%Y%m%d')) - 1
+		                        ELSE NULL 
+		                        END AS DELV_DELAY_DAYS
+		                 , (SELECT CUST_ID FROM TB_CUSTOMER CT WHERE CT.CUST_NO= A.CUST_NO ) AS CUST_ID
+		                 , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY S WHERE S.SUPPLY_COMP_CD = A.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
+		                 , A.ORD_NO     -- 주문번호
+		                 , A.ORD_DTL_NO -- 주문상세번호
+		                 , A.SITE_CD    -- 사이트
+		                 , A.SELL_STORE_CD -- 판매몰
+		                 , A.EXTMALL_NM  -- 판매몰명
+		                 , A.ORD_DT         -- 주문일시
+		                 , A.PAY_DT         -- 결제일시
+		                 , A.MALL_GB        -- 몰구분
+		                 , A.ORD_NM         -- 주문자
+		                 , A.RECIP_NM       -- 수령인
+		                 , A.SUPPLY_COMP_CD -- 공급업체
+		                 , A.GOODS_CD       -- 상품코드
+		                 , A.GOODS_TYPE     -- 구성유형
+		                 , A.GOODS_NM       -- 상품명
+		                 , A.OPT_CD1        -- 옵션1
+		                 , A.OPT_CD2        -- 옵션2
+		                 , A.OPT_CD         -- SKU
+		                 , A.SKU_MODEL_NO
+		                 , A.PRODUCT_NO
+		                 , A.PRODUCT_CODE
+		                 , A.ORD_QTY        -- 주문수량
+		                 , A.CNCL_RTN_QTY   -- 취소수량
+		                 , A.SALE_QTY       -- 판매수량
+		                 , A.SALE_AMT       -- 판매금액
+		                 , A.REAL_ORD_AMT   -- 실결제금액
+		                 , A.ORD_DTL_STAT   -- 주문상세상태
+		                 , A.DELV_LOC_CD
+		                 , A.SHIP_COMP_CD  -- 출고택배사
+		                 , A.INVOICE_NO    -- 출고송장
+		                 , A.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                 , A.AGENT_ORDER_ID   -- 에이전트주문번호
+		                 , A.SOLDOUT_YN    -- 결품여부
+		                 , A.DELV_MEMO     -- 배송메모
+		                 , CASE WHEN A.ORD_EXCH_GB ='E' THEN 'Y' ELSE 'N' END AS ORD_EXCH_GB   -- 교환여부
+		                 , A.DELV_STDT     -- 배송시작일
+		                 , A.BRAND_CD      -- 브랜드
+		                 , A.CUST_NO
+		                 , CASE WHEN A.SHOT_DELV_YN = 'Y' 
+		                        THEN '총알배송' 
+		                        ELSE '일반배송' 
+		                        END AS SHOT_DELV_YN
+		                 , A.PG_GB
+		                 , A.PAY_MEANS
+		                 , A.BANK_CD
+		                 , A.ACCOUNT_NO
+		                 , A.ACCOUNT_NM
+		                 , A.ORD_PHNNO
+		                 , A.RECIP_ZIPCODE
+		                 , A.RECIP_BASE_ADDR
+		                 , A.RECIP_DTL_ADDR
+		            FROM (
+		                SELECT A.ORD_NO     -- 주문번호
+		                     , B.ORD_DTL_NO -- 주문상세번호
+		                     , A.SITE_CD    -- 사이트
+		                     , B.SELL_STORE_CD -- 판매몰
+		                     , IFNULL((SELECT MAX(EXTMALL_NM) 
+		                               FROM   TB_EXTMALL 
+		                               WHERE  VENDOR_ID = B.VENDOR_ID 
+		                               AND    EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
+		                     , A.ORD_DT         -- 주문일시
+		                     , A.PAY_DT         -- 결제일시
+		                     , A.MALL_GB        -- 몰구분
+		                     , A.ORD_NM         -- 주문자
+		                     , D.RECIP_NM       -- 수령인
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.GOODS_CD       -- 상품코드
+		                     , B.GOODS_TYPE     -- 구성유형
+		                     , C.GOODS_NM       -- 상품명
+		                     , ODI.OPT_CD1      -- 옵션1
+		                     , ODI.OPT_CD2      -- 옵션2
+		                     , ODI.OPT_CD       -- SKU
+		                     , ODI.SKU_MODEL_NO
+		                     , ODI.PRODUCT_NO
+		                     , ODI.PRODUCT_CODE
+		                     , ODI.ITEM_QTY * B.ORD_QTY      AS ORD_QTY      -- 주문수량
+		                     , ODI.ITEM_QTY * B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
+		                     , (ODI.ITEM_QTY * B.ORD_QTY  - ODI.ITEM_QTY * B.CNCL_RTN_QTY) SALE_QTY -- 판매수량
+		                     , B.ORD_AMT - B.CNCL_RTN_AMT  AS SALE_AMT       -- 판매금액
+		                     , B.REAL_ORD_AMT  -- 실결제금액
+		                     , B.ORD_DTL_STAT  -- 주문상세상태
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.SHIP_COMP_CD  -- 출고택배사
+		                     , B.INVOICE_NO    -- 출고송장
+		                     , B.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                     , B.AGENT_ORDER_ID
+		                     , B.SOLDOUT_YN    -- 결품여부
+		                     , D.DELV_MEMO     -- 배송메모
+		                     , B.ORD_EXCH_GB   -- 교환여부
+		                     , B.DELV_STDT     -- 배송시작일
+		                     , (SELECT MAX(CH.WD_EDDT) FROM TB_ORDER_CHANGE CH INNER JOIN TB_ORDER_CHANGE_DETAIL CHD ON CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ WHERE CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
+		                     , C.BRAND_CD
+		                     , A.CUST_NO
+		                     , B.SHOT_DELV_YN
+		                     , P.PG_GB
+		                     , P.PAY_MEANS
+		                     , T.BANK_CD
+		                     , T.ACCOUNT_NO
+		                     , T.ACCOUNT_NM
+		                     , A.ORD_PHNNO
+		                     , D.RECIP_ZIPCODE
+		                     , D.RECIP_BASE_ADDR
+		                     , D.RECIP_DTL_ADDR
+		                FROM   TB_ORDER A
+		                INNER  JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
+		                INNER  JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
+		                INNER  JOIN TB_GOODS C               ON ODI.ITEM_CD    = C.GOODS_CD
+		                INNER  JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
+		                INNER  JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB = 'O'
+		                LEFT   OUTER JOIN TB_CUST_ACCOUNT  T ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
+		                INNER  JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
+		                WHERE  1=1
+		                AND    B.GOODS_TYPE NOT IN ('G056_S')
+		                AND    C.SELF_GOODS_YN = 'N'
+						<include refid="getDeliveryListScmCondition_sql"/>
+		                UNION  ALL
+		                SELECT A.ORD_NO     -- 주문번호
+		                     , B.ORD_DTL_NO -- 주문상세번호
+		                     , A.SITE_CD    -- 사이트
+		                     , B.SELL_STORE_CD -- 판매몰
+		                     , IFNULL((SELECT MAX(EXTMALL_NM) 
+		                               FROM   TB_EXTMALL 
+		                               WHERE  VENDOR_ID = B.VENDOR_ID
+		                               AND    EXTMALL_ID = B.EXTMALL_ID), '아이스타일24')  AS EXTMALL_NM  -- 판매몰명
+		                     , A.ORD_DT         -- 주문일시
+		                     , A.PAY_DT         -- 결제일시
+		                     , A.MALL_GB        -- 몰구분
+		                     , A.ORD_NM         -- 주문자
+		                     , D.RECIP_NM       -- 수령인
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.GOODS_CD       -- 상품코드
+		                     , B.GOODS_TYPE     -- 구성유형
+		                     , C.GOODS_NM       -- 상품명
+		                     , '-' AS OPT_CD1   -- 옵션1
+		                     , '-' AS OPT_CD2   -- 옵션2
+		                     , '-' AS OPT_CD    -- SKU
+		                     , '-' AS SKU_MODEL_NO
+		                     , NULL  AS PRODUCT_NO
+		                     , '-'  AS PRODUCT_CODE
+		                     , B.ORD_QTY      AS ORD_QTY      -- 주문수량
+		                     , B.CNCL_RTN_QTY AS CNCL_RTN_QTY -- 취소수량
+		                     , B.ORD_QTY  - B.CNCL_RTN_QTY   AS SALE_QTY   -- 판매수량
+		                     , B.ORD_AMT - B.CNCL_RTN_AMT    AS SALE_AMT   -- 판매금액
+		                     , B.REAL_ORD_AMT  -- 실결제금액
+		                     , B.ORD_DTL_STAT  -- 주문상세상태
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.SHIP_COMP_CD  -- 출고택배사
+		                     , B.INVOICE_NO    -- 출고송장
+		                     , B.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                     , B.AGENT_ORDER_ID
+		                     , B.SOLDOUT_YN    -- 결품여부
+		                     , D.DELV_MEMO     -- 배송메모
+		                     , B.ORD_EXCH_GB   -- 교환여부
+		                     , B.DELV_STDT     -- 배송시작일
+		                     , (SELECT MAX(CH.WD_EDDT) 
+		                        FROM   TB_ORDER_CHANGE CH 
+		                        INNER  JOIN TB_ORDER_CHANGE_DETAIL CHD 
+		                        ON     CH.ORD_CHG_SQ = CHD.ORD_CHG_SQ 
+		                        WHERE  CHD.ORD_DTL_NO =  B.ORG_ORD_DTL_NO) AS WD_EDDT
+		                     , C.BRAND_CD
+		                     , A.CUST_NO
+		                     , B.SHOT_DELV_YN
+		                     , P.PG_GB
+		                     , P.PAY_MEANS
+		                     , T.BANK_CD
+		                     , T.ACCOUNT_NO
+		                     , T.ACCOUNT_NM
+		                     , A.ORD_PHNNO
+		                     , D.RECIP_ZIPCODE
+		                     , D.RECIP_BASE_ADDR
+		                     , D.RECIP_DTL_ADDR
+		                FROM   TB_ORDER A
+		                INNER  JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
+		                INNER  JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
+		                INNER  JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
+		                INNER  JOIN TB_PAYMENT       P       ON A.ORD_NO       = P.ORD_NO  AND P.PAY_STAT = 'G016_30' AND P.PAY_GB ='O'
+		                LEFT   OUTER JOIN TB_CUST_ACCOUNT  T ON A.CUST_NO      = T.CUST_NO AND T.DEL_YN = 'N' AND T.CUST_NO NOT IN(0)
+		                INNER  JOIN TB_CUSTOMER CUST         ON A.CUST_NO      = CUST.CUST_NO
+		                INNER  JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
+		                WHERE  1=1
+		                AND    B.GOODS_TYPE IN ('G056_S')
+		                AND    C.SELF_GOODS_YN = 'N'
+						<include refid="getDeliveryListScmCondition_sql"/>
+		               GROUP  BY A.ORD_NO     -- 주문번호
+		                     , B.ORD_DTL_NO -- 주문상세번호
+		                     , A.SITE_CD    -- 사이트
+		                     , B.SELL_STORE_CD -- 판매몰
+		                     , B.VENDOR_ID
+		                     , B.EXTMALL_ID
+		                     , A.ORD_DT         -- 주문일시
+		                     , A.PAY_DT         -- 결제일시
+		                     , A.MALL_GB        -- 몰구분
+		                     , A.ORD_NM         -- 주문자
+		                     , D.RECIP_NM       -- 수령인
+		                     , B.SUPPLY_COMP_CD -- 공급업체
+		                     , B.GOODS_CD       -- 상품코드
+		                     , B.GOODS_TYPE     -- 구성유형
+		                     , C.GOODS_NM       -- 상품명
+		                     , B.ORD_QTY
+		                     , B.CNCL_RTN_QTY
+		                     , B.REAL_ORD_AMT
+		                     , B.ORD_DTL_STAT
+		                     , B.DELV_LOC_CD   -- 출고처
+		                     , B.SHIP_COMP_CD  -- 출고택배사
+		                     , B.INVOICE_NO    -- 출고송장
+		                     , B.EXTMALL_ORDER_ID -- 외부몰주문번호
+		                     , B.AGENT_ORDER_ID
+		                     , B.SOLDOUT_YN    -- 결품여부
+		                     , D.DELV_MEMO     -- 배송메모
+		                     , B.ORD_EXCH_GB   -- 교환여부
+		                     , B.DELV_STDT     -- 배송시작일
+		                     , B.ORG_ORD_DTL_NO
+		                     , C.BRAND_CD
+		                     , A.CUST_NO
+		                     , B.SHOT_DELV_YN
+		                     , P.PG_GB
+		                     , P.PAY_MEANS
+		                     , T.BANK_CD
+		                     , T.ACCOUNT_NO
+		                     , T.ACCOUNT_NM
+		                     , A.ORD_PHNNO
+		                     , D.RECIP_ZIPCODE
+		                     , D.RECIP_BASE_ADDR
+		                     , D.RECIP_DTL_ADDR
+		            ) A
+		        ) A
+		        WHERE  1=1
 				<if test='delvDelayDays != null and delvDelayDays != ""'>
 				<![CDATA[
-				AND A.DELV_DELAY_DAYS >= #{delvDelayDays}
+		        AND    A.DELV_DELAY_DAYS >= #{delvDelayDays}
 				]]>
 				</if>
 				<if test='supplyCompSearchTxt != null and supplyCompSearchTxt != ""'>
-				AND   A.SUPPLY_COMP_NM like concat(#{supplyCompSearchTxt},'%') 
+		        AND   A.SUPPLY_COMP_NM like concat(#{supplyCompSearchTxt},'%') 
 				</if>
-				ORDER BY A.ORD_NO DESC, A.ORD_DTL_NO
-	<include refid="getListPagingCondition_sql"/>
+		        ORDER BY A.ORD_NO DESC
+		            , A.ORD_DTL_NO
+				<include refid="getListPagingCondition_sql"/>
 	</select>
 
     <!-- 배송목록 조회 조건  -->

+ 23 - 22
src/main/webapp/WEB-INF/views/delivery/AssignListForm.html

@@ -51,7 +51,7 @@
 						<tr>
 							<th>주문자명</th>
 							<td>
-								<input type="text" class="" name="orderNm" placeholder="" maxlength="20" />
+								<input type="text" class="" name="ordNm" placeholder="" maxlength="20" />
 							</td>
 							<th>주문번호</th>
 							<td>
@@ -166,37 +166,38 @@
 	
 	var columnDefs = [
 		// group cell renderer needed for expand / collapse icons
-		{headerName: "사이트", 		field: "siteNm", 		width: 120,	cellClass: 'text-center'},
-		{headerName: "주문번호", 		field: "ordNo", 	width: 85,	cellClass: 'text-center'
+		{headerName: "사이트", 			field: "siteNm", 			width: 120,	cellClass: 'text-center', hide: true},
+		{headerName: "몰구분", 			field: "mallNm", 			width: 70, cellClass: 'text-center'},
+		{headerName: "제휴몰명", 			field: "extmallNm",			width: 120,	cellClass: 'text-center'},
+		{headerName: "제휴몰주문번호", 		field: "extmallOrderId",	width: 140,	cellClass: 'text-center'},
+		{headerName: "주문번호", 			field: "ordNo", 			width: 85,	cellClass: 'text-center'
 			, cellRenderer: function(params) {
 				return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenOrderDetailPopup('" + params.value + "');\">" + params.value + "</a>";
 			}
 		},
-		{headerName: "주문상세번호", 	field: "ordDtlNo", 			width: 100,	cellClass: 'text-center'},
-		{headerName: "출고처지정취소", 	field: "delvLocCd", 		width: 140,	cellClass: 'text-center',
+		{headerName: "주문상세번호", 		field: "ordDtlNo", 			width: 100,	cellClass: 'text-center'},
+		{headerName: "출고처지정취소", 		field: "delvLocCd", 		width: 140,	cellClass: 'text-center',
 			cellRenderer: function(params) {
 				return gagajf.isNull(params.value) ? "" : '<button type="button" class="btn btn-danger btn-sm" onclick="fnCancelAssignDelvLoc(\'' + params.data.ordNo + '\',\'' + params.data.ordDtlNo + '\',\''+params.data.delvLocClsf+'\');">&nbsp;출고처지정취소&nbsp;</button>';
 			}
 		},		
-		{headerName: "출고처", 		field: "delvLocNm",			width: 200, cellClass: 'text-center'
+		{headerName: "출고처", 			field: "delvLocNm",			width: 200, cellClass: 'text-center'
 			, cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value : "<a href=\"javascript:void(0);\" onclick=\"fnOpenDeliveryAssignPopup('" + params.data.ordDtlNo + "');\">[출고처 지정]</a>";
 			}},
-		{headerName: "주문일시", 		field: "ordDt", 			width: 150, cellClass: 'text-center',
+		{headerName: "주문일시", 			field: "ordDt", 			width: 150, cellClass: 'text-center',
 				cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value.toDate("YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm:ss") : '';
 			}
 		},
-		{headerName: "결제일시", 		field: "ordDt", 			width: 150, cellClass: 'text-center',
+		{headerName: "결제일시", 			field: "payDt", 			width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value.toDate("YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm:ss") : '';
 			}
 		},
-		{headerName: "몰구분", 		field: "mallNm", 			width: 70, cellClass: 'text-center'},
-		{headerName: "외부몰", 		field: "extmallNm",			width: 150,	cellClass: 'text-center'},
-		{headerName: "주문자", 		field: "ordNm",				width: 100, cellClass: 'text-center'},
-		{headerName: "상품코드", 		field: "goodsCd", 			width: 120, cellClass: 'text-center'},
-		{headerName: "구성유형", field: "goodsTypeNm", 			width: 130, cellClass: 'text-center',
+		{headerName: "주문자", 			field: "ordNm",				width: 100, cellClass: 'text-center'},
+		{headerName: "상품코드", 			field: "goodsCd", 			width: 120, cellClass: 'text-center'},
+		{headerName: "구성유형", 			field: "goodsTypeNm", 		width: 130, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				var option;
 				if (params.data.goodsType == 'G056_S') {
@@ -209,33 +210,33 @@
 		},
 		{headerName: "옵션", 			field: "optCd",				width: 100,	cellClass: 'text-center'},
 		{headerName: "색상", 			field: "optCd1",			width: 70, 	cellClass: 'text-center'},
-		{headerName: "사이즈", 		field: "optCd2",			width: 70, 	cellClass: 'text-center'},
-		{headerName: "주문수량",		field: "ordQty", 			width: 80,	cellClass: 'text-center'},
-		{headerName: "현재고",		field: "currStockQty", 		width: 80,	cellClass: 'text-center',
+		{headerName: "사이즈", 			field: "optCd2",			width: 70, 	cellClass: 'text-center'},
+		{headerName: "주문수량",			field: "ordQty", 			width: 80,	cellClass: 'text-center'},
+		{headerName: "현재고",			field: "currStockQty", 		width: 80,	cellClass: 'text-center',
 			cellRenderer: function (params) {
 				var option;
 				if (params.data.goodsType == 'G056_S') {
 					option = "-";
 				} else {
-					option = params.value
+					option = params.value;
 				}
 				return option;
 			}		
 		},
-		{headerName: "안전재고",		field: "baseStockQty", 		width: 80,	cellClass: 'text-center',
+		{headerName: "안전재고",			field: "baseStockQty", 		width: 80,	cellClass: 'text-center',
 			cellRenderer: function (params) {
 				var option;
 				if (params.data.goodsType == 'G056_S') {
 					option = "-";
 				} else {
-					option = params.value
+					option = params.value;
 				}
 				return option;
 			}				
 		},
-		{headerName: "주문금액", 		field: "ordAmt", 			width: 80, 	cellClass: 'text-center', valueFormatter: function (params) { return params.value.addComma(); }	},
-		{headerName: "주문상세상태", 	field: "ordDtlStatNm",		width: 100, cellClass: 'text-center'},
-		{headerName: "주문교환", 		field: "ordExchNm",			width: 80,  cellClass: 'text-center'}
+		{headerName: "주문금액", 			field: "ordAmt", 			width: 80, 	cellClass: 'text-center', valueFormatter: function (params) { return params.value.addComma(); }	},
+		{headerName: "주문상세상태", 		field: "ordDtlStatNm",		width: 100, cellClass: 'text-center'},
+		{headerName: "주문교환", 			field: "ordExchNm",			width: 80,  cellClass: 'text-center'}
 	];
 	
 	//Get GridOptions

+ 66 - 85
src/main/webapp/WEB-INF/views/delivery/DeliveryListForm.html

@@ -36,7 +36,6 @@
 		</div>
 		<!-- //TITLE -->
 		<div class="panelContent">
-
 				<table class="frmStyle">
 					<colgroup>
 						<col style="width:8%;"/>
@@ -47,18 +46,8 @@
 						<col style="width:12%;"/>
 						<col style="width:8%;"/>
 						<col style="width:12%;"/>
-
 					</colgroup>
 					<tr>
-						<!--
-						<th>사이트</th>
-						<td>
-							<select name="siteCd" id="siteCd">
-								<option value="">[전체]</option>
-								<option th:if="${siteCdList}" th:each="oneData, status : ${siteCdList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
-							</select>
-						</td>
-						-->
 						<th>몰구분</th>
 						<td>
 							<select name="mallGb" style="width: 100px;">
@@ -66,17 +55,15 @@
 								<option th:if="${mallGbList}" th:each="oneData, status : ${mallGbList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
 							</select>
 						</td>
-
 						<th>업체/브랜드</th>
 						<td colspan="3">
-								<select name="supplyCompCd" id="supplyCompCd">
-									<option value="">[전체]</option>
-									<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
-								</select>
-								/
-								<span id="multiBrand"></span>
+							<select name="supplyCompCd" id="supplyCompCd">
+								<option value="">[전체]</option>
+								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${oneData.cdNm}"></option>
+							</select>
+							/
+							<span id="multiBrand"></span>
 						</td>
-
 						<th>주문상세상태</th>
 						<td>
 							<div class="multiCheckBox" style="width:270px">
@@ -136,7 +123,6 @@
 								<option value="N">일반배송</option>
 								<option value="Y">총알배송</option>
 							</select>
-
 						</td>
 						<th>출고처</th>
 						<td>
@@ -164,9 +150,24 @@
 					</tr>
 					<tr>
 						<th>고객ID</th>
-						<td colspan="8">
-							<input type="text" class="w200" name="custId" placeholder="" maxlength="20" />
-
+						<td>
+							<input type="text" name="custId" placeholder="" maxlength="20"/>
+						</td>
+						<th>제휴몰명</th>
+						<td>
+							<input type="hidden" name="vendorId" placeholder="" maxlength="20" th:value="${vendorId}"/>
+							<select name="extmallId">
+								<option value="">선택안함</option>
+								<option th:if="${extmallList}" th:each="oneData, status : ${extmallList}" th:value="${oneData.extmallId}" th:text="${'[' + oneData.extmallId + '] ' + oneData.extmallNm}"></option>
+							</select>
+						</td>
+						<th>제휴몰주문번호</th>
+						<td>
+							<input type="text" class="" name="extmallOrderId" placeholder="" maxlength="40" />
+						</td>
+						<th>SKU-CODE</th>
+						<td>
+							<input type="text" class="" name="optCd" placeholder="" maxlength="40" />
 						</td>
 					</tr>
 				</table>
@@ -186,9 +187,6 @@
 	<div class="panelStyle">
 		<ul class="panelBar">
 			<li class="left">
-				<!--  <button type="button" id="btnSoldout" class="btn btn-danger btn-lg">품절처리</button> -->
-				<!-- <button type="button" id="btnSave" class="btn btn-success btn-lg btnRight" onclick="deliveryInfoSave();">저장</button>
-				<button type="button" id="btnWith" class="btn btn-success btn-lg btnRight">T</button> -->
 			</li>
 			<li class="right">
 				검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
@@ -221,26 +219,15 @@
 	/*************************************************************************
 	* AG-GRID 영역
 	**************************************************************************/
-	var shipCompanyList =  gagajf.convertToArray([[${shipCompanyList}]]);
+	var shipCompanyList = gagajf.convertToArray([[${shipCompanyList}]]);
 	var roleCd          = [[${sessionInfo.roleCd}]];
 	var currOrdNo       = 0;
 	var columnDefs = [
-		/*
-		{
-			headerName: "결품",
-			field: "soldout",
-			width: 50,
-			cellClass: 'text-center',
-			headerCheckboxSelection: true,
-			headerCheckboxSelectionFilteredOnly: true
-			,
-			checkboxSelection: function (params) {
-				return (params.data.ordDtlStat == 'G013_20') ? true : false;
-			}
-		},
-		*/
-		{headerName: "지연일",	field: "delvDelayDays", 	width: 70, cellClass: 'text-center'},
-		{headerName: "주문번호",	field: "ordNo", width: 95, cellClass: 'text-center',
+		{headerName: "지연일",		field: "delvDelayDays", 		width: 70, cellClass: 'text-center', hide: true},
+		{headerName: "몰구분", 		field: "mallGbNm", 				width: 70, cellClass: 'text-center'},
+		{headerName: "제휴몰명", 		field: "extmallNm", 			width: 120, cellClass: 'text-center'},
+		{headerName: "제휴몰주문번호", 	field: "extmallOrderId",		width: 140, cellClass: 'text-center'},
+		{headerName: "주문번호",		field: "ordNo", 				width: 95, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (roleCd.indexOf("C") < 0) {
 					return "<a href=\"javascript:void(0);\" onclick=\"fnOrderDetailPopup('" + params.data.ordNo + "');\">" + params.data.ordNo + "</a>";
@@ -249,9 +236,9 @@
 				}
 			}
 		},
-		{headerName: "주문상세번호", 	field: "ordDtlNo", 		width: 90, cellClass: 'text-center'},
-		{headerName: "주문상세상태", 	field: "ordDtlStatNm", 	width: 120, cellClass: 'text-center'},
-		{headerName: "주문교환", 		field: "ordExchGb", 	width: 80, cellClass: 'text-center',
+		{headerName: "주문상세번호", 	field: "ordDtlNo", 				width: 90, cellClass: 'text-center'},
+		{headerName: "주문상세상태", 	field: "ordDtlStatNm", 			width: 120, cellClass: 'text-center'},
+		{headerName: "주문교환", 		field: "ordExchGb", 			width: 80, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (params.value == "Y") {
 					return "교환";
@@ -260,21 +247,18 @@
 				}
 			}
 		},
-		// {headerName: "사이트", field: "siteNm", width: 120, cellClass: 'text-center'},
-		// {headerName: "판매몰", field: "sellStoreNm", width: 150, cellClass: 'text-left'},
-		{headerName: "판매몰명", 		field: "extmallNm", 	width: 150, cellClass: 'text-left'},
-		{headerName: "주문일시", 		field: "ordDt", 		width: 150, cellClass: 'text-center',
+		{headerName: "판매몰명", 		field: "siteNm", 				width: 120, cellClass: 'text-center'},
+		{headerName: "주문일시", 		field: "ordDt", 				width: 150, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				return !gagajf.isNull(params.value) ? gagaAgGrid.toDateTimeFormat(params.value) : '';
 			}
 		},
-		{headerName: "결제일시", 		field: "ordDt", 		width: 150, cellClass: 'text-center',
+		{headerName: "결제일시", 		field: "payDt", 				width: 150, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				return !gagajf.isNull(params.value) ? gagaAgGrid.toDateTimeFormat(params.value) : '';
 			}
 		},
-		{headerName: "몰구분", 		field: "mallGbNm", 		width: 70, cellClass: 'text-center'},
-		{headerName: "주문자", 		field: "maskingOrdNm", 		width: 100, cellClass: 'text-center',
+		{headerName: "주문자", 		field: "maskingOrdNm", 			width: 100, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (roleCd.indexOf("C") < 0 && !gagajf.isNull(params.value) && params.data.mallGb === 'G011_10' && params.data.custNo > 0) {
 					return '<a href="javascript:void(0);" onclick=\"cfnOpenCustDetailPopup(' + params.data.custNo + ');\">' + params.data.maskingOrdNm + '</a>';
@@ -283,19 +267,19 @@
 				}
 			}
 		},
-		{headerName: "고객ID", 			field: "custId", 		width: 100, cellClass: 'text-center'},
+		{headerName: "고객ID", 		field: "custId", 				width: 100, cellClass: 'text-center'},
 		{headerName: "휴대번호", 		field: "maskingOrdPhnno", 		width: 100, cellClass: 'text-center',
 			valueGetter: function (params) { return params.data.maskingOrdPhnno; }
 		},
-		{headerName: "LMS", 			field: "maskingOrdPhnno", 	width: 80, cellClass: "text-center",
+		{headerName: "LMS", 		field: "maskingOrdPhnno", 		width: 80, cellClass: "text-center",
 			cellRenderer: function(params) {
 				return '<button type="button" class="btn btn-base btn-sm" onclick="fnLms(\'' + params.data.ordPhnno + '\',\'' + params.data.custNo + '\');">&nbsp;LMS&nbsp;</button>';
 			}
 		},
 		{headerName: "수령인", 		field: "maskingRecipNm", 		width: 100, cellClass: 'text-center'},
-		{headerName: "공급업체", 		field: "supplyCompNm", 	width: 150, cellClass: 'text-center'},
-		{headerName: "브랜드", 		field: "brandNm", 	width: 150, cellClass: 'text-center'},
-		{headerName: "상품코드", 		field: "goodsCd", 		width: 120, cellClass: 'text-center',
+		{headerName: "공급업체", 		field: "supplyCompNm", 			width: 150, cellClass: 'text-center'},
+		{headerName: "브랜드", 		field: "brandNm", 				width: 150, cellClass: 'text-center'},
+		{headerName: "상품코드", 		field: "goodsCd", 				width: 120, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (roleCd.indexOf("C") < 0) {
 					return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenGoodsDetailPopup('U','" + params.value + "');\">" + params.value + "</a>";
@@ -304,7 +288,7 @@
 				}
 			}
 		},
-		{headerName: "구성유형", 		field: "goodsTypeNm",	 width: 130, cellClass: 'text-center',
+		{headerName: "구성유형", 		field: "goodsTypeNm",	 		width: 130, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				var option;
 				if (params.data.goodsType == 'G056_S') {
@@ -315,29 +299,29 @@
 				return option;
 			}
 		},
-		{headerName: "상품명", 		field: "goodsNm", 		width: 280, cellClass: 'text-left'},
-		{headerName: "옵션코드", 		field: "optCd", 		width: 100, cellClass: 'text-left'},
-		{headerName: "옵션코드1", 		field: "optCd1", 		width: 100, cellClass: 'text-center'},
-		{headerName: "옵션코드2", 		field: "optCd2", 		width: 100, cellClass: 'text-center'},
-		{headerName: "주문수량", 		field: "ordQty", 		width: 80, cellClass: 'text-center'},
-		{headerName: "취소수량", 		field: "cnclRtnQty", 	width: 80, cellClass: 'text-center'},
-		{headerName: "판매수량", 		field: "saleQty", 		width: 80, cellClass: 'text-right'},
-		{headerName: "판매금액", 		field: "saleAmt", 		width: 100, cellClass: 'text-right'
+		{headerName: "상품명", 		field: "goodsNm", 				width: 280, cellClass: 'text-left'},
+		{headerName: "옵션코드", 		field: "optCd", 				width: 100, cellClass: 'text-left'},
+		{headerName: "옵션코드1", 	field: "optCd1", 				width: 100, cellClass: 'text-center'},
+		{headerName: "옵션코드2", 	field: "optCd2", 				width: 100, cellClass: 'text-center'},
+		{headerName: "주문수량", 		field: "ordQty", 				width: 80, cellClass: 'text-center'},
+		{headerName: "취소수량", 		field: "cnclRtnQty", 			width: 80, cellClass: 'text-center'},
+		{headerName: "판매수량", 		field: "saleQty", 				width: 80, cellClass: 'text-right'},
+		{headerName: "판매금액", 		field: "saleAmt", 				width: 100, cellClass: 'text-right'
 			, valueFormatter: function (params) {
 				return params.value.addComma();
 			}
 		},
-		{headerName: "실결제금액", 	field: "realOrdAmt", 	width: 100, cellClass: 'text-right'
+		{headerName: "실결제금액", 	field: "realOrdAmt", 			width: 100, cellClass: 'text-right'
 			, valueFormatter: function (params) {
 				return params.value.addComma();
 			}
 		},
-		{headerName: "출고유형", 		field: "shotDelvYn", 	width: 80, cellClass: 'text-center'},
-		{headerName: "출고처", 		field: "delvLocNm", 	width: 100, cellClass: 'text-center'},
-		{headerName: "출고택배사", 	field: "shipCompCd", 	width: 170, cellClass: 'text-center'
+		{headerName: "출고유형", 		field: "shotDelvYn", 			width: 80, cellClass: 'text-center'},
+		{headerName: "출고처", 		field: "delvLocNm", 			width: 100, cellClass: 'text-center'},
+		{headerName: "출고택배사", 	field: "shipCompCd", 			width: 170, cellClass: 'text-center'
 			, valueGetter: function (params) { return gagaAgGrid.lookupValue(shipCompanyList, params.data.shipCompCd); }
 		},
-		{headerName: "배송추적", 		field: "invcTracking", 	width: 80, cellClass: 'text-center',
+		{headerName: "배송추적", 		field: "invcTracking", 			width: 80, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				if (params.value == "Y") {
 					return "요청";
@@ -346,8 +330,8 @@
 				}
 			}
 		},
-		{headerName: "출고송장", 		field: "invoiceNo", 	width: 150, cellClass: 'text-left'},
-		{headerName: "송장등록수정", 	field: "invoiceNo", 	width: 120, cellClass: 'text-center'
+		{headerName: "출고송장", 		field: "invoiceNo", 			width: 150, cellClass: 'text-left'},
+		{headerName: "송장등록수정", 	field: "invoiceNo", 			width: 120, cellClass: 'text-center'
 			, cellRenderer : function (params) {
 				var buttonTag = '';
 				if (params.data.ordDtlStat == 'G013_30' || params.data.ordDtlStat == 'G013_40' || params.data.ordDtlStat == 'G013_50' || params.data.ordDtlStat == 'G013_55') {
@@ -357,25 +341,22 @@
 				return buttonTag;
 			}
 		},
-		{headerName: "배송완료처리", 	field: "ordDtlStat", width: 120, cellClass: 'text-center'
+		{headerName: "배송완료처리", 	field: "ordDtlStat", 			width: 120, cellClass: 'text-center'
 			, cellRenderer: function(params) {
 				var buttonTag = '';
 				if (params.value == 'G013_50' || params.value == 'G013_55'  ) {
 					buttonTag = '<button type="button"class="btn btn-success" onClick="deliveryComplete(\''+params.data.ordNo+ '\' , \''+params.data.ordDtlNo+'\' , \'' + params.data.ordDtlStat + '\');">배송완료</button>';
-
 				}
 				return buttonTag;
 			}
 		},
-		{headerName: "제휴몰주문번호", 	field: "extmallOrderId",width: 150, cellClass: 'text-left'},
-		{headerName: "샵링커주문번호", field: "agentOrderId", 	width: 150, cellClass: 'text-left'},
-		{headerName: "배송메모", 		field: "delvMemo", 		width: 200, cellClass: 'text-left'},
-		{headerName: "우편번호", 		field: "recipZipcode", 		width: 80, cellClass: 'text-center'},
-		{headerName: "기본주소", 		field: "recipBaseAddr", 	width: 200, cellClass: 'text-left'},
-		{headerName: "상세주소", 		field: "maskingRecipDtlAddr", 		width: 200, cellClass: 'text-left'},
-		{headerName: "product_no", 	field: "productNo", 	width: 100, cellClass: 'text-center'},
-		{headerName: "product_code",field: "productCode", 	width: 100, cellClass: 'text-center'}
-
+		{headerName: "샵링커주문번호", 	field: "agentOrderId", 			width: 150, cellClass: 'text-left'},
+		{headerName: "배송메모", 		field: "delvMemo", 				width: 200, cellClass: 'text-left'},
+		{headerName: "우편번호", 		field: "recipZipcode", 			width: 80, cellClass: 'text-center'},
+		{headerName: "기본주소", 		field: "recipBaseAddr", 		width: 200, cellClass: 'text-left'},
+		{headerName: "상세주소", 		field: "maskingRecipDtlAddr", 	width: 200, cellClass: 'text-left'},
+		{headerName: "product_no", 	field: "productNo", 			width: 100, cellClass: 'text-center'},
+		{headerName: "product_code",field: "productCode", 			width: 100, cellClass: 'text-center'}
 	];
 
 	//Get GridOptions