Просмотр исходного кода

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud lee 4 лет назад
Родитель
Сommit
451c4cbd06

+ 84 - 55
src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java

@@ -281,20 +281,28 @@ public class TsaShoplinkerService {
 
 
 		String htmlDesc = "";
 		String htmlDesc = "";
 
 
-		// 상세폼신규사용여부 N: 기존 정보 / Y : html 형식
-		if( "N".equals(goodsMap.getTobeFormYn())){
-			String descStr = goodsMap.getDetailDesc();
-			if( null != descStr) {
-				htmlDesc = descStr;
+		// 1. 기존 상세내용
+		String descStr = goodsMap.getDetailDesc();
+		if( null != descStr) {
+			descStr = descStr.replace("http://www.istyle24.com/Upload/", "http://image.istyle24.com/Local/")
+					.replace("http://www.istyle24.com/Images", "http://image.istyle24.com/Statics/design/Images");
+
+			// src 처음시작이 /Upload인 경우만체크, 중간인경우는 제외
+			if( -1 < descStr.indexOf("\"/Upload")) {
+				descStr = descStr.replace("/Upload", "http://image.istyle24.com/Local");
 			}
 			}
 
 
-		}else {
+			htmlDesc = descStr;
+		}
+
+		// 2. 신규 상세내용 (상세폼신규사용여부 N: 기존 정보 / Y : html 형식)
+		if( "Y".equals(goodsMap.getTobeFormYn())){
+			htmlDesc = ""; // 초기화
 
 
 			String imgPath = env.getProperty("upload.goods.view");
 			String imgPath = env.getProperty("upload.goods.view");
-			imgPath = imgPath.replace("http://www.istyle24.com/Upload/", "http://image.istyle24.com/Local/")
-					.replace("http://www.istyle24.com/Images", "http://image.istyle24.com/Statics/design/Images")
-					.replace("/Upload", "/Local");
 
 
+			// 메인컬러에 매칭되는 이미지만 가져옴.(상세,페브릭,라벨등..)
+			shoplinkerGoods.setExtmallDescImgYn("Y");
 			Collection<ShoplinkerGoods> imgList = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 			Collection<ShoplinkerGoods> imgList = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 
 
 			String dColor = goodsMap.getMainColorEnm(); //대표컬러
 			String dColor = goodsMap.getMainColorEnm(); //대표컬러
@@ -334,10 +342,7 @@ public class TsaShoplinkerService {
 
 
 			// 제대로된 정보 없을 경우, 기존 상세내용으로 보냄
 			// 제대로된 정보 없을 경우, 기존 상세내용으로 보냄
 			if( "".equals(dImgFront)) {
 			if( "".equals(dImgFront)) {
-				String descStr = goodsMap.getDetailDesc();
-				if( null != descStr) {
-					htmlDesc = descStr;
-				}
+				htmlDesc = descStr;
 
 
 			}else {
 			}else {
 
 
@@ -345,37 +350,43 @@ public class TsaShoplinkerService {
 				htmlDesc = "<div class=\"st_descrp_box\" style=\"max-height:1100px; overflow:hidden;\">";
 				htmlDesc = "<div class=\"st_descrp_box\" style=\"max-height:1100px; overflow:hidden;\">";
 				htmlDesc += "<div class=\"st_desc_simple\" style=\"position:relative; margin-top:0px; margin-left:auto; margin-right:auto;\">";
 				htmlDesc += "<div class=\"st_desc_simple\" style=\"position:relative; margin-top:0px; margin-left:auto; margin-right:auto;\">";
 				htmlDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">"+goodsMap.getDetailDescNew10()+"</span>";
 				htmlDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">"+goodsMap.getDetailDescNew10()+"</span>";
-				htmlDesc += "<p class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
+				htmlDesc += "<span class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
 				htmlDesc += goodsMap.getDetailDescNew20();
 				htmlDesc += goodsMap.getDetailDescNew20();
-				htmlDesc += "</p>";
+				htmlDesc += "</span>";
 				htmlDesc += "</div>";
 				htmlDesc += "</div>";
 				htmlDesc += "<div class=\"st_desc_character\" style=\"position:relative; margin-top:40px; margin-left:auto; margin-right:auto;\">";
 				htmlDesc += "<div class=\"st_desc_character\" style=\"position:relative; margin-top:40px; margin-left:auto; margin-right:auto;\">";
 				htmlDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">상품특징</span>";
 				htmlDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">상품특징</span>";
-				htmlDesc += "<p class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
+				htmlDesc += "<span class=\"st_ptxt01\" style=\"font-size:16px;font-weight:200;line-height:1.5;word-break:keep-all;color:#666666;\">";
 				htmlDesc += goodsMap.getDetailDescNew30();
 				htmlDesc += goodsMap.getDetailDescNew30();
-		        htmlDesc += "</p>";
+		        htmlDesc += "</span>";
         		htmlDesc += "</div>";
         		htmlDesc += "</div>";
 				htmlDesc += "</div>";
 				htmlDesc += "</div>";
 
 
 				// 2) 상세내용 - 상품옵션별 색상
 				// 2) 상세내용 - 상품옵션별 색상
 				String colorDesc = "";
 				String colorDesc = "";
-				shoplinkerGoods.setColorListYn("Y"); // 상품이미지정보 색상별
+				shoplinkerGoods.setExtmallDescImgYn("N");
+				shoplinkerGoods.setColorListYn("Y"); // 색상별 이미지 정보만 가져옴
 				Collection<ShoplinkerGoods> imgColorList = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 				Collection<ShoplinkerGoods> imgColorList = admShoplinkerDao.getGoodsImageList(shoplinkerGoods);
 				colorDesc = "<div class=\"st_view_option_box\" style=\"margin-top: 100px;text-align: center;\">";
 				colorDesc = "<div class=\"st_view_option_box\" style=\"margin-top: 100px;text-align: center;\">";
 				String tmpColor = "";
 				String tmpColor = "";
 				for(ShoplinkerGoods ic : imgColorList ) {
 				for(ShoplinkerGoods ic : imgColorList ) {
 
 
 					if( !tmpColor.equals(ic.getColorCd())) {
 					if( !tmpColor.equals(ic.getColorCd())) {
+						tmpColor = ic.getColorCd();
+
 						colorDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">컬러 : ";
 						colorDesc += "<span class=\"st_tit_desc\" style=\"display:block; margin-bottom:10px; font-size:18px; font-weight:500; letter-spacing:-0.025em;\">컬러 : ";
 						colorDesc += "<span>"+ ic.getColorKnm() +"</span></span>";
 						colorDesc += "<span>"+ ic.getColorKnm() +"</span></span>";
-					}
-					colorDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-					colorDesc += "<img src=\""+ imgPath+"/"+ic.getSysImgNm()+"\" alt=\"\" style=\"max-width:100%;margin: 10px auto 0;margin-top: 0;display: block;\">";
-					colorDesc += "<img src=\""+ imgPath+"/"+ic.getSysImgNm()+"\" alt=\"\" style=\"max-width:100%;display: block;margin: 10px auto 0;\">";
-	                colorDesc += "</div>";
-		            if( !tmpColor.equals(ic.getColorCd())) {
+						colorDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+
+						// 동일색상끼리 이미지 세팅
+						for(ShoplinkerGoods ic2 : imgColorList ) {
+							if( tmpColor.equals(ic2.getColorCd())) {
+								colorDesc += "<img src=\""+ imgPath+"/"+ic2.getSysImgNm()+"\" alt=\"\" style=\"max-width:100%;margin: 10px auto 0;display: block;\">";
+							}
+						}
+
+						colorDesc += "</div>";
 		            	colorDesc += "<div style=\"height:100px;\"></div>";
 		            	colorDesc += "<div style=\"height:100px;\"></div>";
-		            	tmpColor = ic.getColorCd();
 					}
 					}
 				}
 				}
 				colorDesc += "</div>";
 				colorDesc += "</div>";
@@ -383,47 +394,65 @@ public class TsaShoplinkerService {
 
 
 				// 3) 상세내용 - 모델 착용컷
 				// 3) 상세내용 - 모델 착용컷
 				String dtlDesc = "";
 				String dtlDesc = "";
-				dtlDesc += "<div class=\"st_view_outfit_box\" style=\"margin-top: 100px;text-align: center;\">";
-				dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">OUTFIT VIEW</span>";
-				dtlDesc += "<span class=\"st_model_info\" style=\"display: block;margin-top: 20px;color: #666;font-size: 16px;font-weight: 200;text-align: center;\">"+goodsMap.getModelInfo()+"</span>";
-				dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-				for(String img : dImgModelList) {
-					dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+				if( 0 < dImgModelList.size()) {
+					dtlDesc += "<div class=\"st_view_outfit_box\" style=\"margin-top: 100px;text-align: center;\">";
+					dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">OUTFIT VIEW</span>";
+					dtlDesc += "<span class=\"st_model_info\" style=\"display: block;margin-top: 20px;color: #666;font-size: 16px;font-weight: 200;text-align: center;\">"+goodsMap.getModelInfo()+"</span>";
+					dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+					for(String img : dImgModelList) {
+						dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+					}
+					dtlDesc += "</div>";
+					dtlDesc += "</div>";
 				}
 				}
-				dtlDesc += "</div>";
-				dtlDesc += "</div>";
 
 
 				// 4) 상세내용 - 상품컷
 				// 4) 상세내용 - 상품컷
-				dtlDesc += "<div class=\"st_view_detail_box\" style=\"margin-top: 100px;text-align: center;\">";
-				dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">PRODUCT VIEW</span>";
-				dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-				for(String img : dImgDetailList) {
-					dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+				if( 0 < dImgDetailList.size()) {
+					dtlDesc += "<div class=\"st_view_detail_box\" style=\"margin-top: 100px;text-align: center;\">";
+					dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">PRODUCT VIEW</span>";
+					dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+					for(String img : dImgDetailList) {
+						dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;\">";
+					}
+	                dtlDesc += "</div>";
+	        		dtlDesc += " </div>";
 				}
 				}
-                dtlDesc += "</div>";
-        		dtlDesc += " </div>";
 
 
         		// 5) 상세내용 - 원단
         		// 5) 상세내용 - 원단
-        		dtlDesc += "<div class=\"st_view_fabric_box\" style=\"margin-top: 100px;text-align: center;\">";
-        		dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">FABRIC</span>";
-        		dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-        		dtlDesc += "<img src=\""+dMaterial +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;margin-top: 0;\">";
-                dtlDesc += "</div>";
-                dtlDesc += "</div>";
+				if( !"".equals(dMaterial)){
+	        		dtlDesc += "<div class=\"st_view_fabric_box\" style=\"margin-top: 100px;text-align: center;\">";
+	        		dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">FABRIC</span>";
+	        		dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+	        		dtlDesc += "<img src=\""+dMaterial +"\" alt=\"\" style=\"display: block;margin: 10px auto 0;margin-top: 0;\">";
+	                dtlDesc += "</div>";
+	                dtlDesc += "</div>";
+				}
 
 
                 // 6) 상세내용 - 라벨
                 // 6) 상세내용 - 라벨
-                dtlDesc += "<div class=\"st_view_label_box\" style=\"margin-top: 100px;text-align: center;\">";
-                dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">LABEL INFO</span>";
-                dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
-                dtlDesc += "<span style=\"display:inline-block;\">";
-                for(String img : dLabelList) {
-					dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"float:left; margin-top:0; margin-left:20px;\">";
+				if( 0 < dLabelList.size()) {
+	                dtlDesc += "<div class=\"st_view_label_box\" style=\"margin-top: 100px;text-align: center;\">";
+	                dtlDesc += "<span class=\"st_tit_view\" style=\"display: block;color: #222;font-size: 32px;font-weight: 300;text-align: center;\">LABEL INFO</span>";
+	                dtlDesc += "<div class=\"st_view\" style=\"margin-top: 40px;\">";
+	                dtlDesc += "<span style=\"display:inline-block;\">";
+	                for(String img : dLabelList) {
+						dtlDesc += "<img src=\""+ img +"\" alt=\"\" style=\"float:left; margin-top:0; margin-left:20px;\">";
+					}
+	                dtlDesc += "</span>";
+	                dtlDesc += "</div>";
+	                dtlDesc += "</div>";
 				}
 				}
-                dtlDesc += "</span>";
-                dtlDesc += "</div>";
-                dtlDesc += "</div>";
+
                 htmlDesc += dtlDesc;
                 htmlDesc += dtlDesc;
 
 
+                // 이미지 경로 수정
+                htmlDesc = htmlDesc.replace("http://www.istyle24.com/Upload/", "http://image.istyle24.com/Local/")
+    					.replace("http://www.istyle24.com/Images", "http://image.istyle24.com/Statics/design/Images");
+
+    			if( -1 < htmlDesc.indexOf("\"/Upload")) {
+    				htmlDesc = htmlDesc.replace("/Upload", "http://image.istyle24.com/Local");
+    			}
+    			// 이미지 경로 수정
+
                 // 7) 상세내용 - 사이즈
                 // 7) 상세내용 - 사이즈
                 Collection<ShoplinkerGoods> sizeList = admShoplinkerDao.getGoodsSizeList(shoplinkerGoods);
                 Collection<ShoplinkerGoods> sizeList = admShoplinkerDao.getGoodsSizeList(shoplinkerGoods);
                 if (sizeList == null || sizeList.isEmpty()) {
                 if (sizeList == null || sizeList.isEmpty()) {

+ 24 - 0
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -152,6 +152,15 @@ public class TsaGoodsController extends TsaBaseController {
 	@PostMapping("/itemkind/base/list")
 	@PostMapping("/itemkind/base/list")
 	@ResponseBody
 	@ResponseBody
 	public Collection<Itemkind> getItemkindList(@RequestBody Itemkind itemkind) {
 	public Collection<Itemkind> getItemkindList(@RequestBody Itemkind itemkind) {
+		
+		// multi row 검색관련 처리
+		if (!StringUtils.isBlank(itemkind.getSearchItemkindCd())) {
+			itemkind.setMultiItemkindCd(itemkind.getSearchItemkindCd().replaceAll("\r", "").trim().split("\n"));
+		}
+		if (!StringUtils.isBlank(itemkind.getSearchItemkindNm())) {
+			itemkind.setMultiItemkindNm(itemkind.getSearchItemkindNm().replaceAll("\r", "").trim().split("\n"));
+		}
+		
 		return goodsService.getItemkindList(itemkind);
 		return goodsService.getItemkindList(itemkind);
 	}
 	}
 
 
@@ -3491,5 +3500,20 @@ public class TsaGoodsController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0003"));
 		return super.ok(message.getMessage("SUCC_0003"));
 	}
 	}
 
 
+	/**
+	 * 품목 목록 화면(팝업)
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 16
+	 */
+	@GetMapping("/itemkind/popup/form")
+	public ModelAndView itemkindPopupForm(Itemkind itemkind) {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("params", itemkind);
+		mav.setViewName("goods/ItemkindPopupForm");
+		return mav;
+	}
 
 
 }
 }

+ 15 - 1
src/main/java/com/style24/persistence/domain/Itemkind.java

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 package com.style24.persistence.domain;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscBaseDomain;
 
 
 import lombok.Data;
 import lombok.Data;
@@ -21,7 +22,20 @@ public class Itemkind extends TscBaseDomain {
 	private String sizeGb;			// 사이즈구분(T:상의, B:하의, S:신발)
 	private String sizeGb;			// 사이즈구분(T:상의, B:하의, S:신발)
 	private String useYn;			// 사용여부
 	private String useYn;			// 사용여부
 	private String itemkindLeafNm;		// leaf 품목명
 	private String itemkindLeafNm;		// leaf 품목명
+	
+	// 검색조건
+	private String searchTxt;		// 검색어
+	private String callbackFn;		// 콜백함수
+	private String multiGb;			// 멀티 셀렉트 구분
+	private String searchItemkindCd;
+	private String searchItemkindNm;
+	
+	/* 품목검색 Multi CheckBox 항목*/
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiItemkindCd;
 
 
-//	private String index;
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiItemkindNm;
+	/* 품목검색 Multi CheckBox 항목*/
 
 
 }
 }

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

@@ -22,6 +22,19 @@
 		<if test="useYn != null and useYn != ''">
 		<if test="useYn != null and useYn != ''">
 		AND USE_YN = #{useYn} 
 		AND USE_YN = #{useYn} 
 		</if>
 		</if>
+		<if test="multiItemkindCd != null and multiItemkindCd.length > 0">
+		AND ITEMKIND_CD IN
+		    <foreach collection="multiItemkindCd" item="item" index="index"  open="(" close=")" separator=",">
+		     UPPER(#{item})
+		    </foreach>
+		</if>
+		<if test="multiItemkindNm != null and multiItemkindNm.length > 0">
+		AND (
+		    <foreach collection="multiItemkindNm" item="item" index="index" separator="or">
+		    ITEMKIND_NM LIKE CONCAT('%',#{item},'%')
+		  </foreach>
+		 )
+		</if>
 		ORDER BY ITEMKIND_CD
 		ORDER BY ITEMKIND_CD
 	</select>
 	</select>
 
 

+ 12 - 9
src/main/java/com/style24/persistence/mybatis/shop/TsaShoplinker.xml

@@ -117,6 +117,9 @@
 			AND A.MAIN_COLOR_CD = B.COLOR_CD
 			AND A.MAIN_COLOR_CD = B.COLOR_CD
         	AND (B.DEFAULT_IMG_YN = 'Y' OR B.EXTMALL_IMG_YN = 'Y')
         	AND (B.DEFAULT_IMG_YN = 'Y' OR B.EXTMALL_IMG_YN = 'Y')
         </if>
         </if>
+        <if test='extmallDescImgYn != null and extmallDescImgYn == "Y"'>
+        	AND A.MAIN_COLOR_CD = B.COLOR_CD
+        </if>
         <if test='colorListYn != null and colorListYn == "Y"'>
         <if test='colorListYn != null and colorListYn == "Y"'>
 			AND (B.SYS_IMG_NM LIKE '%_01.jpg' or B.SYS_IMG_NM LIKE '%_02.jpg' )
 			AND (B.SYS_IMG_NM LIKE '%_01.jpg' or B.SYS_IMG_NM LIKE '%_02.jpg' )
         </if>
         </if>
@@ -368,17 +371,17 @@
 	<sql id="getListCondition_sql">
 	<sql id="getListCondition_sql">
 
 
 		        <if test="goodsCd != null and goodsCd != ''">
 		        <if test="goodsCd != null and goodsCd != ''">
-		        AND UPPER(A.GOODS_CD) LIKE CONCAT('%',UPPER(#{goodsCd}),'%')
+		        AND A.GOODS_CD LIKE CONCAT('%',UPPER(#{goodsCd}),'%')
 		        </if>
 		        </if>
 		    	<if test="conditionList != null and conditionList.length>0">
 		    	<if test="conditionList != null and conditionList.length>0">
-		        AND UPPER(A.GOODS_CD) IN
+		        AND A.GOODS_CD IN
 		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
 		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
 		       		UPPER(#{item})
 		       		UPPER(#{item})
 		            </foreach>
 		            </foreach>
 		        </if>
 		        </if>
 
 
 		        <if test="goodsNm != null and goodsNm != ''">
 		        <if test="goodsNm != null and goodsNm != ''">
-		        AND UPPER(B.GOODS_NM) LIKE CONCAT('%',UPPER(#{goodsNm}),'%')
+		        AND B.GOODS_NM LIKE CONCAT('%',UPPER(#{goodsNm}),'%')
 		        </if>
 		        </if>
 		        <if test="brandCd != null and brandCd != ''">
 		        <if test="brandCd != null and brandCd != ''">
 		        AND BRAND_CD = #{brandCd}
 		        AND BRAND_CD = #{brandCd}
@@ -624,9 +627,9 @@
 	              </when>
 	              </when>
 
 
 	              <when test='search != null and search == "ordNo"'>
 	              <when test='search != null and search == "ordNo"'>
-	              	AND UPPER(B.ORD_NO) IN
+	              	AND B.ORD_NO IN
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-			       		UPPER(#{item})
+			       		#{item}
 			            </foreach>
 			            </foreach>
 	              </when>
 	              </when>
 	            </choose>
 	            </choose>
@@ -761,16 +764,16 @@
 	              </when>
 	              </when>
 
 
 	              <when test='search != null and search == "ordNo"'>
 	              <when test='search != null and search == "ordNo"'>
-	              	AND UPPER(OD.ORD_NO) IN
+	              	AND OD.ORD_NO IN
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-			       		UPPER(#{item})
+			       		#{item}
 			            </foreach>
 			            </foreach>
 	              </when>
 	              </when>
 
 
 	              <when test='search != null and search == "deliveryInvoice"'>
 	              <when test='search != null and search == "deliveryInvoice"'>
-	              	AND UPPER(OD.INVOICE_NO) IN
+	              	AND OD.INVOICE_NO IN
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
 			            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-			       		UPPER(#{item})
+			       		#{item}
 			            </foreach>
 			            </foreach>
 	              </when>
 	              </when>
 
 

+ 6 - 0
src/main/webapp/WEB-INF/views/display/GoodsCategoryForm.html

@@ -733,6 +733,7 @@
 				$("#cateGb"+i).val('');
 				$("#cateGb"+i).val('');
 				$("#leafYn"+i).val('');
 				$("#leafYn"+i).val('');
 			}
 			}
+			
 		});
 		});
 
 
 		// 전시카테고리 삭제
 		// 전시카테고리 삭제
@@ -851,6 +852,11 @@
 			$('#goodsSearchForm input[name=supplyCompList]').val('');
 			$('#goodsSearchForm input[name=supplyCompList]').val('');
 			$('#goodsSearchForm').find('#brandText').html('');
 			$('#goodsSearchForm').find('#brandText').html('');
 			$('#goodsSearchForm').find('#supplyCompText').html('');
 			$('#goodsSearchForm').find('#supplyCompText').html('');
+			
+			$(document).find('#goodsSearchForm').find(".multiCheckBox").each(function(i, e){
+				let btnNm = $(this).find(".sltBtn").attr("data-name");
+				$(this).find(".sltBtn").text(btnNm);
+			});
 		});
 		});
 
 
 		$(document).ready(function() {
 		$(document).ready(function() {

+ 2 - 2
src/main/webapp/WEB-INF/views/display/MainContentsPopupForm.html

@@ -948,9 +948,9 @@
 				$("#addMobImg"+dataIdx).click();
 				$("#addMobImg"+dataIdx).click();
 			}
 			}
 		}
 		}
-		if(contentsLoc=='SGNB002' || contentsLoc=='SMM008' || contentsLoc=='SBM006' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
+		if(contentsLoc=='SGNB002' || contentsLoc=='SMM008' || contentsLoc=='SBM006' || contentsLoc=='SBM014' || contentsLoc=='SBM015' || contentsLoc=='SBM016' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
 			$("#addTitle"+dataIdx).click();
 			$("#addTitle"+dataIdx).click();
-			if(contentsLoc=='SMM008'|| contentsLoc=='SBM006' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
+			if(contentsLoc=='SMM008'|| contentsLoc=='SBM006' || contentsLoc=='SBM014' || contentsLoc=='SBM015' || contentsLoc=='SBM016' || contentsLoc=='SCM005' || contentsLoc=='SOM005' || contentsLoc=='SAD001'){
 				$("#addImg"+dataIdx).click();
 				$("#addImg"+dataIdx).click();
 			}
 			}
 			$("#addLink"+dataIdx).click();
 			$("#addLink"+dataIdx).click();

+ 2 - 2
src/main/webapp/WEB-INF/views/display/MainMultiContentsPopupForm.html

@@ -422,7 +422,7 @@ console.log('brandGroupNo:'+brandGroupNo);
 			changeYear: true,
 			changeYear: true,
 			defaultDate: $('.schDate').val()
 			defaultDate: $('.schDate').val()
 		});
 		});
-		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
+		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009' || contentsLoc == 'SBM017'|| contentsLoc == 'SBM018'|| contentsLoc == 'SBM019' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
 				|| contentsLoc == 'SCM002' || contentsLoc == 'SCM003' || contentsLoc == 'SOM002' || contentsLoc == 'SOM003'){
 				|| contentsLoc == 'SCM002' || contentsLoc == 'SCM003' || contentsLoc == 'SOM002' || contentsLoc == 'SOM003'){
 			$("#addGoodsBtn"+brandIdx).click();
 			$("#addGoodsBtn"+brandIdx).click();
 		}
 		}
@@ -768,7 +768,7 @@ console.log('brandGroupNo:'+brandGroupNo);
 			return false;
 			return false;
 		}
 		}
 
 
-		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
+		if(contentsLoc == 'SBM007' || contentsLoc == 'SBM008' || contentsLoc == 'SBM009'|| contentsLoc == 'SBM017'|| contentsLoc == 'SBM018'|| contentsLoc == 'SBM019' || contentsLoc == 'SMM003' || contentsLoc == 'SMM007' || contentsLoc == 'SMM009'
 				|| contentsLoc == 'SCM002' || contentsLoc == 'SCM003' || contentsLoc == 'SOM002' || contentsLoc == 'SOM003'){
 				|| contentsLoc == 'SCM002' || contentsLoc == 'SCM003' || contentsLoc == 'SOM002' || contentsLoc == 'SOM003'){
 			if(!goodsArrValidation()){
 			if(!goodsArrValidation()){
 				return false;
 				return false;

+ 6 - 0
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -571,6 +571,12 @@
 		$('#searchForm input[name=supplyCompList]').val('');
 		$('#searchForm input[name=supplyCompList]').val('');
 		$('#searchForm').find('#brandText').html('');
 		$('#searchForm').find('#brandText').html('');
 		$('#searchForm').find('#supplyCompText').html('');
 		$('#searchForm').find('#supplyCompText').html('');
+		
+		$(document).find('#searchForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
+		
 	});
 	});
 
 
 	// 조회클릭시
 	// 조회클릭시

+ 5 - 1
src/main/webapp/WEB-INF/views/goods/GoodsNaverPriceForm.html

@@ -215,7 +215,11 @@
 		//$("#searchForm input[type=radio]").parent("label").removeClass("checked");
 		//$("#searchForm input[type=radio]").parent("label").removeClass("checked");
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
-
+		
+		$(document).find('#searchForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
 	});
 	});
 
 
 	// 조회클릭시
 	// 조회클릭시

+ 5 - 0
src/main/webapp/WEB-INF/views/goods/GoodsPopupListForm.html

@@ -356,6 +356,11 @@
 		$('#goodsPopupForm input[name=supplyCompList]').val('');
 		$('#goodsPopupForm input[name=supplyCompList]').val('');
 		$('#goodsPopupForm').find('#brandText').html('');
 		$('#goodsPopupForm').find('#brandText').html('');
 		$('#goodsPopupForm').find('#supplyCompText').html('');
 		$('#goodsPopupForm').find('#supplyCompText').html('');
+		
+		$(document).find('#goodsPopupForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
 	});
 	});
 
 
 	// 조회클릭시
 	// 조회클릭시

