Explorar o código

Merge branch 'develop' of http://112.172.147.34:4936/style24/STYLE24.git into develop

gagamel %!s(int64=5) %!d(string=hai) anos
pai
achega
0bed814c4c
Modificáronse 18 ficheiros con 171 adicións e 50 borrados
  1. 15 7
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java
  2. 4 2
      style24.admin/src/main/java/com/style24/persistence/domain/Delivery.java
  3. 2 0
      style24.admin/src/main/java/com/style24/persistence/domain/Goods.java
  4. 3 1
      style24.admin/src/main/java/com/style24/persistence/domain/GoodsHst.java
  5. 3 0
      style24.admin/src/main/java/com/style24/persistence/domain/Option.java
  6. 8 6
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml
  7. 10 0
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml
  8. 11 12
      style24.admin/src/main/webapp/WEB-INF/views/delivery/BanGoodsRegistForm.html
  9. 8 6
      style24.admin/src/main/webapp/WEB-INF/views/delivery/BangoodsListForm.html
  10. 3 3
      style24.batch/src/main/java/com/style24/persistence/domain/Goods.java
  11. 4 0
      style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml
  12. 2 0
      style24.scm/src/main/java/com/style24/persistence/domain/Goods.java
  13. 3 1
      style24.scm/src/main/java/com/style24/persistence/domain/GoodsHst.java
  14. 3 0
      style24.scm/src/main/java/com/style24/persistence/domain/Option.java
  15. 10 0
      style24.scm/src/main/java/com/style24/persistence/mybatis/shop/TssGoods.xml
  16. 62 0
      style24.scm/src/main/java/com/style24/scm/biz/web/TssDextuploadController.java
  17. 15 7
      style24.scm/src/main/java/com/style24/scm/biz/web/TssGoodsController.java
  18. 5 5
      style24.scm/src/main/webapp/dx5/dextuploadx5-configuration.js

+ 15 - 7
style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -1029,6 +1029,7 @@ public class TsaGoodsController extends TsaBaseController {
 
 				strBrandNo = String.valueOf(goodsInfo.getBrandNo());
 			}
+			String brandDir = GagaStringUtil.getLPadding(strBrandNo, 10, "0");
 
 			if (goodsImg.getMode().equals("C")) { // 업로드 된 파일 rename 처리
 //				String newFilename = goodsImg.getGoodsCd()
@@ -1038,22 +1039,29 @@ public class TsaGoodsController extends TsaBaseController {
 //						+ "." + StringUtils.getFilenameExtension(goodsImg.getSysImgNm());
 				String newFilename = goodsImg.getSysImgNm();
 
-				String brandDir = GagaFileUtil.getConcatenationPath(GagaStringUtil.getLPadding(strBrandNo, 10, "0"),GagaDateUtil.getToday()); // 브랜드/UPLOAD 일 YYYYMMDD
-				String goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsTargetPath, brandDir);		//저장경로 생성
+				//브랜드 폴더 확인
+				String goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsTargetPath, brandDir); // 브랜드 폴더
+				File brandPath = new File(goodsUploadPath);
+				if (!brandPath.exists()) {
+					brandPath.mkdir();
+				}
+
+				goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsUploadPath, GagaDateUtil.getToday());		//브랜드+/+YYYYMMDD(UPLOAD 일 )
+				String brandYmdDir = GagaFileUtil.getConcatenationPath(brandDir, GagaDateUtil.getToday());	//디비 저장용
 
 				File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(goodsUploadPath, newFilename)));
 				File newFile = new File(GagaFileUtil.getConcatenationPath(goodsUploadPath,  uniqueFile.getName()));
-				//log.info("newFile.getPath(): {}", newFile.getPath());
+				log.info("newFile.getPath(): {}", newFile.getPath());
 
 				// resizing 처리 시 오류가 발생할 경우 삭제하기 위해 설정
 				errorFileList.add(newFile);
 
 				File oldFile = new File(GagaFileUtil.getConcatenationPath(dextUploadPath, goodsImg.getSysImgNm()));
