Ver Fonte

Merge branch 'develop' into card007

card007 há 4 anos atrás
pai
commit
e30817ab13

+ 7 - 8
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -389,12 +389,12 @@ public class TsaGoodsService {
 		if ("Y".equals(goodsSearch.getImageViewYn())) {
 			// 헤더 title 설정
 			String[] listTitles = {"이미지", "상품코드", "업체명", "브랜드명", "상품명", "품목", "전시재고", "상품상태", "스타일년도", "시즌",
-				"정상가", "판매가", "할인율", "가격변경일", "ERP재고연동여부", "정상이월구분", "반품가능 여부", "승인일시"};
+				"정상가", "판매가", "자사즉시할인가", "가격변경일", "ERP재고연동여부", "정상이월구분", "반품가능 여부"};
 
 			// DB 처리 시 사용되는 파라미터명(셀명) 설정
 			String[] cellNames = {"SYS_IMG_NM", "GOODS_CD", "SUPPLY_COMP_CD", "BRAND_GRP_NM", "GOODS_NM", "ITEMKIND_NM",
 				"STOCK_QTY_SUM", "GOODS_STAT", "STYLE_YEAR", "SEASON_CD", "LIST_PRICE", "CURR_PRICE",
-				"DC_RATE", "PRICE_UPD_DT", "ERP_STOCK_LINK_YN", "FORMAL_GB", "RETURNABLE_YN", "FRST_CFRM_DT"};
+				"BENEFIT_PRICE", "PRICE_UPD_DT", "ERP_STOCK_LINK_YN", "FORMAL_GB", "RETURNABLE_YN"};
 
 			String[] cellTypes = {GagaExcelConstants.CellType.IMAGE.name(),
 				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
@@ -405,7 +405,7 @@ public class TsaGoodsService {
 				GagaExcelConstants.CellType.CHAR_RIGHT.name(), GagaExcelConstants.CellType.CHAR_RIGHT.name(),
 				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
 				GagaExcelConstants.CellType.CHAR_CENTER.name(),
-				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name()};
+				GagaExcelConstants.CellType.CHAR_CENTER.name()};
 
 			String targetPath = env.getProperty("upload.goods.view");
 			Collection<GagaMap> dataList = goodsDao.getGoodsInfoExcelList(goodsSearch); // map형식으로 조회
@@ -425,12 +425,12 @@ public class TsaGoodsService {
 
 		} else {
 			// 헤더 title 설정
-			String[] listTitles = {"상품코드", "업체명", "브랜드명", "상품명", "품목", "전시재고", "상품상태", "스타일년도",
-				"시즌", "정상가", "판매가", "할인율", "가격변경일", "ERP재고연동여부", "정상이월구분", "반품가능 여부", "승인일시"};
+			String[] listTitles = {"상품코드", "업체명", "브랜드명", "상품명", "품목", "전시재고", "상품상태", "스타일년도", "시즌", 
+				"정상가", "판매가", "자사즉시할인가", "가격변경일", "ERP재고연동여부", "정상이월구분", "반품가능 여부"};
 
 			// DB 처리 시 사용되는 파라미터명(셀명) 설정
 			String[] cellNames = {"GOODS_CD", "SUPPLY_COMP_CD", "BRAND_GRP_NM", "GOODS_NM", "ITEMKIND_NM", "STOCK_QTY_SUM", "GOODS_STAT", "STYLE_YEAR",
-				"SEASON_CD", "LIST_PRICE", "CURR_PRICE", "DC_RATE", "PRICE_UPD_DT", "ERP_STOCK_LINK_YN", "FORMAL_GB", "RETURNABLE_YN", "FRST_CFRM_DT"};
+				"SEASON_CD", "LIST_PRICE", "CURR_PRICE", "BENEFIT_PRICE", "PRICE_UPD_DT", "ERP_STOCK_LINK_YN", "FORMAL_GB", "RETURNABLE_YN"};
 
 			String[] cellTypes = {
 				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
@@ -440,8 +440,7 @@ public class TsaGoodsService {
 				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_RIGHT.name(),
 				GagaExcelConstants.CellType.CHAR_RIGHT.name(), GagaExcelConstants.CellType.CHAR_RIGHT.name(),
 				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
-				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name(),
-				GagaExcelConstants.CellType.CHAR_CENTER.name()};
+				GagaExcelConstants.CellType.CHAR_CENTER.name(), GagaExcelConstants.CellType.CHAR_CENTER.name()};
 
 			Collection<GagaMap> dataList = goodsDao.getGoodsInfoExcelList(goodsSearch);
 

