ソースを参照

09.14 품절배치 수정

tsit05 4 年 前
コミット
4f7d76068c

+ 3 - 2
src/main/java/com/style24/batch/biz/job/delivery/TsbDeliveryOrderJob.java

@@ -315,12 +315,13 @@ public class TsbDeliveryOrderJob extends TsbAbstractJob<Collection<Delivery>, Co
 							} else {
 								for (Delivery wmsOrdDtlData : ordDtlNoList) {
 									// log.info("라스트  N   DTL_NO"+ wmsOrdDtlData.getOrdDtlNo());
-
+									
 									wmsOrdDtlData.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
 									// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
 									wmsOrdDtlData.setDelvArGb("N"); // 거절
 									wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty());
-									deliveryService.saveDeliveryAssign(wmsOrdDtlData);
+									// 출고거부 프로세스  중지(품절대상 일까지 출고처 지정  취소상품 있을경우 출고처 지정될수 있게)
+									//deliveryService.saveDeliveryAssign(wmsOrdDtlData);
 								}
 							}
 						}

+ 14 - 12
src/main/java/com/style24/batch/biz/job/delivery/TsbDeliveryOrderRsltJob.java

@@ -104,18 +104,20 @@ public class TsbDeliveryOrderRsltJob extends TsbAbstractJob<Delivery, Delivery,
 		for(Delivery ordNo : ordNolist) {
 			
 			Delivery info = deliveryService.getDeliveryStart(ordNo);
-			
-			Order order = new Order();
-			order.setOrdNo(info.getOrdNo());
-			order.setCustNo(info.getCustNo());
-			order.setOrdPhnno(info.getOrdPhnno());
-			order.setOrdNm(info.getOrdNm());
-			order.setGoodsCnt(info.getGoodsCnt()+"");
-			order.setGoodsNm(info.getGoodsNm());
-			try {
-				kakaotalkService.sendDeliveryStart(order, TsbConstants.REG_NO);
-			} catch(Exception e) {
-				log.debug("kakaotalkService Exception OrdNo:"+info.getOrdNo());
+			// 자사몰 주문일경우 알림톡 발송 
+			if(TscConstants.MallGb.SELFMALL.value().equals(info.getMallGb())) {
+				Order order = new Order();
+				order.setOrdNo(info.getOrdNo());
+				order.setCustNo(info.getCustNo());
+				order.setOrdPhnno(info.getOrdPhnno());
+				order.setOrdNm(info.getOrdNm());
+				order.setGoodsCnt(info.getGoodsCnt()+"");
+				order.setGoodsNm(info.getGoodsNm());
+				try {
+					kakaotalkService.sendDeliveryStart(order, TsbConstants.REG_NO);
+				} catch(Exception e) {
+					log.debug("kakaotalkService Exception OrdNo:"+info.getOrdNo());
+				}
 			}
 		}
 		

+ 15 - 18
src/main/java/com/style24/batch/biz/job/delivery/TsbSoldoutCancelJob.java

@@ -41,49 +41,46 @@ public class TsbSoldoutCancelJob extends TsbAbstractJob<Delivery, Delivery, Deli
 	@Override
 	public Delivery process(Delivery delivery) throws Exception {
 		succCnt = 0;
-		failCnt = 1;
+		failCnt = 0;
 
 		/**
 		 * 1. (일반,예약) 품절취소대상 주문번호 목록 조회, 주문번호 단위  주문상세목록 조회 , 주문번호 단위 core 취소 서비스호출  
 		 * 2. (출고예외 -- 재고부족)               품절 대상 조회     core 취소 서비스호출  처리완료 업데이트 
 		 * 3. (회수예외 -- 확정전 품절, 확정전 불량 )   품절 대상 조회    core 취소 서비스호출  처리완료 업데이트 
 		 * */
-		
+
 		// 1. (일반,예약) 품절취소대상 주문번호 목록 조회, 주문번호 단위  주문상세목록 조회 , 주문번호 단위 core 취소 서비스호출  
-		
 		Collection<Delivery> ordnoList = deliveryService.getSoldoutOrderNoList();
-		try {
-			for(Delivery data : ordnoList) {
+		for(Delivery data : ordnoList) {
+			try {
 				deliveryService.SoldoutCancel(data,"N");
 				succCnt++;
+			}catch(Exception E) {
+					failCnt++;
 			}
-		}catch(Exception E) {
-			failCnt++;
 		}
 		
-		
 		// 2. (출고예외 -- 재고부족)               품절 대상 조회     core 취소 서비스호출  처리완료 업데이트 
 		
 		Collection<Delivery> excOrdnoList = deliveryService.getSoldoutOrderExcNoList();
-		try {
-			for(Delivery data2 : excOrdnoList) {
+		for(Delivery data2 : excOrdnoList) {
+			try {
 				deliveryService.SoldoutCancel(data2,"E");
 				succCnt++;
+			} catch(Exception E) {
+				failCnt++;
 			}
-		} catch(Exception E) {
-			failCnt++;
 		}
-		
-		
+
 		// 3. (회수예외 -- 확정전 품절, 확정전 불량 )   품절 대상 조회    core 취소 서비스호출   처리완료 업데이트 
 		Collection<Delivery> recallOrdnoList = deliveryService.getSoldoutOrderRecallNoList();
-		try {
-			for(Delivery data3 : recallOrdnoList) {
+		for(Delivery data3 : recallOrdnoList) {
+			try {
 				deliveryService.SoldoutCancel(data3,"R");
 				succCnt++;
+			} catch(Exception E) {
+				failCnt++;
 			}
-		} catch(Exception E) {
-			failCnt++;
 		}
 
 		 return delivery;

+ 11 - 12
src/main/java/com/style24/batch/biz/service/TsbDeliveryService.java

@@ -1202,7 +1202,6 @@ public class TsbDeliveryService {
 	 * @author moon
 	 * @since  2021. 04. 26
 	 */
-	@Transactional("shopTxnManager")
 	public void SoldoutCancel(Delivery data, String gubun) {
 		Integer userNo = TsbConstants.REG_NO;
 		Collection<Delivery> list = null;
@@ -1216,6 +1215,9 @@ public class TsbDeliveryService {
 
 		try {
 			if(list != null) {
+				Delivery chk = list.iterator().next();
+				
+				//if(!TscConstants.PayMeans.CELL_PHONE.value().equals(chk.getPayMeans()) && !TscConstants.PayMeans.BANK_DEPOSIT.value().equals(chk.getPayMeans())) {
 				Collection<Order> ordSoldoutList = new ArrayList<Order>();
 				for (Delivery item : list) {
 	
@@ -1238,6 +1240,7 @@ public class TsbDeliveryService {
 
 				// 네이버페이 주문형 처리
 				int i = 0;
+				
 				for(Order order : ordSoldoutList) {
 					order = orderDao.getOrdDtlInfo(order);
 					if("O".equals(order.getOrdExchGb())) {
@@ -1261,17 +1264,8 @@ public class TsbDeliveryService {
 
 					i++;
 				}
-	
-				// TB_ORDER_DETAIL 결품여부 Y
+			
 				
-				/*
-				for(Delivery delv : list) {
-					delv.setUpdNo(userNo);
-					delv.setSoldoutMemo("자동 품절처리");
-					deliveryDao.updateSoldOut(delv);
-				}
-				*/
-	
 				if ("E".equals(gubun)) {
 					// 처리완료 업데이트
 					data.setUpdNo(userNo);
@@ -1279,10 +1273,15 @@ public class TsbDeliveryService {
 				} else if ("R".equals(gubun)) {
 					// 처리완료 업데이트
 					deliveryDao.updateTbRecallException(data);
+				} else {
+					log.info("일반");
 				}
+				//}
 			}
 		} catch(Exception e) {
-			throw new IllegalStateException(e.getMessage(), e);
+			//throw new IllegalStateException(e.getMessage(), e);
+			log.info("Exception data {}"+data);
+			e.printStackTrace();
 		}
 	}
 

+ 1 - 0
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -158,6 +158,7 @@ public class Delivery extends TscBaseDomain {
 	private String goodsCd;
 	private String goodsNm;
 	private String chgerBaseAddr;
+	private String mallGb;
 	
 	private String cjOrdChgSq;
 	private String cjOrdNo;

+ 12 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsbDelivery.xml

@@ -1021,15 +1021,15 @@
 			, E.RECIP_ZIPCODE                     AS DeliveryPostalCode
 			, E.RECIP_BASE_ADDR                   AS DeliveryAddr1
 			, E.RECIP_DTL_ADDR                    AS DeliveryAddr2
-			, CASE WHEN B.SHOT_DELV_YN ='Y' THEN '14' ELSE '05' END                               AS LogisticsNo
-			, CASE WHEN B.SHOT_DELV_YN ='Y' THEN '디디로직스'  ELSE 'CJ 대한통운' END                  AS LogisticsName
+			, CASE WHEN B.ORD_EXCH_GB = 'O' AND B.SHOT_DELV_YN ='Y' THEN '14' ELSE '05' END               AS LogisticsNo
+			, CASE WHEN B.ORD_EXCH_GB = 'O' AND B.SHOT_DELV_YN ='Y' THEN '디디로직스'  ELSE 'CJ 대한통운' END   AS LogisticsName
 			, E.DELV_MEMO                         AS DeliveryMemo
 			, CASE WHEN (SELECT COUNT(*) -1 FROM TB_ORDER_DETAIL WHERE ORD_NO = A.ORD_NO) > 0 THEN CONCAT(F.GOODS_NM,' 외  ', (SELECT COUNT(*) -1 FROM TB_ORDER_DETAIL WHERE ORD_NO = A.ORD_NO) , '건') ELSE F.GOODS_NM END   AS ProductSummary
 			,  0                                  AS IsCancel
 			,  0                                  AS IsChangeAddress
 			,  0                                  AS IsReOrder
 			, CASE WHEN A.MALL_GB = 'G011_20' THEN B.EXTMALL_ID ELSE 'APISHOP_0054' END                  AS OrderPath -- 주문경로 (확인필요!)
-			, CASE WHEN B.SHOT_DELV_YN ='Y' THEN '20' ELSE '10' END                                 	 AS DeliveryClassCd 
+			, CASE WHEN B.ORD_EXCH_GB = 'O' AND B.SHOT_DELV_YN ='Y' THEN '20' ELSE '10' END              AS DeliveryClassCd 
 			, CASE WHEN B.ORD_EXCH_GB ='O'  THEN '10' ELSE '20' END                                 	 AS ShippingTypeCd
 			, B.GIFT_PACK_YN                      AS IsBeautyDelivery
 			, ''                                                                                         AS DeliveryAddrNew  -- 도로명 주소 (확인필요!)
@@ -1488,7 +1488,8 @@
 			   AND B.ORD_EXCH_GB = 'O'
 			   AND 2 <= FN_GET_BIZDAYS(DATE_FORMAT(A.ORD_DT, '%Y%m%d') , DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY ), '%Y%m%d'))
 			   AND A.ORD_DT >= DATE_ADD(DATE_FORMAT('20210831160000','%Y%m%d%H%i%S') , INTERVAL 0 DAY)   -- 오픈 시점 날짜 세팅 후 주석풀기
-	
+			   AND NOT EXISTS (SELECT 1 FROM TB_ORDER_CHANGE_DETAIL OCD WHERE OCD.ORD_DTL_NO = B.ORD_DTL_NO AND OCD.CHG_STAT ='G685_10')
+		
 			UNION ALL  
 			 
 			SELECT A.ORD_NO 
@@ -1503,6 +1504,7 @@
 			   AND D.DELV_RES_DT  < NOW()
 			   AND 2 <= FN_GET_BIZDAYS(DATE_FORMAT(CASE WHEN  A.ORD_DT < D.DELV_RES_DT THEN D.DELV_RES_DT ELSE A.ORD_DT END, '%Y%m%d') , DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -1 DAY ), '%Y%m%d'))
 			   AND CASE WHEN  A.ORD_DT < D.DELV_RES_DT THEN D.DELV_RES_DT ELSE A.ORD_DT END  >= DATE_ADD(DATE_FORMAT('20210831160000','%Y%m%d%H%i%S') , INTERVAL 0 DAY)   -- 오픈 시점 날짜 세팅 후 주석풀기 
+			   AND NOT EXISTS (SELECT 1 FROM TB_ORDER_CHANGE_DETAIL OCD WHERE OCD.ORD_DTL_NO = B.ORD_DTL_NO AND OCD.CHG_STAT ='G685_10')
 		) A 
 		GROUP BY A.ORD_NO
 		ORDER BY ORD_NO
@@ -1550,6 +1552,7 @@
 		 WHERE A.COMPLTED_YN = 'N'
 		   AND B.GIFT_YN     = 'N'
 		   AND A.REG_DT >= DATE_ADD(DATE_FORMAT('20210901','%Y%m%d%H%i%S') , INTERVAL 0 DAY)
+		   AND EXISTS (SELECT 1 FROM TB_ORDER_DETAIL OD WHERE OD.ORD_DTL_NO = B.ORD_DTL_NO AND OD.ORD_DTL_STAT != 'G013_99')
 		 GROUP BY A.ORD_NO 
 		 ]]>
 	</select>
@@ -1578,6 +1581,8 @@
 		   AND B.GIFT_YN      = 'N'
 		   AND A.ORD_NO       = #{ordNo}
 		   AND NOT EXISTS (SELECT 1 FROM TB_EXCHANGE_DELV_FAIL WHERE ORD_NO = A.ORD_NO AND ORD_DTL_NO= B.ORD_DTL_NO) 
+		   AND EXISTS (SELECT 1 FROM TB_ORDER_DETAIL OD WHERE OD.ORD_DTL_NO = B.ORD_DTL_NO AND OD.ORD_DTL_STAT != 'G013_99')
+		   AND NOT EXISTS (SELECT 1 FROM TB_ORDER_DETAIL OD WHERE OD.ORD_DTL_NO = B.ORD_DTL_NO AND OD.CNCL_RTN_QTY = b.EXCEPTION_QTY)
 		  GROUP BY A.ORD_NO, B.ORD_DTL_NO, C.CUST_NO, C.ORD_NM, D.PG_GB, D.PAY_MEANS, E.BANK_CD, E.ACCOUNT_NM, E.ACCOUNT_NO, B.EXCEPTION_QTY 
 	</select>	
 	
@@ -1617,6 +1622,7 @@
 		 WHERE B.REASON_CODE IN ('08','10')
 		   AND A.RECALL_STAT ='P'
 		   AND NOT EXISTS (SELECT 1 FROM TB_EXCHANGE_DELV_FAIL WHERE ORD_NO = A.ORDER_NO AND ORD_DTL_NO= B.ORDER_DTL_NO) 
+		   AND NOT EXISTS (SELECT 1 FROM TB_ORDER_DETAIL OD WHERE OD.ORD_DTL_NO = B.ORDER_DTL_NO AND OD.CNCL_RTN_QTY = b.EXCEPTION_QTY)
 		   AND A.ORDER_NO = #{ordNo}
 	</select>
 	
@@ -1799,6 +1805,7 @@
 			, A.ORD_NM 
 			, (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD= MAX(B.GOODS_CD))  AS GOODS_NM
 			, COUNT(B.GOODS_CD) -1 AS GOODS_CNT
+			, A.MALL_GB
 		  FROM TB_ORDER A
 		  JOIN TB_ORDER_DETAIL B ON A.ORD_NO = B.ORD_NO 
 		 WHERE A.ORD_NO = #{orderno}
@@ -1818,6 +1825,7 @@
 			, CONCAT(A.CHGER_BASE_ADDR ,' ',A.CHGER_DTL_ADDR)                  AS CHGER_BASE_ADDR 
 			, (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD= MAX(C.GOODS_CD))  AS GOODS_NM
 			, COUNT(C.GOODS_CD) -1                                             AS GOODS_CNT
+			, A.MALL_GB
 		  FROM TB_ORDER_CHANGE A
 		  JOIN TB_ORDER_CHANGE_DETAIL B ON A.ORD_CHG_SQ = B.ORD_CHG_SQ 
 		  JOIN TB_ORDER_DETAIL C        ON B.ORD_DTL_NO = C.ORD_DTL_NO