-				//log.info("oldFile.getPath(): {}", oldFile.getPath());
+				log.info("oldFile.getPath(): {}", oldFile.getPath());
 
 				File path = new File(goodsUploadPath);
 				if (!path.exists()) {
-					//log.info("mkdir ={}", goodsUploadPath);
+					log.info("mkdir ={}", goodsUploadPath);
 					path.mkdir();
 				}
 
@@ -1064,8 +1072,8 @@ public class TsaGoodsController extends TsaBaseController {
 				}
 
 				goodsImg.setDispOrd(index++);
-				goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(brandDir,newFile.getName()));
-				goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(brandDir,newFile.getName()));
+				goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(brandYmdDir,newFile.getName()));
+				goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(brandYmdDir,newFile.getName()));
 			} else {
 				goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(goodsImg.getSysImgUrl() ,goodsImg.getSysImgNm()));
 				goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(goodsImg.getSysImgUrl() ,goodsImg.getSysImgNm()));

+ 4 - 2
style24.admin/src/main/java/com/style24/persistence/domain/Delivery.java

@@ -36,7 +36,9 @@ public class Delivery extends TscBaseDomain {
 	private String GoodsStatNm;
 	private String supplyCompCd;
 	private String searchTxt;
-
+	private String colorCd;
+	private String sysImgNm;
+	
 	
 	/* 위로  작성  ('' ) ( '')*/
 	
@@ -156,7 +158,7 @@ public class Delivery extends TscBaseDomain {
 	private Integer chasu;
 	private String extmallNm;
 	private String productId;
-	private String colorCd;
+
 	private String recipTelno;
 	private String recipPhnno;
 	private String recipPostNo;

+ 2 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Goods.java

@@ -19,6 +19,8 @@ import lombok.Data;
 public class Goods extends TscBaseDomain {
 
 	private String goodsCd;		//상품코드
+	private int productNo;		//ProductNo(WMS)
+	private int productCode;		//ProductCode(WMS)
 	private String brandCd;		//브랜드코드
 	private String itemkindCd;		//품목코드
 	private String goodsNm;		//상품명

+ 3 - 1
style24.admin/src/main/java/com/style24/persistence/domain/GoodsHst.java

@@ -15,7 +15,9 @@ import lombok.Data;
 public class GoodsHst extends TscBaseDomain {
 
 	private Integer goodsHstSq;		//상품이력일련번호
-	private String goodsCd;		//상품이력. 상품 수정에 의한 발생
+	private String goodsCd;		//상품코드
+	private int productNo;		//ProductNo(WMS)
+	private int productCode;		//ProductCode(WMS)
 	private String brandCd;		//브랜드코드
 	private String itemkindCd;		//품목코드
 	private String goodsNm;		//상품명

+ 3 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Option.java

@@ -19,6 +19,9 @@ public class Option extends TscBaseDomain {
 	private String optNm;
 	private String optCd1;
 	private String optCd2;
+	private String skuModelNo;
+	private int productNo;
+	private int productCode;
 	private int baseStockQty;
 	private int currStockQty;
 	private int addPrice;

+ 8 - 6
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml

@@ -265,10 +265,10 @@
 			, G.BRAND_CD
 			, B.BRAND_KNM
 			, DL.DELV_LOC_NM
-			, GI.IMG_TYPE
-			, GI.IMG_PATH1
+			, (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = DBG.GOODS_CD AND COLOR_CD = DBG.COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
 			, G.GOODS_NM
 			, DBG.GOODS_CD
+			, DBG.COLOR_CD			
 			, DBG.SIZE_CD
 			, FN_GET_CODE_NM('G008', G.GOODS_STAT) AS GOODS_STAT
 			, DBG.DELV_BAN_STDT 
@@ -278,7 +278,6 @@
 		INNER JOIN TB_DELIVERY_LOC DL   ON DBG.DELV_LOC_CD = DL.DELV_LOC_CD
 		INNER JOIN TB_GOODS        G    ON DBG.GOODS_CD = G.GOODS_CD
 		INNER JOIN TB_BRAND        B    ON G.BRAND_CD = B.BRAND_CD
-		LEFT OUTER JOIN TB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
 		WHERE 1=1
 		<if test='supplyCompCd != null and supplyCompCd != ""'>
 			AND G.SUPPLY_COMP_CD = #{supplyCompCd}
@@ -314,6 +313,7 @@
 			, UPD_DT = NOW()
 		WHERE DELV_BAN_GOODS_SQ = #{delvBanGoodsSq}
 		  AND GOODS_CD          = #{goodsCd}
+		  AND COLOR_CD          = #{colorCd}
 		  AND SIZE_CD           = #{sizeCd}
 	</update>
 
@@ -323,16 +323,16 @@
 		SELECT 
 		      G.BRAND_CD
 			, B.BRAND_KNM
-			, GI.IMG_PATH1
+			, (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = S.GOODS_CD AND COLOR_CD = S.OPT_CD1 AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM	
 			, G.GOODS_NM
 			, G.GOODS_CD
+			, S.OPT_CD1 AS COLOR_CD 
 			, S.OPT_CD2 AS SIZE_CD
 			, G.GOODS_STAT
 			, (SELECT CD_NM FROM TB_COMMON_CODE WHERE CD_GB = 'G008' AND CD =G.GOODS_STAT) AS GOODS_STAT_NM
 		FROM  TB_GOODS G
 		INNER JOIN TB_BRAND B  ON G.BRAND_CD = B.BRAND_CD
-		INNER JOIN TB_OPTION S ON G.GOODS_CD = S.GOODS_CD
-		LEFT OUTER JOIN TB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD		
+		INNER JOIN TB_OPTION S ON G.GOODS_CD = S.GOODS_CD			
 		WHERE 1=1
 		<if test='supplyCompCd != null and supplyCompCd != ""'>
 			AND G.SUPPLY_COMP_CD = #{supplyCompCd}
@@ -370,6 +370,7 @@
 		INSERT INTO TB_DELIVERY_BAN_GOODS (
 			  DELV_LOC_CD
 			, GOODS_CD
+			, COLOR_CD
 			, SIZE_CD
 			, DELV_BAN_STDT
 			, DELV_BAN_EDDT
@@ -382,6 +383,7 @@
 		VALUES (
 			  #{delvLocCd}
 			, #{goodsCd}
+			, #{colorCd}
 			, #{sizeCd}
 			, replace(#{delvBanStdt},'-','')
 			, replace(#{delvBanEddt},'-','')

+ 10 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -1007,6 +1007,8 @@
 		/* TsaGoods.createGoodsHst */
 		INSERT INTO TB_GOODS_HST 
 		(       GOODS_CD
+		      , PRODUCT_NO
+		      , PRODUCT_CODE
 		      , BRAND_CD
 		      , ITEMKIND_CD
 		      , GOODS_NM
@@ -1062,6 +1064,8 @@
 		      , UPD_DT
 		)
 		SELECT GOODS_CD            
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
 		     , BRAND_CD            
 		     , ITEMKIND_CD         
 		     , GOODS_NM            
@@ -1709,6 +1713,9 @@
 		    , OPT_CD
 		    , OPT_CD1
 		    , OPT_CD2
+		    , SKU_MODEL_NO
+		    , PRODUCT_NO
+		    , PRODUCT_CODE
 		    , BASE_STOCK_QTY
 		    , CURR_STOCK_QTY
 		    , ADD_PRICE
@@ -1725,6 +1732,9 @@
 		     , OPT_CD
 		     , OPT_CD1
 		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
 		     , BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
 		     , ADD_PRICE

+ 11 - 12
style24.admin/src/main/webapp/WEB-INF/views/delivery/BanGoodsRegistForm.html

@@ -12,6 +12,7 @@
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  ==================================
  * 1.0  2020.11.11   moon        최초 작성
+ * 1.1  2020.11.23   moon        이미지관련 수정 
  *******************************************************************************
  -->
 	<div class="modalPopup" data-width="1200">
@@ -117,18 +118,15 @@
 	var columnBanDefs = [
 		{width: 42, minWidth: 42, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
 		{headerName: "브랜드",	field: "brandKnm", width: 150, minWidth: 80, cellClass: 'text-center'},
-		{headerName: "이미지",	field: "imgPath1", width: 130, height: 80, cellClass: 'text-center'
+		{headerName: "이미지",	field: "sysImgNm", width: 130, height: 80, cellClass: 'text-center'
 			,cellRenderer: function(params) {
-				if (params.data.imgType == "A"){
-					return '<img width="60" src="'+ params.value + '" alt=""/>';
-				}else{
-					return '<img width="60" src="'+ params.value + '" alt=""/>';
-				}
+				return '<img width="60" src="'+ _goodsUrl+ "/" +params.value + '" alt=""/>';
 			}
 		},
-		{headerName: "상품명",	field: "goodsNm", width: 330, minWidth: 100},
-		{headerName: "상품코드",	field: "goodsCd", width: 150, minWidth: 100, cellClass: 'text-center'},
-		{headerName: "사이즈",	field: "sizeCd", width: 150, minWidth: 100, cellClass: 'text-center'},
+		{headerName: "상품명",	field: "goodsNm",     width: 330, minWidth: 100},
+		{headerName: "상품코드",	field: "goodsCd",     width: 150, minWidth: 100, cellClass: 'text-center'},
+		{headerName: "컬러",	    field: "colorCd",     width: 100, minWidth: 100, cellClass: 'text-center'},
+		{headerName: "사이즈",	field: "sizeCd",      width: 100, minWidth: 100, cellClass: 'text-center'},
 		{headerName: "상품상태",	field: "goodsStatNm", width: 150, minWidth: 100, cellClass: 'text-center'},
 	];
 
@@ -190,11 +188,12 @@
 	            $.each(gridData, function(idx, item) {
 	                var param = new Object;
 
-	                param.goodsCd = item.goodsCd;
-	                param.sizeCd = item.sizeCd;
+	                param.goodsCd     = item.goodsCd;
+	                param.colorCd     = item.colorCd;
+	                param.sizeCd      = item.sizeCd;
 	                param.delvBanStdt = delvBanStdt;
 	                param.delvBanEddt = delvBanEddt;
-	                param.delvLocCd = delvLocCd;
+	                param.delvLocCd   = delvLocCd;
 
 	                createData.push(param);
 	            });

+ 8 - 6
style24.admin/src/main/webapp/WEB-INF/views/delivery/BangoodsListForm.html

@@ -138,13 +138,11 @@
 		{headerName: "삭제",					field: "delYn",			width: 50,	cellClass: 'text-center'},
 		{headerName: "브랜드",				field: "brandKnm",		width: 150,	cellClass: 'text-center'},
 		{headerName: "출고처명",				field: "delvLocNm",		width: 150,	cellClass: 'text-center'},
-		{headerName: "이미지",				field: "imgPath1",		width: 100,	cellClass: 'text-center', 
+		{headerName: "이미지",				field: "sysImgNm",		width: 100,	cellClass: 'text-center', 
 			cellRenderer: function(params) {
-				if (params.data.imgType == "A"){
-					return '<img width="60" src="'+ params.value + '" alt=""/>';
-				}else{
-					return '<img width="60" src="'+ params.value + '" alt=""/>';
-				}
+
+				return '<img width="60" src="'+ _goodsUrl+ "/" +params.value + '" alt=""/>';
+
 			}
 		},
 		{headerName: "상품명",				field: "goodsNm",		width: 150,	cellClass: 'text-center'},
@@ -159,6 +157,7 @@
 				}
 			}
 		},
+		{headerName: "컬러",		    field: "colorCd",		width: 80,	cellClass: 'text-center'},
 		{headerName: "사이즈",		field: "sizeCd",		width: 80,	cellClass: 'text-center'},
 		{headerName: "상품상태",		field: "goodsStat",		width: 80,	cellClass: 'text-center'},
 		{headerName: "출고금지시작일자",	field: "delvBanStdt",	width: 150,	cellClass: 'text-center', cellRenderer: function (params) { return gagaAgGrid.toDateFormat(params.value); }},
@@ -167,6 +166,8 @@
 	];
 
 	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+	gridOptions.rowSelection = 'multiple';
+	
 	//gridOptions.rowHeight = 60;
 	/*************************************************************************
 	*  조회 버튼 클릭 시
@@ -281,6 +282,7 @@
 
 	                param.delvBanGoodsSq = item.delvBanGoodsSq;
 	                param.goodsCd = item.goodsCd;
+	                param.colorCd = item.colorCd;
 	                param.sizeCd = item.sizeCd;
 
 	                createData.push(param);

+ 3 - 3
style24.batch/src/main/java/com/style24/persistence/domain/Goods.java

@@ -1,7 +1,5 @@
 package com.style24.persistence.domain;
 
-import java.util.Collection;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
@@ -18,6 +16,8 @@ import lombok.Data;
 public class Goods extends TscBaseDomain {
 
 	private String goodsCd;		//상품코드
+	private int productNo;		//ProductNo(WMS)
+	private int productCode;		//ProductCode(WMS)
 	private String brandCd;		//브랜드코드
 	private String itemkindCd;		//품목코드
 	private String goodsNm;		//상품명
@@ -154,5 +154,5 @@ public class Goods extends TscBaseDomain {
 	private String notiList; // 고시항목
 
 
-	
+
 }

+ 4 - 0
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -7,6 +7,8 @@
 		/* AdmGoods.createGoodsHst */
 		INSERT INTO TB_GOODS_HST 
 		(       GOODS_CD
+		      , PRODUCT_NO
+		      , PRODUCT_CODE
 		      , BRAND_CD
 		      , ITEMKIND_CD
 		      , GOODS_NM
@@ -62,6 +64,8 @@
 		      , UPD_DT
 		)
 		SELECT GOODS_CD            
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
 		     , BRAND_CD            
 		     , ITEMKIND_CD         
 		     , GOODS_NM            

+ 2 - 0
style24.scm/src/main/java/com/style24/persistence/domain/Goods.java

@@ -19,6 +19,8 @@ import lombok.Data;
 public class Goods extends TscBaseDomain {
 
 	private String goodsCd;		//상품코드
+	private int productNo;		//ProductNo(WMS)
+	private int productCode;		//ProductCode(WMS)
 	private String brandCd;		//브랜드코드
 	private String itemkindCd;		//품목코드
 	private String goodsNm;		//상품명

+ 3 - 1
style24.scm/src/main/java/com/style24/persistence/domain/GoodsHst.java

@@ -15,7 +15,9 @@ import lombok.Data;
 public class GoodsHst extends TscBaseDomain {
 
 	private Integer goodsHstSq;		//상품이력일련번호
-	private String goodsCd;		//상품이력. 상품 수정에 의한 발생
+	private String goodsCd;		//상품코드
+	private int productNo;		//ProductNo(WMS)
+	private int productCode;		//ProductCode(WMS)
 	private String brandCd;		//브랜드코드
 	private String itemkindCd;		//품목코드
 	private String goodsNm;		//상품명

+ 3 - 0
style24.scm/src/main/java/com/style24/persistence/domain/Option.java

@@ -19,6 +19,9 @@ public class Option extends TscBaseDomain {
 	private String optNm;
 	private String optCd1;
 	private String optCd2;
+	private String skuModelNo;
+	private int productNo;
+	private int productCode;
 	private int baseStockQty;
 	private int currStockQty;
 	private int addPrice;

+ 10 - 0
style24.scm/src/main/java/com/style24/persistence/mybatis/shop/TssGoods.xml

@@ -669,6 +669,8 @@
 		/* TsaGoods.createGoodsHst */
 		INSERT INTO TB_GOODS_HST 
 		(       GOODS_CD
+		      , PRODUCT_NO
+		      , PRODUCT_CODE
 		      , BRAND_CD
 		      , ITEMKIND_CD
 		      , GOODS_NM
@@ -724,6 +726,8 @@
 		      , UPD_DT
 		)
 		SELECT GOODS_CD            
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
 		     , BRAND_CD            
 		     , ITEMKIND_CD         
 		     , GOODS_NM            
@@ -1288,6 +1292,9 @@
 		    , OPT_CD
 		    , OPT_CD1
 		    , OPT_CD2
+		    , SKU_MODEL_NO
+		    , PRODUCT_NO
+		    , PRODUCT_CODE
 		    , BASE_STOCK_QTY
 		    , CURR_STOCK_QTY
 		    , ADD_PRICE
@@ -1304,6 +1311,9 @@
 		     , OPT_CD
 		     , OPT_CD1
 		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
 		     , BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
 		     , ADD_PRICE

+ 62 - 0
style24.scm/src/main/java/com/style24/scm/biz/web/TssDextuploadController.java

@@ -0,0 +1,62 @@
+package com.style24.scm.biz.web;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.scm.support.controller.TssBaseController;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.util.GagaFileUploadUtil;
+import com.gagaframework.web.util.GagaUploadedFileInfo;
+
+/**
+ * Dextupload Controller
+ *
+ * @author gagamel
+ * @since 2020. 12. 4
+ */
+@Controller
+@RequestMapping("/dext")
+@Slf4j
+public class TssDextuploadController extends TssBaseController {
+
+	@Autowired
+	private Environment env;
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	/**
+	 * dextupload를 이용한 파일 업로드
+	 * @param policy - 업로드정책
+	 * @param files - 파일 목록 (dx5는 DEXTUploadX5_FileData 명칭으로 넘어옴)
+	 * @return 업로드된 파일 목록
+	 * @throws Exception
+	 * @author gagamel
+	 * @since 2020. 12. 4
+	 */
+	@PostMapping("/files/upload/{policy}")
+	@ResponseBody
+	public Collection<GagaUploadedFileInfo> uploadFiles(@PathVariable("policy") String policy, @RequestParam(value = "DEXTUploadX5_FileData") List<MultipartFile> files) throws Exception {
+		if (files == null || files.isEmpty()) {
+			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
+
+		GagaFileUploadUtil fuUtil = new GagaFileUploadUtil(env.getProperty("upload.dext.target.path"), Long.parseLong(env.getProperty("upload." + policy + ".max.size")), env.getProperty("upload." + policy + ".allow.extension"), env.getProperty("upload." + policy + ".view"));
+
+		return fuUtil.uploadFiles(files);
+	}
+
+}

+ 15 - 7
style24.scm/src/main/java/com/style24/scm/biz/web/TssGoodsController.java

@@ -659,6 +659,7 @@ public class TssGoodsController extends TssBaseController {
 
 				strBrandNo = String.valueOf(goodsInfo.getBrandNo());
 			}
+			String brandDir = GagaStringUtil.getLPadding(strBrandNo, 10, "0");
 
 			if (goodsImg.getMode().equals("C")) { // 업로드 된 파일 rename 처리
 //				String newFilename = goodsImg.getGoodsCd()
@@ -668,22 +669,29 @@ public class TssGoodsController extends TssBaseController {
 //						+ "." + StringUtils.getFilenameExtension(goodsImg.getSysImgNm());
 				String newFilename = goodsImg.getSysImgNm();
 
-				String brandDir = GagaFileUtil.getConcatenationPath(GagaStringUtil.getLPadding(strBrandNo, 10, "0"),GagaDateUtil.getToday()); // 브랜드/UPLOAD 일 YYYYMMDD
-				String goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsTargetPath, brandDir);		//저장경로 생성
+				//브랜드 폴더 확인
+				String goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsTargetPath, brandDir); // 브랜드 폴더
+				File brandPath = new File(goodsUploadPath);
+				if (!brandPath.exists()) {
+					brandPath.mkdir();
+				}
+
+				goodsUploadPath = GagaFileUtil.getConcatenationPath(goodsUploadPath, GagaDateUtil.getToday());		//브랜드+/+YYYYMMDD(UPLOAD 일 )
+				String brandYmdDir = GagaFileUtil.getConcatenationPath(brandDir, GagaDateUtil.getToday());	//디비 저장용
 
 				File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(goodsUploadPath, newFilename)));
 				File newFile = new File(GagaFileUtil.getConcatenationPath(goodsUploadPath,  uniqueFile.getName()));
-				//log.info("newFile.getPath(): {}", newFile.getPath());
+				log.info("newFile.getPath(): {}", newFile.getPath());
 
 				// resizing 처리 시 오류가 발생할 경우 삭제하기 위해 설정
 				errorFileList.add(newFile);
 
 				File oldFile = new File(GagaFileUtil.getConcatenationPath(dextUploadPath, goodsImg.getSysImgNm()));
-				//log.info("oldFile.getPath(): {}", oldFile.getPath());
+				log.info("oldFile.getPath(): {}", oldFile.getPath());
 
 				File path = new File(goodsUploadPath);
 				if (!path.exists()) {
-					//log.info("mkdir ={}", goodsUploadPath);
+					log.info("mkdir ={}", goodsUploadPath);
 					path.mkdir();
 				}
 
@@ -694,8 +702,8 @@ public class TssGoodsController extends TssBaseController {
 				}
 
 				goodsImg.setDispOrd(index++);
-				goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(brandDir,newFile.getName()));
-				goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(brandDir,newFile.getName()));
+				goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(brandYmdDir,newFile.getName()));
+				goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(brandYmdDir,newFile.getName()));
 			} else {
 				goodsImg.setOrgImgNm(GagaFileUtil.getConcatenationPath(goodsImg.getSysImgUrl() ,goodsImg.getSysImgNm()));
 				goodsImg.setSysImgNm(GagaFileUtil.getConcatenationPath(goodsImg.getSysImgUrl() ,goodsImg.getSysImgNm()));

+ 5 - 5
style24.scm/src/main/webapp/dx5/dextuploadx5-configuration.js

@@ -8,15 +8,15 @@
 
     var gAuthkey = '';
     if (location.host.indexOf("ld") > -1) {
-    	gAuthkey = "wv0tVbqwjB3lq1Z7QxSK/RiA31WcFNDd45asJ8rF3Gnl28E5ZkW+9D+/zcDVVXq8yy1fkRjUK9EG41tLceWrPsCbmCOZqVGdr4/JOj11b2g4/DdhnPp7uaDtdL6lH/OLZmRi4aAhdBXhCRmCIsyAZ9qs6P0dpV3EoGFwTaFQqGA=";
+    	gAuthkey = "hr0AqviRLOCsbiIneYWPXdkhMn8awpDYw6HPDAvYo/cKKYVOyyuonGO2qFLlmur6svsAV6tkMZY5N1Iygq42R74h7AFlzk8xhM9YzIP8ySVhEN2LFlRxgsm/GQyLrzNoS1BwcHSYyOvAfzBCAVu6f8ubLw68bOFWivcvJKAz91I=";
     } else if (location.host.indexOf("lp") > -1) {
-    	gAuthkey = "wv0tVbqwjB3lq1Z7QxSK/RiA31WcFNDd45asJ8rF3Gnl28E5ZkW+9D+/zcDVVXq8yy1fkRjUK9EG41tLceWrPsCbmCOZqVGdr4/JOj11b2g4/DdhnPp7uaDtdL6lH/OLZmRi4aAhdBXhCRmCIsyAZ9qs6P0dpV3EoGFwTaFQqGA=";
+    	gAuthkey = "hr0AqviRLOCsbiIneYWPXdkhMn8awpDYw6HPDAvYo/cKKYVOyyuonGO2qFLlmur6svsAV6tkMZY5N1Iygq42R74h7AFlzk8xhM9YzIP8ySVhEN2LFlRxgsm/GQyLrzNoS1BwcHSYyOvAfzBCAVu6f8ubLw68bOFWivcvJKAz91I=";
     } else if (location.host.indexOf("dev") > -1) {
-    	gAuthkey = "wv0tVbqwjB3lq1Z7QxSK/RiA31WcFNDd45asJ8rF3Gnl28E5ZkW+9D+/zcDVVXq8yy1fkRjUK9EG41tLceWrPsCbmCOZqVGdr4/JOj11b2g4/DdhnPp7uaDtdL6lH/OLZmRi4aAhdBXhCRmCIsyAZ9qs6P0dpV3EoGFwTaFQqGA=";
+    	gAuthkey = "hr0AqviRLOCsbiIneYWPXdkhMn8awpDYw6HPDAvYo/cKKYVOyyuonGO2qFLlmur6svsAV6tkMZY5N1Iygq42R74h7AFlzk8xhM9YzIP8ySVhEN2LFlRxgsm/GQyLrzNoS1BwcHSYyOvAfzBCAVu6f8ubLw68bOFWivcvJKAz91I=";
     } else if (location.host.indexOf("qas") > -1) {
-    	gAuthkey = "wv0tVbqwjB3lq1Z7QxSK/RiA31WcFNDd45asJ8rF3Gnl28E5ZkW+9D+/zcDVVXq8yy1fkRjUK9EG41tLceWrPsCbmCOZqVGdr4/JOj11b2g4/DdhnPp7uaDtdL6lH/OLZmRi4aAhdBXhCRmCIsyAZ9qs6P0dpV3EoGFwTaFQqGA=";
+    	gAuthkey = "hr0AqviRLOCsbiIneYWPXdkhMn8awpDYw6HPDAvYo/cKKYVOyyuonGO2qFLlmur6svsAV6tkMZY5N1Iygq42R74h7AFlzk8xhM9YzIP8ySVhEN2LFlRxgsm/GQyLrzNoS1BwcHSYyOvAfzBCAVu6f8ubLw68bOFWivcvJKAz91I=";
     } else {
-    	gAuthkey = "wv0tVbqwjB3lq1Z7QxSK/RiA31WcFNDd45asJ8rF3Gnl28E5ZkW+9D+/zcDVVXq8yy1fkRjUK9EG41tLceWrPsCbmCOZqVGdr4/JOj11b2g4/DdhnPp7uaDtdL6lH/OLZmRi4aAhdBXhCRmCIsyAZ9qs6P0dpV3EoGFwTaFQqGA=";
+    	gAuthkey = "hr0AqviRLOCsbiIneYWPXdkhMn8awpDYw6HPDAvYo/cKKYVOyyuonGO2qFLlmur6svsAV6tkMZY5N1Iygq42R74h7AFlzk8xhM9YzIP8ySVhEN2LFlRxgsm/GQyLrzNoS1BwcHSYyOvAfzBCAVu6f8ubLw68bOFWivcvJKAz91I=";
     }
 
     win.dextuploadx5Configuration = {