+ 5 - 0
src/main/webapp/WEB-INF/views/goods/GoodsQuikDeliverySkipForm.html

@@ -192,6 +192,11 @@
 		//$("#searchForm input[type=radio]").parent("label").removeClass("checked");
 		//$("#searchForm input[type=radio]").parent("label").removeClass("checked");
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
+		
+		$(document).find('#searchForm').find(".multiCheckBox").each(function(i, e){
+			let btnNm = $(this).find(".sltBtn").attr("data-name");
+			$(this).find(".sltBtn").text(btnNm);
+		});
 
 
 	});
 	});
 
 

+ 138 - 0
src/main/webapp/WEB-INF/views/goods/ItemkindPopupForm.html

@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : ItemkindPopupForm.html
+ * @desc    : 품복 팝업 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.07.16   eskim       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="600" id="popupItemkindList">
+	<div class="panelStyle"  style="max-height:700px;">
+		<!-- TITLE -->
+		<div class="panelTitle">
+			<strong>품목 목록</strong>
+			<button type="button" class="close" onclick="uifnPopupClose('popupItemkindList');"><em class="fa fa-times"></em></button>
+		</div>
+		<!-- //TITLE -->
+		<!-- 검색 조건 -->
+		<div class="panelContent">
+			<form id="searchItemkindListForm" name="searchItemkindListForm" action="#" th:action="@{'/goods/itemkind/base/list'}" onsubmit="$('#btnSearchItemkindList').trigger('click'); return false;">
+				<table class="frmStyle" aria-describedby="검색조건">
+					<colgroup>
+						<col style="width:15%;"/>
+						<col style="width:35%;"/>
+						<col style="width:15%;"/>
+						<col/>
+					</colgroup>
+					<tbody>
+						<tr>
+							<th>품목코드</th>
+							<td>
+								<textarea class="textareaR2" name="searchItemkindCd" id="searchItemkindCd"></textarea>
+							</td>
+							<th>품목명</th>
+							<td>
+								<textarea class="textareaR2" name="searchItemkindNm" id="searchItemkindNm"></textarea>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-base btn-lg" id="btnSearchItemkindList">조회</button>
+					</li>
+				</ul>
+			</form>
+			<!-- 리스트 영역 -->
+			<div class="panelContent">
+				<div id="gridItemkindList" style="width: 100%; height: 380px" class="ag-theme-balham"></div>
+			</div>
+			<!-- //리스트 영역 -->
+			
+			<!-- 버튼 배치 영역 -->
+			<ul class="panelBar">
+				<li class="right">
+					<button type="button" class="btn btn-info btn-lg" id="btnConfirmItemkind">확인</button>
+				</li>
+			</ul>
+		</div>
+		<!-- //검색 조건 -->
+	</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	let headerSelection = false;
+	if([[${params.multiGb}]] == "M") headerSelection = true;
+	let columnDefsMdList = [
+		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: headerSelection, checkboxSelection: true, filter: false},
+		{headerName: "품목코드", field: "itemkindCd", width: 150, cellClass: 'text-center'},
+		{headerName: "품목명", field: "itemkindNm", width: 370, cellClass: 'text-left',
+			cellRenderer: function(params) {
+				return params.value.replaceAll("&gt;", ">");
+			}
+		}
+	];
+
+	let gridOptionsItemkindList = gagaAgGrid.getGridOptions(columnDefsMdList);
+	if(headerSelection) {	gridOptionsItemkindList.rowSelection = "multiple";	}
+
+	// Row double click
+	gridOptionsItemkindList.onRowDoubleClicked = function(event) {
+		$('#btnConfirmItemkind').trigger('click');
+	}
+
+	// 조회
+	$('#btnSearchItemkindList').on('click', function() {
+		// Fetch data
+		gagaAgGrid.fetch($('#searchItemkindListForm').prop('action'), gridOptionsItemkindList, '#searchItemkindListForm');
+	});
+	
+	// 확인
+	$('#btnConfirmItemkind').on('click', function() {
+		var selectedData = gagaAgGrid.selectedRowData(gridOptionsItemkindList);
+		
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 품목이 없습니다.');
+			return false;
+		}
+		
+		var callbackFn = [[${params.callbackFn}]];
+
+		var jsonData = JSON.stringify(selectedData);
+
+		if (typeof callbackFn != 'undefined' && callbackFn) {
+			if (typeof callbackFn == 'function') {
+				callbackFn(jsonData);
+			} else {
+				if (callbackFn) {
+					if (callbackFn.indexOf("(") == -1) {
+						(new Function(callbackFn + "(" + jsonData + ");"))();
+					} else {
+						(new Function(callbackFn(jsonData)))();
+					}
+				}
+			}
+			uifnPopupClose('popupItemkindList');
+		}
+	});
+	
+	$(document).ready(function() {
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridItemkindList', gridOptionsItemkindList);
+		
+		//$('#btnSearchItemkindList').trigger('click');
+	});
+/*]]>*/
+</script>
+
+</div>
+
+</html>

