Browse Source

상품목록 엑셀 다운로드 수정 - 화면 단위

eskim 5 years ago
parent
commit
8ca5d33e33

+ 31 - 8
src/main/java/com/style24/persistence/mybatis/shop/TssGoods.xml

@@ -79,6 +79,7 @@
 		  --  , (CASE WHEN Q.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = Q.GOODS_CD) 
 		  --          ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = Q.GOODS_CD) 
 		  --          END) AS STOCK_QTY_SUM
+		    , IFNULL((SELECT STOCK_QTY FROM TB_GOODS_STOCK WHERE GOODS_CD = Q.GOODS_CD),0) AS STOCK_QTY_SUM
 		    , (SELECT ITEMKIND_NM FROM TB_ITEMKIND WHERE ITEMKIND_CD = Q.ITEMKIND_CD ) AS ITEMKIND_NM
 		    , FN_GET_USER_NM(REG_NO) AS REG_NM
 		    , FN_GET_USER_NM(UPD_NO) AS UPD_NM
@@ -89,7 +90,7 @@
 		FROM (     
 		SELECT Z.*
 		FROM (
-		    SELECT A.*, @rownum := @rownum + 1 AS RNUM 
+		    SELECT A.* -- , @rownum := @rownum + 1 AS RNUM 
 		    FROM (
 		        SELECT
 		                G.GOODS_CD
@@ -136,7 +137,7 @@
 		                  </otherwise>
 		              </choose>
 		        FROM TB_GOODS G
-		        JOIN ( SELECT @rownum := 0) R
+		       -- JOIN ( SELECT @rownum := 0) R
 		        INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		        INNER JOIN TB_SUPPLY_COMPANY S ON G.SUPPLY_COMP_CD = S.SUPPLY_COMP_CD
 		        INNER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
@@ -184,7 +185,7 @@
 		        <if test="searchGb != null and searchGb =='EXCEL'">
 		        ORDER BY SD.TMP_DISP_ORD
 		        </if>
-		<include refid="getListPagingCondition_sql"/>
+		<include refid="getListLimitPagingCondition_sql"/>
 	</select>
 	
 	<!-- 상품 목록 조건 정보 -->
@@ -436,6 +437,29 @@
 		</choose>
 	</sql>
 	
+	<!-- 목록 페이징 정보 LIMIT 용 -->
+	<sql id="getListLimitPagingCondition_sql">
+		<choose>
+		<when test="pageable != null">
+		    ) A
+		)Z
+		LIMIT #{pageable.limitStartRow} ,  #{pageable.pageSize}
+		) Q
+		<if test='goodsPriceYn != null and goodsPriceYn == "Y"'>
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GB ON Q.GOODS_CD = GB.GOODS_CD AND GB.CUST_GB = 'G100_00'
+		</if> 
+		</when>
+		<otherwise>
+		    ) A
+		)Z
+		)Q
+		<if test='goodsPriceYn != null and goodsPriceYn == "Y"'>
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GB ON Q.GOODS_CD = GB.GOODS_CD AND GB.CUST_GB = 'G100_00'
+		</if> 
+		</otherwise>
+		</choose>
+	</sql>
+	
 	<!-- 상품 목록 기본정보 엑셀  -->
 	<select id="getGoodsInfoExcelList" parameterType="GoodsSearch" resultType="paramMap">
 		/* TssGoods.getGoodsInfoExcelList */
@@ -466,9 +490,7 @@
 		     , CASE IFNULL((SELECT COUNT(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ),0) 
 		            WHEN 0 THEN 'N'
 		            ELSE 'Y' END AS GOODS_IMAGE_YN
-		     , (CASE WHEN G.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK WHERE GOODS_CD = G.GOODS_CD) 
-		            ELSE (SELECT IFNULL(SUM(CURR_STOCK_QTY - BASE_STOCK_QTY),0) FROM VW_STOCK_COMPOSE WHERE GOODS_CD = G.GOODS_CD) 
-		            END) AS STOCK_QTY_SUM
+		     , IFNULL((SELECT STOCK_QTY FROM TB_GOODS_STOCK WHERE GOODS_CD = G.GOODS_CD),0) AS STOCK_QTY_SUM
 		     , (SELECT ITEMKIND_NM FROM TB_ITEMKIND WHERE ITEMKIND_CD = G.ITEMKIND_CD) AS ITEMKIND_NM
 		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
 		     , G.REG_NO
@@ -518,11 +540,12 @@
 		WHERE 1=1
 		<if test="searchGb == null or searchGb =='BASIC' or searchGb =='EXTEND' or searchGb =='MASTER'" >
 		<include refid="getGoodsListCondition_sql"/>
-		ORDER BY G.REG_DT DESC
+		ORDER BY G.REG_DT DESC, G.GOODS_CD 
 		</if>
 		<if test="searchGb == null or searchGb =='EXCEL'">
-		ORDER BY SD.TMP_DISP_ORD
+		ORDER BY SD.TMP_DISP_ORD, G.GOODS_CD 
 		</if>
+		LIMIT #{pageable.limitStartRow} ,  #{pageable.pageSize}
 	</select>
 	
 	<!-- 상품 정보 -->