+ 20 - 25
src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java

@@ -2,9 +2,7 @@ package com.style24.admin.biz.service;
 
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Collection;
 import java.util.List;
 
@@ -17,6 +15,7 @@ import com.gagaframework.shoplinker.GagaShoplinkertUtil;
 import com.gagaframework.shoplinker.domain.orderlist.Order;
 import com.gagaframework.shoplinker.env.GagaShoplinkerConstants;
 import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.util.GagaDateUtil;
 import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.admin.biz.dao.TsaOcmDao;
 import com.style24.admin.biz.dao.TsaShoplinkerDao;
@@ -57,7 +56,7 @@ public class TsaShoplinkerService {
 	@Autowired
 	private TsaOcmDao ocmDao;
 
-	private String dateStr; // yymmddhh24mi
+	private String fileAddNm; // 유저번호_년월일시분초
 
 
 	/**
@@ -112,10 +111,8 @@ public class TsaShoplinkerService {
 	 * @since 2021. 5. 20
 	 */
 	public GagaMap createShoplinkerXml(Collection<GagaMap> ecxelGoodsList, ShoplinkerGoods shoplinkerGoods)throws IOException {
-		// 파일명 뒤에 붙일 시간
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
-		dateStr = sdf.format(cal.getTime());
+		// 파일명 추가 네이밍 규칙
+		fileAddNm = TsaSession.getInfo().getUserNo() +"_"+ GagaDateUtil.getTodayDateTime();
 
 		GagaMap rtnMap = new GagaMap();
 		int optionAll=0, optionSucc=0;
@@ -864,7 +861,7 @@ public class TsaShoplinkerService {
 
 			// XML 파일 생성
 			StringBuilder xmlFileName = new StringBuilder();
-			xmlFileName.append(fileNm+"_"+dateStr).append(".xml");
+			xmlFileName.append(fileNm+"_"+fileAddNm).append(".xml");
 			String xmlPath = GagaFileUtil.getConcatenationPath(map.getXmlPath(), xmlFileName.toString());
 			shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
 			String xmlUrl = GagaFileUtil.getConcatenationPath(map.getDomainUrl(), xmlFileName.toString());
@@ -981,9 +978,7 @@ public class TsaShoplinkerService {
 		slkSearch.setRunStat("RUN");
 
 		// 파일명 뒤에 붙일 시간
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
-		dateStr = sdf.format(cal.getTime());
+		fileAddNm = GagaDateUtil.getTodayDateTime();
 
 		int totalPage = 0;
 		int totalCount = 0;
@@ -1077,7 +1072,7 @@ public class TsaShoplinkerService {
 
 			// XML 파일 생성
 			StringBuilder xmlFileName = new StringBuilder();
-			xmlFileName.append("order"+"_"+dateStr).append(".xml");
+			xmlFileName.append("order"+"_"+fileAddNm).append(".xml");
 			String xmlPath = GagaFileUtil.getConcatenationPath(shoplinkerOrder.getXmlPath(), xmlFileName.toString());
 			shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
 			String xmlUrl = GagaFileUtil.getConcatenationPath(shoplinkerOrder.getDomainUrl(), xmlFileName.toString());
@@ -1264,14 +1259,16 @@ public class TsaShoplinkerService {
 		for(ShoplinkerOrder slOrder : slkOrdList) {
 
 			extmallOrder = new ExtmallOrder();
-			extmallOrder.setAllParams(slOrder);
-			extmallOrder.setVendorId(TsaConstants.VendorId.SHOPLINKER.value());	// 샵링커
+			extmallOrder.setVendorId(TsaConstants.VendorId.SHOPLINKER.value());			// 샵링커
 			extmallOrder.setUploadStat(TsaConstants.ExtmallUploadStat.WAIT.value()); 	// 대기
+			extmallOrder.setUploadGb("S");												// 업로드구분(샵링커:S, 엑셀:E)
 			extmallOrder.setRegNo(TsaSession.getInfo().getUserNo());
-			extmallOrder.setUploadGb("S");										// 업로드구분(샵링커:S, 엑셀:E)
+			extmallOrder.setBasicParams(slOrder);										// 기본세팅파람
 
 			try {
 
+				extmallOrder.setDetailParams(slOrder);									// 상세파람
+
 				if( null != slOrder.getDisPriceCoupon() && !slOrder.getDisPriceCoupon().isEmpty()) {
 					extmallOrder.setCpnDcAmt(Integer.parseInt(slOrder.getDisPriceCoupon()));
 				}else {
@@ -1366,9 +1363,7 @@ public class TsaShoplinkerService {
 	 */
 	public void createShoplinkerInvoiceXml(ShoplinkerInvoice shoplinkerInvoice) throws IOException {
 		// 파일명 뒤에 붙일 시간
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
-		dateStr = sdf.format(cal.getTime());
+		fileAddNm = GagaDateUtil.getTodayDateTime();
 
 		ShoplinkerGoods apiHstMap = new ShoplinkerGoods();
 
@@ -1409,7 +1404,7 @@ public class TsaShoplinkerService {
 
 					// XML 파일 생성
 					StringBuilder xmlFileName = new StringBuilder();
-					xmlFileName.append("invoice_"+info.getOrdDtlNo()+"_"+dateStr).append(".xml");
+					xmlFileName.append("invoice_"+info.getOrdDtlNo()+"_"+fileAddNm).append(".xml");
 					String xmlPath = GagaFileUtil.getConcatenationPath(shoplinkerInvoice.getXmlPath(), xmlFileName.toString());
 					shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
 					String xmlUrl = GagaFileUtil.getConcatenationPath(shoplinkerInvoice.getDomainUrl(), xmlFileName.toString());
@@ -1461,7 +1456,7 @@ public class TsaShoplinkerService {
 		// 파일명 뒤에 붙일 시간
 		Calendar cal = Calendar.getInstance();
 		SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
-		dateStr = sdf.format(cal.getTime());
+		fileAddNm = sdf.format(cal.getTime());
 
 		ShoplinkerGoods apiHstMap = new ShoplinkerGoods();
 
@@ -1505,7 +1500,7 @@ public class TsaShoplinkerService {
 
 						// XML 파일 생성
 						StringBuilder xmlFileName = new StringBuilder();
-						xmlFileName.append("invoice_"+info.getOrdDtlNo()+"_"+dateStr).append(".xml");
+						xmlFileName.append("invoice_"+info.getOrdDtlNo()+"_"+fileAddNm).append(".xml");
 						String xmlPath = GagaFileUtil.getConcatenationPath(shoplinkerInvoice.getXmlPath(), xmlFileName.toString());
 						shoplinkerUtil.makeRequestXmlFile(sbRequest.toString(), xmlPath);
 						String xmlUrl = GagaFileUtil.getConcatenationPath(shoplinkerInvoice.getDomainUrl(), xmlFileName.toString());
@@ -1680,8 +1675,8 @@ public class TsaShoplinkerService {
 				+ "</header>\r\n"
 
 				+ "<order>\r\n"
-				+ "<shoplinker_order_id>1234</shoplinker_order_id>\r\n"
-				+ "<mall_order_id><![CDATA[1234]]></mall_order_id>\r\n"
+				+ "<shoplinker_order_id>1234-6</shoplinker_order_id>\r\n"
+				+ "<mall_order_id><![CDATA[1234-6]]></mall_order_id>\r\n"
 				+ "<mall_name><![CDATA[(주)현대홈쇼핑]]></mall_name>\r\n"
 				+ "<baesong_status><![CDATA[송장전송완료]]></baesong_status>\r\n"
 				+ "<order_name><![CDATA[조민혜]]></order_name>\r\n"
@@ -1705,8 +1700,8 @@ public class TsaShoplinkerService {
 				+ "<sale_price>47600</sale_price>\r\n"
 				+ "<supply_price>36176</supply_price>\r\n"
 				+ "<sku><![CDATA[NA/160]]></sku>\r\n"
-				+ "<orderdate>20210618132721</orderdate>\r\n"
-				+ "<order_reg_date>20210618132721</order_reg_date>\r\n"
+				+ "<orderdate>20210622132721</orderdate>\r\n"
+				+ "<order_reg_date>20210622132721</order_reg_date>\r\n"
 				+ "<delivery_invoice>339382561300</delivery_invoice>\r\n"
 				+ "<order_flag>004</order_flag>\r\n"
 				+ "<seller_id>hs009583</seller_id>\r\n"

+ 7 - 16
src/main/java/com/style24/admin/biz/web/TsaShoplinkerController.java

@@ -8,7 +8,6 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +28,7 @@ import com.gagaframework.shoplinker.GagaShoplinkertUtil;
 import com.gagaframework.shoplinker.env.GagaShoplinkerConstants;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
+import com.gagaframework.web.util.GagaDateUtil;
 import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.admin.biz.service.TsaOcmService;
 import com.style24.admin.biz.service.TsaRendererService;
@@ -141,10 +141,6 @@ public class TsaShoplinkerController extends TsaBaseController {
 	@ResponseBody
 	public void shoplinkerGoodsRegister(@RequestParam HashMap<String, String> paramMap) throws IOException {
 
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-		String datestr = sdf.format(cal.getTime());
-
 		ShoplinkerGoods shoplinkerGoods = new ShoplinkerGoods();
 		shoplinkerGoods.setExcelFileNm(paramMap.get("excelFileNm"));
 
@@ -161,7 +157,7 @@ public class TsaShoplinkerController extends TsaBaseController {
 		if( runMap.getRunCnt() < 1 ) {
 			try {
 				// 1. API 호출 이력 저장 시작(실행중 재호출 금지하기 위함)
-				slkSearch.setSid(datestr);
+				slkSearch.setSid(GagaDateUtil.getTodayDateTime());
 				slkSearch.setRegNo(TsaSession.getInfo().getUserNo());
 				shoplinkerService.saveCallApiRunable(slkSearch);
 
@@ -304,9 +300,6 @@ public class TsaShoplinkerController extends TsaBaseController {
 	public void orderReceiveList(@PathVariable("apiStDate") String apiStDate) throws IOException {
 
 		GagaMap rtnMap = new GagaMap();
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-		String datestr = sdf.format(cal.getTime());
 
 		ShoplinkerOrder shoplinkerOrder = new ShoplinkerOrder();
 		shoplinkerOrder.setApiStDate(apiStDate);
@@ -334,11 +327,11 @@ public class TsaShoplinkerController extends TsaBaseController {
 		if( runMap.getRunCnt() < 1 ) {
 			try {
 				// 1. API 호출 이력 저장 시작(실행중 재호출 금지하기 위함)
-				slkSearch.setSid(datestr);
+				slkSearch.setSid(GagaDateUtil.getTodayDateTime());
 				shoplinkerService.saveCallApiRunable(slkSearch);
 
 				// 2. 샵링커 api 호출 샵링커주문수집 등록
-				shoplinkerOrder.setSid(datestr);
+				shoplinkerOrder.setSid(slkSearch.getSid());
 				shoplinkerOrder.setProfiles(profiles);
 				shoplinkerOrder.setCustomerId(env.getProperty("shoplinker.customer_id"));
 				shoplinkerOrder.setShoplinkerId(env.getProperty("shoplinker.shoplinker_id"));
@@ -435,9 +428,6 @@ public class TsaShoplinkerController extends TsaBaseController {
 	@ResponseBody
 	public void shoplinkerSendInvoice(@RequestParam(value = "stDate") String stDate, @RequestParam(value = "edDate") String edDate) throws Exception {
 		GagaMap rtnMap = new GagaMap();
-		Calendar cal = Calendar.getInstance();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-		String datestr = sdf.format(cal.getTime());
 
 		// API 호출 중인건수 있는지 확인
 		ShoplinkerSearch slkSearch = new ShoplinkerSearch();
@@ -447,7 +437,7 @@ public class TsaShoplinkerController extends TsaBaseController {
 		if( runMap.getRunCnt() < 1 ) {
 			try {
 				// 1. API 호출 이력 저장 시작(실행중 재호출 금지하기 위함)
-				slkSearch.setSid(datestr);
+				slkSearch.setSid(GagaDateUtil.getTodayDateTime());
 				slkSearch.setRegNo(TsaSession.getInfo().getUserNo());
 				shoplinkerService.saveCallApiRunable(slkSearch);
 
@@ -660,7 +650,8 @@ public class TsaShoplinkerController extends TsaBaseController {
 	@PostMapping("/check/api_runable")
 	@ResponseBody
 	public ShoplinkerSearch apiRunable(@RequestBody ShoplinkerSearch slkSearch) throws IOException {
-
+		
+		slkSearch.setRegNo(TsaSession.getInfo().getUserNo());
 		ShoplinkerSearch runMap = shoplinkerService.getCallRunableInfo(slkSearch);
 		return runMap;
 	}

+ 8 - 6
src/main/java/com/style24/persistence/domain/ExtmallOrder.java

@@ -774,16 +774,20 @@ public class ExtmallOrder extends TscBaseDomain {
 	private String details;
 	private String telno;
 
-
-
-	public void setAllParams(ShoplinkerOrder ord) {
-
+	// 기본항목세팅(오류가 안나는 값들)
+	public void setBasicParams(ShoplinkerOrder ord) {
 		this.extmallId = ord.getMallId();
 		this.extmallNm = ord.getMallName();
 		this.agentOrderId = ord.getShoplinkerOrderId();
 		this.extmallOrderId = ord.getMallOrderId();
 		this.extmallProdId = ord.getOrderProductId();
 		this.extmallProdNm = ord.getProductName();
+		this.ordRecvDt = ord.getOrderRegDate();
+		this.ordDt = ord.getOrderdate();
+	}
+
+	// 기본항목 외 세팅
+	public void setDetailParams(ShoplinkerOrder ord) {
 		this.goodsCd = ord.getPartnerProductId();
 		this.sku = ord.getSku();
 		this.currPrice = Integer.parseInt(ord.getSalePrice());
@@ -791,8 +795,6 @@ public class ExtmallOrder extends TscBaseDomain {
 		this.ordAmt = Integer.parseInt(ord.getOrderPrice());
 		this.optCd = ord.getSkuMatchCode();
 		this.delvFee = Integer.parseInt(ord.getBaesongBi());
-		this.ordRecvDt = ord.getOrderRegDate();
-		this.ordDt = ord.getOrderdate();
 		this.ordNm = ord.getOrderName();
 		this.ordPhnno = ord.getOrderCel();
 		this.ordTelno = ord.getOrderTel();

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

@@ -147,9 +147,6 @@ public class Goods extends TscBaseDomain {
 
 	private int goodsSq;
 	private String sizeGb;
-	private String shoplinkerColorCd;		// 샵링커용
-	private String shoplinkerFrontGb;		// 샵링커용
-	private Integer shoplinkerCustNo;		// 샵링커용
 
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] arrGoodsCd;

+ 80 - 110
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -361,20 +361,6 @@
 		        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
-		        <if test="searchGb != null and searchGb =='EXTEND'">
-		        INNER JOIN TB_GOODS_EXTEND GE ON G.GOODS_CD =  GE.EXTEND_GOODS_CD
-		                                      AND GE.GOODS_CD IN
-		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-		                                          UPPER(#{item})
-		            </foreach>
-		        </if>
-		        <if test="searchGb != null and searchGb =='MASTER'">
-		        INNER JOIN TB_GOODS_EXTEND GE ON G.GOODS_CD =  GE.GOODS_CD
-		                                      AND GE.EXTEND_GOODS_CD IN
-		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-		                                          UPPER(#{item})
-		            </foreach>
-		        </if>
 		        <if test="searchGb != null and searchGb =='EXCEL'">
 		        INNER JOIN (
 		                     SELECT SEARCH_CD
@@ -481,20 +467,6 @@
 		        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
-		        <if test="searchGb != null and searchGb =='EXTEND'">
-		        INNER JOIN TB_GOODS_EXTEND GE ON G.GOODS_CD =  GE.EXTEND_GOODS_CD
-		                                      AND GE.GOODS_CD IN
-		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-		                                          UPPER(#{item})
-		            </foreach>
-		        </if>
-		        <if test="searchGb != null and searchGb =='MASTER'">
-		        INNER JOIN TB_GOODS_EXTEND GE ON G.GOODS_CD =  GE.GOODS_CD
-		                                      AND GE.EXTEND_GOODS_CD IN
-		            <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-		                                          UPPER(#{item})
-		            </foreach>
-		        </if>
 		        <if test="searchGb != null and searchGb =='EXCEL'">
 		        INNER JOIN (
 		                     SELECT SEARCH_CD
@@ -826,89 +798,87 @@
 	<!-- 상품 목록 기본정보 엑셀  -->
 	<select id="getGoodsInfoExcelList" parameterType="GoodsSearch" resultType="paramMap">
 		/* TsaGoods.getGoodsInfoExcelList */
-		SELECT G.GOODS_CD
-		     , B.BRAND_ENM
-		     , B.BRAND_GRP_NM
-		     , G.BRAND_CD
-		     , G.ITEMKIND_CD
-		     , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = G.SUPPLY_COMP_CD) AS SUPPLY_COMP_CD
-		     , G.SUPPLY_GOODS_CD
-		     , G.GOODS_NUM
-		     , G.GOODS_NM
-		     , G.GOODS_TYPE
-		     , FN_GET_CODE_NM('G008', G.GOODS_STAT) AS GOODS_STAT
-		     , G.LIST_PRICE
-		     , G.CURR_PRICE
-		     , G.DC_RATE
-		     , G.SELF_GOODS_YN
-		     , FN_GET_CODE_NM('G009', G.FORMAL_GB) AS FORMAL_GB
-		     , G.STYLE_YEAR
-		     , FN_GET_CODE_NM('G006', G.SEASON_CD) AS SEASON_CD
-		     , G.ERP_STOCK_LINK_YN
-		     , G.CHANGEABLE_YN
-		     , G.RETURNABLE_YN
-		     , G.SELL_FEE_RATE
-		     , DATE_FORMAT(G.PRICE_UPD_DT, '%Y-%m-%d %H:%i:%S') AS PRICE_UPD_DT
-		     , DATE_FORMAT(G.FRST_CFRM_DT, '%Y-%m-%d %H:%i:%S') AS FRST_CFRM_DT
-		     , 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
-		     , 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
-		     , DATE_FORMAT(G.REG_DT, '%Y-%m-%d %H:%i:%S') AS REG_DT
-		     , G.UPD_NO
-		     , DATE_FORMAT(G.UPD_DT, '%Y-%m-%d %H:%i:%S') AS UPD_DT
-		FROM TB_GOODS G
-		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
-		<if test="searchGb != null and searchGb =='EXTEND'">
-		INNER JOIN TB_GOODS_EXTEND GE ON G.GOODS_CD =  GE.EXTEND_GOODS_CD
-		                              AND GE.GOODS_CD IN
-		    <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-		                              UPPER(#{item})
-		    </foreach>
-		</if>
-		<if test="searchGb != null and searchGb =='MASTER'">
-		INNER JOIN TB_GOODS_EXTEND GE ON G.GOODS_CD =  GE.GOODS_CD
-		                              AND GE.EXTEND_GOODS_CD IN
-		    <foreach collection="conditionList" item="item" index="index"  open="(" close=")" separator=",">
-		                          UPPER(#{item})
-		    </foreach>
-		</if>
-		<if test="searchGb != null and searchGb =='EXCEL'">
-		INNER JOIN (
-		             SELECT SEARCH_CD
-		                  , TMP_DISP_ORD
-		             FROM (
+		SELECT Q.*
+		     , IFNULL(GB.PC_CURR_PRICE, Q.CURR_PRICE)  AS BENEFIT_PRICE
+		FROM (
+		      SELECT G.GOODS_CD
+		           , B.BRAND_ENM
+		           , B.BRAND_GRP_NM
+		           , G.BRAND_CD
+		           , G.ITEMKIND_CD
+		           , (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = G.SUPPLY_COMP_CD) AS SUPPLY_COMP_CD
+		           , G.SUPPLY_GOODS_CD
+		           , G.GOODS_NUM
+		           , G.GOODS_NM
+		           , G.GOODS_TYPE
+		           , FN_GET_CODE_NM('G008', G.GOODS_STAT) AS GOODS_STAT
+		           , G.LIST_PRICE
+		           , G.CURR_PRICE
+		          -- , G.DC_RATE
+		           , G.SELF_GOODS_YN
+		           , FN_GET_CODE_NM('G009', G.FORMAL_GB) AS FORMAL_GB
+		           , G.STYLE_YEAR
+		           , FN_GET_CODE_NM('G006', G.SEASON_CD) AS SEASON_CD
+		           , G.ERP_STOCK_LINK_YN
+		           , G.CHANGEABLE_YN
+		           , G.RETURNABLE_YN
+		           , G.SELL_FEE_RATE
+		           , DATE_FORMAT(G.PRICE_UPD_DT, '%Y-%m-%d %H:%i:%S') AS PRICE_UPD_DT
+		           , DATE_FORMAT(G.FRST_CFRM_DT, '%Y-%m-%d %H:%i:%S') AS FRST_CFRM_DT
+		           , 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
+		           , 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
+		           , DATE_FORMAT(G.REG_DT, '%Y-%m-%d %H:%i:%S') AS REG_DT
+		           , G.UPD_NO
+		           , DATE_FORMAT(G.UPD_DT, '%Y-%m-%d %H:%i:%S') AS UPD_DT
+		           <choose>
+		           <when test="searchGb != null and searchGb =='EXCEL'">
+		           , SD.TMP_DISP_ORD
+		           </when>
+		           <otherwise>
+		           , 0 AS TMP_DISP_ORD
+		           </otherwise>
+		           </choose>
+		      FROM TB_GOODS G
+		      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
+		      <if test="searchGb != null and searchGb =='EXCEL'">
+		      INNER JOIN (
 		                   SELECT SEARCH_CD
-		                        , MIN(DISP_ORD) AS TMP_DISP_ORD
-		                   FROM TB_SEARCH_DATA
-		                   WHERE REG_NO = #{regNo}
-		                   GROUP BY SEARCH_CD) T
-		          ) SD
-		           ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
-		                 OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
-		                <if test="mdNo != null and mdNo != ''">
-		                AND G.BRAND_CD IN (
-		                                   SELECT DISTINCT BRAND_CD
-		                                   FROM TB_BRAND_MD
-		                                   WHERE MD_NO = CAST(#{mdNo} AS UNSIGNED)
-		                                  )
-		               </if>
-		              )
-		</if>
-		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, G.GOODS_CD 
-		</if>
-		<if test="searchGb == null or searchGb =='EXCEL'">
-		ORDER BY SD.TMP_DISP_ORD, G.GOODS_CD
-		</if>
-		LIMIT #{pageable.limitStartRow} ,  #{pageable.pageSize}
+		                        , TMP_DISP_ORD
+		                   FROM (
+		                         SELECT SEARCH_CD
+		                              , MIN(DISP_ORD) AS TMP_DISP_ORD
+		                         FROM TB_SEARCH_DATA
+		                         WHERE REG_NO = #{regNo}
+		                         GROUP BY SEARCH_CD) T
+		                ) SD
+		                 ON ( (G.GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')
+		                       OR G.SUPPLY_GOODS_CD LIKE CONCAT(SD.SEARCH_CD,'%')) 
+		                      <if test="mdNo != null and mdNo != ''">
+		                      AND G.BRAND_CD IN (
+		                                         SELECT DISTINCT BRAND_CD
+		                                         FROM TB_BRAND_MD
+		                                         WHERE MD_NO = CAST(#{mdNo} AS UNSIGNED)
+		                                        )
+		                     </if>
+		                    )
+		      </if>
+		      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, G.GOODS_CD 
+		      </if>
+		      <if test="searchGb != null and searchGb =='EXCEL'">
+		      ORDER BY SD.TMP_DISP_ORD, G.GOODS_CD
+		      </if>
+		      ) Q
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GB ON Q.GOODS_CD = GB.GOODS_CD AND GB.CUST_GB = 'G100_00'
 	</select>
 	
 	<!-- 상품 정보 -->

+ 31 - 27
src/main/java/com/style24/persistence/mybatis/shop/TsaShoplinker.xml

@@ -44,7 +44,9 @@
 			, RUN_STDT
 			, RUN_EDDT
 			, TXT
-			, (SELECT COUNT(1) FROM SHOPLINKER_RUNABLE S WHERE S.API_TYPE = A.API_TYPE AND S.RUN_EDDT IS NULL ) AS RUN_CNT
+			, (SELECT COUNT(1) FROM SHOPLINKER_RUNABLE S WHERE S.API_TYPE = A.API_TYPE AND S.RUN_EDDT IS NULL
+				<if test='apiType != null and apiType == "GOODS"'>AND REG_NO = #{regNo}</if>
+			  ) AS RUN_CNT
 			, (SELECT COUNT(1) FROM SHOPLINKER_ORDER S WHERE S.EXTMALL_REG_YN = 'N' AND S.SKU_MATCH_CODE != '') AS REMAIN_EXT_CNT
 			, (SELECT COUNT(1) FROM TB_EXTMALL_ORDER_UPLOAD WHERE UPLOAD_STAT = 'G021_00' AND UPLOAD_GB = 'S') AS REMAIN_STYLE_CNT
 		FROM SHOPLINKER_RUNABLE A
@@ -803,23 +805,21 @@
 	<!-- 재고전송-목록 건수 -->
 	<select id="getStockListCount" parameterType="ShoplinkerSearch" resultType="int">
 		/* ShoplinkerGoods.getStockListCount */
-		select count(1) from (
+		SELECT COUNT(1) FROM (
 			SELECT
-				A.GOODS_CD
-				, A.GOODS_NM
-				, A.REG_DT
-				, B.OPT_CD
-				, B.OPT_CD1
-				, B.OPT_CD2
-				, VS.CURR_STOCK_QTY AS QUANTITY
-			FROM TB_GOODS A
-				INNER JOIN TB_OPTION B ON A.GOODS_CD = B.GOODS_CD
-				INNER JOIN VW_STOCK VS ON A.GOODS_CD = VS.GOODS_CD AND B.OPT_CD = VS.OPT_CD
-			WHERE A.SELF_GOODS_YN = 'Y'
-			LIMIT 100
+				A.*
+				, B.GOODS_NM
+				, C.OPT_CD1
+				, C.OPT_CD2
+			FROM
+				SHOPLINKER_SYNC_HST A
+				INNER JOIN TB_GOODS B ON A.GOODS_CD = B.GOODS_CD
+				INNER JOIN TB_OPTION C ON A.GOODS_CD = C.GOODS_CD AND A.OPT_CD = C.OPT_CD
+			WHERE A.API_TYPE = 'STOCK'
+			ORDER BY A.REG_DT DESC, A.GOODS_CD, A.OPT_CD
 		) A
 		WHERE 1=1
-		<!-- <include refid="getSlkOrderListCondition_sql"/> -->
+		<include refid="getListCondition_sql"/>
 
 	</select>
 
@@ -829,21 +829,25 @@
 		SELECT * FROM
 		(
 			SELECT
-				A.GOODS_CD
-				, A.GOODS_NM
+				A.API_TYPE
+				, A.API_RESULT
+				, A.API_MESSAGE
+				, A.GOODS_CD
+				, A.OPT_CD
+				, A.QTY as QUANTITY
 				, A.REG_DT
-				, B.OPT_CD
-				, B.OPT_CD1
-				, B.OPT_CD2
-				, VS.CURR_STOCK_QTY AS QUANTITY
-			FROM TB_GOODS A
-				INNER JOIN TB_OPTION B ON A.GOODS_CD = B.GOODS_CD
-				INNER JOIN VW_STOCK VS ON A.GOODS_CD = VS.GOODS_CD AND B.OPT_CD = VS.OPT_CD
-			WHERE A.SELF_GOODS_YN = 'Y'
-			LIMIT 100
+				, B.GOODS_NM
+				, C.OPT_CD1
+				, C.OPT_CD2
+			FROM
+				SHOPLINKER_SYNC_HST A
+				INNER JOIN TB_GOODS B ON A.GOODS_CD = B.GOODS_CD
+				INNER JOIN TB_OPTION C ON A.GOODS_CD = C.GOODS_CD AND A.OPT_CD = C.OPT_CD
+			WHERE A.API_TYPE = 'STOCK'
+			ORDER BY A.REG_DT DESC, A.GOODS_CD, A.OPT_CD
 		) A
 		WHERE 1=1
-		<!-- <include refid="getSlkOrderListCondition_sql"/> -->
+		<include refid="getListCondition_sql"/>
 
 		LIMIT #{pageable.limitStartRow} ,  #{pageable.pageSize}
 	</select>

+ 0 - 17
src/main/resources/config/application.yml

@@ -14,15 +14,6 @@ spring:
 
 server.error.whitelabel.enabled: false
 
-# 사방넷 API
-sabangnet:
-    wivis:
-        admin.id: hohomomo00
-        auth.key: TMYP5CEPHyuEx7K4xFPTAXPZd65NT88MyV
-    flyingtiger:
-        admin.id: js5353
-        auth.key: 36XBSHE2KW4MPBr3ZuT5FRF34MK9NK4uP
-
 # Instagram
 instagram:
     api.url: https://api.instagram.com/v1
@@ -35,14 +26,6 @@ naver:
     clientSecret: jwRNdDbEBG
     shortUrl: https://openapi.naver.com/v1/util/shorturl
 
-# SPEEDY Image Upload
-speedy:
-    ftp:
-        host: fileupload.cdn.cloudn.co.kr
-        port: 21
-        username: speedy_image-wivismall
-        pwd: wZ31jS_!@
-
 # 네이버페이 API
 naverPay:
     partnerId: np_ktptw906068

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

@@ -471,7 +471,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) {

+ 1 - 1
src/main/webapp/WEB-INF/views/shoplinker/ShoplinkerOrderForm.html

@@ -366,7 +366,7 @@
 
 		var testDate = Number($("#orderCollectionForm input[name=apiStDate]").val().replaceAll("-", ""));
 		if( testDate < 20210401 || 20210515 < testDate){
-			mcxDialog.alert("※ 테스트 주문수집시 ※<br>실제운영 주문건을 가져오므로 4월부터 ~ 5/5 사이 날짜로 조회해주세요.");
+			mcxDialog.alert("※ 테스트 주문수집시 ※<br>실제운영 주문건을 가져오므로 4월부터 ~ 5/15 사이 날짜로 조회해주세요.");
 			return;
 		}