+ 22 - 1
src/main/webapp/ux/js/admin.popup.js

@@ -1030,4 +1030,25 @@ var cfnOpenExtmallOrderPopup = function(ordNo) {
 	var actionUrl = "/shoplinker/order/extmall/info";
 	var actionUrl = "/shoplinker/order/extmall/info";
 	if (typeof(ordNo) != 'undefined') actionUrl += "?ordNo=" + ordNo;
 	if (typeof(ordNo) != 'undefined') actionUrl += "?ordNo=" + ordNo;
 	cfnOpenModalPopup(actionUrl, "popupExtmallOrderDetail");
 	cfnOpenModalPopup(actionUrl, "popupExtmallOrderDetail");
-}
+}
+
+/**
+ * @type   : function
+ * @access : public
+ * @desc   : 품목 목록 팝업
+ * <pre>
+ *     cfnOpenItemkindListPopup('fnResult');
+ *     or
+ *     cfnOpenItemkindListPopup('fnResult', 'S');
+ *     or
+ *     cfnOpenItemkindListPopup('fnResult', 'S', 'TBJ');
+ * </pre>
+ * @since  : 2021/07/16
+ * @author : eskim
+ */
+var cfnOpenItemkindListPopup = function(callbackfn, multiGb, searchTxt) {
+	var actionUrl = '/goods/itemkind/popup/form?callbackFn=' + callbackfn;
+	if (typeof(multiGb) != 'undefined' && multiGb != null && multiGb == "M") actionUrl += "&multiGb=" + multiGb; else actionUrl += "&multiGb=S";
+	if (typeof(searchTxt) != 'undefined') actionUrl += "&searchTxt=" + encodeURIComponent(searchTxt);
+	cfnOpenModalPopup(actionUrl, "popupItemkindList");
+}