Explorar o código

WMS 입고 관련

eskim %!s(int64=5) %!d(string=hai) anos
pai
achega
4b3c8d5e70
Modificáronse 20 ficheiros con 516 adicións e 37 borrados
  1. 10 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java
  2. 14 0
      style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java
  3. 17 2
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java
  4. 37 0
      style24.admin/src/main/java/com/style24/persistence/domain/WmsGoods.java
  5. 46 1
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml
  6. 4 4
      style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsIncomelotForm.html
  7. 57 0
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbCommonDao.java
  8. 8 0
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java
  9. 4 4
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java
  10. 19 3
      style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsIncomelotJob.java
  11. 15 1
      style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsMeasurementJob.java
  12. 57 0
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbCommonService.java
  13. 21 6
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbGoodsService.java
  14. 7 7
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java
  15. 4 1
      style24.batch/src/main/java/com/style24/persistence/domain/GoodsIfIncomelot.java
  16. 2 2
      style24.batch/src/main/java/com/style24/persistence/domain/GoodsIfIncomelotitem.java
  17. 33 0
      style24.batch/src/main/java/com/style24/persistence/domain/GoodsIfProductsku.java
  18. 64 0
      style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbCommon.xml
  19. 68 0
      style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml
  20. 29 6
      style24.batch/src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml

+ 10 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -29,6 +29,7 @@ import com.style24.persistence.domain.Option;
 import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.Video;
 import com.style24.persistence.domain.WmsColorMapping;
+import com.style24.persistence.domain.WmsGoods;
 import com.style24.persistence.domain.WmsSeasonMapping;
 import com.style24.persistence.domain.WmsStyleYearMapping;
 
