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

주문번호단위로 사은품 출고 여부 체크 로직 추가

jsh77b 4 лет назад
Родитель
Сommit
046cd3b2fd

+ 11 - 2
src/main/java/com/style24/batch/biz/dao/TsbWmsDeliveryDao.java

@@ -280,7 +280,7 @@ public interface TsbWmsDeliveryDao {
 	 * @author moon
 	 * @since 2021. 07. 12
 	 */
-	Collection<Delivery> getWmsOrdDtlNoList(Delivery delivery);		
+	Collection<Delivery> getWmsOrdDtlNoList(Delivery delivery);
 	
 	/**
 	 * 입고결과 아이템 조회 
@@ -289,6 +289,15 @@ public interface TsbWmsDeliveryDao {
 	 * @author moon
 	 * @since 2021. 07. 12
 	 */
-	Collection<Delivery> getWmsOrdDtlItemList(Delivery delivery);			
+	Collection<Delivery> getWmsOrdDtlItemList(Delivery delivery);
+	
+	/**
+	 * 주문번호단위로 사은품 출고 여부 체크
+	 * @param Delivery
+	 * @return int
+	 * @author jsh77b
+	 * @since 2021. 10. 27
+	 */
+	int getWmsOrdFreeGiftCnt(Delivery delivery);
 	
 }

+ 14 - 10
src/main/java/com/style24/batch/biz/service/TsbWmsDeliveryService.java

@@ -343,14 +343,15 @@ public class TsbWmsDeliveryService {
 	public void insertWmsDelivery(Collection<Delivery> list, Collection<Delivery> giftList) {
 
 		// TB_IF_DeliveryOrder
-		String uuid = UUID.randomUUID().toString();
-		Delivery dataM = list.iterator().next();	
+		String uuid 	= UUID.randomUUID().toString();
+		Delivery dataM 	= list.iterator().next();	
 
 		dataM.setOrderguid(uuid);
 
 		wmsDeliveryDao.insertWmsTbIfDeliveryOrder(dataM);
+		
 		Integer ordPk = dataM.getDeliveryorderno();
-		String exchGb = dataM.getShippingtypecd(); // 10:일반, 20:  교환
+		String exchGb = dataM.getShippingtypecd(); // 10:일반, 20:교환
 		
 		log.info("ordPk: " + ordPk);
 		
@@ -362,18 +363,21 @@ public class TsbWmsDeliveryService {
 			wmsDeliveryDao.insertWmsTbIfDeliveryOrderItem(data);
 		}
 		
-		// 교환정보
+		// 일반주문일때 사은품 지급(교환주무제외)
 		if ("10".equals(exchGb)) {
-			for (Delivery gift : giftList) {
-				gift.setDeliveryorderno(ordPk);
-				gift.setIfyn("N");
-				wmsDeliveryDao.insertWmsTbIfDeliveryOrderItem(gift);
+			if (giftList.size() > 0) {
+				// 2021.10.27 사은품 출고여부 체크 해당주문번호로 사은품이 1개라도 출고되었으면 출고안됨
+				if (wmsDeliveryDao.getWmsOrdFreeGiftCnt(dataM) < 1) {
+					for (Delivery gift : giftList) {
+						gift.setDeliveryorderno(ordPk);
+						gift.setIfyn("N");
+						wmsDeliveryDao.insertWmsTbIfDeliveryOrderItem(gift);
+					}
+				}
 			}
 		}
-		
 	}
 	
-	
 	/**
 	 * WMS_IF 회수요청 등록
 	 * @param Delivery

+ 12 - 0
src/main/java/com/style24/persistence/mybatis/wms/TsbWmsDelivery.xml

@@ -660,6 +660,18 @@
 		   AND B.IfStat    = '2' -- 회수완료
 		   AND A.RecallNo  = #{recallno}
 	</select>
+	
+	<!-- 2021.10.27 주문번호단위로 사은품 출고 여부 체크 -->	
+	<select id="getWmsOrdFreeGiftCnt" parameterType="Delivery" resultType="int">
+		/* TsbWmsDelivery.getWmsOrdFreeGiftCnt */
+		SELECT COUNT(1)
+		FROM   dbo.TB_IF_DeliveryOrder DO
+		INNER  JOIN dbo.TB_IF_DeliveryOrderItem DOI
+		ON     DO.DeliveryOrderNo = DOI.DeliveryOrderNo 
+		WHERE  1=1
+		AND    DO.OrderNo = #{orderNo}
+		AND    DOI.GiftYn = 'Y'
+	</select>
 		
 		
 </mapper>