+ 5 - 4
src/main/java/com/style24/scm/biz/service/TssGoodsService.java

@@ -141,7 +141,7 @@ public class TssGoodsService {
 
 		if ("Y".equals(goodsSearch.getImageViewYn())) {
 			// 헤더 title 설정
-			String[] listTitles = {"이미지", "상품코드", "업체명", "브랜드명", "상품명", "품목", "재고", "상품상태", "스타일년도", "시즌",
+			String[] listTitles = {"이미지", "상품코드", "업체명", "브랜드명", "상품명", "품목", "전시재고", "상품상태", "스타일년도", "시즌",
 				"정상가", "판매가", "할인율", "가격변경일", "ERP재고연동여부", "정상이월구분", "반품가능 여부", "승인일시"};
 
 			// DB 처리 시 사용되는 파라미터명(셀명) 설정
@@ -165,20 +165,21 @@ public class TssGoodsService {
 			if (dataList != null && !dataList.isEmpty()) {
 				for (GagaMap gagaMap : dataList) {
 					if (!StringUtils.isBlank(gagaMap.get("SYS_IMG_NM").toString())) {
-						gagaMap.set("SYS_IMG_NM", targetPath + '/' + gagaMap.get("SYS_IMG_NM").toString());
+						gagaMap.set("SYS_IMG_NM", targetPath + '/' + gagaMap.get("SYS_IMG_NM").toString() + "?RS=60");
 					}
 				}
 			}
 
+			log.info("dataList {}", dataList);
 			try {
 				GagaExcelUtil.createExcel(excelFilenameWithPath, dataList, "상품 정보", listTitles, cellNames, cellTypes, TssConstants.EXCEL_FOOTER_TITLE);
 			} catch (Exception e) {
 				throw new IllegalStateException(e);
 			}
-
+			
 		} else {
 			// 헤더 title 설정
-			String[] listTitles = {"상품코드", "업체명", "브랜드명", "상품명", "품목", "재고", "상품상태", "스타일년도",
+			String[] listTitles = {"상품코드", "업체명", "브랜드명", "상품명", "품목", "전시재고", "상품상태", "스타일년도",
 				"시즌", "정상가", "판매가", "할인율", "가격변경일", "ERP재고연동여부", "정상이월구분", "반품가능 여부", "승인일시"};
 
 			// DB 처리 시 사용되는 파라미터명(셀명) 설정

+ 4 - 0
src/main/java/com/style24/scm/biz/web/TssGoodsController.java

@@ -213,6 +213,10 @@ public class TssGoodsController extends TssBaseController {
 				goodsSearch.setSearchGb("MASTER");
 			}
 		}
+		
+		goodsSearch.setRegNo(TssSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
+		goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
+		goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
 
 		// 대용량엑셀파일다운로드는 이런 식으로 ...
 		goodsService.getGoodsInfoExcelList(goodsSearch, excelFilenameWithPath);

+ 5 - 3
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -217,10 +217,11 @@
 				<li>
 					<button type="button" class="btn btn-default btn-lg" onclick="fnGoodsExcelDownLoad('');">엑셀다운로드</button>
 					<button type="button" class="btn btn-default btn-lg" onclick="fnGoodsExcelDownLoad('Y');">엑셀다운로드(이미지포함)</button>
-					<button type="button" class="btn btn-default btn-lg" onclick="cfnDownloadSampleFile('SF013');">상품엑셀조회 양식 다운로드</button>
+					<button type="button" class="btn btn-default btn-lg" onclick="cfnDownloadSampleFile('SF003');">상품엑셀조회 양식 다운로드</button>
 					<button type="button" class="btn btn-base btn-lg" id="btnGoodsExcelUpLoad">엑셀조회</button>
 				</li>
 				<li class="right">
+					<strong class="cRed">* 판매가능재고는 전시재고(배치)입니다.&nbsp;&nbsp;&nbsp;</strong>
 					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
 					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
 					<select id="pageSize" name="pageSize">
@@ -416,7 +417,7 @@
 			}
 		},
 		{headerName: "품목", field: "itemkindNm", width: 150, cellClass: 'text-center'},
-		/* {headerName: "판매가능재고", field: "stockQtySum", width: 120, cellClass: 'text-right',
+		{headerName: "판매가능재고", field: "stockQtySum", width: 120, cellClass: 'text-right',
 			valueFormatter: function(params) {	return params.value.addComma();},
 			cellStyle : function(params){
 				if ("00" == params.data.goodsStat  || "10" == params.data.goodsStat || "20" == params.data.goodsStat || "30" == params.data.goodsStat) {
@@ -428,7 +429,7 @@
 				}
 				return { 'background-color': color};
 			} 
-		}, */
+		},
 		{headerName: "상품상태", field: "goodsStat" , width: 100, cellClass: 'text-center',
 			cellEditorParams: { values: gagaAgGrid.extractValues(goodsStatList) },
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(goodsStatList, params.value); },
@@ -680,6 +681,7 @@
 	}
 
 	var fnGoodsExcelUploadCallBack = function(result){
+		$("#searchForm input[name=pageNo]").val('1');
 		fnGoodsListSearch("EXCEL");
 	}