@@ -1068,4 +1069,13 @@ public interface TsaGoodsDao {
 	public void updateFreeGoods(FreeGoods freeGoods);
 
 
+
+	/**
+	 * WMS입고상품관리 목록 조회
+	 * @param goodsSearch
+	 * @return Collection<WmsGoods>
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	Collection<WmsGoods> getGoodsWmsIncomelotList(WmsGoods wmsGoods);
 }

+ 14 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -47,6 +47,7 @@ import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.SearchData;
 import com.style24.persistence.domain.Video;
 import com.style24.persistence.domain.WmsColorMapping;
+import com.style24.persistence.domain.WmsGoods;
 import com.style24.persistence.domain.WmsSeasonMapping;
 import com.style24.persistence.domain.WmsStyleYearMapping;
 
@@ -2654,4 +2655,17 @@ public class TsaGoodsService {
 
 	}
 
+	/**
+	 * WMS입고상품관리 목록 조회
+	 *
+	 * @param goodsSearch
+	 * @return Collection<WmsGoods>
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	public Collection<WmsGoods> getGoodsWmsIncomelotList(WmsGoods wmsGoods) {
+		return goodsDao.getGoodsWmsIncomelotList(wmsGoods);
+	}
+
+
 }

+ 17 - 2
style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -57,6 +57,7 @@ import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.User;
 import com.style24.persistence.domain.Video;
 import com.style24.persistence.domain.WmsColorMapping;
+import com.style24.persistence.domain.WmsGoods;
 import com.style24.persistence.domain.WmsSeasonMapping;
 import com.style24.persistence.domain.WmsStyleYearMapping;
 
@@ -1243,7 +1244,7 @@ public class TsaGoodsController extends TsaBaseController {
 	 * @author eskim
 	 * @since 2020. 10. 16
 	 */
-	@GetMapping("/wms/instock/form")
+	@GetMapping("/wms/incomelot/form")
 	public ModelAndView wmsInstockForm() {
 		ModelAndView mav = new ModelAndView();
 
@@ -1256,11 +1257,25 @@ public class TsaGoodsController extends TsaBaseController {
 		// 품목
 		mav.addObject("itemkindList", rendererService.getAllItemkindList());
 
-		mav.setViewName("goods/GoodsWmsInstockForm");
+		mav.setViewName("goods/GoodsWmsIncomelotForm");
 
 		return mav;
 	}
 
+	/**
+	 * WMS입고상품관리 목록 조회
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	@PostMapping("/wms/incomelot/list")
+	@ResponseBody
+	public Collection<WmsGoods> getGoodsWmsIncomelotList(@RequestBody WmsGoods wmsGoods) {
+
+		return goodsService.getGoodsWmsIncomelotList(wmsGoods);
+	}
+
 	/**
 	 * 상품품목변경관리 화면
 	 *

+ 37 - 0
style24.admin/src/main/java/com/style24/persistence/domain/WmsGoods.java

@@ -0,0 +1,37 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * wms 상품 정보 Domain
+ *
+ * @author eskim
+ * @since 2021. 01. 04
+ */
+@SuppressWarnings("serial")
+@Data
+public class WmsGoods extends TscBaseDomain {
+
+	private Integer productNo;		//wms상품번호
+	private int productCode;		//wms상품코드
+	private String productName;		//상품명
+	private String skucode;			//옵션번호
+	private int normalQty;			//일반수량
+	private int brokenQty;			//불량수량
+	private int totalQty;			//총수량
+	private String modelNo;			//모델번호
+	private int providerNo;			//공급처번호
+	private String providerName;	//공급처명
+	private int brandNo;			//브랜드번호
+	private String brandName;		//브랜드명
+	private String goodsRegDt;		//상품등록일시
+	private String goodsRegGb;		//상품등록구분(G:상품, F:사은품)
+
+	private String supplyCompCd;
+	private String brandCd;
+	private String stDate;
+	private String edDate;
+
+}

+ 46 - 1
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -3648,5 +3648,50 @@
 		  , UPD_NO = #{updNo}
 		  , UPD_DT = NOW()
 		WHERE PRODUCT_NO = #{productNo}
-	</update>
+	</update>
+	
+	<!-- WMS입고상품 목록 -->
+	<select id="getGoodsWmsIncomelotList" parameterType="WmsGoods" resultType="WmsGoods">
+		/* TsaGoods.getGoodsWmsIncomelotList */
+		SELECT A.PRODUCT_NO
+		     , A.PRODUCT_CODE
+		     , A.PRODUCT_NAME
+		     , A.SKUCODE
+		     , A.NORMAL_QTY
+		     , A.BROKEN_QTY
+		     , A.TOTAL_QTY
+		     , A.MODEL_NO
+		     , A.PROVIDER_NO
+		     , A.PROVIDER_NAME
+		     , A.BRAND_NO
+		     , A.BRAND_NAME
+		     , A.GOODS_REG_DT
+		     , A.GOODS_REG_GB
+		     , FN_GET_USER_NM(A.REG_NO) AS REG_NM
+		     , DATE_FORMAT(A.REG_DT,'%Y%m%d%H%i%S') AS REG_DT
+		     , FN_GET_USER_NM(A.UPD_NO) AS UPD_NM
+		     , DATE_FORMAT(A.UPD_DT,'%Y%m%d%H%i%S') AS UPD_DT
+		FROM TB_WMS_GOODS A
+		LEFT OUTER JOIN TB_BRAND B ON A.BRAND_NO = B.BRAND_NO 
+		LEFT OUTER JOIN TB_SUPPLY_COMPANY S ON A.PROVIDER_NO = S.PROVIDER_NO
+		WHERE GOODS_REG_GB IS NULL   /* 온라인 미등록 상품 */
+		<if test="modelNo != null and modelNo != ''">
+		AND UPPER(A.MODEL_NO) = CONCAT('%',UPPER(#{modelNo}),'%') 
+		</if>
+		<if test="stDate != null and stDate != ''">
+		AND A.REG_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		</if>
+		<if test="edDate != null and edDate != ''">
+		<![CDATA[
+		AND A.REG_DT < DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		]]>
+		</if>
+		<if test="supplyCompCd != null and supplyCompCd != ''">
+		AND UPPER(S.SUPPLY_COMP_CD) = UPPER(#{supplyCompCd}) 
+		</if>
+		<if test="brandCd != null and brandCd != ''">
+		AND UPPER(B.BRAND_CD) = UPPER(#{brandCd}) 
+		</if>
+		ORDER BY A.UPD_DT DESC
+	</select>
 </mapper>

+ 4 - 4
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsInstockForm.html → style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsIncomelotForm.html

@@ -3,7 +3,7 @@
 	xmlns:th="http://www.thymeleaf.org">
 <!--
  *******************************************************************************
- * @source  : GoodsWmsInstockForm.html
+ * @source  : GoodsWmsIncomelotForm.html
  * @desc    : WMS입고상품관리 화면
  *============================================================================
  * SISUN
@@ -22,7 +22,7 @@
 		<!-- 메뉴 설명 -->
 		<div class="infoBox menu-desc">
 		</div>
-		<form id="goodsUnregisterListForm" name="goodsUnregisterListForm" action="#" th:action="@{'/goods/unregister/list'}">
+		<form id="goodsUnregisterListForm" name="goodsUnregisterListForm" action="#" th:action="@{'/goods/wms/incomelot/list'}">
 		<input type="hidden" id="searchGb" name="searchGb" />
 		<input type="hidden" id="dateGbn" name="dateGbn" value="R" />
  		<!-- 패널 영역1 -->
@@ -49,9 +49,9 @@
 								<option value="">[전체]</option>
 							</select>
 						</td>
-						<th>상품코드<i class="star"></i></th>
+						<th>모델번호<i class="star"></i></th>
 						<td>
-							<input id="goodsCd" name=goodsCd type="text" class="w150"  maxlength="20"/>
+							<input id="modelNo" name=modelNo type="text" class="w150"  maxlength="20"/>
 						</td>
 					</tr>
 					<tr>

+ 57 - 0
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbCommonDao.java

@@ -0,0 +1,57 @@
+package com.style24.batch.biz.dao;
+
+import org.springframework.stereotype.Repository;
+
+import com.style24.core.support.annotation.ShopDs;
+
+/**
+ * 공통 Dao
+ *
+ * @author eskim
+ * @since 2021. 01. 04
+ */
+@ShopDs
+@Repository
+public interface TsbCommonDao {
+
+//	/**
+//	 * 시퀀스 조회
+//	 *
+//	 * @param value - 시퀀스명
+//	 * @return
+//	 * @author gagamel
+//	 * @since 2019. 8. 5
+//	 */
+//	String getNextSequence(String value);
+
+	/**
+	 * WMS 연동 여부
+	 *
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	String getWmsSyncYn();
+
+//	/**
+//	 * 기본답변문구내용 조회
+//	 *
+//	 * @param basicAnswer - 답변일련번호
+//	 * @return
+//	 * @author gagamel
+//	 * @since 2020. 3. 30
+//	 */
+//	TsbBasicAnswer getBasicAnswer(TsbBasicAnswer basicAnswer);
+//
+//	/**
+//	 * 공통코드 목록
+//	 *
+//	 * @param commoncode - 공통코드
+//	 * @return Collection<TsbCommonCode> - 공통코드
+//	 * @author  card007
+//	 * @since  2020. 07. 07
+//	 */
+//	Collection<TsbCommonCode> getCommonCodeList(TsbCommonCode commoncode);
+
+}

+ 8 - 0
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java

@@ -265,4 +265,12 @@ public interface TsbGoodsDao {
 	 * @since 2021. 01. 01
 	 */
 	void saveGoodsIfIncomelotitem(GoodsIfIncomelotitem goodsIfIncomelotitem);
+
+	/**
+	 * 온라인 입고 상품 처리
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	void saveWmsGoods(GoodsIfIncomelot goodsIfIncomelot);
 }

+ 4 - 4
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java

@@ -23,16 +23,16 @@ public interface TsbWmsGoodsDao {
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	Collection<GoodsIfMeasurement> getWmsMeasurementList();
+	Collection<GoodsIfMeasurement> getWmsMeasurementList(String jobdate);
 
 	/**
-	 * 입고 목록 
+	 * 입고 목록
 	 *
 	 * @param goods
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	Collection<GoodsIfIncomelot> getWmsIncomelotList();
+	Collection<GoodsIfIncomelot> getWmsIncomelotList(String jobdate);
 
 	/**
 	 * 입고 상품목록
@@ -41,6 +41,6 @@ public interface TsbWmsGoodsDao {
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	Collection<GoodsIfIncomelotitem> getWmsIncomelotitemList();
+	Collection<GoodsIfIncomelotitem> getWmsIncomelotitemList(String jobdate);
 
 }

+ 19 - 3
style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsIncomelotJob.java

@@ -4,11 +4,14 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbCommonService;
 import com.style24.batch.biz.service.TsbGoodsService;
 import com.style24.persistence.domain.GoodsIfIncomelotitem;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.util.GagaDateUtil;
+
 /**
  * WMS 입고 연용
  *
@@ -22,12 +25,22 @@ public class TsbGoodsWmsIncomelotJob extends TsbAbstractJob<GoodsIfIncomelotitem
 	@Autowired
 	private TsbGoodsService goodsService;
 
+	@Autowired
+	private TsbCommonService commonService;
+
 	private int succCnt = 0;
 	private int failCnt = 0;
+	private String jobdate = "";
 
 	@Override
 	public GoodsIfIncomelotitem read() throws Exception {
 
+		// WMS 동기화 옵션 여부 확인
+		String wmsSyncYn = commonService.getWmsSyncYn();
+		if ("N".equals(wmsSyncYn)) {
+			log.info("WMS 정보 동기화 미실행 {}, 연동여부 : {}", GagaDateUtil.getToday("yyyy-MM-dd HH:mm:ss"), wmsSyncYn);
+			return null;
+		}
 		GoodsIfIncomelotitem goodsIfIncomelotitem = new GoodsIfIncomelotitem();
 		return goodsIfIncomelotitem;
 	}
@@ -40,11 +53,14 @@ public class TsbGoodsWmsIncomelotJob extends TsbAbstractJob<GoodsIfIncomelotitem
 	@Override
 	public GoodsIfIncomelotitem write(GoodsIfIncomelotitem goodsIfIncomelotitem) throws Exception {
 
+		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
+
 		//wms 입고 정보 처리
-		goodsService.saveGoodsWmsIncomelot();
+		goodsService.saveGoodsWmsIncomelot(jobdate);
+
+		//온라인 입고 상품 처리
+		goodsService.saveWmsGoods(jobdate);
 
-		//온라인 입고 처리
-		//goodsService.saveGoodsWms();
 		return goodsIfIncomelotitem;
 	}
 

+ 15 - 1
style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsMeasurementJob.java

@@ -4,11 +4,14 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbCommonService;
 import com.style24.batch.biz.service.TsbGoodsService;
 import com.style24.persistence.domain.GoodsIfMeasurement;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.util.GagaDateUtil;
+
 /**
  * WMS 실측사이즈 연용
  *
@@ -22,12 +25,22 @@ public class TsbGoodsWmsMeasurementJob extends TsbAbstractJob<GoodsIfMeasurement
 	@Autowired
 	private TsbGoodsService goodsService;
 
+	@Autowired
+	private TsbCommonService commonService;
+
 	private int succCnt = 0;
 	private int failCnt = 0;
+	private String jobdate = "";
 
 	@Override
 	public GoodsIfMeasurement read() throws Exception {
 
+		// WMS 동기화 옵션 여부 확인
+		String wmsSyncYn = commonService.getWmsSyncYn();
+		if ("N".equals(wmsSyncYn)) {
+			log.info("WMS 정보 동기화 미실행 {}, 연동여부 : {}", GagaDateUtil.getToday("yyyy-MM-dd HH:mm:ss"), wmsSyncYn);
+			return null;
+		}
 		GoodsIfMeasurement goodsIfMeasurement = new GoodsIfMeasurement();
 		return goodsIfMeasurement;
 	}
@@ -40,7 +53,8 @@ public class TsbGoodsWmsMeasurementJob extends TsbAbstractJob<GoodsIfMeasurement
 	@Override
 	public GoodsIfMeasurement write(GoodsIfMeasurement goodsIfMeasurement) throws Exception {
 
-		goodsService.saveGoodsWmsMeasurement();
+		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
+		goodsService.saveGoodsWmsMeasurement(jobdate);
 		return goodsIfMeasurement;
 	}
 

+ 57 - 0
style24.batch/src/main/java/com/style24/batch/biz/service/TsbCommonService.java

@@ -0,0 +1,57 @@
+package com.style24.batch.biz.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.style24.batch.biz.dao.TsbCommonDao;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 공통 Service
+ *
+ * @author eskim
+ * @since 2021. 01. 04
+ */
+@Service
+@Slf4j
+public class TsbCommonService {
+
+	@Autowired
+	private TsbCommonDao commonDao;
+//
+//	/**
+//	 * 시퀀스 조회
+//	 *
+//	 * @param sequenceName - 시퀀스명
+//	 * @return String
+//	 * @author gagamel
+//	 * @since 2019. 8. 25
+//	 */
+//	public String getNextSequence(String sequenceName) {
+//		return commonDao.getNextSequence(sequenceName);
+//	}
+
+	/**
+	 * ERP Sync 옵션
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	public String getWmsSyncYn() {
+		return commonDao.getWmsSyncYn();
+	}
+
+//	/**
+//	 * 공통코드 목록
+//	 *
+//	 * @param TsbCommonCode - 공통코드
+//	 * @return Collection<TsbCommonCode> - 공통코드
+//	 * @author card007
+//	 * @since 2020. 07. 07
+//	 */
+//	public Collection<TsbCommonCode> getCommonCodeList(TsbCommonCode commonCode) {
+//		return commonDao.getCommonCodeList(commonCode);
+//	}
+}

+ 21 - 6
style24.batch/src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -354,10 +354,10 @@ public class TsbGoodsService {
 	 * @since 2021. 01. 01
 	 */
 	@Transactional("shopTxnManager")
-	public void saveGoodsWmsMeasurement() {
+	public void saveGoodsWmsMeasurement(String jobdate) {
 
 		// wms 대상건 조회 (등록, 수정건 조회)
-		Collection<GoodsIfMeasurement> goodsMeasurementList = wmsGoodsService.getWmsMeasurementList();
+		Collection<GoodsIfMeasurement> goodsMeasurementList = wmsGoodsService.getWmsMeasurementList(jobdate);
 
 		for (GoodsIfMeasurement goodsMeasurement : goodsMeasurementList) {
 			goodsDao.saveGoodsIfMeasurement(goodsMeasurement);
@@ -372,24 +372,39 @@ public class TsbGoodsService {
 	 * @since 2021. 01. 01
 	 */
 	@Transactional("shopTxnManager")
-	public void saveGoodsWmsIncomelot() {
+	public void saveGoodsWmsIncomelot(String jobdate) {
 
 		// wms 입고목록 조회 (등록, 수정건 조회)
-		Collection<GoodsIfIncomelot> goodsIfIncomelotList = wmsGoodsService.getWmsIncomelotList();
+		Collection<GoodsIfIncomelot> goodsIfIncomelotList = wmsGoodsService.getWmsIncomelotList(jobdate);
 
 		for (GoodsIfIncomelot goodsIfIncomelot : goodsIfIncomelotList) {
 			goodsDao.saveGoodsIfIncomelot(goodsIfIncomelot);
 		}
 
 		// wms 입고상품목록 조회 (등록, 수정건 조회)
-		Collection<GoodsIfIncomelotitem> goodsIfIncomelotitemList = wmsGoodsService.getWmsIncomelotitemList();
+		Collection<GoodsIfIncomelotitem> goodsIfIncomelotitemList = wmsGoodsService.getWmsIncomelotitemList(jobdate);
 
 		for (GoodsIfIncomelotitem goodsIfIncomelotitem : goodsIfIncomelotitemList) {
 			goodsDao.saveGoodsIfIncomelotitem(goodsIfIncomelotitem);
 		}
+	}
 
-		//
+	/**
+	 * 온라인 입고 상품 처리
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 01
+	 */
+	@Transactional("shopTxnManager")
+	public void saveWmsGoods(String jobdate) {
+		GoodsIfIncomelot goodsIfIncomelot = new GoodsIfIncomelot();
+		goodsIfIncomelot.setRegNo(TsbConstants.REG_NO);
+		goodsIfIncomelot.setUpdNo(TsbConstants.REG_NO);
+		goodsIfIncomelot.setJobdate(jobdate);
+		goodsDao.saveWmsGoods(goodsIfIncomelot);
 
 	}
 
+
 }

+ 7 - 7
style24.batch/src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java

@@ -32,8 +32,8 @@ public class TsbWmsGoodsService {
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	public Collection<GoodsIfMeasurement> getWmsMeasurementList() {
-		return wmsGoodsDao.getWmsMeasurementList();
+	public Collection<GoodsIfMeasurement> getWmsMeasurementList(String jobdate) {
+		return wmsGoodsDao.getWmsMeasurementList(jobdate);
 	}
 
 	/**
@@ -43,19 +43,19 @@ public class TsbWmsGoodsService {
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	public Collection<GoodsIfIncomelot> getWmsIncomelotList() {
-		return wmsGoodsDao.getWmsIncomelotList();
+	public Collection<GoodsIfIncomelot> getWmsIncomelotList(String jobdate) {
+		return wmsGoodsDao.getWmsIncomelotList(jobdate);
 	}
 
 	/**
-	 * WMS 입고 상품목록 
+	 * WMS 입고 상품목록
 	 *
 	 * @return
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	public Collection<GoodsIfIncomelotitem> getWmsIncomelotitemList() {
-		return wmsGoodsDao.getWmsIncomelotitemList();
+	public Collection<GoodsIfIncomelotitem> getWmsIncomelotitemList(String jobdate) {
+		return wmsGoodsDao.getWmsIncomelotitemList(jobdate);
 	}
 
 }

+ 4 - 1
style24.batch/src/main/java/com/style24/persistence/domain/GoodsIfIncomelot.java

@@ -5,7 +5,7 @@ import com.style24.persistence.TscBaseDomain;
 import lombok.Data;
 
 /**
- * 상품 입고정보 Domain
+ * 상품 wms 입고정보 Domain
  *
  * @author eskim
  * @since 2021. 01. 01
@@ -22,4 +22,7 @@ public class GoodsIfIncomelot extends TscBaseDomain {
 	private String brandname;	//브랜드명
 	private String dateincome;	//wms생성일
 
+
+	private String jobdate; 	// 작업일 YYYYMMDD
+
 }

+ 2 - 2
style24.batch/src/main/java/com/style24/persistence/domain/GoodsIfIncomelotitem.java

@@ -5,7 +5,7 @@ import com.style24.persistence.TscBaseDomain;
 import lombok.Data;
 
 /**
- * 상품 입고상품정보 Domain
+ * 상품 wms 입고상품정보 Domain
  *
  * @author eskim
  * @since 2021. 01. 01
@@ -19,7 +19,7 @@ public class GoodsIfIncomelotitem extends TscBaseDomain {
 	private int wmsitemno;
 	private String dateincome;	//wms생성일
 	private int productno;	//상품번호
-	private int productcode;	//상품코드
+	private String productcode;	//상품코드
 	private String productname;	//상품명
 	private String skucode;	//옵션번호
 	private int normalqty;	//일반수량

+ 33 - 0
style24.batch/src/main/java/com/style24/persistence/domain/GoodsIfProductsku.java

@@ -0,0 +1,33 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 상품 WMS 옵션재고 Domain
+ *
+ * @author eskim
+ * @since 2021. 01. 04
+ */
+@SuppressWarnings("serial")
+@Data
+public class GoodsIfProductsku extends TscBaseDomain {
+
+	private String skucode;		//옵션번호
+	private String skumodelno;	//옵션모델번호
+	private int productno;		//상품번호
+	private String productcode;	//상품코드
+	private String option1;		//옵션1(색상)
+	private String option2;		//옵션2(사이즈)
+	private String option3;		//옵션3(스타일)-미사용
+	private int sellingstockamount;	//판매재고수량
+	private String sellingstocktypecd;	//판매재고유형
+	private int limitstockamount;		//
+	private String vendorskumodelno;	//업체옵션모델번호
+	private String vendorskucode;		//업체옵션코드
+	private String isvirtualstock;		//
+	private String datevirtualstock;	//
+	private String skucode88;			//88코드
+
+}

+ 64 - 0
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbCommon.xml

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.batch.biz.dao.TsbCommonDao">
+	
+	<!-- 시퀀스 값 조회 -->
+	<select id="getNextSequence" parameterType="String" resultType="String">
+		/* TsbCommon.getNextSequence */
+		SELECT ${value}.NEXTVAL AS SQ
+		FROM   DUAL
+	</select>
+	
+	<!-- WMS 연동 여부 -->
+	<select id="getWmsSyncYn" resultType="String">
+		/* TsbCommon.getWmsSyncYn */
+		SELECT UPPER(NVL(USE_YN,'N')) AS WMS_SYNC_YN
+		FROM TB_COMMON_CODE
+		WHERE CD_GB = 'G077'
+		AND CD = 'WMSSYNCYN'
+	</select>
+	
+	<!-- 기본답변문구 조회 -->
+	<select id="getBasicAnswer" parameterType="TsbBasicAnswer" resultType="TsbBasicAnswer">
+		/* TsbCommon.getBasicAnswer */
+		SELECT ANS_TITLE   --답변제목
+		     , ANS_CONTENT --답변내용
+		FROM   TB_BASIC_ANS
+		WHERE   USE_YN = 'Y'
+		<if test="ansSq != null and ansSq != ''">
+		AND     ANS_SQ = #{ansSq}
+		</if>
+		<if test="kkoCd != null and kkoCd != ''">
+		AND     KKO_CD = #{kkoCd}
+		</if>
+	</select>
+
+	<select id="getCommonCodeList" parameterType="TsbCommonCode" resultType="TsbCommonCode">
+		/* TsbCommon.getCommonCodeList */
+		SELECT CD
+		, CD_NM
+		FROM   TB_COMMON_CODE
+		WHERE  1 = 1
+		<if test="useYn != null and useYn != ''">
+			AND    USE_YN = #{useYn}
+		</if>
+		AND    CD_GB = #{cdGb}
+		<if test="cd != null and cd != ''">
+			AND    CD = #{cd}
+		</if>
+		<if test="cdNm != null and cdNm != ''">
+			AND    CD_NM = #{cdNm}
+		</if>
+		<if test="cdDesc != null and cdDesc != ''">
+			AND    CD_DESC = #{cdDesc}
+		</if>
+		<if test="exceptCds != null and exceptCds != ''">
+			AND    CD NOT IN
+			<foreach collection="exceptCds" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		ORDER  BY CD_GB, DISP_ORD
+	</select>
+	
+</mapper>

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

@@ -1201,4 +1201,72 @@
 		     , UPD_DT = NOW()
 	</insert>
 	
+	<!--WMS 상품 저장-->
+	<insert id="saveWmsGoods" parameterType="GoodsIfIncomelot" >
+		/* TsbGoods.saveWmsGoods */
+		INSERT INTO TB_WMS_GOODS (
+		       PRODUCTNO 
+		     , PRODUCTCODE 
+		     , PRODUCTNAME 
+		     , SKUCODE 
+		     , NORMALQTY 
+		     , BROKENQTY 
+		     , TOTALQTY 
+		     , MODELNO 
+		     , PROVIDERNO
+		     , PROVIDERNAME
+		     , BRANDNO
+		     , BRANDNAME
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT 
+		)
+		SELECT B.PRODUCTNO 
+		     , B.PRODUCTCODE 
+		     , B.PRODUCTNAME 
+		     , B.SKUCODE 
+		     , B.NORMALQTY 
+		     , B.BROKENQTY 
+		     , B.TOTALQTY 
+		     , B.MODELNO 
+		     , A.PROVIDERNO
+		     , A.PROVIDERNAME
+		     , A.BRANDNO
+		     , A.BRANDNAME 
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		FROM TB_IF_INCOMELOT  A
+		INNER JOIN TB_IF_INCOMELOTITEM B ON A.LOTNO = B.LOTNO 
+		WHERE 1 = 1
+		<choose>
+		    <when test='jobdate != null and jobdate != ""'>
+		AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(#{jobdate}, '%Y%m%d'), '%Y%m%d%H%i%S') 
+		<![CDATA[
+		AND A.UPD_DT < DATE_FORMAT(DATE_ADD(DATE_FORMAT(#{jobdate}, '%Y%m%d'), INTERVAL 1 DAY), '%Y%m%d%H%i%S')
+		]]>
+		    </when>
+		    <otherwise>
+		AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		<![CDATA[
+		AND A.UPD_DT < DATE_FORMAT(DATE_ADD(DATE_FORMAT(NOW(), '%Y%m%d'), INTERVAL 1 DAY), '%Y%m%d%H%i%S')
+		]]>
+		    </otherwise>
+		</choose>
+		ON DUPLICATE KEY UPDATE
+		       PRODUCTNAME = IF(GOODS_REG_GB IS NULL, B.PRODUCTNAME, TB_WMS_GOODS.PRODUCTNAME)
+		     , NORMALQTY = IF(GOODS_REG_GB IS NULL, B.NORMALQTY, TB_WMS_GOODS.NORMALQTY)
+		     , BROKENQTY = IF(GOODS_REG_GB IS NULL, B.BROKENQTY, TB_WMS_GOODS.BROKENQTY)
+		     , TOTALQTY = IF(GOODS_REG_GB IS NULL, B.TOTALQTY, TB_WMS_GOODS.TOTALQTY)
+		     , MODELNO = IF(GOODS_REG_GB IS NULL, B.MODELNO, TB_WMS_GOODS.MODELNO)
+		     , PROVIDERNO = IF(GOODS_REG_GB IS NULL, A.PROVIDERNO, TB_WMS_GOODS.PROVIDERNO)
+		     , PROVIDERNAME = IF(GOODS_REG_GB IS NULL, A.PROVIDERNAME, TB_WMS_GOODS.PROVIDERNAME)
+		     , BRANDNO = IF(GOODS_REG_GB IS NULL, A.BRANDNO, TB_WMS_GOODS.BRANDNO)
+		     , BRANDNAME = IF(GOODS_REG_GB IS NULL, A.BRANDNAME, TB_WMS_GOODS.BRANDNAME)
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+	</insert>
+	
 </mapper>

+ 29 - 6
style24.batch/src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml

@@ -21,11 +21,19 @@
 		     , ISUSE
 		     , USERLASTMODIFIED
 		FROM TB_IF_MEASUREMENT
-		WHERE CONVERT(CHAR(8),DATELASTMODIFIED,112) = DATEADD(day,-1, GETDATE())
+		WHERE 1 = 1 
+		<choose>
+		    <when test='jobdate != null and jobdate != ""'>
+		AND CONVERT(CHAR(8),DATELASTMODIFIED,112) = #{jobdate}
+		    </when>
+		    <otherwise>
+		AND CONVERT(CHAR(8),DATELASTMODIFIED,112) = CONVERT(CHAR(8),DATEADD(day,-1, GETDATE()),112)
+		    </otherwise>
+		</choose>
 	</select>
 	
 	<!-- wms 입고 목록   -->
-	<select id="getWmsIncomelotList"  resultType="GoodsIfIncomelot">
+	<select id="getWmsIncomelotList"  parameterType="String" resultType="GoodsIfIncomelot">
 		/* TsbWmsGoods.getWmsIncomelotList */
 		SELECT LOTNO
 		     , PURCHASENO
@@ -35,11 +43,19 @@
 		     , BRANDNAME
 		     , CONVERT(CHAR(19),DATEINCOME,120) AS DATEINCOME  /* yyyy-mm-dd hh:mi:ss */
 		FROM TB_IF_INCOMELOT
-		WHERE CONVERT(CHAR(8),DATEINCOME,112) = DATEADD(day,-1, GETDATE())
+		WHERE 1 = 1 
+		<choose>
+		    <when test='jobdate != null and jobdate != ""'>
+		AND CONVERT(CHAR(8),DATEINCOME,112) = #{jobdate}
+		    </when>
+		    <otherwise>
+		AND CONVERT(CHAR(8),DATEINCOME,112) = CONVERT(CHAR(8),DATEADD(day,-1, GETDATE()),112)
+		    </otherwise>
+		</choose>
 	</select>
 	
 	<!-- wms 입고 상품목록   -->
-	<select id="getWmsIncomelotitemList"  resultType="GoodsIfIncomelotitem">
+	<select id="getWmsIncomelotitemList" parameterType="String"  resultType="GoodsIfIncomelotitem">
 		/* TsbWmsGoods.getWmsIncomelotitemList */
 		SELECT LOTNO
 		     , ITEMNO
@@ -53,8 +69,15 @@
 		     , BROKENQTY
 		     , TOTALQTY
 		FROM TB_IF_INCOMELOTITEM
-		WHERE CONVERT(CHAR(8),DATEINCOME,112) = DATEADD(day,-1, GETDATE())
+		WHERE 1 = 1 
+		<choose>
+		    <when test='jobdate != null and jobdate != ""'>
+		AND CONVERT(CHAR(8),DATEINCOME,112) = #{jobdate}
+		    </when>
+		    <otherwise>
+		AND CONVERT(CHAR(8),DATEINCOME,112) = CONVERT(CHAR(8),DATEADD(day,-1, GETDATE()),112)
+		    </otherwise>
+		</choose>
 	</select>
-	
 
 </mapper>